From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- files/fr/web/api/ambient_light_events/index.html | 98 ++ .../delay/index.html | 140 -- .../api/animationeffecttimingproperties/index.html | 124 -- files/fr/web/api/api_fichier_systeme/index.html | 114 -- files/fr/web/api/api_html_drag_and_drop/index.html | 268 ---- .../op\303\251rations_de_glissement/index.html" | 294 ----- .../basic_concepts_behind_indexeddb/index.html | 209 --- .../index.html | 139 -- files/fr/web/api/api_indexeddb/index.html | 322 ----- .../api/api_indexeddb/using_indexeddb/index.html | 1337 -------------------- .../fr/web/api/audiocontext/creategain/index.html | 167 --- .../web/api/baseaudiocontext/creategain/index.html | 167 +++ .../api/canvas_api/a_basic_ray-caster/index.html | 52 + .../manipulating_video_using_canvas/index.html | 158 +++ .../tutorial/advanced_animations/index.html | 376 ++++++ .../tutorial/applying_styles_and_colors/index.html | 719 +++++++++++ .../tutorial/basic_animations/index.html | 339 +++++ .../api/canvas_api/tutorial/basic_usage/index.html | 149 +++ .../tutorial/compositing/example/index.html | 295 +++++ .../api/canvas_api/tutorial/compositing/index.html | 110 ++ .../canvas_api/tutorial/drawing_shapes/index.html | 581 +++++++++ .../canvas_api/tutorial/drawing_text/index.html | 161 +++ .../hit_regions_and_accessibility/index.html | 97 ++ files/fr/web/api/canvas_api/tutorial/index.html | 52 + .../tutorial/optimizing_canvas/index.html | 112 ++ .../pixel_manipulation_with_canvas/index.html | 258 ++++ .../canvas_api/tutorial/transformations/index.html | 276 ++++ .../canvas_api/tutorial/using_images/index.html | 320 +++++ .../tutoriel_canvas/advanced_animations/index.html | 376 ------ .../ajout_de_styles_et_de_couleurs/index.html | 719 ----------- .../tutoriel_canvas/animations_basiques/index.html | 339 ----- .../tutoriel_canvas/composition/example/index.html | 295 ----- .../tutoriel_canvas/composition/index.html | 110 -- .../dessin_de_texte_avec_canvas/index.html | 161 --- .../formes_g\303\251om\303\251triques/index.html" | 581 --------- .../hit_regions_and_accessibility/index.html | 97 -- .../web/api/canvas_api/tutoriel_canvas/index.html | 52 - .../tutoriel_canvas/optimizing_canvas/index.html | 112 -- .../pixel_manipulation_with_canvas/index.html | 258 ---- .../tutoriel_canvas/transformations/index.html | 276 ---- .../utilisation_d'images/index.html | 320 ----- .../tutoriel_canvas/utilisation_de_base/index.html | 149 --- files/fr/web/api/crypto/getrandomvalues/index.html | 75 ++ files/fr/web/api/cssmatrix/index.html | 76 -- .../api/detecting_device_orientation/index.html | 289 +++++ .../devicemotioneventrotationrate/alpha/index.html | 103 ++ .../devicemotioneventrotationrate/beta/index.html | 105 ++ .../devicemotioneventrotationrate/gamma/index.html | 105 ++ .../api/devicemotioneventrotationrate/index.html | 100 ++ .../api/deviceorientationevent.absolute/index.html | 56 - .../api/deviceorientationevent/absolute/index.html | 56 + .../fr/web/api/devicerotationrate/alpha/index.html | 103 -- .../fr/web/api/devicerotationrate/beta/index.html | 105 -- .../fr/web/api/devicerotationrate/gamma/index.html | 105 -- files/fr/web/api/devicerotationrate/index.html | 100 -- files/fr/web/api/document/activeelement/index.html | 25 - files/fr/web/api/document/anchors/index.html | 80 ++ .../web/api/document/document.anchors/index.html | 80 -- .../web/api/document/elementfrompoint/index.html | 53 - files/fr/web/api/document/getselection/index.html | 15 - .../api/document/readystatechange_event/index.html | 87 ++ files/fr/web/api/document/stylesheets/index.html | 56 - .../api/document_object_model/events/index.html | 74 ++ .../api/document_object_model/examples/index.html | 369 ++++++ .../api/document_object_model/exemples/index.html | 369 ------ .../how_to_create_a_dom_tree/index.html | 146 +++ .../index.html" | 74 -- .../index.html" | 55 - .../index.html | 55 + .../pr\303\251face/index.html" | 54 - .../index.html | 351 +++++ .../example/index.html | 44 + .../using_the_w3c_dom_level_1_core/index.html | 92 ++ .../exemple/index.html | 44 - .../index.html | 92 -- .../documentorshadowroot/activeelement/index.html | 25 + .../elementfrompoint/index.html | 53 + .../documentorshadowroot/getselection/index.html | 15 + .../documentorshadowroot/stylesheets/index.html | 56 + files/fr/web/api/dommatrix/index.html | 76 ++ files/fr/web/api/effecttiming/delay/index.html | 140 ++ files/fr/web/api/effecttiming/index.html | 124 ++ files/fr/web/api/element.blur/index.html | 88 -- files/fr/web/api/element/accesskey/index.html | 22 - .../api/element/compositionend_event/index.html | 131 ++ .../api/element/compositionstart_event/index.html | 146 +++ .../api/element/compositionupdate_event/index.html | 137 ++ files/fr/web/api/element/copy_event/index.html | 148 +++ files/fr/web/api/element/error_event/index.html | 93 ++ files/fr/web/api/element/focusin_event/index.html | 123 ++ files/fr/web/api/element/focusout_event/index.html | 123 ++ files/fr/web/api/element/innerhtml/index.html | 203 +++ files/fr/web/api/element/innerthtml/index.html | 203 --- files/fr/web/api/element/name/index.html | 77 -- files/fr/web/api/element/onwheel/index.html | 93 -- .../web/api/elementcssinlinestyle/style/index.html | 57 + files/fr/web/api/entity/index.html | 114 -- files/fr/web/api/entityreference/index.html | 93 -- .../index.html" | 168 --- .../event/comparison_of_event_targets/index.html | 168 +++ files/fr/web/api/event/createevent/index.html | 41 - .../api/file_and_directory_entries_api/index.html | 114 ++ .../api/formdata/using_formdata_objects/index.html | 145 +++ .../utilisation_objets_formdata/index.html | 145 --- files/fr/web/api/fullscreen_api/index.html | 301 +++++ .../gamepad_api/using_the_gamepad_api/index.html | 281 ++++ .../web/api/globaleventhandlers/onwheel/index.html | 93 ++ files/fr/web/api/history_api/example/index.html | 392 ++++++ files/fr/web/api/history_api/index.html | 245 ++++ .../drag_operations/index.html | 294 +++++ files/fr/web/api/html_drag_and_drop_api/index.html | 268 ++++ files/fr/web/api/htmlelement/accesskey/index.html | 22 + .../api/htmlelement/animationend_event/index.html | 81 ++ .../animationiteration_event/index.html | 83 ++ .../htmlelement/animationstart_event/index.html | 81 ++ files/fr/web/api/htmlelement/dataset/index.html | 102 -- files/fr/web/api/htmlelement/focus/index.html | 223 ---- files/fr/web/api/htmlelement/innertext/index.html | 42 + files/fr/web/api/htmlelement/style/index.html | 57 - files/fr/web/api/htmlelement/tabindex/index.html | 25 - .../api/htmlelement/transitionend_event/index.html | 192 +++ .../api/htmlformelement/submit_event/index.html | 59 + .../api/htmlformelement/submit_event_/index.html | 59 - .../web/api/htmlhyperlinkelementutils/index.html | 213 ++++ .../web/api/htmlorforeignelement/blur/index.html | 88 ++ .../api/htmlorforeignelement/dataset/index.html | 102 ++ .../web/api/htmlorforeignelement/focus/index.html | 223 ++++ .../api/htmlorforeignelement/tabindex/index.html | 25 + .../api/idbopendbrequest/blocked_event/index.html | 102 ++ .../fr/web/api/idbrequest/blocked_event/index.html | 102 -- .../basic_concepts_behind_indexeddb/index.html | 209 +++ .../index.html | 139 ++ files/fr/web/api/indexeddb_api/index.html | 322 +++++ .../api/indexeddb_api/using_indexeddb/index.html | 1337 ++++++++++++++++++++ files/fr/web/api/media_streams_api/index.html | 85 ++ files/fr/web/api/namelist/index.html | 52 - files/fr/web/api/navigator/getusermedia/index.html | 194 +++ .../online_and_offline_events/index.html | 99 ++ .../index.html" | 99 -- .../fr/web/api/network_information_api/index.html | 89 ++ files/fr/web/api/node/baseuriobject/index.html | 39 - files/fr/web/api/node/innertext/index.html | 42 - files/fr/web/api/node/nodeprincipal/index.html | 40 - files/fr/web/api/node/rootnode/index.html | 71 -- .../using_web_notifications/index.html | 275 ---- .../using_the_notifications_api/index.html | 275 ++++ .../offlineaudiocontext/complete_event/index.html | 91 ++ .../pointer_events/gestes_pincer_zoom/index.html | 220 ---- .../pointer_events/pinch_zoom_gestures/index.html | 220 ++++ files/fr/web/api/pointer_lock_api/index.html | 319 +++++ files/fr/web/api/proximity_events/index.html | 120 ++ .../api/randomsource/getrandomvalues/index.html | 75 -- .../audioprocess_event/index.html | 151 +++ files/fr/web/api/selection_api/index.html | 221 ---- files/fr/web/api/storage/localstorage/index.html | 135 -- files/fr/web/api/touch_events/index.html | 245 ++++ .../index.html | 64 + files/fr/web/api/urlutils/index.html | 213 ---- .../advanced_concepts_and_examples/index.html | 423 ------- .../algorithme_clonage_structure/index.html | 153 --- .../index.html | 240 ++++ .../structured_clone_algorithm/index.html | 153 +++ .../web_workers_api/using_web_workers/index.html | 633 +++++++++ .../utilisation_des_web_workers/index.html | 633 --------- .../by_example/appliquer_des_couleurs/index.html | 100 -- .../index.html" | 90 -- .../index.html" | 122 -- .../by_example/basic_scissoring/index.html | 90 ++ .../webgl_api/by_example/boilerplate_1/index.html | 97 ++ .../by_example/canvas_size_and_webgl/index.html | 82 ++ .../by_example/clearing_by_clicking/index.html | 122 ++ .../by_example/clearing_with_colors/index.html | 100 ++ .../webgl_api/by_example/color_masking/index.html | 136 ++ .../index.html" | 162 --- .../index.html" | 139 -- .../webgl_api/by_example/detect_webgl/index.html | 79 ++ .../by_example/d\303\251tecter_webgl/index.html" | 79 -- .../index.html" | 164 --- .../by_example/hello_vertex_attributes/index.html | 171 +++ .../introduction_aux_attributs_vertex/index.html | 171 --- .../les_textures_vid\303\251os/index.html" | 23 - .../by_example/masque_de_couleur/index.html | 136 -- .../by_example/mod\303\250le_1/index.html" | 97 -- .../by_example/raining_rectangles/index.html | 176 +++ .../by_example/scissor_animation/index.html | 162 +++ .../by_example/simple_color_animation/index.html | 139 ++ .../tailles_de_canvas_et_webgl/index.html | 82 -- .../by_example/textures_from_code/index.html | 164 +++ .../by_example/une_pluie_de_rectangle/index.html | 176 --- .../webgl_api/by_example/video_textures/index.html | 23 + files/fr/web/api/webgl_api/data/index.html | 56 + .../web/api/webgl_api/donn\303\251es/index.html" | 56 - .../index.html | 307 +++++ .../index.html | 117 -- .../ajouter_du_contenu_\303\240_webgl/index.html" | 307 ----- .../animating_objects_with_webgl/index.html | 59 + .../animating_textures_in_webgl/index.html | 144 +++ .../animation_de_textures_en_webgl/index.html | 144 --- .../animer_des_objets_avec_webgl/index.html | 59 - .../tutorial/commencer_avec_webgl/index.html | 73 -- .../creating_3d_objects_using_webgl/index.html | 167 +++ .../creer_des_objets_3d_avec_webgl/index.html | 167 --- .../tutorial/eclairage_en_webgl/index.html | 175 --- .../tutorial/getting_started_with_webgl/index.html | 73 ++ .../tutorial/lighting_in_webgl/index.html | 175 +++ .../index.html | 117 ++ .../tutorial/using_textures_in_webgl/index.html | 278 ++++ .../utiliser_les_textures_avec_webgl/index.html | 278 ---- .../api/webglrenderingcontext/activer/index.html | 145 --- .../api/webglrenderingcontext/canevas/index.html | 75 -- .../api/webglrenderingcontext/canvas/index.html | 75 ++ .../api/webglrenderingcontext/enable/index.html | 145 +++ .../fr/web/api/webrtc_api/connectivity/index.html | 54 + .../web/api/webrtc_api/session_lifetime/index.html | 21 + .../signaling_and_video_calling/index.html | 360 ++++++ .../api/webrtc_api/taking_still_photos/index.html | 161 +++ .../using_vr_controllers_with_webvr/index.html | 257 ++++ .../index.html" | 257 ---- .../fr/web/api/window/afterprint_event/index.html | 63 + .../fr/web/api/window/beforeprint_event/index.html | 74 ++ .../web/api/window/beforeunload_event/index.html | 139 ++ .../web/api/window/devicemotion_event/index.html | 97 ++ .../api/window/deviceorientation_event/index.html | 176 +++ .../api/window/domcontentloaded_event/index.html | 84 ++ files/fr/web/api/window/load_event/index.html | 92 ++ files/fr/web/api/window/onresize/index.html | 78 -- files/fr/web/api/window/pagehide_event/index.html | 69 + files/fr/web/api/window/pageshow_event/index.html | 132 ++ files/fr/web/api/window/unload_event/index.html | 156 +++ files/fr/web/api/window/url/index.html | 95 -- files/fr/web/api/windowbase64/atob/index.html | 132 -- files/fr/web/api/windowbase64/btoa/index.html | 174 --- .../d\303\251coder_encoder_en_base64/index.html" | 343 ----- .../api/windoworworkerglobalscope/atob/index.html | 132 ++ .../api/windoworworkerglobalscope/btoa/index.html | 174 +++ .../clearinterval/index.html | 73 ++ .../web/api/windowtimers/clearinterval/index.html | 73 -- .../index.html | 240 ---- .../web/api/xmlhttprequest/abort_event/index.html | 89 ++ .../xmlhttprequest/using_xmlhttprequest/index.html | 755 +++++++++++ .../utiliser_xmlhttprequest/index.html | 755 ----------- files/fr/web/api/xmlserializer/index.html | 54 + .../web/api/xsltprocessor/basic_example/index.html | 65 + .../xsltprocessor/browser_differences/index.html | 22 + .../api/xsltprocessor/generating_html/index.html | 190 +++ .../xsl_transformations_in_mozilla_faq/index.html | 60 + 246 files changed, 23386 insertions(+), 18008 deletions(-) create mode 100644 files/fr/web/api/ambient_light_events/index.html delete mode 100644 files/fr/web/api/animationeffecttimingproperties/delay/index.html delete mode 100644 files/fr/web/api/animationeffecttimingproperties/index.html delete mode 100644 files/fr/web/api/api_fichier_systeme/index.html delete mode 100644 files/fr/web/api/api_html_drag_and_drop/index.html delete mode 100644 "files/fr/web/api/api_html_drag_and_drop/op\303\251rations_de_glissement/index.html" delete mode 100644 files/fr/web/api/api_indexeddb/basic_concepts_behind_indexeddb/index.html delete mode 100644 files/fr/web/api/api_indexeddb/browser_storage_limits_and_eviction_criteria/index.html delete mode 100644 files/fr/web/api/api_indexeddb/index.html delete mode 100644 files/fr/web/api/api_indexeddb/using_indexeddb/index.html delete mode 100644 files/fr/web/api/audiocontext/creategain/index.html create mode 100644 files/fr/web/api/baseaudiocontext/creategain/index.html create mode 100644 files/fr/web/api/canvas_api/a_basic_ray-caster/index.html create mode 100644 files/fr/web/api/canvas_api/manipulating_video_using_canvas/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/advanced_animations/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/basic_animations/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/basic_usage/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/compositing/example/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/compositing/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/drawing_shapes/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/drawing_text/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/optimizing_canvas/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/pixel_manipulation_with_canvas/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/transformations/index.html create mode 100644 files/fr/web/api/canvas_api/tutorial/using_images/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/advanced_animations/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/ajout_de_styles_et_de_couleurs/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/animations_basiques/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/composition/example/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/composition/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/dessin_de_texte_avec_canvas/index.html delete mode 100644 "files/fr/web/api/canvas_api/tutoriel_canvas/formes_g\303\251om\303\251triques/index.html" delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/hit_regions_and_accessibility/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/optimizing_canvas/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/pixel_manipulation_with_canvas/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/transformations/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_d'images/index.html delete mode 100644 files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_de_base/index.html create mode 100644 files/fr/web/api/crypto/getrandomvalues/index.html delete mode 100644 files/fr/web/api/cssmatrix/index.html create mode 100644 files/fr/web/api/detecting_device_orientation/index.html create mode 100644 files/fr/web/api/devicemotioneventrotationrate/alpha/index.html create mode 100644 files/fr/web/api/devicemotioneventrotationrate/beta/index.html create mode 100644 files/fr/web/api/devicemotioneventrotationrate/gamma/index.html create mode 100644 files/fr/web/api/devicemotioneventrotationrate/index.html delete mode 100644 files/fr/web/api/deviceorientationevent.absolute/index.html create mode 100644 files/fr/web/api/deviceorientationevent/absolute/index.html delete mode 100644 files/fr/web/api/devicerotationrate/alpha/index.html delete mode 100644 files/fr/web/api/devicerotationrate/beta/index.html delete mode 100644 files/fr/web/api/devicerotationrate/gamma/index.html delete mode 100644 files/fr/web/api/devicerotationrate/index.html delete mode 100644 files/fr/web/api/document/activeelement/index.html create mode 100644 files/fr/web/api/document/anchors/index.html delete mode 100644 files/fr/web/api/document/document.anchors/index.html delete mode 100644 files/fr/web/api/document/elementfrompoint/index.html delete mode 100644 files/fr/web/api/document/getselection/index.html create mode 100644 files/fr/web/api/document/readystatechange_event/index.html delete mode 100644 files/fr/web/api/document/stylesheets/index.html create mode 100644 files/fr/web/api/document_object_model/events/index.html create mode 100644 files/fr/web/api/document_object_model/examples/index.html delete mode 100644 files/fr/web/api/document_object_model/exemples/index.html create mode 100644 files/fr/web/api/document_object_model/how_to_create_a_dom_tree/index.html delete mode 100644 "files/fr/web/api/document_object_model/les_\303\251v\303\250nements_et_le_dom/index.html" delete mode 100644 "files/fr/web/api/document_object_model/localisation_des_\303\251l\303\251ments_dom_avec_les_s\303\251lecteurs/index.html" create mode 100644 files/fr/web/api/document_object_model/locating_dom_elements_using_selectors/index.html delete mode 100644 "files/fr/web/api/document_object_model/pr\303\251face/index.html" create mode 100644 files/fr/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html create mode 100644 files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html create mode 100644 files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html delete mode 100644 files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/exemple/index.html delete mode 100644 files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/index.html create mode 100644 files/fr/web/api/documentorshadowroot/activeelement/index.html create mode 100644 files/fr/web/api/documentorshadowroot/elementfrompoint/index.html create mode 100644 files/fr/web/api/documentorshadowroot/getselection/index.html create mode 100644 files/fr/web/api/documentorshadowroot/stylesheets/index.html create mode 100644 files/fr/web/api/dommatrix/index.html create mode 100644 files/fr/web/api/effecttiming/delay/index.html create mode 100644 files/fr/web/api/effecttiming/index.html delete mode 100644 files/fr/web/api/element.blur/index.html delete mode 100644 files/fr/web/api/element/accesskey/index.html create mode 100644 files/fr/web/api/element/compositionend_event/index.html create mode 100644 files/fr/web/api/element/compositionstart_event/index.html create mode 100644 files/fr/web/api/element/compositionupdate_event/index.html create mode 100644 files/fr/web/api/element/copy_event/index.html create mode 100644 files/fr/web/api/element/error_event/index.html create mode 100644 files/fr/web/api/element/focusin_event/index.html create mode 100644 files/fr/web/api/element/focusout_event/index.html create mode 100644 files/fr/web/api/element/innerhtml/index.html delete mode 100644 files/fr/web/api/element/innerthtml/index.html delete mode 100644 files/fr/web/api/element/name/index.html delete mode 100644 files/fr/web/api/element/onwheel/index.html create mode 100644 files/fr/web/api/elementcssinlinestyle/style/index.html delete mode 100644 files/fr/web/api/entity/index.html delete mode 100644 files/fr/web/api/entityreference/index.html delete mode 100644 "files/fr/web/api/event/comparaison_des_cibles_d_\303\251v\303\250nements/index.html" create mode 100644 files/fr/web/api/event/comparison_of_event_targets/index.html delete mode 100644 files/fr/web/api/event/createevent/index.html create mode 100644 files/fr/web/api/file_and_directory_entries_api/index.html create mode 100644 files/fr/web/api/formdata/using_formdata_objects/index.html delete mode 100644 files/fr/web/api/formdata/utilisation_objets_formdata/index.html create mode 100644 files/fr/web/api/fullscreen_api/index.html create mode 100644 files/fr/web/api/gamepad_api/using_the_gamepad_api/index.html create mode 100644 files/fr/web/api/globaleventhandlers/onwheel/index.html create mode 100644 files/fr/web/api/history_api/example/index.html create mode 100644 files/fr/web/api/history_api/index.html create mode 100644 files/fr/web/api/html_drag_and_drop_api/drag_operations/index.html create mode 100644 files/fr/web/api/html_drag_and_drop_api/index.html create mode 100644 files/fr/web/api/htmlelement/accesskey/index.html create mode 100644 files/fr/web/api/htmlelement/animationend_event/index.html create mode 100644 files/fr/web/api/htmlelement/animationiteration_event/index.html create mode 100644 files/fr/web/api/htmlelement/animationstart_event/index.html delete mode 100644 files/fr/web/api/htmlelement/dataset/index.html delete mode 100644 files/fr/web/api/htmlelement/focus/index.html create mode 100644 files/fr/web/api/htmlelement/innertext/index.html delete mode 100644 files/fr/web/api/htmlelement/style/index.html delete mode 100644 files/fr/web/api/htmlelement/tabindex/index.html create mode 100644 files/fr/web/api/htmlelement/transitionend_event/index.html create mode 100644 files/fr/web/api/htmlformelement/submit_event/index.html delete mode 100644 files/fr/web/api/htmlformelement/submit_event_/index.html create mode 100644 files/fr/web/api/htmlhyperlinkelementutils/index.html create mode 100644 files/fr/web/api/htmlorforeignelement/blur/index.html create mode 100644 files/fr/web/api/htmlorforeignelement/dataset/index.html create mode 100644 files/fr/web/api/htmlorforeignelement/focus/index.html create mode 100644 files/fr/web/api/htmlorforeignelement/tabindex/index.html create mode 100644 files/fr/web/api/idbopendbrequest/blocked_event/index.html delete mode 100644 files/fr/web/api/idbrequest/blocked_event/index.html create mode 100644 files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html create mode 100644 files/fr/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html create mode 100644 files/fr/web/api/indexeddb_api/index.html create mode 100644 files/fr/web/api/indexeddb_api/using_indexeddb/index.html create mode 100644 files/fr/web/api/media_streams_api/index.html delete mode 100644 files/fr/web/api/namelist/index.html create mode 100644 files/fr/web/api/navigator/getusermedia/index.html create mode 100644 files/fr/web/api/navigatoronline/online_and_offline_events/index.html delete mode 100644 "files/fr/web/api/navigatoronline/\303\251v\303\250nements_online_et_offline/index.html" create mode 100644 files/fr/web/api/network_information_api/index.html delete mode 100644 files/fr/web/api/node/baseuriobject/index.html delete mode 100644 files/fr/web/api/node/innertext/index.html delete mode 100644 files/fr/web/api/node/nodeprincipal/index.html delete mode 100644 files/fr/web/api/node/rootnode/index.html delete mode 100644 files/fr/web/api/notification/using_web_notifications/index.html create mode 100644 files/fr/web/api/notifications_api/using_the_notifications_api/index.html create mode 100644 files/fr/web/api/offlineaudiocontext/complete_event/index.html delete mode 100644 files/fr/web/api/pointer_events/gestes_pincer_zoom/index.html create mode 100644 files/fr/web/api/pointer_events/pinch_zoom_gestures/index.html create mode 100644 files/fr/web/api/pointer_lock_api/index.html create mode 100644 files/fr/web/api/proximity_events/index.html delete mode 100644 files/fr/web/api/randomsource/getrandomvalues/index.html create mode 100644 files/fr/web/api/scriptprocessornode/audioprocess_event/index.html delete mode 100644 files/fr/web/api/selection_api/index.html delete mode 100644 files/fr/web/api/storage/localstorage/index.html create mode 100644 files/fr/web/api/touch_events/index.html create mode 100644 files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html delete mode 100644 files/fr/web/api/urlutils/index.html delete mode 100644 files/fr/web/api/web_workers_api/advanced_concepts_and_examples/index.html delete mode 100644 files/fr/web/api/web_workers_api/algorithme_clonage_structure/index.html create mode 100644 files/fr/web/api/web_workers_api/functions_and_classes_available_to_workers/index.html create mode 100644 files/fr/web/api/web_workers_api/structured_clone_algorithm/index.html create mode 100644 files/fr/web/api/web_workers_api/using_web_workers/index.html delete mode 100644 files/fr/web/api/web_workers_api/utilisation_des_web_workers/index.html delete mode 100644 files/fr/web/api/webgl_api/by_example/appliquer_des_couleurs/index.html delete mode 100644 "files/fr/web/api/webgl_api/by_example/appliquer_des_d\303\251coupes_simples/index.html" delete mode 100644 "files/fr/web/api/webgl_api/by_example/appliquer_une_couleur_\303\240_la_souris/index.html" create mode 100644 files/fr/web/api/webgl_api/by_example/basic_scissoring/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/boilerplate_1/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/canvas_size_and_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/clearing_by_clicking/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/clearing_with_colors/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/color_masking/index.html delete mode 100644 "files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_avec_d\303\251coupe_et_applique/index.html" delete mode 100644 "files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_color\303\251e/index.html" create mode 100644 files/fr/web/api/webgl_api/by_example/detect_webgl/index.html delete mode 100644 "files/fr/web/api/webgl_api/by_example/d\303\251tecter_webgl/index.html" delete mode 100644 "files/fr/web/api/webgl_api/by_example/g\303\251n\303\251rer_des_textures_avec_du_code/index.html" create mode 100644 files/fr/web/api/webgl_api/by_example/hello_vertex_attributes/index.html delete mode 100644 files/fr/web/api/webgl_api/by_example/introduction_aux_attributs_vertex/index.html delete mode 100644 "files/fr/web/api/webgl_api/by_example/les_textures_vid\303\251os/index.html" delete mode 100644 files/fr/web/api/webgl_api/by_example/masque_de_couleur/index.html delete mode 100644 "files/fr/web/api/webgl_api/by_example/mod\303\250le_1/index.html" create mode 100644 files/fr/web/api/webgl_api/by_example/raining_rectangles/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/scissor_animation/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/simple_color_animation/index.html delete mode 100644 files/fr/web/api/webgl_api/by_example/tailles_de_canvas_et_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/textures_from_code/index.html delete mode 100644 files/fr/web/api/webgl_api/by_example/une_pluie_de_rectangle/index.html create mode 100644 files/fr/web/api/webgl_api/by_example/video_textures/index.html create mode 100644 files/fr/web/api/webgl_api/data/index.html delete mode 100644 "files/fr/web/api/webgl_api/donn\303\251es/index.html" create mode 100644 files/fr/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/ajouter_des_couleurs_avec_les_shaders/index.html delete mode 100644 "files/fr/web/api/webgl_api/tutorial/ajouter_du_contenu_\303\240_webgl/index.html" create mode 100644 files/fr/web/api/webgl_api/tutorial/animating_objects_with_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/animation_de_textures_en_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/animer_des_objets_avec_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/commencer_avec_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/creer_des_objets_3d_avec_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/eclairage_en_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/lighting_in_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html create mode 100644 files/fr/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html delete mode 100644 files/fr/web/api/webgl_api/tutorial/utiliser_les_textures_avec_webgl/index.html delete mode 100644 files/fr/web/api/webglrenderingcontext/activer/index.html delete mode 100644 files/fr/web/api/webglrenderingcontext/canevas/index.html create mode 100644 files/fr/web/api/webglrenderingcontext/canvas/index.html create mode 100644 files/fr/web/api/webglrenderingcontext/enable/index.html create mode 100644 files/fr/web/api/webrtc_api/connectivity/index.html create mode 100644 files/fr/web/api/webrtc_api/session_lifetime/index.html create mode 100644 files/fr/web/api/webrtc_api/signaling_and_video_calling/index.html create mode 100644 files/fr/web/api/webrtc_api/taking_still_photos/index.html create mode 100644 files/fr/web/api/webvr_api/using_vr_controllers_with_webvr/index.html delete mode 100644 "files/fr/web/api/webvr_api/utiliser_des_contr\303\264leurs_de_realite_virtuelle_pour_du_webvr/index.html" create mode 100644 files/fr/web/api/window/afterprint_event/index.html create mode 100644 files/fr/web/api/window/beforeprint_event/index.html create mode 100644 files/fr/web/api/window/beforeunload_event/index.html create mode 100644 files/fr/web/api/window/devicemotion_event/index.html create mode 100644 files/fr/web/api/window/deviceorientation_event/index.html create mode 100644 files/fr/web/api/window/domcontentloaded_event/index.html create mode 100644 files/fr/web/api/window/load_event/index.html delete mode 100644 files/fr/web/api/window/onresize/index.html create mode 100644 files/fr/web/api/window/pagehide_event/index.html create mode 100644 files/fr/web/api/window/pageshow_event/index.html create mode 100644 files/fr/web/api/window/unload_event/index.html delete mode 100644 files/fr/web/api/window/url/index.html delete mode 100644 files/fr/web/api/windowbase64/atob/index.html delete mode 100644 files/fr/web/api/windowbase64/btoa/index.html delete mode 100644 "files/fr/web/api/windowbase64/d\303\251coder_encoder_en_base64/index.html" create mode 100644 files/fr/web/api/windoworworkerglobalscope/atob/index.html create mode 100644 files/fr/web/api/windoworworkerglobalscope/btoa/index.html create mode 100644 files/fr/web/api/windoworworkerglobalscope/clearinterval/index.html delete mode 100644 files/fr/web/api/windowtimers/clearinterval/index.html delete mode 100644 files/fr/web/api/worker/functions_and_classes_available_to_workers/index.html create mode 100644 files/fr/web/api/xmlhttprequest/abort_event/index.html create mode 100644 files/fr/web/api/xmlhttprequest/using_xmlhttprequest/index.html delete mode 100644 files/fr/web/api/xmlhttprequest/utiliser_xmlhttprequest/index.html create mode 100644 files/fr/web/api/xmlserializer/index.html create mode 100644 files/fr/web/api/xsltprocessor/basic_example/index.html create mode 100644 files/fr/web/api/xsltprocessor/browser_differences/index.html create mode 100644 files/fr/web/api/xsltprocessor/generating_html/index.html create mode 100644 files/fr/web/api/xsltprocessor/xsl_transformations_in_mozilla_faq/index.html (limited to 'files/fr/web/api') diff --git a/files/fr/web/api/ambient_light_events/index.html b/files/fr/web/api/ambient_light_events/index.html new file mode 100644 index 0000000000..4f30f285d0 --- /dev/null +++ b/files/fr/web/api/ambient_light_events/index.html @@ -0,0 +1,98 @@ +--- +title: Utiliser les événements de luminosité +slug: WebAPI/Utiliser_les_événéments_de_luminosité +tags: + - WebAPI +translation_of: Web/API/Ambient_Light_Events +--- +

{{SeeCompatTable }}

+

Résumé

+

Les événements concernant la lumière environnante permettent à une application de percevoir simplement les changements de luminosité dans l'environnement de l'appareil. L'application peut donc ainsi réagir aux changements de luminosité : par exemple changer le contraste de l'interface ou changer l'exposition lors de la prise d'une photo.

+

Les événements liés à la lumière

+

Lorsque le capteur de lumière détecte un changement de luminosité, il envoie une notification au navigateur. Lorsque le navigateur reçoit une notification, il déclenche un événement {{domxref("DeviceLightEvent")}} qui fournit des informations sur la valeur exacte de l'intensité lumineuse.

+

Cet événement peut être capturé au niveau de l'objet window en utilisant la méthode {{domxref("EventTarget.addEventListener","addEventListener")}} (en utilisant le nom d'événement {{event("devicelight")}}) ou en attachant le gestionnaire d'événément à la propriété {{domxref("window.ondevicelight")}}.

+

Une fois qu'il a été capturé, l'événement permet un accès à la valeur de l'intensité lumineuse, exprimée en lux avec la propriété {{domxref("DeviceLightEvent.value")}}.

+

Exemple

+
window.addEventListener('devicelight', function(event) {
+  var html = document.getElementsByTagName('html')[0];
+
+  if (event.value < 50) {
+    html.classList.add('darklight');
+    html.classList.remove('brightlight');
+  } else {
+    html.classList.add('brightlight');
+    html.classList.remove('darklight');
+  }
+});
+

Spécifications

+ + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{ SpecName('AmbientLight', '', 'Ambient Light Events') }}{{ Spec2('AmbientLight') }}Spécification initiale
+

Compatibilité des navigateurs

+

{{ CompatibilityTable() }}

+
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
{{domxref("DeviceLightEvent")}}{{CompatNo()}}{{CompatGeckoDesktop("22.0")}} (Mac OS X seulement){{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
+
+
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
{{domxref("DeviceLightEvent")}}{{CompatNo()}}{{CompatNo()}}{{CompatGeckoMobile("15.0")}}{{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
+
+

Notes relatives à Gecko

+

L'événement {{event("devicelight")}} est implémenté et activé par défaut via un paramètre dans Firefox Mobile pour Android (15.0) et dans Firefox OS (B2G). Une implémentation pour un navigateur de bureau sur Mac OS X est également disponible à partir de Gecko 22.0 {{geckoRelease("22.0")}}. Le support pour Windows 7 est en cours de progression (voir {{bug(754199)}}).

+

Voir aussi

+ diff --git a/files/fr/web/api/animationeffecttimingproperties/delay/index.html b/files/fr/web/api/animationeffecttimingproperties/delay/index.html deleted file mode 100644 index bb8c8d9e56..0000000000 --- a/files/fr/web/api/animationeffecttimingproperties/delay/index.html +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: Delay -slug: Web/API/AnimationEffectTimingProperties/delay -tags: - - API - - Animation - - AnimationEffectTimingProperties - - Experimental - - Propriété - - Reference -translation_of: Web/API/EffectTiming/delay ---- -
{{SeeCompatTable}}{{APIRef("Web Animations")}}
- -

La propriété delay est un dictionnaire pour {{domxref("AnimationEffectTimingProperties")}} qui représente le nombre de millisecondes à attendre avant de démarrer une animation.

- -
-

Note : {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly", "KeyframeEffectReadOnly()")}} et {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} acceptent toutes un objet avec des propriétés de minutage, y compris delay. La valeur de delay correspond directement à {{domxref("AnimationEffectTimingReadOnly.delay")}} dans les objets  {{domxref("AnimationEffectReadOnly.timing")}} renvoyés par {{domxref("AnimationEffectReadOnly")}}, {{domxref("KeyframeEffectReadOnly")}} et {{domxref("KeyframeEffect")}}.

-
- -

Syntaxe

- -
var timingProperties = {
-  delay: delayInMilliseconds
-};
-
-timingProperties.delay = delayInMilliseconds;
-
- -

Valeur

- -

Un nombre qui indique la durée qui doit s'écouler entre le début du cycle de l'animation et le début de l'intervalle d'activité (c'est-à-dire le moment où l'animation commence réellement). La valeur par défaut est 0.

- -

Exemples

- -

Dans l'exemple Pool of Tears, chaque larme commence à un instant aléatoire grâce à l'objet de minutage :

- -
// Générateur de valeurs plus
-// ou moins aléatoires
-var getRandomMsRange = function(min, max) {
-  return Math.random() * (max - min) + min;
-}
-
-// On parcourt l'ensemble des larmes
-tears.forEach(function(el) {
-
-  // On anime chacune des larmes
-  el.animate(
-    tearsFalling,
-    {
-      delay: getRandomMsRange(-1000, 1000), // aléatoire pour chaque larme
-      duration: getRandomMsRange(2000, 6000), // aléatoire pour chaque larme
-      iterations: Infinity,
-      easing: "cubic-bezier(0.6, 0.04, 0.98, 0.335)"
-    });
-});
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('Web Animations', '#start-delay', 'delay')}}{{Spec2('Web Animations')}}Brouillon d'édiiton.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support simple{{CompatVersionUnknown}}{{CompatGeckoDesktop(45)}}[1]{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidWebview AndroidChrome pour AndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Support simple{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(45)}}[1]{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

[1] L'API Web Animations est uniquement activée par défaut pour les canaux Nightly et Developer Edition. Elle peut être activée dans les autres versions avec la préférence dom.animations-api.core.enabled.

- -

Voir aussi

- - diff --git a/files/fr/web/api/animationeffecttimingproperties/index.html b/files/fr/web/api/animationeffecttimingproperties/index.html deleted file mode 100644 index cc984622c9..0000000000 --- a/files/fr/web/api/animationeffecttimingproperties/index.html +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Animation Effect Timing Properties -slug: Web/API/AnimationEffectTimingProperties -tags: - - API - - Animation - - AnimationEffectTimingProperties - - Dictionnaire - - Experimental - - Interface - - Reference -translation_of: Web/API/EffectTiming ---- -
{{SeeCompatTable}}{{APIRef("Web Animations")}}
- -

Le dictionnaire AnimationEffectTimingProperties est utilisé par les méthodes {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly", "KeyframeEffectReadOnly()")}} et {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} afin de décrire les propriétés temporelles pour les effets d'animation. L'ensemble de ces propriétés sont optionnelles mais si duration n'est pas paramétrée, l'animation ne sera pas lancée.

- -

Ces propriétés décrivent la façon dont l'agent utilisateur applique l'animation entre chaque étape (keyframe) et comment elle se comporte au début et à la fin.

- -

Propriétés

- -
-
{{domxref("AnimationEffectTimingProperties.delay", "delay")}} {{optional_inline}}
-
Le nombre de millisecondes à attendre avant de démarrer l'animation. La valeur par défaut est 0.
-
{{domxref("AnimationEffectTimingProperties.direction", "direction")}} {{optional_inline}}
-
Indique si l'animation se déroule dans le sens the animation runs forwards (normal), backwards (reverse), switches direction after each iteration (alternate), or runs backwards and switches direction after each iteration (alternate-reverse). Defaults to "normal".
-
{{domxref("AnimationEffectTimingProperties.duration", "duration")}} {{optional_inline}}
-
La durée d'une itération, exprimée en millisecondes. La valeur par défaut est 0. Bien que cette propriété soit optionnelle, il faut garder à l'esprit que l'animation ne sera pas lancée si la valeur est 0.
-
{{domxref("AnimationEffectTimingProperties.easing", "easing")}} {{optional_inline}}
-
La courbe de progression de l'animation au cours du temps. Cette propriété accepte des valeurs pré-paramétrées comme "linear", "ease", "ease-in", "ease-out" et "ease-in-out" ou une fonction "cubic-bezier" de la forme "cubic-bezier(0.42, 0, 0.58, 1)". La valeur par défaut est "linear".
-
{{domxref("AnimationEffectTimingProperties.endDelay", "endDelay")}} {{optional_inline}}
-
Le nombre de millisecondes à attendre après la fin de l'animation. Cette propriété est principalement utilisée lorsqu'on enchaîne une animation à la suite d'une autre. La valeur par défaut est 0.
-
{{domxref("AnimationEffectTimingProperties.fill", "fill")}} {{optional_inline}}
-
Indique si les effets de l'animation doivent s'appliqués sur l'élément avant d'être lancée ("backwards"), être conservés après la fin de l'animation ("forwards") ou les deux both. La valeur par défaut est "none".
-
{{domxref("AnimationEffectTimingProperties.iterationStart", "iterationStart")}} {{optional_inline}}
-
Décrit le point de départ de l'animation par rapport à une itération. Une valeur de 0.5 indique que l'animation démarre au milieu de la première animation (dans ce cas, après deux itérations, l'animation sera arrivée à la moitié de la troisième itération). La valeur par défaut est 0.0.
-
{{domxref("AnimationEffectTimingProperties.iterations", "iterations")}} {{optional_inline}}
-
Le nombre de fois que l'animation doit être répétée. La valeur par défaut est 1. Il est possible d'utiliser la valeur {{jsxref("Infinity")}} pour répéter l'animation aussi longtemps que l'élément existe.
-
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('Web Animations', '#the-animationeffecttimingproperties-dictionary', 'AnimationEffectTimingProperties' )}}{{Spec2('Web Animations')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Microsoft EdgeInternet ExplorerOperaSafari (WebKit)
Support simple{{CompatUnknown}}{{CompatGeckoDesktop(45)}}[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidWebview AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari MobileChrome pour Android
Support simple{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(45)}}[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -

[1] The Web Animations API is only enabled by default in Firefox Developer Edition and Nightly builds. You can enable it in beta and release builds by setting the preference dom.animations-api.core.enabled to true, and can disable it in any Firefox version by setting this preference to false.

- -

Voir aussi

- - diff --git a/files/fr/web/api/api_fichier_systeme/index.html b/files/fr/web/api/api_fichier_systeme/index.html deleted file mode 100644 index 8cef71b2fa..0000000000 --- a/files/fr/web/api/api_fichier_systeme/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: API fichier système -slug: Web/API/API_fichier_systeme -translation_of: Web/API/File_and_Directory_Entries_API ---- -

{{DefaultAPISidebar("API fichier système")}}{{Non-standard_header()}}

- -

L'API fichier système simule un fichier système en local que les applications web peuvent utiliser. Vous pouvez développer des applications qui lisent, écrivent, et créent des fichiers et/ou des dossiers dans un espace virtuel.

- -

Deux API très simulaires existent en fonction du comportement asynchrone ou synchrone souhaité. L'API synchrone est prévu pour être utilisée dans un {{domxref("Worker")}} et retournera les valeurs recherchées. The asynchronous API will not block and functions and the API will not return values; instead, you will need to supply a callback function to handle the response whenever it arrives.

- -

API asynchrone

- -

L'API asynchrone a les interfaces suivantes :

- - - -

API synchrone

- -

L'API synchrone est utile avec les WebWorkers. Contrairement à l'API asynchrone, l'API synchrone n'utilise pas les callbacks parce que les méthodes de l'API retournent des valeurs.

- - - -

Compatibilité navigateur

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
API asynchrone13 {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
API synchrone13 {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
API asynchrone{{ CompatNo() }}{{ CompatVersionUnknown() }} {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
API synchrone{{ CompatNo() }}{{ CompatVersionUnknown() }} {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
-
- -

Voir aussi

- - diff --git a/files/fr/web/api/api_html_drag_and_drop/index.html b/files/fr/web/api/api_html_drag_and_drop/index.html deleted file mode 100644 index fd73e301f8..0000000000 --- a/files/fr/web/api/api_html_drag_and_drop/index.html +++ /dev/null @@ -1,268 +0,0 @@ ---- -title: Glisser et déposer -slug: Web/API/API_HTML_Drag_and_Drop -tags: - - Avancé - - Glisser-deposer - - Guide - - HTML - - drag and drop -translation_of: Web/API/HTML_Drag_and_Drop_API ---- -

{{DefaultAPISidebar("HTML Drag and Drop API")}}

- -

L'interface HTML Drag and Drop (pour glisser-déposer) permet à des applications d'utiliser des fonctionnalités de glisser-déposer dans le navigateur. L'utilisateur pourra sélectionner des éléments déplaçables à la souris et les déplacer vers un élément où on peut déposer en relâchant le bouton de la souris. Une représentation translucide de l'élément déplacé suit le pointeur lors de l'opération.

- -

Pour les sites web et les extensions, on peut personnaliser les éléments qui peuvent être déplacés, la façon dont ceux-ci sont signalés et les éléments qui peuvent servir de destination.

- -

L'aperçu de cette API inclut une description des interfaces, les étapes à suivre pour prendre en charge ces fonctionnalités dans une application et un aperçu de l'interopérabilité de ces interfaces.

- -

Évènements de déplacement

- -

L'API HTML Drag and Drop utilise le modèle d'évènements du DOM ({{domxref("Event")}}) ainsi que les éléments de déplacements ({{domxref("DragEvent")}}) hérités des évènements liés à la souris ({{domxref("MouseEvent")}}). Une opération de déplacement commence généralement lorsqu'un utilisateur sélectionne un élément déplaçable puis qu'il le déplace sur un élément de destination avant de relâcher l'élément déplacé.

- -

Lors des opérations de déplacement, plusieurs évènements sont déclenchés (dont certains qui sont déclenchés à plusieurs reprises comme {{event("drag")}} et {{event("dragover")}}).

- -

Chaque type d'évènement de déplacement possède un gestionnaire d'évènement global (une méthode on...) :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ÉvènementGestionnaire d'évènement globalDéclenchement
{{event('drag')}}{{domxref('GlobalEventHandlers.ondrag','ondrag')}}…un objet déplaçable (que ce soit un élément ou une sélection de texte) est déplacée.
{{event('dragend')}}{{domxref('GlobalEventHandlers.ondragend','ondragend')}}…une opération de déplacement se termine (en relâchant le bouton de la souris ou en utilisant la touche Echap, voir Terminer un déplacement)
{{event('dragenter')}}{{domxref('GlobalEventHandlers.ondragenter','ondragenter')}}…un élément en cours de déplacement arrive sur une zone de dépôt valide (voir indiquer une cible de destination).
{{event('dragexit')}}{{domxref('GlobalEventHandlers.ondragexit','ondragexit')}}…un élément n'est plus la sélection immédiate du déplacement.
{{event('dragleave')}}{{domxref('GlobalEventHandlers.ondragleave','ondragleave')}}…un élément en cours de déplacement quitte une zone de dépôt valide.
{{event('dragover')}}{{domxref('GlobalEventHandlers.ondragover','ondragover')}}…un élément en cours de déplacement est en cours de survol d'une zone de dépôt valide (cet évènement est déclenché toutes les quelques centaines de millisecondes).
{{event('dragstart')}}{{domxref('GlobalEventHandlers.ondragstart','ondragstart')}}…l'utilisateur commence à déplacer un élément (voir démarrer une opération de glissement).
{{event('drop')}}{{domxref('GlobalEventHandlers.ondrop','ondrop')}}…un élément est déposé sur une cible valide (voir déposer un élément).
- -

Note : Les évènements dragstart et dragend ne sont pas déclenchés lors qu'on glisse-dépose un fichier de l'appareil dans le navigateur.

- -

Interfaces

- -

Les interfaces fournies par cette API sont

- - - -

L'interface {{domxref("DragEvent")}} possède un constructeur et une propriété {{domxref("DragEvent.dataTransfer","dataTransfer")}} qui est un objet {{domxref("DataTransfer")}}.

- -

Les objets {{domxref("DataTransfer")}} incluent l'état du glisser-déposer, le type de déplacement (copy ou move), les données déplacées (un ou plusieurs objets) et le type MIME de chaque objet déplacé. Les objets {{domxref("DataTransfer")}} possèdent également des méthodes permettant d'ajouter ou de retirer des objets aux données déplacées.

- -

Les interfaces {{domxref("DragEvent")}} et {{domxref("DataTransfer")}} sont standard et suffisent à apporter des fonctionnalités de glisser/déposer. Toutefois, Firefox prend en charge quelques extensions spécifiques à Gecko (cf. ci-après) pour l'objet {{domxref("DataTransfer")}} (bien entendu, ces extensions ne fonctionneront que dans Firefox et pas dans les autres navigateurs).

- -

Chaque objet {{domxref("DataTransfer")}} possède une propriété  {{domxref("DataTransfer.items","items")}} qui est une liste ({{domxref("DataTransferItemList","list")}}) d'objets {{domxref("DataTransferItem")}}. Un objet {{domxref("DataTransferItem")}} représente un seul objet déplacé, avec une propriété {{domxref("DataTransferItem.kind","kind")}} qui indique s'il s'agit d'un texte (string) ou d'un fichier (file) et une propriété {{domxref("DataTransferItem.type","type")}} qui correspond au type MIME de la donnée déplacée. L'objet {{domxref("DataTransferItem")}} possède également des méthodes pour consulter les données de l'objet déplacé.

- -

L'objet {{domxref("DataTransferItemList")}} est une liste d'objets {{domxref("DataTransferItem")}}. La liste possède des méthodes pour ajouter un objet en déplacement à la liste, pour retirer un objet de la liste ou pour vider la liste de tout ses objets.

- -

La différence principale entre {{domxref("DataTransfer")}} et {{domxref("DataTransferItem")}} est l'utilisation de la méthode synchrone {{domxref("DataTransfer.getData","getData()")}} pour la première et de la méthode asynchrone {{domxref("DataTransferItem.getAsString","getAsString()")}} pour la deuxième.

- -

Note : {{domxref("DragEvent")}} et {{domxref("DataTransfer")}} sont largement prises en charge par les navigateurs de bureau tandis que {{domxref("DataTransferItem")}} et {{domxref("DataTransferItemList")}} ont une compatibilité plus restreinte. Voir la section ci-après sur l'interopérabilité.

- -

Interfaces spécifiques à Gecko

- -

Mozilla / Firefox prend en charge certaines fonctionnalités qui ne font pas partie du modèle standard. Ce sont des fonctions utilitaires pour aider au déplacement de plusieurs objets ou de données qui ne sont pas du texte (des fichiers par exemple). Pour plus d'informations, voir Glisser-déposer plusieurs objets. Voir aussi la page de référence de {{domxref("DataTransfer")}} pour la liste de l'ensemble des propriétés spécifique à Gecko et des méthodes spécifiques à Gecko.

- -

Bases

- -

Dans cette section, nous allons voir les premières étapes nécessaires aux fonctionnalités de glisser-déposer dans une application.

- -

Identifier ce qui peut être déplacé

- -

Pour qu'un élément puisse être déplacé, il faut lui ajouter l'attribut {{htmlattrxref("draggable")}} ainsi que le gestionnaire d'évènement global {{domxref("GlobalEventHandlers.ondragstart","ondragstart")}} :

- -
<script>
-function dragstart_handler(ev) {
- // On ajoute l'identifiant de l'élément cible à l'objet de transfert
- ev.dataTransfer.setData("text/plain", ev.target.innerText);
-}
-</script>
-
-<p id="p1" draggable="true" ondragstart="dragstart_handler(event)">Cet élément est déplaçable.</p>
-
- -

Voir la page de référence sur l'attribut draggable et le guide sur les opérations de déplacement pour plus d'informations.

- -

Définir les données déplacées

- -

Une application peut inclure plusieurs objets dans une opération de glisser/déposer. Chaque objet est une chaîne de caractères ({{domxref("DOMString")}}) ayant un type MIME particulier (indiqué par son attribut type) tel que text/html.

- -

Chaque {{domxref("DragEvent")}} possède une propriété  {{domxref("DragEvent.dataTransfer","dataTransfer")}} contenant les données transportées. Cette propriété (un objet {{domxref("DataTransfer")}}) possède des méthodes pour gérer les données transportées. La méthode {{domxref("DataTransfer.setData","setData()")}} permet d'ajouter un objet aux données transportées :

- -
function dragstart_handler(ev) {
-  // On ajoute différents types de données transportées
-  ev.dataTransfer.setData("text/plain", ev.target.innerText);
-  ev.dataTransfer.setData("text/html", ev.target.outerHTML);
-  ev.dataTransfer.setData("text/uri-list", ev.target.ownerDocument.location.href);
-}
-
- -

Pour connaître la liste des types de donnée communément utilisées lors d'un glisser/déposer (texte, HTML, liens, fichiers, etc.), voir les types recommandés. Pour plus d'informations sur les informations transportées, voir Drag Data.

- -

Définir l'image pour le déplacement

- -

Par défaut, le navigateur fournit une image qui apparaît à côté du pointeur lors de l'opération de déplacement. Toutefois, une application peut définir une image personnalisée grâce à la méthode {{domxref("DataTransfer.setDragImage","setDragImage()")}} :

- -
function dragstart_handler(ev) {
-  // On crée une image qu'on utilise pour le déplacement
-  // Note : on changera "example.gif" vers une vraie image
-  // (sinon l'image par défaut sera utilisée)
-  var img = new Image();
-  img.src = 'example.gif';
-  ev.dataTransfer.setDragImage(img, 10, 10);
-}
-
- -

Pour en savoir plus, voir Définir l'image de feedback pour le glisser-déposer.

- -

Définir l'effet de déplacement

- -

La propriété {{domxref("DataTransfer.dropEffect","dropEffect")}} est utilisée pour fournir un retour à l'utilisateur qui effectue l'opération de glisser/déposer. Généralement, cela se traduit par la modification du curseur affiché par le navigateur lors du déplacement.

- -

Il est possible de définir trois effets :

- - - -

Lors de l'opération de déplacement, les effets peuvent être modifiés afin d'indiquer que certains effets sont autorisés à certains emplacements.

- -

Voici un exemple illustrant l'utilisation de cette propriété.

- -
function dragstart_handler(ev) {
-  ev.dataTransfer.dropEffect = "copy";
-}
-
- -

See Drag Effects for more details.

- -

Définir la zone où déposer l'élément déplacé

- -

Par défaut, le navigateur empêche de déposer quoi que ce soit sur la plupart des éléments HTML. Pour modifier ce comportement, il faut qu'un élément devienne une zone cible ou qu'il soit identifié comme "droppable". L'élément doit avoir les deux gestionnaires d'évènements {{domxref("GlobalEventHandlers.ondragover","ondragover")}} et {{domxref("GlobalEventHandlers.ondrop","ondrop")}} comme attributs. Dans l'exemple suivant, on montre comment utiliser ces attributs et on fournit des gestionnaires d'évènements simples associés :

- -
<script>
-function dragover_handler(ev) {
- ev.preventDefault();
- ev.dataTransfer.dropEffect = "move";
-}
-function drop_handler(ev) {
- ev.preventDefault();
- // On récupère l'identifiant de la cible et on ajoute l'élément déplacé au DOM de la cible
- var data = ev.dataTransfer.getData("text/plain");
- ev.target.appendChild(document.getElementById(data));
-}
-</script>
-
-<p id="target" ondrop="drop_handler(event)" ondragover="dragover_handler(event)">Zone pour déposer</p>
-
- -

On voit ici que chaque gestionnaire invoque {{domxref("Event.preventDefault","preventDefault()")}} afin d'éviter toute gestion d'évènement ultérieure (comme les évènements tactiles ou les évènements de pointeur).

- -

Pour plus d'information, voir Indiquer une cible pour un glisser-déposer.

- -

Gérer le dépôt de l'objet

- -

Le gestionnaire de l'évènement {{event("drop")}} permet de gérer les données déposées avec la logique de l'application. Généralement, une application utilisera {{domxref("DataTransfer.getData","getData()")}} afin de récupérer les données déplacées et les traitera. L'application peut choisir d'avoir un comportement différent selon la valeur de {{domxref("DataTransfer.dropEffect","dropEffect")}} et/ou celles des autres propriétés.

- -

Dans l'exemple suivant, on montre un gestionnaire pour le dépot de l'objet : on récupère l'identifiant (id) de l'élément déplacé puis on utilise celui-ci afin de le déplacer depuis la source vers la cible :

- -
<script>
-function dragstart_handler(ev) {
- // On ajoute l'identifiant de l'élément cible à l'objet de transfert
- ev.dataTransfer.setData("application/my-app", ev.target.id);
- ev.dataTransfer.dropEffect = "move";
-}
-function dragover_handler(ev) {
- ev.preventDefault();
- ev.dataTransfer.dropEffect = "move"
-}
-function drop_handler(ev) {
- ev.preventDefault();
- // On obtient l'identifiant de la cible et on ajoute l'élément déplacé
- // au DOM de la cible
- var data = ev.dataTransfer.getData("application/my-app");
- ev.target.appendChild(document.getElementById(data));
-}
-</script>
-
-<p id="p1" draggable="true" ondragstart="dragstart_handler(event)">Cet élément peut être déplacé.</p>
-<div id="target" ondrop="drop_handler(event)" ondragover="dragover_handler(event)">Zone pour le dépôt</div>
-
- -

Pour plus d'information, voir Gérer le dépôt lors d'une opération de glisser-déposer.

- -

Terminer l'opération de glisser/déposer

- -

À la fin de l'opération, c'est l'évènement {{event("dragend")}} qui est déclenché sur l'élément source (celui qui a été "saisi" au début). Cet évènement est déclenché lorsque l'opération est terminée ou qu'elle a été annulée. Le gestionnaire d'évènement pour {{event("dragend")}} peut vérifier la valeur de la propriété {{domxref("DataTransfer.dropEffect","dropEffect")}} afin de déterminer si l'opération a réussi ou non.

- -

Pour plus d'informations sur la gestion de la fin d'une opération de glisser-déposer, voir Terminer un glisser-déposer.

- -

Interopérabilité

- -

Comme on peut le voir dans le tableau de compatibilité pour l'interface DataTransferItem, la prise en charge du drag-and-drop est assez répandue parmi les navigateurs de bureau à l'exception des interfaces {{domxref("DataTransferItem")}} et {{domxref("DataTransferItemList")}}. Ce tableau montre également que la prise en charge sur mobile est assez faible.

- -

Exemples et démos

- - - -

Voir aussi

- - diff --git "a/files/fr/web/api/api_html_drag_and_drop/op\303\251rations_de_glissement/index.html" "b/files/fr/web/api/api_html_drag_and_drop/op\303\251rations_de_glissement/index.html" deleted file mode 100644 index 0ddaad6583..0000000000 --- "a/files/fr/web/api/api_html_drag_and_drop/op\303\251rations_de_glissement/index.html" +++ /dev/null @@ -1,294 +0,0 @@ ---- -title: Opérations de glissement -slug: Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement -translation_of: Web/API/HTML_Drag_and_Drop_API/Drag_operations ---- -

Ce qui suit décrit les étapes qui se déroulent lors d'un Glisser Déposer.

- -

Les opérations de glisser décrits dans ce document utilisent l'interface {{domxref("DataTransfer")}}. Ce document n'utilise pas l'interface {{domxref("DataTransferItem")}} ni l'interface {{domxref("DataTransferItemList")}}.

- -

L'attribut draggable

- -

Dans une page Web, certains cas nécessitent l'usage du Glisser Déposer. Il peut servir pour des sélections de texte, d'images ou de liens. Lorsqu'une image ou un lien sont glissés, l'URL de l'image ou du lien est défini comme données du glissement, et le Glisser commence. Pour d'autres éléments, il peut s'agir d'une sélection effectuée qui servira au glissement. Pour voir cet effet, sélectionnez une zone dans une page Web, puis cliquez dedans en maintenant le bouton de la souris et glissez la sélection. Un rendu translucide de la sélection apparaitra en suivant le pointeur de la souris. Il s'agit toutefois du comportement par défaut du glissement si aucun scrutateur n'a été défini pour traiter les données.

- -

En HTML, excepté le comportement par défaut des images, des liens et des sélections, aucun autre élément ne peut être glissé. Tous les éléments XUL peuvent être glissés.

- -

Pour rendre un autre élément HTML glissable, deux choses doivent être faites :

- - - -

Voici un exemple qui permet à une section de contenu d'être glissée :

- -
<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'Ce texte peut être glissé')">
-  Ce texte <strong>peut</strong> être glissé.
-</div>
-
- -

L'attribut {{htmlattrxref("draggable")}} est défini à true, ce qui rend l'élément glissant. Si cet attribut est omis ou défini à false, l'élément ne serait pas glissant et le texte serait alors simplement sélectionné. Cet attribut peut être placé sur n'importe quel élément, y compris des images et des liens. Toutefois, pour les deux derniers, la valeur par défaut est true, donc vous n'utiliserez l'attribut {{htmlattrxref("draggable")}} que pour le définir à false pour interdire le glissement de ces éléments.

- -

Notez que lorsqu'un élément est rendu glissable, le texte ou les autres éléments qu'il contient ne peuvent plus être sélectionné de manière classique en cliquant et déplaçant la souris. Au lieu de cela, l'utilisateur doit maintenir la touche Alt appuyée pour sélectionner le texte avec la souris, ou bien utilisez le clavier.

- -

Pour des éléments XUL, il n'est pas nécessaire d'utiliser l'attribut {{htmlattrxref("draggable")}}, car tous les éléments XUL sont glissables.

- -
<button label="Glisse moi" ondragstart="event.dataTransfer.setData('text/plain', 'Bouton à glisser');">
-
- -

 

- -

Démarrer une opération de glissement

- -

Dans cet exemple, un scrutateur est ajouté à l'événement dragstart en utilisant l'attribut ondragstart.

- -
<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'Ce texte peut être glissé')">
-  Ce texte <strong>peut</strong> être glissé.
-</div>
-
- -

Lorsqu'un utilisateur commence un glissement, l'événement dragstart est déclenché. Dans cet exemple, le scrutateur dragstart a été ajouté à l'élément à déplacer lui-même. Vous pouvez toutefois mettre le scrutateur sur un ancètre plus élevé car l'événement drag diffuse comme le font les autres événements. À l'intérieur de l'événement dragstart, vous devez spécifier la donnée de glissement, l'image filligrane et les effets du glissement tels que décrits ci-dessous. Cependant, seule la donnée de glissement est nécessaire ; l'image et les effets du glissement par défaut sont suffisants pour la majorité des cas.

- -

Donnée de glissement

- -

Tous les événements de glissement ont une propriété appelée dataTransfer utilisée pour contenir la donnée de glissement.

- -

Lorsqu'un glissement a lieu, une donnée doit être associée au glissement pour identifier ce qui est en train de glisser. Par exemple, lors du glissement d'un texte sélectionné dans un champs de texte, la donnée associée au glissement est le texte lui-même. De même, lors du glissement d'un lien, la donnée associée est l'URL du lien.

- -

La donnée de glissement contient deux informations : son type ou format et sa valeur. Le format est une chaîne de caractère (telle que text/plain pour un texte), et la valeur est un texte. Lorsqu'un glissement démarre, vous devez lui ajouter en fournissant un type et la donnée. Dans les scrutateurs des événements dragenter et dragover au cours d'un glissement, vous pouvez vérifier les types de données et indiquer si un dépôt est permis ou non. Par exemple, une cible de dépôt qui accepte que des liens testera les types lien text/uri-list. Pendant un évément de dépôt, un scrutateur récupèrera la donnée glissée et l'insèrera dans la zone de dépôt.

- -

Les types MIME habituels sont text/plain ou image/jpeg, mais vous pouvez créer vos propres types. La liste des types les plus utilisés est disponible sur cette page.

- -

Un glissement peut fournir une donnée dans différents types. Ceci permet à une donnée d'être disponible dans des types spécifiques, souvent personnalisés, toujours en fournissant un format pour les cibles ne supportant pas ces types spécifiques. Habituellement, il s'agit toujours d'une version textuelle de type text/plain. La donnée n'en sera qu'une représentation sous la forme d'un texte.

- -

Pour définir une donnée dans un dataTransfer, utilisez la méthode setData. Elle prend deux arguments qui sont le type de la donnée et sa valeur. Par exemple :

- -
event.dataTransfer.setData("text/plain", "Texte à glisser");
-
- -

Dans ce cas, la valeur de la donnée est "Texte à glisser" et son format est text/plain.

- -

Vous pouvez fournir une donnée dans de multiples formats. Il suffit d'appeler la méthode setData plusieurs fois avec chacun des formats. Vous devez l'appeler dans l'ordre du format le plus spécifique au moins spécifique.

- -
var dt = event.dataTransfer;
-dt.setData("application/x-bookmark", bookmarkString);
-dt.setData("text/uri-list", "http://www.mozilla.org");
-dt.setData("text/plain", "http://www.mozilla.org");
-
- -

Ici, une donnée est ajoutée avec trois types différents. Le premier type 'application/x-bookmark' est un type personnalisé. Toutes les applications ne vont pas supporter ce type, mais vous pouvez l'utiliser pour le glissement entre des zones d'une même application ou d'un même site. En fournissant la donnée avec d'autres types, vous la rendez disponible à moindre échelle pour d'autres applications. Le type 'application/x-bookmark' fournira ainsi plus de détail à l'application qu'avec les autres types qui ne seraient que de simples liens ou textes.

- -

Notez que cet exemple, text/uri-list et text/plain contiennent la même donnée. C'est souvent le cas, mais pas forcément nécessaire.

- -

Si vous essayez d'ajouter une donnée deux fois avec le même format, alors la nouvelle donnée remplacera l'ancienne, mais à la même position que l'ancienne dans la liste.

- -

Vous pouvez effacer la donnée en utilisant la méthode clearData, avec un seul argument qui est le type de la donnée à effacer.

- -
event.dataTransfer.clearData("text/uri-list");
-
- -

L'argument de type de la méthode clearData est optionnel. S'il n'est pas précisé, la donnée associée à tous les types est effacée. Et si aucune donnée à glisser n'est ajoutée, alors l'opération de glissement ne s'effectue pas.

- -

Définir l'image filigrane d'un glissement

- -

Lorsqu'un glissement a lieu, une image translucide est générée à partir de l'origine du glissement (l'élément d'origine ayant déclenché l'événement), et cette image suit le déplacement de la souris. Elle est créée automatiquement donc vous n'avez pas à le faire vous même. Toutefois, vous pouvez personnaliser cette image filigrane grâce à setDragImage.

- -
event.dataTransfer.setDragImage(image, xOffset, yOffset);
-
- -

Trois arguments sont nécessaires. Le premier est la référence à une image. Cette référence pointera en gérénal vers un élément image, mais elle peut pointer aussi vers un canvas ou vers tous autres éléments. L'image filigrane sera simplement générée telle qu'elle ressemble à l'écran, et dessinée à sa taille d'origine. Il est également possible d'utiliser des images et des canvas qui ne sont pas dans un document, comme le montre cet exemple :

- -
function dragWithCustomImage(event)
-{
-  var canvas = document.createElement("canvas");
-  canvas.width = canvas.height = 50;
-
-  var ctx = canvas.getContext("2d");
-  ctx.lineWidth = 4;
-  ctx.moveTo(0, 0);
-  ctx.lineTo(50, 50);
-  ctx.moveTo(0, 50);
-  ctx.lineTo(50, 0);
-  ctx.stroke();
-
-  var dt = event.dataTransfer;
-  dt.setData('text/plain', 'Data to Drag');
-  dt.setDragImage(canvas, 25, 25);
-}
-
- -

Cette technique est utile pour dessiner des images filigranes personnalisées en utilisant l'élément canvas.

- -

Les deuxième et troisième arguments de la méthode setDragImage sont les décalages de l'image par rapport au pointeur de la souris. Dans cet exemple, comme le canvas fait 50 pixels de large et 50 pixels de haut, nous utilisons son centre (soit 25 et 25) pour que l'image soit centrée sur le pointeur de la souris.

- -

Effets du glissement

- -

Lors d'un glisser/déposer, plusieur opérations se déroulent. L'opération copy indique que la donnée glissée sera copiée de son emplacement d'origine au lieu de dépot. L'opération move indique que la donnée glissée sera déplacée, et l'opération link indique une forme de relation ou de connexion entre l'origine et le lieu de dépot.

- -

Vous pouvez spécifier laquelle de ces trois opérations sera autorisée au niveau de l'origine du glissement, en définissant la propriété effectAllowed dans un scrutateur d'événement dragstart.

- -
event.dataTransfer.effectAllowed = "copy";
-
- -

Dans cet exemple, seule une copie n'est autorisée. Vous pouvez combiner les valeurs de plusieurs façons :

- -
-
none
-
Aucune opération permise
-
copy
-
Copie uniquement
-
move
-
Déplacement uniquement
-
link
-
Lien uniquement
-
copyMove
-
Copie ou déplacement uniquement
-
copyLink
-
Copie ou lien uniquement
-
linkMove
-
Lien ou déplacement uniquement
-
all
-
Copie, déplacement ou lien
-
- -

Notez que ces valeurs doivent être écrites exactement comme cela. Si vous ne modifiez pas la propriété effectAllowed, alors tous les opérations seront permises comme pour la valeur 'all'. L'usage de cette propriété intervient seulement si vous souhaitez exclure des types spécifiques.

- -

Pendant une opération de glissement, un scrutateur pour les événements dragenter ou dragover peut tester la propriété effectAllowed afin de voir quelles opérations sont autorisées. La propriété associée dropEffect doit être définie dans un de ces événements pour spécifier ce que chaque opération aura à faire. Les valeurs valides pour dropEffect sont none, copy, move ou link. Il n'y a pas de combinaison pour cette propriété.

- -

Pour les événements dragenter et dragover, la propriété dropEffect est initialisée avec l'effet attendu par l'utilisateur. L'utilisateur peut modifier l'effet désiré en appuyant sur une touche de modification. Bien que les touches varient selon la plateforme, habituellement, il s'agit d'une combinaison des touches Maj et Control qui permettent de copier, déplacer et créer un raccourci. Le pointeur de la souris change de forme pour montrer l'opération souhaitée, par exemple un signe + à côté de la souris pour une copie.

- -

Vous pouvez modifier les propriétés effectAllowed et dropEffect pendant les événements dragenter ou dragover, si par exemple une cible ne supporte qu'un seul type d'opération. La modification de la propriété effectAllowed vous permet de spécifier les opérations autorisées sur une cible donnée. Par exemple, mettre une propriété copyMove permet des opération de copie ou de déplacement, mais pas de créer un lien raccourci.

- -

Vous pouvez modifier la propriété dropEffect en remplaçant l'effet de l'utilisateur, et forcer à obtenir une opération spécifique. Notez que cet effet doit être un de ceux listé dans la propriété effectAllowed, sinon une valeur alternative sera attribuée.

- -
event.dataTransfer.effectAllowed = "copyMove";
-event.dataTransfer.dropEffect = "copy";
-
- -

Dans cet exemple, la copie est l'effet proposé qui est inclus dans la liste des effets autorisés.

- -

Vous pouvez utiliser la valeur none pour interdir tout dépôt à cet emplacement.

- -

Spécifier les cibles de dépôt

- -

Un scrutateur pour les événements dragenter et dragover est utilisé pour indiquer des cibles de dépôt valides, c'est-à-dire là où les items pourront être déposés. La plupart des zones d'une page Web ne sont pas des endroits valides pour déposer des données. Ainsi, le comportement par défaut pour ces événements ne permet pas un dépôt.

- -

Si vous voulez autoriser un dépôt, vous devez empêcher le comportement par défaut en annulant l'événement. Il suffit soit de retourner false à partir d'un scrutateur d'événement, ou par l'appel de la méthode événementielle event.preventDefault. Cette dernière solution est plus faisable avec une fonction définie dans un script séparé.

- -
<div ondragover="return false">
-<div ondragover="event.preventDefault()">
-
- -

L'appel de la méthode event.preventDefault pendant les événements dragenter et dragover indiquera qu'un dépôt est permis à cet endroit. Toutefois, il est fréquent d'appeler la méthode event.preventDefault seulement dans certaines situations, par exemple si un lien est en train d'être glissé. Pour cela, appelez une fonction qui testera une condition et annulera l'événement seulement si cette condition est rencontrée. Dans le cas contraire, il suffit de ne pas annuler l'événement et aucun dépôt ne se réalisera si l'utilisateur lache le bouton de la souris.

- -

Il est plus fréquent d'accepter ou non un dépôt en fonction du type de la donnée glissée. Par exemple, permettre les images ou les liens, ou bien les deux. Pour cela, testez les types de l'objet dataTransfer. Les types sont sous la forme d'une liste de chaînes de caractères ajoutées au début du glissement, du plus signifiant au moins signifiant.

- -
function doDragOver(event)
-{
-  var isLink = event.dataTransfer.types.contains("text/uri-list");
-  if (isLink)
-    event.preventDefault();
-}
-
- -

Dans cet exemple, la méthode contains est utilisée pour vérifier si le type text/uri-list est présent dans la liste des types. S'il l'est, l'événement est annulé, ce qui autorise un dépôt. Si la donnée ne contient pas un lien, l'événement ne sera pas annulé et le dépôt ne sera pas autorisé à cet endroit.

- -

Vous pouvez également définir une propriété effectAllowed ou dropEffect ou les deux à la fois si vous souhaitez être plus précis sur le type d'opération autorisé. Naturellement, le changement de propriété n'aura aucun effet si vous n'avez pas annulé l'événement.

- -

Retour d'information du dépôt

- -

Il y a de nombreuses manières d'indiquer à l'utilisateur que le dépot est autorisé dans une certaine zone. Le pointeur de la souris va être mis à jour en fonction de la valeur de la propriété dropEffect. L'apparence exacte dépend de la plateforme de l'utilisateur, généralement il s'agit d'un icone représentant un signe plus qui apparaît pour une copie par exemple, et un 'impossible de déposer ici' peut apparaître quand le dépôt n'est pas autorisé. Cette information contextuelle est suffisante dans la plupart des cas.

- -

De plus, vous pouvez aussi mettre à jour l'interface utilisateur en surlignant au besoin. Pour un simple surlignage, vous pouvez utiliser la pseudo-classe -moz-drag-oversur la cible du dépôt.

- -
.droparea:-moz-drag-over {
-  border: 1px solid black;
-}
-
- -

Dans cet example, l'élement comportant la classe droparea va recevoir un bord noir de un pixel tant que la cible sera valide, ce qui est le cas, si la méthode event.preventDefault est appelé durant l'évenement dragenter. Il est à noter que vous devez annuler l'évenement dragenter de cette pseudo-classe tant que l'état n'est pas verifié par l'évenement dragover.

- -

For more complex visual effects, you can also perform other operations during the dragenter event, for example, by inserting an element at the location where the drop will occur. For example, this might be an insertion marker or an element that represents the dragged element in its new location. To do this, you could create an image or separator element for example, and simply insert it into the document during the dragenter event.

- -

The dragover event will fire at the element the mouse is pointing at. Naturally, you may need to move the insertion marker around a dragover event as well. You can use the event's clientX and clientY properties as with other mouse events to determine the location of the mouse pointer.

- -

Finally, the dragleave event will fire at an element when the drag leaves the element. This is the time when you should remove any insertion markers or highlighting. You do not need to cancel this event. Any highlighting or other visual effects specified using the -moz-drag-over pseudoclass will be removed automatically. The dragleave event will always fire, even if the drag is cancelled, so you can always ensure that any insertion point cleanup can be done during this event.

- -

Performing a Drop

- -

When the user releases the mouse, the drag and drop operation ends. If the mouse was released over an element that is a valid drop target, that is, one that cancelled the last dragenter or dragover event, then the drop will be successful, and a drop event will fire at the target. Otherwise, the drag operation is cancelled and no drop event is fired.

- -

During the drop event, you should retrieve that data that was dropped from the event and insert it at the drop location. You can use the dropEffect property to determine which drag operation was desired.

- -

As with all drag related events, the event's dataTransfer property will hold the data that is being dragged. The getData method may be used to retrieve the data again.

- -
function onDrop(event)
-{
-  var data = event.dataTransfer.getData("text/plain");
-  event.target.textContent = data;
-  event.preventDefault();
-}
-
- -

The getData method takes one argument, the type of data to retrieve. It will return the string value that was set when the setData was called at the beginning of the drag operation. An empty string will be returned if data of that type does not exist. Naturally though, you would likely know that the right type of data was available, as it was previously checked during a dragover event.

- -

In the example here, once we have retrieved the data, we insert the string as the textual content of the target. This has the effect of inserting the dragged text where it was dropped, assuming that the drop target is an area of text such as a p or div element.

- -

In a web page, you should call the preventDefault method of the event if you have accepted the drop so that the default browser handling does not handle the droppped data as well. For example, when a link is dragged to a web page, Firefox will open the link. By cancelling the event, this behaviour will be prevented.

- -

You can retrieve other types of data as well. If the data is a link, it should have the type text/uri-list. You could then insert a link into the content.

- -
function doDrop(event)
-{
-  var links = event.dataTransfer.getData("text/uri-list").split("\n");
-  for each (var link in links) {
-    if (link.indexOf("#") == 0)
-      continue;
-
-    var newlink = document.createElement("a");
-    newlink.href = link;
-    newlink.textContent = link;
-    event.target.appendChild(newlink);
-  }
-  event.preventDefault();
-}
-
- -

This example inserts a link from the dragged data. As you might be able to guess from the name, the text/uri-list type actually may contain a list of URLs, each on a separate line. In this code, we use the split to split the string into lines, then iterate over the list of lines, inserting each as a link into the document. Note also that we skip links starting with a number sign (#) as these are comments.

- -

For simple cases, you can use the special type URL to just retrieve the first valid URL in the list. For example:

- -
var link = event.dataTransfer.getData("URL");
-
- -

This eliminates the need to check for comments or iterate through lines yourself, however it is limited to only the first URL in the list.

- -

The URL type is a special type used only as a shorthand, and it does not appear within the list of types specified in the types property.

- -

Sometimes you may support a number of different formats, and you want to retrieve the data that is most specific that is supported. In this example, three formats are support by a drop target.

- -

The following example returns the data associated with the best supported format:

- -
function doDrop(event)
-{
-  var types = event.dataTransfer.types;
-  var supportedTypes = ["application/x-moz-file", "text/uri-list", "text/plain"];
-  types = supportedTypes.filter(function (value) types.contains(value));
-  if (types.length)
-    var data = event.dataTransfer.getData(types[0]);
-  event.preventDefault();
-}
-
- -

This method relies on JavaScript functionality available in Firefox 3. However the code could be adjusted to support other platforms.

- -

Finishing a Drag

- -

Once the drag is complete, a dragend is fired at the source of the drag (the same element that received the dragstart event). This event will fire if the drag was successful or if it was cancelled. However, you can use the dropEffect to determine what drop operation occurred.

- -

If the dropEffect property has the value none during a dragend, then the drag was cancelled. Otherwise, the effect specifies which operation was performed. The source can use this information after a move operation to remove the dragged item from the old location. The mozUserCancelled property will be set to true if the user cancelled the drag (by pressing Escape), and false if the drag was cancelled for other reasons such as an invalid drop target, or if was successful.

- -

A drop can occur inside the same window or over another application. The dragend event will always fire regardless. The event's screenX and screenY properties will be set to the screen coordinate where the drop occurred.

- -

After the dragend event has finished propagating, the drag and drop operation is complete.

diff --git a/files/fr/web/api/api_indexeddb/basic_concepts_behind_indexeddb/index.html b/files/fr/web/api/api_indexeddb/basic_concepts_behind_indexeddb/index.html deleted file mode 100644 index cb05bef3fe..0000000000 --- a/files/fr/web/api/api_indexeddb/basic_concepts_behind_indexeddb/index.html +++ /dev/null @@ -1,209 +0,0 @@ ---- -title: Les concepts basiques d'IndexedDB -slug: Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB -tags: - - Avancé - - IndexedDB - - concepts -translation_of: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB ---- -

{{DefaultAPISidebar("IndexedDB")}}

- -

IndexedDB est un moyen pour permettre le stockage de données dans le navigateur d'un utilisateur, de manière persistante. Ses fonctions de recherche avancées permettent de créer des applications qui fonctionnent tant connectées que déconnectées. IndexedDB est utile pour créer des applications qui stockent une grande quantité de données (par exemple : un catalogue de DVDs dans une bibliothèque) et des applications qui n'ont pas forcément besoin d'une connectivité Internet continue (par exemple : des clients de messagerie électronique, des listes de tâches, des bloc-notes).

- -

À propos de ce document

- -

Ce document introduit les concepts et les termes essentiels d'IndexedDB. Vous aurez une vue d'ensemble et vous comprendrez les concepts-clés.

- -

Vous pourrez trouver ici :

- - - -

Vue d'ensemble d'IndexedDB

- -

IndexedDB vous permet de stocker et récupérer des objets qui sont indexés avec une "clé". Tous les changements que vous faites dans la base de données sont forcément transactionnels. Comme la plupart des solutions de stockage du web, IndexedDB respecte la politique de sécurité utilisant l'origne (same-origin policy). Ainsi, vous pouvez accéder aux données stockées d'un domaine, alors que vous ne pouvez pas accéder aux données de domaines différents.

- -

IndexedDB est une API asynchrone qui peut être utilisée dans la plupart des contextes, Web Workers inclus. Elle comportait également une version synchrone prévue pour être utilisée dans des Web Workers. mais cette option a été retirée de la spécification en raison du manque d'intérêt de la communauté Web.

- -

IndexedDB est une alternative à l'API WebSQL Database, qui a été dépréciée par le W3C le 18 novembre 2010. Alors que ces APIs sont toutes deux des solutions de stockage, elles n'offrent pas les mêmes fonctionnalités. WebSQL Database est un système d'accès à une base de données relationnelle alors qu'IndexedDB est un système de table indexée. 

- -

Les grands concepts

- -

Si vous avez l'habitude de travailler avec d'autres types de bases de données, vous pourrez être désorienté par l'utlisation d'IndexedDB. Mais il suffit de garder les concepts importants suivants en tête :

- - - -

Définitions

- -

Cette section définit et explique les termes utilisés dans l'API IndexedDB.

- -

Database (base de données)

- -
-
database (base de données)
-
Un référentiel d'informations, comprenant généralement un ou plusieurs objets de stockage. Chaque base de données doit avoir les éléments suivants : -
    -
  • Name . (nom) Il identifie la base de données dans une origine spécifique et reste constant tout au long de la durée de sa vie. Le nom peut être n'importe quelle valeur de chaîne de caractères (y compris une chaîne vide).
  • -
  • Current version (version actuelle). Lors de la création de la base de données, sa version est le nombre entier 1. Chaque base de données ne peut avoir qu'une seule version à un moment donné .
  • -
-
-
durable
-
Dans Firefox, IndexedDB était durable, ce qui signifie que dans une transaction readwrite (lecture/écriture) {{domxref ("IDBTransaction.on complet")}} était déclenché uniquement lorsque toutes les données étaient garanties, avant d'être écrites sur le disque.
-
À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées pour augmenter les performances (voir {{Bug ("1112702")}}) ; comportement identique à celui des autres navigateurs qui mettent en oeuvre IndexedDB. Dans ce cas, l'événement {{Event ("complete")}} est déclenché après la réception par le système d'exploitation de la commande d'écriture, mais potentiellement avant l'écriture effective de ces données sur le disque. L'événement peut donc être livré plus rapidement qu'avant, mais il existe un petit risque que la transaction entière soit perdue si le système d'exploitation l'écrase ou s'il y a une perte de puissance du système avant l'écriture sur le disque. Étant donné que ces événements catastrophiques sont rares, la plupart des consommateurs ne devraient pas nécessairement s'en préoccuper davantage.
-
- -
-

Note : Dans Firefox, si vous souhaitez être sûr de la durabilité pour une raison ou une autre (par exemple, vous stockez des données critiques qui ne peuvent pas être recalculées plus tard), vous pouvez forcer une transaction d'écriture sur le disque avant la délivrance de l'évènement complete  par la création d'une transaction utilisant le mode expérimental (non standard) readwriteflush  (voir {{domxref("IDBDatabase.transaction")}}).  Ceci est actuellement expérimental et ne peut être utilisé que si la préférence dom.indexedDB.experimental est renseignée avec " true " (vrai) dans about:config.

-
- -
-
-
object store (objet de stockage)
-
-

Le mécanisme avec lequel les données sont stockées dans la base de données. L'objet de stockage maintient constamment ses enregistrements, lesquels sont des paires  "key-value" (clé-valeur). Les enregistrements dans l'objet de stockage sont triés dans l'ordre ascendant des "keys" (clés).

- -

Chaque objet de stockage doit avoir un nom qui est unique dans la base de données. Il peut éventuellement avoir un key generator (générateur de clé) et un key path (chemin de clé). S'il a un "key path", il utilise in-line keys (clés en ligne) ; sinon, il utilise out-of-line keys (clé hors ligne).

- -

Pour la documentation de référence sur les objets de stockage, voir IDBObjectStore ou IDBObjectStoreSync.

-
-
version
-
À la première création de la base de données, sa version est le nombre entier 1. Chaque base de données possède une seule version à un moment donné ; il ne peut pas exister plusieurs versions dans le même temps. La seule façon de changer la version est de l'ouvrir avec une version plus haute. Ceci démarre une transaction VERSION_CHANGE et lance un évènement upgradeneeded. Le seul endroit où le schéma de la base de données peut être mis à jour est à l'intérieur du gestionnaire de cet événement.
-
Note : Cette définition décrit les spécifications les plus récentes, qui ne sont implémentées que dans des navigateurs à jour. Les anciens navigateurs ont implémenté la méthode IDBDatabase.setVersion() maintenant obsolète et supprimée.
-
database connection (connexion de la base de données)
-
Une opération créée en ouvrant une database (base de données). Une base de données peut avoir plusieurs connexions en même temps.
-
transaction
-
-

Un ensemble atomique d'accès aux données et d'opérations de modification des données sur une base de données particulière. C'est la façon dont vous interagissez avec les données dans une base. En fait, toute lecture ou changement dans la base de données doit se produire dans une transaction.

- -

Une connexion à la base de données peut avoir plusieurs transactions actives associées à la fois, pourvu que les transactions d'écriture n'aient pas de chevauchement scopes. La portée (scope) des transactions, qui est définie lors de la création, détermine l'objet avec lequel la transaction peut interagir, et reste constante pour la durée de vie de la transaction. Ainsi, par exemple, si une connexion à la base de données a déjà une transaction d'écriture avec une portée qui couvre simplement l'objet de stockage flyingMonkey , vous pouvez commencer une seconde transaction avec une portée sur les objets de stockage unicornCentaur et unicornPegasus. En ce qui concerne les transactions de lecture, vous pouvez en avoir plusieurs - même avec chevauchements.

- -

Les transactions doivent être de courte durée, pour que le navigateur puisse mettre fin à une transaction trop longue, afin de libérer des ressources de stockage verrouillées par cette dernière. Vous pouvez annuler la transaction, ce qui modifie les changements apportés à la base de données dans la transaction. Et vous n'avez même pas à attendre que la transaction commence ou soit active pour l'annuler.

- -

Les trois modes de transaction sont : " readwrite " (lecture/écriture), " readonly " (lecture seule), et " versionchange " (changement de version). La seule manière de créer et supprimer les objets de stockage et les index est d'utiliser une transaction versionchange . Pour en apprendre plus sur les types de transactions, voir l'article de référence pour IndexedDB.

- -

Parce que tout se passe au sein d'une transaction, c'est un concept très important dans IndexedDB. Pour en savoir plus sur les transactions, en particulier sur la façon dont elles se rapportent aux versions, voir IDBTransaction, qui a également une documentation de référence . Pour la documentation sur l'API synchrone, voir IDBTransactionSync.

-
-
request (requêtes)
-
L'opération par laquelle la lecture et l'écriture sur une base de données est effectuée. Chaque requête représente une opération de lecture ou d'écriture.
-
index
-
-

Un index est un objet de stockage spécialisé pour rechercher des enregistrements dans un autre objet de stockage appelé " referenced object store"  (objet de stockage référencé). L'index est un stockage persistant de key-value (clé-valeur)  dans lequel la partie "value" des enregistrements contient la partie "key" d'un enregistrement de l'objet de stockage référencé. Les enregistrements dans un index sont automatiquement remplis chaque fois que ceux de l'objet référencé sont insérés, mis à jour ou supprimés. Chaque enregistrement d'un index ne peut indiquer qu'un seul enregistrement dans son objet référencé, mais plusieurs index peuvent référencer le même objet. Lorsque l'objet référencé change, tous les index qui s'y réfèrent sont mis à jour automatiquement.

- -

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant la clé.

- -

Pour en apprendre plus sur l'utilisation des index, voir Using IndexedDB. Pour la documentation de référence sur l'index, voir IDBKeyRange.

-
-
- -

Key and value (clé et valeur)

- -
-
key (clé)
-
-

Une valeur de données par laquelle les valeurs stockées sont organisées et récupérées dans l'objet de stockage . Celui-ci peut obtenir la clé de l'une des trois sources : un générateur de clés, un chemin de clé et une valeur explicitement spécifiée. La clé doit être d'un type de données qui a un nombre supérieur au précédent. Chaque enregistrement doit avoir une clé unique dans l'objet de stockage, de sorte que celui-ci ne peut comporter plusieurs enregistrements avec la même clé.

- -

Une clé peut être de l'un des types suivants : string (chaîne de caractères), date, float (flottante), binary blob (blob binaire) et array (tableau). Pour les tableaux, la valeur de la clé peut être comprise entre vide et l'infini. Et vous pouvez inclure un tableau dans un tableau.

- -

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant l'index.

-
-
key generator (générateur de clé)
-
Un mécanisme pour produire de nouvelles clés dans une séquence ordonnée. Si un objet de stockage n'a pas de générateur de clé, l'application doit fournir les clés des enregistrements stockés. Les générateurs ne sont pas partagés entre les objets de stockage. Il s'agit d'un détail concernant les navigateurs, car dans le développement web, vous ne créez pas réellement ou ne gérez pas les accès aux générateurs de clés.
-
in-line key (clé en ligne)
-
Une clé qui est stockée comme partie d'une valeur de stockage. Elle est trouvée en utilisant "key path" (chemin de clé). Une clé en ligne peut être créée par un générateur. Une fois la clé générée, elle peut être stockée dans la valeur utilisant le "key path" ou être utilisée comme clé.
-
out-of-line key (clé hors ligne)
-
Une clé stockée séparément de la valeur stockée.
-
key path (chemin de clé)
-
Définit où le navigateur doit extraire la clé d'une valeur dans l'objet de stockage ou l'index. Un chemin de clé valide peut inclure l'un des éléments suivants : une chaîne vide, un identifiant JavaScript ou plusieurs identifiants JavaScript séparés par des périodes, ou un tableau contenant ces éléments. Il ne peut pas inclure d'espaces.
-
value (valeur)
-
-

Chaque enregistrement a une valeur, qui peut inclure tout ce qui peut être exprimé en JavaScript, y compris : boolean (bouléen), number (nombre), string (chaîne de caractères), date, object (objet), array (tableau), regexp, undefined (indéfini), and null (nul).

- -

Quand un objet ou un tableau est stocké, les propriétés et valeurs dans cet objet ou ce tableau peuvent aussi être toute valeur valide.

- -

Blobs et fichiers peuvent être stockés, voir specification {{ fx_minversion_inline("11") }}.

-
-
- -

Intervalle et portée

- -
-
scope (portée ou étendue)
-
L'ensemble des objets de stockage et index auxquels s'applique une transaction. Les portées des transactions en lecture seule peuvent se chevaucher et s'exécuter en même temps. Par contre, les portées des transactions d'écriture ne peuvent pas se chevaucher. Vous pouvez toujours démarrer plusieurs transactions avec la même portée en même temps, mais elles entrent dans une file d'attente et s'exécutent l'une après l'autre.
-
cursor (curseur)
-
Un mécanisme pour l'itération de plusieurs enregistrements avec une "key range" (intervalle de clés). Le curseur possède une source qui indique quel index ou objet stocké est itéré. Il a une position dans l'intervalle et se déplace dans une direction qui augmente ou diminue dans l'ordre des clés d'enregistrement. Pour la documentation de référence sur les curseurs, voir IDBCursor ou IDBCursorSync.
-
key range (intervalle de clés)
-
-

Un intervalle continu sur un type de données utilisé pour les clés. Les enregistrements peuvent être récupérés à partir des objets de stockage et des index à l'aide de touches ou d'un intervalle de clés. Vous pouvez limiter ou filtrer l'intervalle en utilisant les limites inférieures et supérieures. Par exemple, vous pouvez itérer sur toutes les valeurs d'une clé entre x et y.

- -

Pour la documentation de référence sur "key range", voir IDBKeyRange.

-
-
- -

Limitations

- -

IndexedDB est conçu pour couvrir la plupart des cas qui nécessitent un stockage côté client. Cependant, il n'est pas adapté pour quelques cas comme les suivants :

- - - -

En outre, sachez que les navigateurs peuvent effacer la base de données, comme dans les conditions suivantes :

- - - -

Les circonstances exactes et les capacités du navigateur changent au fil du temps, mais la philosophie générale des fournisseurs de navigateurs est de faire les efforts nécessaires pour conserver les données lorsque c'est possible.

- -

Étape suivante

- -

Avec ces grands concepts dans nos poches, nous pouvons obtenir des choses plus concrètes. Pour un tutoriel sur l'utilisation de l'API, voir Using IndexedDB.

- -

Voir aussi

- -

Spécification

- - - -

Référence

- - - -

Tutoriels

- - - -

Article connexe

- - diff --git a/files/fr/web/api/api_indexeddb/browser_storage_limits_and_eviction_criteria/index.html b/files/fr/web/api/api_indexeddb/browser_storage_limits_and_eviction_criteria/index.html deleted file mode 100644 index bfa95657cc..0000000000 --- a/files/fr/web/api/api_indexeddb/browser_storage_limits_and_eviction_criteria/index.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Limites de stockage du navigateur et critères d'éviction -slug: Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria -tags: - - Base de données - - IndexedDB - - LRU - - Limites - - Stockage - - eviction -translation_of: Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria ---- -
{{DefaultAPISidebar("IndexedDB")}}
- -
-

Il existe un certain nombre de technologies Web qui stockent des données d'un type ou d'un autre du côté client (c'est-à-dire sur le disque local). Le processus par lequel le navigateur calcule l'espace alloué au stockage de données Web et les données à supprimer quand la limite est atteinte n'est pas simple et diffère d'un navigateur à l'autre. Cet article tente d'expliquer comment tout cela fonctionne.

-
- -
-

Note : Les informations ci-dessous devraient être assez précises pour la plupart des navigateurs modernes, mais les spécificités du navigateur sont évoquées quand elles sont connues. Opera et Chrome devraient se comporter de la même manière dans tous les cas. Mais Opera Mini (encore basé sur presto du côté serveur) ne stocke aucune donnée sur le client.

-
- -

Les différents types de stockage des données

- -

Même dans le même navigateur, en utilisant la même méthode de stockage, il existe différentes classes de stockage de données à comprendre. Cette section traite des différents types que vous pouvez trouver dans différents navigateurs.

- -

Généralement, les deux principaux types de stockage sont les suivants :

- - - -

Par défaut, le stockage temporaire sera utilisé dans la plupart des contextes d'utilisation (par exemple, des applications Web standard) et le persistant pour les applications installées (par exemple, les applications Firefox installées sur le système d'exploitation Firefox OS / Firefox de bureau, les applications Chrome).

- -

Spécificités de Firefox

- -

Dans Firefox, vous pouvez choisir le type de stockage que vous souhaitez utiliser en incluant une option propriétaire — storage — lorsque vous créez une base de données IndexedDB en utilisant {{domxref ("IDBFactory.open ()", "open ()")}} :

- - - -

Dans Firefox, quand le stockage persistant est choisi, l'utilisateur reçoit une fenêtre de dialogue d'interface utilisateur pour l'avertir que ces données persisteront et lui demander s'il en est satisfait.

- -

Les données de stockage temporaire ne provoquent aucune fenêtre de dialogue vers l'utilisateur, mais il y a des {{anch("Limites de stockage")}}.

- -

"Default storage" dans Firefox (stockage par défaut)

- -

C'est le troisième type de stockage à envisager dans Firefox — "Default storage" (stockage par défaut).  C'est une option par défaut, utilisée quand vous ne spécifiez pas le paramètre storage  vu ci-dessus. Les données du stockage par défaut se comportent différemment selon les circonstances : assimilées aux données d'un stockage persistant pour les applications installées de Firefox OS, ou d'un stockage temporaire pour tout autre type d'utilisation.

- -

Où sont stockées les données ?

- -

Chaque type de stockage représente un référentiel distinct, voici la cartographie réelle des répertoires sous le profil Firefox d'un utilisateur (d'autres navigateurs peuvent différer légèrement) :

- - - -
-

Note :  Depuis l'introduction de l' API Storage , le dossier "permanent" peut être considéré comme obsolète, il n'est plus utilisé que pour les bases de données de type persistant IndexedDB. Peu importe le mode, "best-effort" (meilleur effort) ou "persistant", les données sont stockées sous <profile>/storage/default.

-
- -
-

Note: Dans Firefox, vous pouvez trouver votre dossier profil en entrant : support dans la barre d'URL et en appuyant sur le bouton Show in... (Afficher dans ...) (par exemple, "Show in Finder" sur Mac OS X) à côté du titre "Profile Folder" (dossier de profil) .

-
- -
-

Note: Si vous regardez dans votre profil les répertoires de données stockées, vous pouvez voir un quatrième dossier : persistent . À la base, le dossier persistent a été renommé permanent, il y a quelques temps, pour faciliter les mises à niveau / migrations.

-
- -
-

Note: Les utilisateurs ne doivent pas ajouter leurs propres répertoires ou fichiers sous <profile>/storage . Cela entraînerait l'échec de l'initialisation du stockage ; par exemple {{domxref ("IDBFactory.open ()", "open ()")}} déclencherait un événement d'erreur.

-
- -

Limites de stockage

- -

L'espace de stockage maximal du navigateur est dynamique  — il est basé sur la taille de votre disque dur. La limite globale est calculée sur la base de 50% de l'espace disque libre. Dans Firefox, un outil interne du navigateur appelé " Quota Manager " (gestionnaire de quotas) surveille la quantité d'espace disque utilisée par chaque origine et supprime les données si nécessaire.

- -

Donc, si votre disque dur est de 500 Go, le stockage total d'un navigateur est de 250 Go. S'il est dépassé, une procédure appelée "origin eviction" (éviction d'origine) entre en jeu, en supprimant la valeur totale de l'origine jusqu'à ramener le niveau de stockage en-dessous de la limite. La suppression d'une base de données d'origine peut entraîner des problèmes d'incohérence.

- -

Il y a aussi une autre limite appelée group limit — ceci est défini comme 20% de la limite globale. Chaque origine fait partie d'un groupe (groupe d'origines). Il existe un groupe pour chaque domaine eTLD + 1.

- -

Par exemple :

- - - -

Ces groupes, mozilla.org, www.mozilla.org, et joe.blogs.mozilla.org peuvent utiliser globalement un maximum de 20% de la limite globale. firefox.com a un maximum distinct de 20%.

- -

Les deux limites reagissent différemment quand la limite est atteinte :

- - - -
-

Note: Si la limite de groupe est dépassée, ou si l'éviction d'origine ne crée pas assez d'espace libre, le navigateur lance  QuotaExceededError.

-
- -

Politique LRU

- -

Lorsque l'espace disque disponible est rempli, le gestionnaire de quotas commence à effacer les données sur la base de la politique LRU — l'origine la moins utilisée sera d'abord supprimée, puis la suivante, jusqu'à ce que le navigateur ne dépasse plus la limite.

- -

Nous traçons le "dernier temps d'accès" pour chaque origine utilisant le stockage temporaire. Une fois que la limite globale du stockage temporaire est atteinte, nous essayons de trouver toutes les origines actuellement inutilisées (c'est-à-dire, sans onglets ou applications ouverts qui conservent des bases de données ouvertes). Celles-ci sont ensuite triées sur le dernier accès. Les origines les moins récemment utilisées sont ensuite supprimées jusqu'à ce qu'il y ait suffisamment d'espace pour répondre à la demande qui a déclenché cette éviction d'origine.

- -

Quelles technologies utilisent le stockage de données du navigateur ?

- -

Dans Firefox, les technologies suivantes utilisent le stockage de données du navigateur pour stocker des données au besoin. Nous les qualifions de "quota clients" dans ce contexte :

- - - -

Le «dernier temps d'accès» des origines est mis à jour lorsque l'un de ces éléments est activé / désactivé. L'éviction d'origine supprimera les données pour tous ces "quota clients".

- -

Dans Chrome / Opera, l'API " Quota Management" gère les quotas pour AppCache, IndexedDB, WebSQL et File System API.

- -

Voir aussi

- - diff --git a/files/fr/web/api/api_indexeddb/index.html b/files/fr/web/api/api_indexeddb/index.html deleted file mode 100644 index 682043df0e..0000000000 --- a/files/fr/web/api/api_indexeddb/index.html +++ /dev/null @@ -1,322 +0,0 @@ ---- -title: IndexedDB -slug: Web/API/API_IndexedDB -tags: - - API - - Avancé - - Bases de données - - IndexedDB - - Stockage -translation_of: Web/API/IndexedDB_API ---- -

{{DefaultAPISidebar("IndexedDB")}}

- -

IndexedDB est une API de bas niveau qui permet le stockage côté client de quantités importantes de données structurées, incluant des fichiers/blobs. Cette API utilise des index afin de permettre des recherches performantes sur ces données. Alors que Web Storage est utile pour stocker de petites quantités de données, il est moins utile pour stocker de grandes quantités de données structurées. IndexedDB fournit une solution. Cette page est le point d'entrée pour tout ce qui concerne IndexedDB sur MDN - vous y trouverez les liens vers la référence complète de l'API et les guides d'utilisation, le support par les navigateurs, et quelques explications des concepts clés.

- -

{{AvailableInWorkers}}

- -
-

Note: l'API IndexedDB est puissante, mais elle peut sembler trop compliquée dans les cas simples. Si vous préferez une API plus simple, essayez des librairies comme localForage, dexie.js, ZangoDB, PouchDB, idb, idb-keyval, JsStore et lovefield qui offrent de nombreux avantages aux développeurs de IndexedDB.

-
- -

Concepts clés et utilisation

- -

IndexedDB est un système de gestion de base de données transactionnel, similaire à un SGBD relationnel basé sur SQL. Cependant contrairement aux SGBD relationnels, qui utilisent des tables avec des colonnes fixes, IndexedDB est une base de données orientée objet basée sur JavaScript. IndexedDB vous permet de stocker et de récupérer des objets qui sont indexés avec une clef; tout objet supporté par l'algorithme de clônage structuré peut être stocké. Vous devez spécifier le schéma de la base de données, ouvrir une connexion à votre base de données, puis récupérer et mettre à jour des données dans une série de transactions.

- - - -
-

Note: Comme la plupart des solutions de stockage en ligne, IndexedDB suit la politique same-origin policy. Alors même que vous pouvez accèder à des données stockées au sein d'un domaine, vous ne pouvez pas accéder à des données sur plusieurs domaines.

-
- -

Synchrone et asynchrone

- -

Les opérations effectuées par IndexedDB sont réalisées de manière asynchrone, afin de ne pas bloquer l'application. IndexedDB comprend à la fois une API asynchrone et une API synchrone. L'API synchrone était à l'origine uniquement destinée pour un usage avec les Web workers, mais elle a été retirée de la spécification parce qu'il était difficile de savoir si elle était nécessaire. Cependant l'API synchrone pourrait être ré-integrée si il y a une demande suffisante de la part des développeurs web.

- -

Limites de stockage et critères d'éviction

- -

Il y a un certain nombre de technologies web pour stocker différents types de données côté client (par exemple sur votre disque local). IndexedDB est la plus couramment citée. Le processus par lequel le navigateur calcule combien d'espace il doit allouer aux données web, et ce qu'il doit supprimer quand la limite est atteinte, n'est pas simple et varie entre les différents navigateurs. L'article "limites de stockage des navigateurs et critères d'éviction" tente d'expliquer ce fonctionnement, au moins pour le cas de Firefox.

- -

Interfaces

- -

Pour accèder à une base de données, il faut apeller open() sur l'attribut indexedDB d'un objet window. Cette méthode retourne un objet {{domxref("IDBRequest")}}; Les opérations asynchrones communiquent avec l'application appelante en déclenchant des évènements sur les objets {{domxref("IDBRequest")}}.

- -

Se connecter à la base de données

- -
-
{{domxref("IDBEnvironment")}}
-
Fournit un accès aux fonctionnalités d'IndexedDB. Implémenté par les objets {{domxref("window")}} et {{domxref("worker")}}.
-
{{domxref("IDBFactory")}}
-
Fournit un accès à la base de données.C'est l'interface implémentée par l'objet global indexedDB et c'est donc le point d'entrée de l'API.
-
{{domxref("IDBOpenDBRequest")}}
-
Représente une requête d'ouverture de la base de données.
-
{{domxref("IDBDatabase")}}
-
Représente une connexion à la base de données. C'est le seul moyen d'obtenir une transaction sur la base de données.
-
-

Récupérer et modifier les données

-
-
- -
-
{{domxref("IDBTransaction")}}
-
Représente une transaction. Vous créez une transaction sur la base de données, spécifiez la portée (comme à quel magasin d'objets vous souhaitez accèder), et déterminez le type d'accès désiré (lecture seule ou lecture et écriture).
-
{{domxref("IDBRequest")}}
-
Interface générique qui récupère les requêtes à la base de données et fournit un accès aux résultats.
-
{{domxref("IDBObjectStore")}}
-
Représente un magasin d'objets qui permet l'accès à un ensemble de données d'une base de données IndexedDB, recherché par clé primaire.
-
{{domxref("IDBIndex")}}
-
Permet aussi d'accèder à un sous-ensemble de données d'une base IndexedDB mais utilise un index pour récupérer les enregistrements, au lieu d'une clé primaire. C'est parfois plus rapide qu'un usage de {{domxref("IDBObjectStore")}}.
-
{{domxref("IDBCursor")}}
-
Itérateur sur les magasins d'objets et les index.
-
{{domxref("IDBCursorWithValue")}}
-
Itérateur sur les magasins d'objets et les index et retourne la valeur courante du curseur.
-
{{domxref("IDBKeyRange")}}
-
Définit une portée de valeurs qui peut être utilisée pour récupérer des données de la base de données dans une certaine portée.
-
{{domxref("IDBLocaleAwareKeyRange")}} {{Non-standard_inline}}
-
Définit une portée de valeurs qui peut être utilisée pour récupérer des données de la base de données dans une certaine portée, triées en fonction des règles de la localisation spécifiée pour un certain index (voir createIndex()'s optionalParameters).
-
- -

Interfaces d'événements personnalisés

- -

Cette spécification provoque des évènements avec les interfaces personnalisées suivantes:

- -
-
{{domxref("IDBVersionChangeEvent")}}
-
L'interface IDBVersionChangeEvent indique que la version de la base de données à changé, résultat de la fonction de saisie d'un évènement  {{domxref("IDBOpenDBRequest.onupgradeneeded")}}.
-
- -

Interfaces obsolètes

- -

Une précedente version des spécifications a défini ces interfaces, désormais supprimées. Elles sont toujours documentées dans le cas où vous avez besoin de mettre à jour du code déja écrit :

- -
-
{{domxref("IDBVersionChangeRequest")}} {{obsolete_inline}}
-
Représente une requête de changement de version de la base de données. Le moyen pour changer de version de la base de données a désormais changé (avec un appel de {{domxref("IDBFactory.open")}} sans aussi appeler {{domxref("IDBDatabase.setVersion")}}), et l'interface  {{domxref("IDBOpenDBRequest")}} a désormais la fonction de l'ancienne (supprimée) {{domxref("IDBVersionChangeRequest")}}.
-
{{domxref("IDBDatabaseException")}}  {{obsolete_inline}}
-
Représente une exception (erreur) qui peut survenir durant les opérations sur la base de données.
-
{{domxref("IDBTransactionSync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBTransaction")}}.
-
{{domxref("IDBObjectStoreSync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBObjectStore")}}.
-
{{domxref("IDBIndexSync")}} {{obsolete_inline}}
-
Version synchrone de  {{domxref("IDBIndex")}}.
-
{{domxref("IDBFactorySync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBFactory")}}.
-
{{domxref("IDBEnvironmentSync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBEnvironment")}}.
-
{{domxref("IDBDatabaseSync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBDatabase")}}.
-
{{domxref("IDBCursorSync")}} {{obsolete_inline}}
-
Version synchrone de {{domxref("IDBCursor")}}.
-
- -

Exemples

- - - -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('IndexedDB')}}{{Spec2('IndexedDB')}}Définition initiale
{{SpecName("IndexedDB 2")}}{{Spec2("IndexedDB 2")}}
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(23)}}{{property_prefix("webkit")}}
- {{CompatChrome(24)}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoDesktop("10.0")}} {{property_prefix("moz")}}
- {{CompatGeckoDesktop("16.0")}}
1015 -

7.1, partial
- 10

-
Available in workers{{CompatVersionUnknown}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoDesktop("37.0")}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}10
Available in privacy mode[3]{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
IDBLocaleAwareKeyRange{{CompatNo}}{{CompatNo}}{{CompatGeckoDesktop("43.0")}}[2]{{CompatNo}}{{CompatNo}}{{CompatNo}}
Indexed Database 2.0{{CompatChrome(58)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatOpera(45)}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)Firefox OSIE/Edge PhoneOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoMobile("22.0")}}1.0.110{{CompatOpera(22)}}8, partial
- 10
Available in workers{{CompatVersionUnknown}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}} (unprefixed)
- {{CompatChrome(38)}} (prefixes deprecated)
- {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}10
Available in privacy mode[3]{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
IDBLocaleAwareKeyRange{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("43.0")}}[2]2.5[2]{{CompatNo}}{{CompatNo}}{{CompatNo}}
Indexed Database 2.0{{CompatChrome(58)}}{{CompatChrome(58)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatOpera(45)}}{{CompatUnknown}}
-
-
-
- - - -

Voir aussi

- - diff --git a/files/fr/web/api/api_indexeddb/using_indexeddb/index.html b/files/fr/web/api/api_indexeddb/using_indexeddb/index.html deleted file mode 100644 index a8df123888..0000000000 --- a/files/fr/web/api/api_indexeddb/using_indexeddb/index.html +++ /dev/null @@ -1,1337 +0,0 @@ ---- -title: Utiliser IndexedDB -slug: Web/API/API_IndexedDB/Using_IndexedDB -tags: - - Avancé - - Base de données - - Guide - - IndexedDB - - Stockage - - Tutoriel -translation_of: Web/API/IndexedDB_API/Using_IndexedDB ---- -

IndexedDB est un moyen de stocker des données de manière persistante dans un navigateur. Cela vous laisse créer des applications web avec de riches possibilités de requêtes indépendamment de la disponibilité du réseau puisque vos applications peuvent fonctionner en ligne ou hors-ligne. 

- -

À propos de ce document

- -

Ce tutoriel vous guide à travers l'utilisation de l'API asynchrone de IndexedDB. Si vous n'êtes pas familier avec le principe de IndexedDB, vous devriez d'abord lire les concepts basiques d'IndexedDB.

- -

Pour la documentation de référence sur l'API d'IndexedDB, voyez l'article IndexedDB et ses sous-parties, qui détaille les types d'objets utilisés par IndexedDB, ainsi que les méthodes sur l'API asynchrone (l'API synchrone a été retirée de la spécification).

- -

Modèle de base

- -

Le modèle de base qu'IndexedDB utilise est le suivant :

- -
    -
  1. Ouvrir une base de données.
  2. -
  3. Créer un objet de stockage dans la base de données. 
  4. -
  5. Démarrer une transaction, et faire des requêtes pour faire quelques opérations sur des bases de données, comme ajouter, ou récupérer des données.
  6. -
  7. -
    Attendre que l'exécution soit terminée, en écoutant le bon type d'événement DOM.
    -
  8. -
  9. -
    Faire quelque chose avec les résultats (qui peuvent être trouvés dans l'objet de la requête).
    -
  10. -
- -

Maintenant que nous avons ces grands concepts en poche, nous pouvons voir des choses plus concrètes.

- -

Créer et structurer l'objet de stockage

- -

Étant donné que la spécification évolue encore, les implémentations actuelles de IndexedDB se cachent sous les préfixes du navigateur. Les fournisseurs de navigateurs peuvent avoir des implémentations différentes de l'API IndexedDB standard jusqu'à ce que la spécification se soit solidifiée. Mais une fois qu'un consensus est atteint sur la norme, les fournisseurs l'implémentent sans les balises de préfixe. Actuellement, certaines implémentations ont supprimé le préfixe : Internet Explorer 10, Firefox 16, Chrome 24. Lorsqu'ils utilisent un préfixe, les navigateurs basés sur Gecko utilisent le préfixe moz, tandis que les navigateurs WebKit utilisent le préfixe webkit.

- -

Utiliser une version expérimentale d'IndexedDB

- -

Au cas où vous souhaiteriez tester votre code dans des navigateurs qui utilisent toujours un préfixe, vous pouvez utiliser le code suivant :  

- -
// Sur la ligne suivante, vous devez inclure les préfixes des implémentations que vous souhaitez tester.
-window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
-// N'UTILISEZ PAS "var indexedDB = ..." si vous n'êtes pas dans une fonction.
-// De plus, vous pourriez avoir besoin de réferences à des objets window.IDB*:
-window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
-window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange
-// (Mozilla n'a jamais préfixé ces objets, donc nous n'avons pas besoin de window.mozIDB*)
- -

Faites attention aux implémentations qui utilisent un préfixe ; elles peuvent être boguées, incomplètes, voire suivre une ancienne version de la spécification. Il n'est donc pas recommandé d'utiliser en production. Il serait préférable de ne pas supporter ces navigateurs :

- -
if (!window.indexedDB) {
-    window.alert("Votre navigateur ne supporte pas une version stable d'IndexedDB. Quelques fonctionnalités ne seront pas disponibles.")
-}
-
- -

Ouvrir une base de données

- -

On commence l'ensemble du processus comme ceci :

- -
// Ouvrons notre première base
-var request = window.indexedDB.open("MyTestDatabase", 3);
-
- -

Vous avez vu ? Ouvrir une base de données est comme n'importe quelle autre opération — vous avez juste à le "demander".

- -

La requête "open" n'ouvre pas la base de données ni ne démarre une transaction aussitôt. L'appel de la fonction open() retourne un objet IDBOpenDBRequest avec un résultat  (success) ou une valeur d'erreur qui permet de la gérer comme un évènement. La plupart des autres fonctions asynchrones dans IndexedDB fonctionnent de la même façon ; Elles retournent un objet IDBRequest avec le résultat ou une erreur. Le résultat de la fonction "open" est une instance de IDBDatabase.

- -

Le second paramètre de la méthode open est la version de la base de données. La version de la base détermine le schéma de celle-ci — Les objets stockés dans la base de données et leur structure. Si la base de données n'existe pas déjà, elle est créée via l'opération open(), puis, un événement onupgradeneeded est déclenché et vous créez le schéma de la base dans le gestionnaire pour cet événement. Si la base de données existe, mais que vous spécifiez un numéro de version plus élevé, un événement onupgradeneeded est déclenché  immédiatement, vous permettant de mettre à jour le schéma dans son gestionnaire – plus d'informations dans Updating the version of the database plus bas et la page référence {{ domxref("IDBFactory.open") }}.

- -
-

Important: Le numéro de version est un nombre "unsigned long long" ce qui signifie qu'il peut s'agir d'un entier très grand. Cela veut également dire que vous ne pouvez pas utiliser de réél, sinon, il sera converti au nombre entier le plus proche (inférieur) et la transaction peut ne pas démarrer ou ne pas déclencher l'événement upgradeneeded. Par exemple, n'utilisez pas 2.4 comme un numéro de version :
- var request = indexedDB.open("MyTestDatabase", 2.4); // Ne faites pas ça, même si la version sera arrondie à 2

-
- -

Générer des gestionnaires

- -

La première chose que vous ferez avec la plupart des requêtes que vous générerez sera d'ajouter des gestionnaires de succès ou d'erreurs :

- -
request.onerror = function(event) {
-  // Faire quelque chose avec request.errorCode !
-};
-request.onsuccess = function(event) {
-  // Faire quelque chose avec request.result !
-};
- -

Laquelle de ces deux fonctions, onsuccess() or onerror(), sera appelée ? Si tout se passe bien, un évènement success (qui est un évènement DOM dont la propriété type est à "success") est déclenché avec request comme cible. Une fois déclenché, la fonction onsuccess() de request est lancée avec l'évènement success comme argument. S’il y avait un quelconque problème, un évènement erreur (qui est un évènement DOM dont la propriété type est définie à "error") est lancée dans request. Cela déclenche la fonction onerror() avec l'évènement d'erreur comme argument.

- -

L'API IndexedDB est conçue pour minimiser le recours à la gestion des erreurs, donc vous ne serez pas amené à voir beaucoup d'évènements erreurs (du moins, pas tant que vous utilisez l'API !). Cependant, dans le cas d'une ouverture de base de données, il y a quelques conditions qui génèrent des évènements d'erreurs. Le problème le plus courant est que l'utilisateur a décidé d'interdire l'accès à la création de base de données. Un des principaux objectifs d’IndexedDB est de permettre un stockage important de données pour l'utilisation hors-ligne. (Pour en savoir plus sur la capacité de stockage de chaque navigateur, voyez Storage limits).

- -

Évidemment, les navigateurs ne peuvent permettre qu'une publicité en ligne ou un site malicieux pollue votre ordinateur, donc ils informent l’utilisateur la première fois qu'une application web tente d'ouvrir un espace de stockage IndexedDB. L'utilisateur peut choisir de permettre ou refuser l'accès. En ce qui concerne l’utilisation d’IndexedDB en mode privé, les données restent en mémoire jusqu’à ce que la session privée soit close (Navigation privée pour Firefox et mode Incognito pour Chrome, mais dans Firefox, cela n'est pas encore implémenté depuis novembre 2015, aussi vous ne pouvez pas utiliser IndexedDB dans le mode privé de Firefo du tout).

- -

Maintenant, en admettant qu’un utilisateur ait accepté la création d'une base, et que vous receviez un évènement "success" qui déclenche le callback (rappel) "success" ; que se passe-il après ? La requête a génèré un appel à indexedDB.open(), donc request.result est une instance de IDBDatabase, et vous voulez garder en mémoire cela pour plus tard. Votre code devrait ressembler à ceci :

- -
var db;
-var request = indexedDB.open("MyTestDatabase");
-request.onerror = function(event) {
-  alert("Pourquoi ne permettez-vous pas à ma web app d'utiliser IndexedDB?!");
-};
-request.onsuccess = function(event) {
-  db = event.target.result;
-};
-
- -

Gérer les erreurs

- -

Comme mentionné ci-dessus, les évènements d’erreur génèrent des info-bulles. Ils  sont rattachés à la requête qui a généré l’erreur, puis la bulle de l'évènement est transmis à la transaction, et enfin à l'objet de la base de données. Si vous souhaitez éviter d'ajouter un gestionnaire d'erreurs à chaque requête, vous pouvez en ajouter un unique à l'objet de la base de donnée, de cette manière :

- -
db.onerror = function(event) {
-  // Gestionnaire d'erreur générique pour toutes les erreurs de requêtes de cette base
-  alert("Database error: " + event.target.errorCode);
-};
-
- -

Une des erreurs courantes possibles lorsqu'on ouvre une base de données, c'est VER_ERR. Celle-ci indique que la version de la base de données stockée sur le disque est supérieure à la version que vous êtes en train d'essayer d'ouvrir. C'est un cas qui doit toujours être pris en considération par le gestionnaire d'erreurs.

- -

Créer ou mettre à jour une version de base de données

- -

Lorsque vous créez une nouvelle base de données, ou que vous augmentez le numéro de version d'une base existante (en spécifiant un numéro de version supérieur à celui que vous aviez auparavant, lors de {{ anch("Ouvrir une base de données") }}), l'évènement onupgradeneeded sera déclenché et un objet IDBVersionChangeEvent sera passé à un évènement onversionchange dans request.result (la variable db dans l'exemple). Dans le gestionnaire d’évènement upgradeneeded, vous devez créer les objets de stockage requis pour cette version de base :

- -
// Cet évènement est seulement implémenté dans des navigateurs récents
-request.onupgradeneeded = function(event) {
-  var db = event.target.result;
-
-  // Crée un objet de stockage pour cette base de données
-  var objectStore = db.createObjectStore("name", { keyPath: "myKey" });
-};
- -

Dans ce cas, la base de données disposera aussitôt des objets de stockage de la version précédente de la base, donc vous n’aurez pas à créer de nouveau ces objets de stockage. Vous aurez seulement besoin de créer de nouveaux objets de stockage, ou d'en supprimer de la version précédente si vous n'en avez plus besoin. Si vous avez besoin de changer un objet de stockage existant  (par exemple, pour changer la keyPath), alors vous devez supprimer l’ancien objet de stockage et le créer à nouveau avec les nouveaux paramètres. Notez que ceci supprimera les informations dans l'objet de stockage ! Si vous avez besoin de sauvegarder ces informations, vous devez les lire et les sauvegarder quelque part avant de mettre à jour la base de données.

- -

Essayer de créer un objet de stockage avec un nom déjà existant (ou essayer de supprimer un objet de stockage avec un nom qui n'existe pas encore) renverra une erreur. 

- -

Si l'évènement onupgradeneeded quitte avec succès, le gestionnaire onsuccess de la requête d'ouverture de la base de données sera déclenché. 

- -

Blink/Webkit supporte la version courante de la spécification, telle que livrée dans Chrome 23+ et Opera 17+ ; IE10+ également. Les autres implémentations plus anciennes ne prennent pas en charge indexedDB.open(name, version).onupgradeneeded. Pour plus d'informations sur la mise à jour de version de base de données sur les anciens Webkit/Blink, référez vous à IDBDatabase reference article.

- -

Structurer la base de données

- -

Maintenant, structurons la base de données. IndexedDB utilise des objets de stockage plutôt que des tableaux, et une seule base de données peut contenir un nombre quelconque d'objets de stockage. Chaque fois qu'une valeur est stockée dans un objet de stockage, elle est associée à une clé. Il y a différentes manières pour une clé d'être définie, selon que l'objet de stockage utilise un key path (chemin de clé) ou un key generator (générateur de clé).

- -

Le tableau suivant montre les différentes manières d'attribuer des clés.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key Path chemin de clé (keyPath)Key Generator générateur de clé (autoIncrement)Description
NonNonL'objet de stockage peut contenir n'importe quel type de valeur, même des valeurs primitives comme des nombres ou des chaînes de caractères. Vous devez fournir un argument clé séparé chaque fois que vous souhaitez ajouter une nouvelle valeur.
OuiNonL'objet de stockage peut contenir des objets JavaScript. Les objets doivent avoir une propriété qui a le même nom que le key path.
NonOuiL'objet de stockage peut contenir n'importe quel type de valeur. La clé est générée pour vous automatiquement, ou vous pouvez fournir un argument  clé séparé si vous voulez utiliser une clé spécifique.
OuiOuiL'objet de stockage peut contenir des objets JavaScript. Normalement, une clé est générée, et sa valeur est stockée dans l'objet dans une propriété avec le même nom que le key path. Cependant, si une telle propriété existe, sa valeur est utilisée en tant que clé, plutôt que la génération d'une nouvelle clé.
- -

Vous pouvez aussi créer des index sur un objet de stockage, à condition que l'objet de stockage contienne des objets, et non des primitives. Un index vous permet de consulter les valeurs stockées dans un objet de stockage en utilisant la valeur d'une propriété de l'objet stocké, plutôt que la clé de l'objet.

- -

En outre, les index ont la capacité d'appliquer des contraintes simples sur les données stockées. En paramétrant l'option unique lorsque l'on crée un index, ce dernier fait que deux objets ne peuvent être enregistrés en ayant la même valeur pour le chemin de clé de l'index. Par exemple, si vous avez un objet de stockage qui contient un ensemble de personnes, et que vous voulez vous assurer que deux personnes n’aient pas la même adresse de courriel, vous pouvez utiliser un index avec le paramètre unique à true.

- -

Cela peut sembler confus, mais ce simple exemple devrait illustrer ces concepts. D'abord, nous définissons quelques données client à utiliser dans notre exemple :

- -
// Voici à quoi ressemblent nos données client.
-const customerData = [
-  { ssn: "444-44-4444", name: "Bill", age: 35, email: "bill@company.com" },
-  { ssn: "555-55-5555", name: "Donna", age: 32, email: "donna@home.org" }
-];
- -

Bien sûr, vous n'utiliseriez pas le numéro de sécurité sociale comme clé primaire dans une table clients parce que tout le monde n'a pas de numéro de sécurité sociale, et vous pourriez stocker leur date de naissance au lieu de leur âge, mais laissons ces choix non pertinents pour des raisons de commodité et continuons.

- -

Maintenant, voyons la création d'une base de données pour stocker ces données :

- -
const dbName = "the_name";
-
-var request = indexedDB.open(dbName, 2);
-
-request.onerror = function(event) {
-  // Gestion des erreurs.
-};
-request.onupgradeneeded = function(event) {
-  var db = event.target.result;
-
-  // Créer un objet de stockage qui contient les informations de nos clients.
-  // Nous allons utiliser "ssn" en tant que clé parce qu'il est garanti d'être
-  // unique - du moins, c'est ce qu'on en disait au lancement.
-  var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });
-
-  // Créer un index pour rechercher les clients par leur nom. Nous pourrions
-  // avoir des doublons (homonymes), alors on n'utilise pas d'index unique.
-  objectStore.createIndex("name", "name", { unique: false });
-
-  // Créer un index pour rechercher les clients par leur adresse courriel. Nous voulons nous
-  // assurer que deux clients n'auront pas la même, donc nous utilisons un index unique.
-  objectStore.createIndex("email", "email", { unique: true });
-
-  // Utiliser la transaction "oncomplete" pour être sûr que la création de l'objet de stockage
-  // est terminée avant d'ajouter des données dedans.
-  objectStore.transaction.oncomplete = function(event) {
-    // Stocker les valeurs dans le nouvel objet de stockage.
-    var customerObjectStore = db.transaction("customers", "readwrite").objectStore("customers");
-    for (var i in customerData) {
-      customerObjectStore.add(customerData[i]);
-    }
-  }
-};
- -
Comme indiqué précédemment, onupgradeneeded est le seul endroit où vous pouvez modifier la structure de la base de données. Dans cette méthode, vous pouvez créer et supprimer des objets de stockage, construire et supprimer des index.
- -
- -

Les objets de stockage sont créés avec un simple appel à createObjectStore(). La méthode prend le nom du stockage et un paramètre de type objet. Même si les paramètres sont optionnels, ils vous laissent définir d'importantes propriétés et redéfinir le type d'un objet de stockage que vous voulez créer. Dans notre cas, nous avons demandé un objet de stockage nommé "customers" et défini un keyPath, qui est la propriété rendant unique un objet individuel dans le stockage. Cette propriété dans l'exemple est "ssn" puisqu'un numéro de sécurité sociale est garanti unique. "ssn" doit être présent sur chaque objet stocké dans objectStore.

- -

Nous avons aussi demandé un index nommé "name" qui examine la propriété name dans les objets stockés. Comme avec createObjectStore(), createIndex() prend un paramètre de type objet facultatif (options) qui définit le type d’index à créer. Ajouter des objets qui n’auront pas de propriété name fonctionnera, mais ces objets n'apparaîtront pas dans l'index "name".

- -

Nous pouvons récupérer les objets client stockés, en utilisant directement leur ssn dans l'objet de stockage, ou en utilisant leur nom via l’index name. Pour en savoir plus sur ce fonctionnement, se référer à la section utiliser un index.

- -

Utiliser le générateur de clés

- -

Paramétrer un marqueur autoIncrement lorsque l'on crée un objet de stockage activera le générateur de clés pour cet objet de stockage. Par défault, ce marqueur n'est pas défini.

- -

Avec la générateur de clés, une clé sera générée automatiquement lorsque vous ajoutez une valeur dans un objet de stockage. Le compteur initial pour la génération de clés est toujours défini à 1 lorsque l'objet de stockage est créé pour la première fois. Fondamentalement, une nouvelle clé auto-générée sera incrémentée de 1 par rapport à la précédente. Le nombre courant d'un générateur de clé ne décroit jamais, à moins qu'un résultat d'opération sur la base soit annulé, par exemple, l'abandon d'une transaction sur la base. En conséquence, supprimer un enregistrement, voire l'ensemble des enregistrements d'un objet de stockage n'affecte jamais le générateur de clés d'un objet de stockage.

- -

Nous pouvons créer un autre objet de stockage avec un générateur de clés comme ci-dessous :

- -
// Ouverture d'indexedDB.
-var request = indexedDB.open(dbName, 3);
-
-request.onupgradeneeded = function (event) {
-
-    var db = event.target.result;
-
-    // Création d'un autre objet appelé "names" avec l'option autoIncrement définie à true.
-    var objStore = db.createObjectStore("names", { autoIncrement : true });
-
-    // Puisque l'objet "names" a un générateur de clés, la clé pour la valeur name est générée automatiquement.
-    // Les enregistrements ajoutés ressembleront à ceci :
-    // key : 1 => value : "Bill"
-    // key : 2 => value : "Donna"
-    for (var i in customerData) {
-        objStore.add(customerData[i].name);
-    }
-}
- -

Pour plus de détails sur le générateur de clés, voyez "W3C Key Generators".

- -

Ajouter, récupérer et supprimer des données

- -

Avant de faire quoi que ce soit avec votre nouvelle base de données, vous aurez besoin de démarrer une transaction. Les transactions viennent de l'objet base de données, et vous devez spécifier sur quel objet vous souhaitez faire pointer la transaction. Une fois dans la transaction, vous pouvez accéder à l'objet de stockage qui contient vos données et faire vos requêtes. Puis, vous devez décider si vous allez appliquer des changements à la base de données, ou si vous avez juste besoin de la lire. Les transactions disposent de trois modes disponibles: readonly (lecture seule), readwrite (lecture/écriture), et versionchange (changement de version).

- -

Pour changer le "schéma" ou la structure de la base de données — qui implique de créer ou supprimer des objets de stockage ou des index — la transaction doit être en mode versionchange. Cette transaction est ouverte en appelant la méthode {{domxref("IDBFactory.open")}}  avec une version spécifiée. (Dans les navigateurs WebKit, qui n'ont pas implémenté la dernière spécification, la méthode {{domxref("IDBFactory.open")}} prend seulement un paramètre, le nom de la base de données ; Vous devez donc appeler {{domxref("IDBVersionChangeRequest.setVersion")}} pour établir la transaction versionchange.)

- -

Pour lire les enregistrements d'un objet de stockage existant, la transaction peut être en mode readonlyou readwrite. Pour appliquer des changements à un objet de stockage existant, la transaction doit être en mode readwrite. Vous démarrez ces transactions avec {{domxref("IDBDatabase.transaction")}}. La méthode accepte deux paramètres : les storeNames (la portée, définie comme un tableau des objets de stockage auxquels vous souhaitez accéder) et le mode (readonly ou readwrite) pour la transaction. La méthode retourne un objet de transaction contenant la méthode {{domxref("IDBIndex.objectStore")}}, que vous utilisez pour accéder à votre objet de stockage. Par défaut, lorsqu'aucun mode n'est spécifié, les transactions démarrent en mode readonly.

- -
-

Note: À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées afin d'augmenter les performances (voir {{Bug("1112702")}}.) Auparavant, lors d'une transaction readwrite {{domxref("IDBTransaction.oncomplete")}} était déclenché seulement lorsque les données étaient garanties pour une écriture sur le disque. Dans Firefox 40+ l'évènement complete est déclenché une fois que l'OS a autorisé l'écriture de données, mais potentiellement avant que les données soient réellement écrites sur le disque. L'évènement complete peut ainsi être livré plus vite qu'avant, cependant, il existe un petit risque que l'ensemble de la transaction soit perdu si l'OS s'effondre ou si un problème électrique survient avant que les données soient écrites. Comme de tels évènements catastrophiques sont rares, la plupart des utilisateurs n'ont pas à s'en soucier. Si vous devez vous assurer de la durabilité pour quelconque raison que ce soit (par exemple, vous stockez des données critiques qui ne peuvent être recalculées plus tard) vous pouvez forcer une transaction à écrire sur le disque avant que l'évènement complete ne soit délivré en créant une transaction utilisant un mode expérimental (non-standard) readwriteflush  (se référer à {{domxref("IDBDatabase.transaction")}}.

-
- -

Vous pouvez accélérer l'accès à vos données en utilisant le bon mode et la bonne portée dans la transaction. Voici deux astuces :

- - - -

Ajouter des données dans la base de données

- -

Si vous venez juste de créer une base de données, alors vous souhaitez probablement écrire dedans. Voici comment ça se passe :

- -
var transaction = db.transaction(["customers"], "readwrite");
-// Note: Les anciennes implémentations utilisent la constante dépréciée IDBTransaction.READ_WRITE au lieu de "readwrite".
-// Au cas où vous souhaitiez mettre en oeuvre ces implémentations, vous pouvez écrire :
-// var transaction = db.transaction(["customers"], IDBTransaction.READ_WRITE);
- -

La fonction transaction() prend deux arguments (bien que l'un d'eux soit facultatif) et retourne un objet transaction. Le premier argument est une liste d'objets de stockage que la transaction va traiter. Vous pouvez passer un tableau vide si vous voulez que la transaction traite l'ensemble des objets de stockage, mais ne le faites pas, parce que la spécification indique qu'un tableau vide devrait générer une InvalidAccessError. Si vous ne spécifiez rien pour le deuxième argument, vous démarrerez une transaction "read-only" (lecture seule) . Si vous souhaitez aussi écrire, vous devrez passer l'option "readwrite" (lecture/écriture).

- -

Maintenant que vous avez une transaction, vous devez comprendre sa durée de vie. Les transactions sont étroitement liées à la boucle de l'évènement. Si vous établissez une transaction et si vous sortez de la boucle d'évènements sans l'utiliser, alors la transaction deviendra inactive. La seule manière de garder la transaction active est d'y insérer une requête. Lorsque la requête est terminée, vous obtenez un évènement DOM, et en supposant que la requête ait réussi, vous avez une autre opportunité d'étendre la transaction durant ce "callback" (rappel). Si vous sortez de la boucle d'évènements sans étendre la transaction, alors elle devient inactive, etc… Tant qu'il reste des demandes en attente, la transaction reste active. La durée de vie des transactions est vraiment très simple, mais cela peut prendre un peu de temps de la maîtriser. Quelques exemples supplémentaires aideront. Si vous commencez à voir des codes d'erreur TRANSACTION_INACTIVE_ERR, alors vous avez raté quelque chose.

- -

Les transactions peuvent recevoir des évènements DOM de trois types : error (erreur), abort (abandonnée) et complete (terminée). Nous avons déjà parlé du fait que les error créent des bulles, ainsi une transaction peut recevoir des évènements d'erreur venant de n'importe quelle requête l'ayant généré. Un point plus subtil ici, c'est que le comportement par défaut d'une erreur est d'abandonner la transaction là où elle a eu lieu. A moins que vous gériez l’erreur en appelant d'abord stopPropagation() sur l’évènement erreur, puis que vous fassiez quelque chose d'autre, la transaction complète sera annulée. Cette conception vous oblige à réfléchir et gérer les erreurs, mais vous pouvez toujours ajouter un gestionnaire d'erreurs "fourre-tout" à la base de données si la gestion d'erreurs fines est trop lourde. Si vous ne gérez pas un évènement d'erreur, ou si vous appelez abort() sur la transaction, alors la transaction est annulée et un évènement abort est lancé sur la transaction. Sinon, une fois que toutes les demandes en instance sont terminées, vous recevez un évènement complete. Si vous faites beaucoup d'opérations sur les bases de données, alors suivre la transaction plutôt que les requêtes individuelles, peut certainement vous aider.

- -

Maintenant que vous avons une transaction, nous avons besoin de récupérer l'objet de stockage de celle-ci. Les transactions vous permettent seulement d'avoir l'objet de stockage que vous avez spécifié lors de la création de la transaction. Puis, vous pouvez ajouter toutes les données dont vous avez besoin.

- -
// Faire quelque chose lorsque toutes les données sont ajoutées à la base de données.
-transaction.oncomplete = function(event) {
-  alert("All done!");
-};
-
-transaction.onerror = function(event) {
-  // N'oubliez pas de gérer les erreurs !
-};
-
-var objectStore = transaction.objectStore("customers");
-for (var i in customerData) {
-  var request = objectStore.add(customerData[i]);
-  request.onsuccess = function(event) {
-    // event.target.result == customerData[i].ssn;
-  };
-}
- -
La méthode result d’une requête venant d'un appel à add() est la clé de la valeur qui vient d'être ajoutée. Dans ce cas, ce devrait être équivalent à la propriété ssn de l'objet qui vient d'être ajouté, puisque l'objet de stockage utilise la propriété ssn pour le key path. Notez que la fonction add() requiert qu'aucun objet déjà présent dans la base ait la même clé. Si vous essayez de modifier une entrée existante, ou si vous ne vous en occupez pas, vous pouvez utiliser la fonction put(), comme montré plus loin dans la section {{ anch("Updating an entry in the database") }}.
- -
- -

Supprimer des données dans la base de données

- -

Supprimer des données est très similaire :

- -
var request = db.transaction(["customers"], "readwrite")
-                .objectStore("customers")
-                .delete("444-44-4444");
-request.onsuccess = function(event) {
-  // c'est supprimé !
-};
- -

Récupérer des données de la base de données

- -

Maintenant que la base de données dispose de quelques informations, vous pouvez les récupérer de plusieurs façons. D'abord, la plus simple get(). Vous devez fournir une clé pour récupérer la valeur, comme ceci :

- -
var transaction = db.transaction(["customers"]);
-var objectStore = transaction.objectStore("customers");
-var request = objectStore.get("444-44-4444");
-request.onerror = function(event) {
-  // gestion des erreurs!
-};
-request.onsuccess = function(event) {
-  // Faire quelque chose avec request.result !
-  alert("Name for SSN 444-44-4444 is " + request.result.name);
-};
- -

Ça fait beaucoup de code pour une "simple" récupération. Voici comment le raccourcir un peu, en supposant que vous gériez les erreurs au niveau de la base de données :

- -
db.transaction("customers").objectStore("customers").get("444-44-4444").onsuccess = function(event) {
-  alert("Name for SSN 444-44-4444 is " + event.target.result.name);
-};
- -
Vous voyez comment ça fonctionne ? Comme il n'y a qu'un seul objet de stockage, vous pouvez éviter de passer une liste d'objets dont vous avez besoin dans votre transaction, et juste passer le nom comme une chaîne de caractères. Aussi, nous faisons seulement une lecture de la base, donc nous n'avons pas besoin d'une transaction "readwrite". Appeler une transaction() sans spécifier de mode nous donne une transaction "readonly". Une autre subtilité ici est que nous n'enregistrons pas l'objet de notre requête dans une variable. Comme l’évènement DOM a la requête comme cible, vous pouvez utiliser l'évènement pour récupérer la propriété result.
- -
- -

Vous pouvez accélérer l’accès à vos données  en limitant la portée et le mode de la transaction. Voici deux astuces :

- - - -

Mettre à jour une entrée dans la base de données

- -

Maintenant que nous avons récupéréré quelques données, les mettre à jour et en insérer est assez simple. Mettons à jour l’exemple précédent :

- -
var objectStore = db.transaction(["customers"], "readwrite").objectStore("customers");
-var request = objectStore.get("444-44-4444");
-request.onerror = function(event) {
-  // Gestion des erreurs!
-};
-request.onsuccess = function(event) {
-  // On récupère l'ancienne valeur que nous souhaitons mettre à jour
-  var data = request.result;
-
-  // On met à jour ce(s) valeur(s) dans l'objet
-  data.age = 42;
-
-  // Et on remet cet objet à jour dans la base
-  var requestUpdate = objectStore.put(data);
-   requestUpdate.onerror = function(event) {
-     // Faire quelque chose avec l’erreur
-   };
-   requestUpdate.onsuccess = function(event) {
-     // Succès - la donnée est mise à jour !
-   };
-};
- -
Ici, nous avons créé une variable objectStore et nous avons recherché un enregistrement d’un client, identifié par la valeur ssn (444-44-4444). Nous avons ensuite mis le résultat dans une variable (data), mis à jour la propriété age de cet objet, puis créé une deuxième requête (requestUpdate) pour mettre l'enregistrement du client dans l'objectStore, en écrasant la valeur précédente.
- -
-

Note: dans ce cas, nous avons eu à spécifier une transaction readwrite puisque nous voulions écrire dans la base, et pas seulement la lire.

-
- -

Utiliser un curseur

- -

Utiliser get() nécessite de connaître la clé que vous souhaitez récupérer. Si vous voulez parcourir toutes les valeurs de l’objet de stockage, alors vous devez utiliser un curseur. Voici comment ça marche :

- -
var objectStore = db.transaction("customers").objectStore("customers");
-
-objectStore.openCursor().onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    alert("Name for SSN " + cursor.key + " is " + cursor.value.name);
-    cursor.continue();
-  }
-  else {
-    alert("No more entries!");
-  }
-};
- -

La fonction openCursor() prend en compte plusieurs arguments. En premier, vous pouvez spécifier une plage de résultats à récupérer en utilisant un objet  "key range" que nous allons voir dans une minute. En deuxième, vous pouvez spécifier la direction vers laquelle vous souhaitez itérer. Dans l’exemple ci-dessus, nous avons itéré tous les objets dans l’ordre ascendant. Le "callback" (rappel) de réussite pour les curseurs est un peu spécial. L'objet cursor lui-même est le result (résutat) de la requête (au-dessus, nous utilisons le raccourci event.target.result). Puis la clé et valeur courante peuvent être trouvées dans les propriétés key(clé)  et value (valeur) de l’objet cursor. Si vous souhaitez continuer, vous devez appeler continue() sur le curseur. Lorsque vous avez atteint la fin des données (ou s’il n’y a plus d’entrées qui correspondent à votre requête openCursor() ) , vous aurez toujours votre callback  success, mais la propriété result sera undefined.

- -

Une utilisation classique avec les curseurs est de récupérer tous les objets dans un objet de stockage et de les mettre dans un tableau, comme ceci :

- -
var customers = [];
-
-objectStore.openCursor().onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    customers.push(cursor.value);
-    cursor.continue();
-  }
-  else {
-    alert("Got all customers: " + customers);
-  }
-};
- -
-

Note: Mozilla a aussi implémenté getAll() pour gérer ce cas (et getAllKeys(), qui est actuellement caché derrière la préférence dom.indexedDB.experimental  dans about:config) . ceux-ci ne font pas partie d' IndexedDB standard, et peuvent disparaître dans le futur. Nous les avons inclus partceque nous pensons qu'ils sont utiles. Le code suivant fait exactement la même chose que ci-dessus :

- -
objectStore.getAll().onsuccess = function(event) {
-  alert("Got all customers: " + event.target.result);
-};
- -

Il y a un coût de performance associé avec la recherche de la propriété value du curseur, parce que l'objet est créé paresseusement. Quand vous utilisez getAll() par exemple, Gecko doit créer tous les objets à la fois. Si vous êtes seulement intéressé par la lecture de chaque clé, pour l'instance, il est beaucoup plus efficace d'utiliser un curseur que getAll(). Si vous essayez d'obtenir un tableau de tous les objets d'un objet de stockage, utilisez getAll().

-
- -

Utiliser un index

- -

Le stockage des données des clients utilisant le SSN comme clé est logique puisque le SSN identifie un individu unique. (Que ce soit une bonne idée pour la vie privée est une question différente, et en dehors du champ de cet article). Si vous devez rechercher un client par son nom, vous devrez toutefois faire itérer sur toutes les clés SSN dans la base de données jusqu'à ce que vous trouviez la bonne. La recherche de cette manière serait très lente, alors, vous pouvez utiliser un index.

- -
// D'abord, assurez-vous de créer un index dans request.onupgradeneeded:
-// objectStore.createIndex("name", "name");
-// Autrement, vous obtiendrez une DOMException.
-
-var index = objectStore.index("name");
-
-index.get("Donna").onsuccess = function(event) {
-  alert("Donna's SSN is " + event.target.result.ssn);
-};
- -

Le "name" du curseur n'est pas unique, donc il pourrait y avoir plus d'une entrée avec le name attribué à  "Donna". Dans ce cas, vous obtenez toujours celui qui a la valeur clé la plus basse .

- -

Si vous avez besoin d'accèder à toutes les entrées avec un name donné, vous pouvez utiliser un curseur. Vous pouvez ouvrir deux types différents de curseurs sur les index. Un curseur normal situe la propriété index de l'objet dans l'objet de stockage. Un curseur de clés situe la propriété index des clés utilisées pour stocker l'objet dans l'objet de stockage. Les différences sont illustrées ici :

- -
// Utilisation d'un curseur normal pour saisir tous les enregistrements des objets client
-index.openCursor().onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // cursor.key est un nom, comme "Bill", et cursor.value est l'objet entier.
-    alert("Name: " + cursor.key + ", SSN: " + cursor.value.ssn + ", email: " + cursor.value.email);
-    cursor.continue();
-  }
-};
-
-// Utilisation d'un curseur de clés pour saisir les clés des enregistrements des objets client
-index.openKeyCursor().onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // cursor.key est un nom, comme "Bill", et cursor.value est le SSN.
-    // Pas moyen d'obtenir directement le reste de l'objet stocké .
-    alert("Name: " + cursor.key + ", SSN: " + cursor.value);
-    cursor.continue();
-  }
-};
- -

Spécifier l'intervalle et la direction du curseur

- -

Si vous souhaitez limiter l'intervalle de valeurs que vous voyez dans un curseur, vous pouvez utiliser un objet IDBKeyRange et le donner comme premier argument à openCursor() ou openKeyCursor() . Vous pouvez créer un intervalle de clés qui n'autorise qu'une seule clé, ou qui a des limites inférieure et supérieure, ou qui a des bornes inférieure et supérieure. La limite peut être "closed" (fermée) (c'est-à-dire que l'intervalle de clés comprend les valeurs données) ou "open" (ouverte) (c'est-à-dire que la plage de clés n'inclut pas les valeurs données. Voici comment cela fonctionne :

- -
// Correspond seulement à "Donna"
-var singleKeyRange = IDBKeyRange.only("Donna");
-
-// Correspond à n'importe quoi contenant "Bill", y compris "Bill"
-var lowerBoundKeyRange = IDBKeyRange.lowerBound("Bill");
-
-// Correspond à n'importe quoi contenant "Bill", mais pas "Bill"
-var lowerBoundOpenKeyRange = IDBKeyRange.lowerBound("Bill", true);
-
-// Correspond à n'importe quoi, mais  "Donna" exclus.
-var upperBoundOpenKeyRange = IDBKeyRange.upperBound("Donna", true);
-
-// Correspond à n'importe quoi compris entre "Bill" et "Donna", mais "Donna" exclus.
-var boundKeyRange = IDBKeyRange.bound("Bill", "Donna", false, true);
-
-// Pour utiliser un des intervalles de clés, placez le en premier argument de openCursor()/openKeyCursor()
-index.openCursor(boundKeyRange).onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // Faire quelque chose avec la sélection.
-    cursor.continue();
-  }
-};
- -

Parfois, vous voudrez peut-être itérer dans l'ordre décroissant plutôt que dans l'ordre croissant (la direction par défaut pour tous les curseurs). Le changement de direction est réalisé en passant prev à la fonction openCursor() antérieure comme second argument :

- -
objectStore.openCursor(boundKeyRange, "prev").onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // Faire quelque chose avec les entrées.
-    cursor.continue();
-  }
-};
- -

Si vous souhaitez simplement spécifier un changement de direction, mais ne pas limiter les résultats, vous pouvez simplement passer "null" comme premier argument :

- -
objectStore.openCursor(null, "prev").onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // Faire quelque chose avec les entrées.
-    cursor.continue();
-  }
-};
- -

Étant donné que l'index "name" n'est pas unique, il peut y avoir plusieurs entrées où le name est le même. Notez qu'une telle situation ne peut pas se produire avec les objets stockés car la clé doit toujours être unique. Si vous souhaitez filtrer les doublons pendant l'itération du curseur sur les index, vous pouvez passer nextunique (ou prevunique si vous revenez en arrière) comme paramètre de direction. Lorsque nextunique ou prevunique sont utilisés, l'entrée avec la clé la plus basse est toujours celle retournée.

- -
index.openKeyCursor(null, "nextunique").onsuccess = function(event) {
-  var cursor = event.target.result;
-  if (cursor) {
-    // Faire quelque chose avec les entrées.
-    cursor.continue();
-  }
-};
- -

Voyez "IDBCursor Constants" pour les arguments de direction valides.

- -

La version change alors qu'une application Web est ouverte dans un autre onglet

- -

Lorsque votre application Web change de telle sorte qu'une modification de version est nécessaire pour votre base de données, vous devez considérer ce qui se passe si l'utilisateur a l'ancienne version de votre application ouverte dans un onglet, puis charge la nouvelle version de votre application dans une autre . Lorsque vous appelez open() avec une version plus grande que la version actuelle de la base de données, toutes les autres bases de données ouvertes doivent reconnaître explicitement la demande avant de commencer à modifier la base de données (un événement onblocked  (bloqué) est déclenché jusqu'à ce qu'elles soient fermées ou rechargées). Voici comment cela fonctionne :

- -
var openReq = mozIndexedDB.open("MyTestDatabase", 2);
-
-openReq.onblocked = function(event) {
-  //  Si un autre onglet est chargé avec la base de données, il doit être fermé 
-  // avant que nous puissions continuer.
-  alert("Veuillez fermer tous les ongles ouverts sur ce site!");
-};
-
-openReq.onupgradeneeded = function(event) {
-  // Toutes les autres bases de données ont été fermées. Tout régler.
-  db.createObjectStore(/* ... */);
-  useDatabase(db);
-}
-
-openReq.onsuccess = function(event) {
-  var db = event.target.result;
-  useDatabase(db);
-  return;
-}
-
-function useDatabase(db) {
-  // Assurez-vous d'ajouter un gestionnaire pour être averti si une autre page demande 
-  // un changement de version. Nous devons fermer la base de données. 
-  // Cela permet à l'autre page de mettre à niveau la base de données. 
-  //  Si vous ne le faites pas, la mise à niveau ne se produira que lorsque l'utilisateur fermera l'onglet .
-  db.onversionchange = function(event) {
-    db.close();
-    alert("A new version of this page is ready. Please reload!");
-  };
-
-  //  Faire quelque chose avec la base de données .
-}
- -

Vous devriez également écouter les erreurs VersionError pour gérer le cas où les applications déjà ouvertes déclencheraient un code conduisant à une nouvelle tentative d'ouverture de la base de données, mais en utilisant une version désuète.

- -

Sécurité

- -

IndexedDB utilise le principe " same-origin " (même origine), ce qui signifie qu'il relie le stockage à l'origine du site qui le crée (généralement, c'est le domaine ou le sous-domaine du site), de sorte qu'il ne peut être consulté par aucune autre origine.

- -

Le contenu de la fenêtre de tiers (par exemple le contenu de {{htmlelement("iframe")}}) peut accèder à IndexedDB pour l'origine dans laquelle il est intégré, à moins que le navigateur ne soit configuré pour ne jamais accepter de cookies tiers (voir le {{bug("1147821")}}).

- -

Avertissement concernant l'arrêt du navigateur

- -

Lorsque le navigateur s'arrête (parce que l'utilisateur a choisi l'option Quit ou Exit), le disque contenant la base de données est supprimé de manière inattendue ou les permissions sont perdues dans le magasin de base de données, les choses suivantes se produisent :

- -
    -
  1. Chaque transaction sur chaque base de données affectée (ou toutes les bases de données ouvertes, dans le cas de l'arrêt du navigateur) est interrompue avec un AbortError. L'effet est le même que si {{domxref("IDBTransaction.abort()")}} est appelé sur chaque transaction.
  2. -
  3. Une fois toutes les transactions terminées, la connexion à la base de données est fermée .
  4. -
  5. Enfin, l'objet {{domxref("IDBDatabase")}} représentant la connexion à la base de données reçoit un évènement {{event("close")}} . Vous pouvez utiliser un gestionnaire d'évènements  {{domxref("IDBDatabase.onclose")}} pour écouter ces évènements, afin de savoir quand une base de données est fermée de façon inattendue .
  6. -
- -

Le comportement décrit ci-dessus est nouveau et n'est disponible que pour les versions de navigateur suivantes : Firefox 50, Google Chrome 31 (approximativement).

- -

Avant ces versions de navigateurs, les transactions étaient interrompues silencieusement et aucun événement {{event ("close")}} n'était déclenché, donc il n'y avait aucun moyen de détecter une fermeture de base de données inattendue.

- -

Étant donné que l'utilisateur peut quitter le navigateur à tout moment, cela signifie que vous ne pouvez pas compter sur une transaction particulière à compléter, et sur les navigateurs plus anciens, vous n'êtes même pas informé quand elles ne sont pas terminées. Il y a plusieurs conséquences à ce comportement.

- -

Tout d'abord, vous devez vous occuper de toujours laisser votre base de données dans un état cohérent à la fin de chaque transaction. Par exemple, supposons que vous utilisiez IndexedDB pour stocker une liste d'éléments que l'utilisateur est autorisé à éditer. Vous enregistrez la liste après l'édition en effaçant l'objet de stockage puis en écrivant la nouvelle liste. Si vous effacez l'objet de stockage dans une transaction et que vous écrivez la nouvelle liste dans une autre transaction, il existe un danger : si le navigateur se ferme après l'effacement mais avant l'écriture, votre base de données est  vide. Pour éviter cela, vous devez combiner l'effacement et l'écriture en une seule transaction.

- -

Ensuite, vous ne devez jamais lier les transactions de base de données pour les événements unload (déchargement). Si l'événement unload est déclenché par la fermeture du navigateur, toutes les transactions créées dans le gestionnaire d'événements unload ne seront jamais terminées. Une approche intuitive, pour le maintien de certaines informations dans les sessions du navigateur, est de le lire à partir de la base de données, lorsque le navigateur (ou une page particulière) est ouvert, le mettre à jour à mesure que l'utilisateur interagit avec le navigateur, puis l'enregistrer dans la base de données lorsque le navigateur ( ou page) se ferme. Cependant, cela ne fonctionne pas. Les transactions de la base de données sont créées dans le gestionnaire d'événements unload, mais comme elles sont asynchrones, elles sont interrompues avant qu'elles puissent s'exécuter.

- -

En fait, il n'y a aucun moyen de garantir que les transactions IndexedDB seront terminées, même avec un arrêt normal du navigateur. Voir {{bug (870645)}}. Comme solution de rechange pour cette notification d'arrêt normal, vous pouvez suivre vos transactions et ajouter un événement beforeunload pour avertir l'utilisateur si des transactions ne sont pas encore terminées au moment du déchargement.

- -

Au-moins, avec l'ajout des notifications d'annulation et {{domxref ("IDBDatabase.onclose")}}, vous pouvez savoir quand cela s'est produit.

- -

Le tri et les langues

- -

Mozilla a implémenté la capacité d'effectuer un tri des données IndexedDB localisées sur Firefox 43+. Par défaut, IndexedDB n'a pas pris en charge l'internationalisation des chaînes de tri, et était trié comme s'il s'agissait d'un texte anglais. Par exemple, "b", "á", "z", "a" devaient être triés comme suit :

- - - -

ce qui n'est évidemment pas la façon dont les utilisateurs souhaitent que leurs données soient triées - Aaron et Áaron, par exemple, doivent aller l'un à côté de l'autre dans une liste de contacts. L'obtention d'un tri international approprié exige donc que l'ensemble des données soit appelé dans la mémoire et que le tri soit exécuté par le JavaScript côté client, ce qui n'est pas très efficace.

- -

Cette nouvelle fonctionnalité permet aux développeurs de spécifier une "locale" (langue) lors de la création d'un index en utilisant {{domxref("IDBObjectStore.createIndex()")}} (vérifiez ses paramètres). Dans ce cas, lorsqu'un curseur est utilisé pour itérer sur l'ensemble de données , et si vous souhaitez spécifier un tri local, vous pouvez utiliser un {{domxref ("IDBLocaleAwareKeyRange")}}.

- -

{{domxref("IDBIndex")}} a également eu de nouvelles propriétés qui lui ont été ajoutées pour spécifier la langue : locale (retourne la langue si elle est spécifiée, ou null sinon) et isAutoLocale (retourne true (vrai) si l'index a été créé avec une "locale auto", ce qui signifie que la langue par défaut de la plate-forme est utilisée, sinon false).

- -
-

Note : Cette fonctionnalité est couramment cachée derrière une marque (flag) — pour l'activer et l'expérimenter, aller à about:config et activez dom.indexedDB.experimental.

-
- -

Exemple complet d'IndexedDB

- -

HTML Content

- -
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
-
-    <h1>IndexedDB Demo: storing blobs, e-publication example</h1>
-    <div class="note">
-      <p>
-        Works and tested with:
-      </p>
-      <div id="compat">
-      </div>
-    </div>
-
-    <div id="msg">
-    </div>
-
-    <form id="register-form">
-      <table>
-        <tbody>
-          <tr>
-            <td>
-              <label for="pub-title" class="required">
-                Title:
-              </label>
-            </td>
-            <td>
-              <input type="text" id="pub-title" name="pub-title" />
-            </td>
-          </tr>
-          <tr>
-            <td>
-              <label for="pub-biblioid" class="required">
-                Bibliographic ID:<br/>
-                <span class="note">(ISBN, ISSN, etc.)</span>
-              </label>
-            </td>
-            <td>
-              <input type="text" id="pub-biblioid" name="pub-biblioid"/>
-            </td>
-          </tr>
-          <tr>
-            <td>
-              <label for="pub-year">
-                Year:
-              </label>
-            </td>
-            <td>
-              <input type="number" id="pub-year" name="pub-year" />
-            </td>
-          </tr>
-        </tbody>
-        <tbody>
-          <tr>
-            <td>
-              <label for="pub-file">
-                File image:
-              </label>
-            </td>
-            <td>
-              <input type="file" id="pub-file"/>
-            </td>
-          </tr>
-          <tr>
-            <td>
-              <label for="pub-file-url">
-                Online-file image URL:<br/>
-                <span class="note">(same origin URL)</span>
-              </label>
-            </td>
-            <td>
-              <input type="text" id="pub-file-url" name="pub-file-url"/>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-
-      <div class="button-pane">
-        <input type="button" id="add-button" value="Add Publication" />
-        <input type="reset" id="register-form-reset"/>
-      </div>
-    </form>
-
-    <form id="delete-form">
-      <table>
-        <tbody>
-          <tr>
-            <td>
-              <label for="pub-biblioid-to-delete">
-                Bibliographic ID:<br/>
-                <span class="note">(ISBN, ISSN, etc.)</span>
-              </label>
-            </td>
-            <td>
-              <input type="text" id="pub-biblioid-to-delete"
-                     name="pub-biblioid-to-delete" />
-            </td>
-          </tr>
-          <tr>
-            <td>
-              <label for="key-to-delete">
-                Key:<br/>
-                <span class="note">(for example 1, 2, 3, etc.)</span>
-              </label>
-            </td>
-            <td>
-              <input type="text" id="key-to-delete"
-                     name="key-to-delete" />
-            </td>
-          </tr>
-        </tbody>
-      </table>
-      <div class="button-pane">
-        <input type="button" id="delete-button" value="Delete Publication" />
-        <input type="button" id="clear-store-button"
-               value="Clear the whole store" class="destructive" />
-      </div>
-    </form>
-
-    <form id="search-form">
-      <div class="button-pane">
-        <input type="button" id="search-list-button"
-               value="List database content" />
-      </div>
-    </form>
-
-    <div>
-      <div id="pub-msg">
-      </div>
-      <div id="pub-viewer">
-      </div>
-      <ul id="pub-list">
-      </ul>
-    </div>
- -

CSS Content

- -
body {
-  font-size: 0.8em;
-  font-family: Sans-Serif;
-}
-
-form {
-  background-color: #cccccc;
-  border-radius: 0.3em;
-  display: inline-block;
-  margin-bottom: 0.5em;
-  padding: 1em;
-}
-
-table {
-  border-collapse: collapse;
-}
-
-input {
-  padding: 0.3em;
-  border-color: #cccccc;
-  border-radius: 0.3em;
-}
-
-.required:after {
-  content: "*";
-  color: red;
-}
-
-.button-pane {
-  margin-top: 1em;
-}
-
-#pub-viewer {
-  float: right;
-  width: 48%;
-  height: 20em;
-  border: solid #d092ff 0.1em;
-}
-#pub-viewer iframe {
-  width: 100%;
-  height: 100%;
-}
-
-#pub-list {
-  width: 46%;
-  background-color: #eeeeee;
-  border-radius: 0.3em;
-}
-#pub-list li {
-  padding-top: 0.5em;
-  padding-bottom: 0.5em;
-  padding-right: 0.5em;
-}
-
-#msg {
-  margin-bottom: 1em;
-}
-
-.action-success {
-  padding: 0.5em;
-  color: #00d21e;
-  background-color: #eeeeee;
-  border-radius: 0.2em;
-}
-
-.action-failure {
-  padding: 0.5em;
-  color: #ff1408;
-  background-color: #eeeeee;
-  border-radius: 0.2em;
-}
-
-.note {
-  font-size: smaller;
-}
-
-.destructive {
-  background-color: orange;
-}
-.destructive:hover {
-  background-color: #ff8000;
-}
-.destructive:active {
-  background-color: red;
-}
- -

JavaScript Content

- -
(function () {
-  var COMPAT_ENVS = [
-    ['Firefox', ">= 16.0"],
-    ['Google Chrome',
-     ">= 24.0 (you may need to get Google Chrome Canary), NO Blob storage support"]
-  ];
-  var compat = $('#compat');
-  compat.empty();
-  compat.append('<ul id="compat-list"></ul>');
-  COMPAT_ENVS.forEach(function(val, idx, array) {
-    $('#compat-list').append('<li>' + val[0] + ': ' + val[1] + '</li>');
-  });
-
-  const DB_NAME = 'mdn-demo-indexeddb-epublications';
-  const DB_VERSION = 1; //  Utilisez un "long long" pour cette valeur (ne pas utiliser un flottant (float)) 
-  const DB_STORE_NAME = 'publications';
-
-  var db;
-
-  //  Utilisé pour garder une trace de la vue affichée pour éviter de la recharger inutilement
-  var current_view_pub_key;
-
-  function openDb() {
-    console.log("openDb ...");
-    var req = indexedDB.open(DB_NAME, DB_VERSION);
-    req.onsuccess = function (evt) {
-      //  Le mieux utiliser "this" que "req" pour obtenir le résultat et éviter  
-      // les problèmes avec "garbage collection".
-      // db = req.result;
-      db = this.result;
-      console.log("openDb DONE");
-    };
-    req.onerror = function (evt) {
-      console.error("openDb:", evt.target.errorCode);
-    };
-
-    req.onupgradeneeded = function (evt) {
-      console.log("openDb.onupgradeneeded");
-      var store = evt.currentTarget.result.createObjectStore(
-        DB_STORE_NAME, { keyPath: 'id', autoIncrement: true });
-
-      store.createIndex('biblioid', 'biblioid', { unique: true });
-      store.createIndex('title', 'title', { unique: false });
-      store.createIndex('year', 'year', { unique: false });
-    };
-  }
-
-  /**
-   * @paramètre {string}(chaîne de caractères) store_name
-   * @paramètre {string}(chaîne de caractères) mode either "readonly" ou "readwrite"
-   */
-  function getObjectStore(store_name, mode) {
-    var tx = db.transaction(store_name, mode);
-    return tx.objectStore(store_name);
-  }
-
-  function clearObjectStore(store_name) {
-    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
-    var req = store.clear();
-    req.onsuccess = function(evt) {
-      displayActionSuccess("Store cleared");
-      displayPubList(store);
-    };
-    req.onerror = function (evt) {
-      console.error("clearObjectStore:", evt.target.errorCode);
-      displayActionFailure(this.error);
-    };
-  }
-
-  function getBlob(key, store, success_callback) {
-    var req = store.get(key);
-    req.onsuccess = function(evt) {
-      var value = evt.target.result;
-      if (value)
-        success_callback(value.blob);
-    };
-  }
-
-  /**
-   * @paramètre objet de stockage {IDBObjectStore=}
-   */
-  function displayPubList(store) {
-    console.log("displayPubList");
-
-    if (typeof store == 'undefined')
-      store = getObjectStore(DB_STORE_NAME, 'readonly');
-
-    var pub_msg = $('#pub-msg');
-    pub_msg.empty();
-    var pub_list = $('#pub-list');
-    pub_list.empty();
-    //  Réinitialisation de l'iframe afin qu'il n'indique pas le contenu précédent 
-    newViewerFrame();
-
-    var req;
-    req = store.count();
-    // Les requêtes sont exécutées dans l'ordre où elles ont été faites en-dehors de la 
-    // transaction,  et leurs résultats sont retournés dans le même ordre. 
-    // Ainsi, le texte du compteur ci-dessous sera affiché avant la liste de pub actuelle 
-    // (ce n'est pas algorithmiquement important dans ce cas) .
-    req.onsuccess = function(evt) {
-      pub_msg.append('<p>There are <strong>' + evt.target.result +
-                     '</strong> record(s) in the object store.</p>');
-    };
-    req.onerror = function(evt) {
-      console.error("add error", this.error);
-      displayActionFailure(this.error);
-    };
-
-    var i = 0;
-    req = store.openCursor();
-    req.onsuccess = function(evt) {
-      var cursor = evt.target.result;
-
-      //  Si le curseur pointe vers quelque chose, demandez les données 
-      if (cursor) {
-        console.log("displayPubList cursor:", cursor);
-        req = store.get(cursor.key);
-        req.onsuccess = function (evt) {
-          var value = evt.target.result;
-          var list_item = $('<li>' +
-                            '[' + cursor.key + '] ' +
-                            '(biblioid: ' + value.biblioid + ') ' +
-                            value.title +
-                            '</li>');
-          if (value.year != null)
-            list_item.append(' - ' + value.year);
-
-          if (value.hasOwnProperty('blob') &&
-              typeof value.blob != 'undefined') {
-            var link = $('<a href="' + cursor.key + '">File</a>');
-            link.on('click', function() { return false; });
-            link.on('mouseenter', function(evt) {
-                      setInViewer(evt.target.getAttribute('href')); });
-            list_item.append(' / ');
-            list_item.append(link);
-          } else {
-            list_item.append(" / No attached file");
-          }
-          pub_list.append(list_item);
-        };
-
-        //  Passer à l'objet de stockage suivant
-        cursor.continue();
-
-        // Ce compteur sert seulement à créer des identifiants distincts
-        i++;
-      } else {
-        console.log("No more entries");
-      }
-    };
-  }
-
-  function newViewerFrame() {
-    var viewer = $('#pub-viewer');
-    viewer.empty();
-    var iframe = $('<iframe />');
-    viewer.append(iframe);
-    return iframe;
-  }
-
-  function setInViewer(key) {
-    console.log("setInViewer:", arguments);
-    key = Number(key);
-    if (key == current_view_pub_key)
-      return;
-
-    current_view_pub_key = key;
-
-    var store = getObjectStore(DB_STORE_NAME, 'readonly');
-    getBlob(key, store, function(blob) {
-      console.log("setInViewer blob:", blob);
-      var iframe = newViewerFrame();
-
-      // Il n'est pas possible de définir un lien direct vers 
-      // le blob pour fournir un moyen de le télécharger directement. 
-      if (blob.type == 'text/html') {
-        var reader = new FileReader();
-        reader.onload = (function(evt) {
-          var html = evt.target.result;
-          iframe.load(function() {
-            $(this).contents().find('html').html(html);
-          });
-        });
-        reader.readAsText(blob);
-      } else if (blob.type.indexOf('image/') == 0) {
-        iframe.load(function() {
-          var img_id = 'image-' + key;
-          var img = $('<img id="' + img_id + '"/>');
-          $(this).contents().find('body').html(img);
-          var obj_url = window.URL.createObjectURL(blob);
-          $(this).contents().find('#' + img_id).attr('src', obj_url);
-          window.URL.revokeObjectURL(obj_url);
-        });
-      } else if (blob.type == 'application/pdf') {
-        $('*').css('cursor', 'wait');
-        var obj_url = window.URL.createObjectURL(blob);
-        iframe.load(function() {
-          $('*').css('cursor', 'auto');
-        });
-        iframe.attr('src', obj_url);
-        window.URL.revokeObjectURL(obj_url);
-      } else {
-        iframe.load(function() {
-          $(this).contents().find('body').html("No view available");
-        });
-      }
-
-    });
-  }
-
-  /**
-   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
-   * @paramètre {string} (chaîne de caractères) title (titre)
-   * @paramètre {number} (nombre) year (année)
-   * @paramètre {string} (chaîne de caractères) url : l'URL de l'image à télécharger et stocker sur le pc
-   *   IndexedDB database. La ressource derrière cette URL assujettie à
-   *   "Same origin policy", donc pour que cette méthode fonctionne, l'URL doit venir de
-   *   la même origine que le site web/l'application sur lequel le code est déployé.
-   */
-  function addPublicationFromUrl(biblioid, title, year, url) {
-    console.log("addPublicationFromUrl:", arguments);
-
-    var xhr = new XMLHttpRequest();
-    xhr.open('GET', url, true);
-    //  Définir le type de réponse recherché à "blob" 
-    // http://www.w3.org/TR/XMLHttpRequest2/#the-response-attribute
-    xhr.responseType = 'blob';
-    xhr.onload = function (evt) {
-                           if (xhr.status == 200) {
-                             console.log("Blob retrieved");
-                             var blob = xhr.response;
-                             console.log("Blob:", blob);
-                             addPublication(biblioid, title, year, blob);
-                           } else {
-                             console.error("addPublicationFromUrl error:",
-                                           xhr.responseText, xhr.status);
-                           }
-                         };
-    xhr.send();
-
-    // Nous ne pouvons pas utiliser jQuery ici car, à partir de jQuery 1.8.3, 
-    // le nouveau "blob" responseType n'est pas géré.
-    // http://bugs.jquery.com/ticket/11461
-    // http://bugs.jquery.com/ticket/7248
-    // $.ajax({
-    //   url: url,
-    //   type: 'GET',
-    //   xhrFields: { responseType: 'blob' },
-    //   success: function(data, textStatus, jqXHR) {
-    //     console.log("Blob retrieved");
-    //     console.log("Blob:", data);
-    //     // addPublication(biblioid, title, year, data);
-    //   },
-    //   error: function(jqXHR, textStatus, errorThrown) {
-    //     console.error(errorThrown);
-    //     displayActionFailure("Error during blob retrieval");
-    //   }
-    // });
-  }
-
-  /**
-   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
-   * @paramètre {string} (chaîne de caractères) title (titre)
-   * @paramètre {number} (nombre) year (année)
-   * @paramètre {Blob=} blob
-   */
-  function addPublication(biblioid, title, year, blob) {
-    console.log("addPublication arguments:", arguments);
-    var obj = { biblioid: biblioid, title: title, year: year };
-    if (typeof blob != 'undefined')
-      obj.blob = blob;
-
-    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
-    var req;
-    try {
-      req = store.add(obj);
-    } catch (e) {
-      if (e.name == 'DataCloneError')
-        displayActionFailure("This engine doesn't know how to clone a Blob, " +
-                             "use Firefox");
-      throw e;
-    }
-    req.onsuccess = function (evt) {
-      console.log("Insertion in DB successful");
-      displayActionSuccess();
-      displayPubList(store);
-    };
-    req.onerror = function() {
-      console.error("addPublication error", this.error);
-      displayActionFailure(this.error);
-    };
-  }
-
-  /**
-   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
-   */
-  function deletePublicationFromBib(biblioid) {
-    console.log("deletePublication:", arguments);
-    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
-    var req = store.index('biblioid');
-    req.get(biblioid).onsuccess = function(evt) {
-      if (typeof evt.target.result == 'undefined') {
-        displayActionFailure("No matching record found");
-        return;
-      }
-      deletePublication(evt.target.result.id, store);
-    };
-    req.onerror = function (evt) {
-      console.error("deletePublicationFromBib:", evt.target.errorCode);
-    };
-  }
-
-  /**
-   * @paramètre {number} (nombre) key (clé)
-   * @paramètre {IDBObjectStore=} store (objet de stockage)
-   */
-  function deletePublication(key, store) {
-    console.log("deletePublication:", arguments);
-
-    if (typeof store == 'undefined')
-      store = getObjectStore(DB_STORE_NAME, 'readwrite');
-
-    // Selon les spécifications http://www.w3.org/TR/IndexedDB/#object-store-deletion-operation
-    // le résultat de l'objet de stockage, l'algorithme de l'opération de suppression est
-    // "undefined" (indéfini), donc il n'est pas possible de savoir si certains enregistrements
-    // ont été effectivement supprimés en lisant le résultat de la requête.
-    var req = store.get(key);
-    req.onsuccess = function(evt) {
-      var record = evt.target.result;
-      console.log("record:", record);
-      if (typeof record == 'undefined') {
-        displayActionFailure("No matching record found");
-        return;
-      }
-      // Attention:  La même clé utilisée pour la création doit être transmise pour 
-      // la suppression.  Si la clé était un nombre pour la création, elle doit
-      // être un nombre pour la suppression.
-      req = store.delete(key);
-      req.onsuccess = function(evt) {
-        console.log("evt:", evt);
-        console.log("evt.target:", evt.target);
-        console.log("evt.target.result:", evt.target.result);
-        console.log("delete successful");
-        displayActionSuccess("Deletion successful");
-        displayPubList(store);
-      };
-      req.onerror = function (evt) {
-        console.error("deletePublication:", evt.target.errorCode);
-      };
-    };
-    req.onerror = function (evt) {
-      console.error("deletePublication:", evt.target.errorCode);
-      };
-  }
-
-  function displayActionSuccess(msg) {
-    msg = typeof msg != 'undefined' ? "Success: " + msg : "Success";
-    $('#msg').html('<span class="action-success">' + msg + '</span>');
-  }
-  function displayActionFailure(msg) {
-    msg = typeof msg != 'undefined' ? "Failure: " + msg : "Failure";
-    $('#msg').html('<span class="action-failure">' + msg + '</span>');
-  }
-  function resetActionStatus() {
-    console.log("resetActionStatus ...");
-    $('#msg').empty();
-    console.log("resetActionStatus DONE");
-  }
-
-  function addEventListeners() {
-    console.log("addEventListeners");
-
-    $('#register-form-reset').click(function(evt) {
-      resetActionStatus();
-    });
-
-    $('#add-button').click(function(evt) {
-      console.log("add ...");
-      var title = $('#pub-title').val();
-      var biblioid = $('#pub-biblioid').val();
-      if (!title || !biblioid) {
-        displayActionFailure("Required field(s) missing");
-        return;
-      }
-      var year = $('#pub-year').val();
-      if (year != '') {
-        // Le mieux est d'utiliser Number.isInteger si le moteur a EcmaScript 6
-        if (isNaN(year))  {
-          displayActionFailure("Invalid year");
-          return;
-        }
-        year = Number(year);
-      } else {
-        year = null;
-      }
-
-      var file_input = $('#pub-file');
-      var selected_file = file_input.get(0).files[0];
-      console.log("selected_file:", selected_file);
-      // Garder une référence sur la façon de réinitialiser l'entrée du fichier dans l'interface
-      // utilisateur une fois que nous avons sa valeur, mais au lieu de faire cela nous utiliserons
-      // plutôt un type "reset" entré dans le formulaire HTML .
-      // file_input.val(null);
-      var file_url = $('#pub-file-url').val();
-      if (selected_file) {
-        addPublication(biblioid, title, year, selected_file);
-      } else if (file_url) {
-        addPublicationFromUrl(biblioid, title, year, file_url);
-      } else {
-        addPublication(biblioid, title, year);
-      }
-
-    });
-
-    $('#delete-button').click(function(evt) {
-      console.log("delete ...");
-      var biblioid = $('#pub-biblioid-to-delete').val();
-      var key = $('#key-to-delete').val();
-
-      if (biblioid != '') {
-        deletePublicationFromBib(biblioid);
-      } else if (key != '') {
-        // Le mieux est d'utiliser Number.isInteger si le moteur a EcmaScript 6
-        if (key == '' || isNaN(key))  {
-          displayActionFailure("Invalid key");
-          return;
-        }
-        key = Number(key);
-        deletePublication(key);
-      }
-    });
-
-    $('#clear-store-button').click(function(evt) {
-      clearObjectStore();
-    });
-
-    var search_button = $('#search-list-button');
-    search_button.click(function(evt) {
-      displayPubList();
-    });
-
-  }
-
-  openDb();
-  addEventListeners();
-
-})(); // Immediately-Invoked Function Expression (IIFE)
- -

{{ LiveSampleLink('Full_IndexedDB_example', "Test the online live demo") }}

- -

Voir aussi

- -

Référence :

- - - -

Tutoriels :

- - - -

Bibliothèques :

- - diff --git a/files/fr/web/api/audiocontext/creategain/index.html b/files/fr/web/api/audiocontext/creategain/index.html deleted file mode 100644 index b9142efffc..0000000000 --- a/files/fr/web/api/audiocontext/creategain/index.html +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: AudioContext.createGain() -slug: Web/API/AudioContext/createGain -tags: - - API - - Audio - - AudioContext - - Contrôle du volume - - Méthode - - Son - - Volume - - Web Audio - - createGain -translation_of: Web/API/BaseAudioContext/createGain ---- -

{{ APIRef("Web Audio API") }}

- -
-

La méthode createGain de l'interface {{ domxref("AudioContext") }} crée un {{ domxref("GainNode") }} qui peut être utilisé pour contrôler le volume global du graphe audio.

-
- -

Syntaxe

- -
var contexteAudio = new AudioContext();
-var gainNode = contexteAudio.createGain();
- -

Retourne

- -

Un {{domxref("GainNode")}} qui prend en entrée une ou plusieurs sources audio et en sortie un son dont le volume a été ajusté à un niveau indiqué par le paramètre de type a-rate {{domxref("GainNode.gain")}}.

- -

Exemple

- -

L'exemple suivant montre l'utilisation d'un {{domxref("AudioContext")}} pour créer un {{ domxref("GainNode") }}, qui sert à activer et désactiver le son au clic d'un bouton, en changeant la valeur de la propriété gain.
-
- L'extrait de code ci-dessous ne fonctionne pas tel quel - pour un exemple complet qui fonctionne, consulter la démo Voice-change-O-matic (et son code source.)

- -
<div>
-  <button class="boutonson">Mute button</button>
-</div>
- -
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
-var gainNode = contexteAudio.createGain();
-var boutonSon = document.querySelector('.boutonson'),
-    source;
-
-if (navigator.getUserMedia) {
-  navigator.getUserMedia (
-    // contraintes - cette app nécessite seulement l'audio
-    {
-       audio: true
-    },
-    // fonction de rappel en cas de succès
-    function (flux) {
-        source = contexteAudio.createMediaStreamSource(flux);
-    },
-    // fonction de rappel en cas d'erreur
-    function (erreur) {
-        console.log("L'erreur à la noix suivante vient de se produire : " + erreur);
-    });
-}
-else {
-    console.log("getUserMedia n'est pas supporté par votre navigateur !");
-}
-
-source.connect(gainNode);
-gainNode.connect(contexteAudio.destination);
-
-  ...
-
-boutonSon.onclick = couperSon;
-
-function couperSon () {
-    if (boutonSon.id == "") {
-        gainNode.gain.value = 0;
-        boutonSon.id = "activated";
-        boutonSon.innerHTML = "Activer le son";
-    }
-    else {
-        gainNode.gain.value = 1;
-        boutonSon.id = "";
-        boutonSon.innerHTML = "Couper le son";
-    }
-}
- -

Spécification

- - - - - - - - - - - - - - -
SpécificationStatusCommentaire
{{SpecName('Web Audio API', '#widl-AudioContext-createGain-GainNode', 'createGain()')}}{{Spec2('Web Audio API')}} 
- -

Compatibilité navigateur

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
- 22 (unprefixed)
6.0{{property_prefix("webkit")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Support basique{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
-
- -

 

- -

Voir aussi

- - diff --git a/files/fr/web/api/baseaudiocontext/creategain/index.html b/files/fr/web/api/baseaudiocontext/creategain/index.html new file mode 100644 index 0000000000..b9142efffc --- /dev/null +++ b/files/fr/web/api/baseaudiocontext/creategain/index.html @@ -0,0 +1,167 @@ +--- +title: AudioContext.createGain() +slug: Web/API/AudioContext/createGain +tags: + - API + - Audio + - AudioContext + - Contrôle du volume + - Méthode + - Son + - Volume + - Web Audio + - createGain +translation_of: Web/API/BaseAudioContext/createGain +--- +

{{ APIRef("Web Audio API") }}

+ +
+

La méthode createGain de l'interface {{ domxref("AudioContext") }} crée un {{ domxref("GainNode") }} qui peut être utilisé pour contrôler le volume global du graphe audio.

+
+ +

Syntaxe

+ +
var contexteAudio = new AudioContext();
+var gainNode = contexteAudio.createGain();
+ +

Retourne

+ +

Un {{domxref("GainNode")}} qui prend en entrée une ou plusieurs sources audio et en sortie un son dont le volume a été ajusté à un niveau indiqué par le paramètre de type a-rate {{domxref("GainNode.gain")}}.

+ +

Exemple

+ +

L'exemple suivant montre l'utilisation d'un {{domxref("AudioContext")}} pour créer un {{ domxref("GainNode") }}, qui sert à activer et désactiver le son au clic d'un bouton, en changeant la valeur de la propriété gain.
+
+ L'extrait de code ci-dessous ne fonctionne pas tel quel - pour un exemple complet qui fonctionne, consulter la démo Voice-change-O-matic (et son code source.)

+ +
<div>
+  <button class="boutonson">Mute button</button>
+</div>
+ +
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
+var gainNode = contexteAudio.createGain();
+var boutonSon = document.querySelector('.boutonson'),
+    source;
+
+if (navigator.getUserMedia) {
+  navigator.getUserMedia (
+    // contraintes - cette app nécessite seulement l'audio
+    {
+       audio: true
+    },
+    // fonction de rappel en cas de succès
+    function (flux) {
+        source = contexteAudio.createMediaStreamSource(flux);
+    },
+    // fonction de rappel en cas d'erreur
+    function (erreur) {
+        console.log("L'erreur à la noix suivante vient de se produire : " + erreur);
+    });
+}
+else {
+    console.log("getUserMedia n'est pas supporté par votre navigateur !");
+}
+
+source.connect(gainNode);
+gainNode.connect(contexteAudio.destination);
+
+  ...
+
+boutonSon.onclick = couperSon;
+
+function couperSon () {
+    if (boutonSon.id == "") {
+        gainNode.gain.value = 0;
+        boutonSon.id = "activated";
+        boutonSon.innerHTML = "Activer le son";
+    }
+    else {
+        gainNode.gain.value = 1;
+        boutonSon.id = "";
+        boutonSon.innerHTML = "Couper le son";
+    }
+}
+ +

Spécification

+ + + + + + + + + + + + + + +
SpécificationStatusCommentaire
{{SpecName('Web Audio API', '#widl-AudioContext-createGain-GainNode', 'createGain()')}}{{Spec2('Web Audio API')}} 
+ +

Compatibilité navigateur

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique{{CompatChrome(10.0)}}{{property_prefix("webkit")}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(25.0)}} {{CompatNo}}15.0{{property_prefix("webkit")}}
+ 22 (unprefixed)
6.0{{property_prefix("webkit")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Support basique{{CompatUnknown}}{{CompatVersionUnknown}}26.01.2{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}33.0
+
+ +

 

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/canvas_api/a_basic_ray-caster/index.html b/files/fr/web/api/canvas_api/a_basic_ray-caster/index.html new file mode 100644 index 0000000000..b729a42222 --- /dev/null +++ b/files/fr/web/api/canvas_api/a_basic_ray-caster/index.html @@ -0,0 +1,52 @@ +--- +title: Un raycaster basique avec canvas +slug: Un_raycaster_basique_avec_canvas +tags: + - 3D + - Canvas + - Exemples + - Graphismes + - Web +translation_of: Web/API/Canvas_API/A_basic_ray-caster +--- +

{{CanvasSidebar}}

+ +

Cet article fournit un exemple intéressant concret d'utilisation de l'élément {{HTMLElement("canvas")}} pour faire un logiciel rendant un environnement 3D à l'aide de la projection de rayons.

+ +

{{EmbedGHLiveSample("canvas-raycaster/index.html", 900, 300)}}

+ +

Ouvrir une nouvelle fenêtre

+ +

Pourquoi ?

+ +

Après avoir réalisé, à mon plus grand plaisir, que le sympathique élément <canvas> dont j'avais entendu parler (en), non seulement allait être supporté par Firefox, mais était déjà supporté dans la version actuelle de Safari, je me devais de tenter une petite expérience.

+ +

La présentation et le tutoriel canvas que j'ai trouvé ici sur MDC sont excellents, mais personne n'a encore rien écrit sur l'animation, j'ai donc pensé porter un "raycaster" basique sur lequel j'avais travaillé il y a quelque temps, et voir quelle sorte de performance nous pouvions attendre d'un tampon de pixel écrit en JavaScript.

+ +

Comment ?

+ +

L'idée de base est d'employer {{domxref("window.setInterval","setInterval()")}} à intervalle régulier, correspondant au taux de trame désiré. Après chaque intervalle, une fonction de mise à jour redessine le canvas, affichant la vue actuelle. Je sais que j'aurais pu commencer avec un exemple plus simple, mais je suis sûr que le tutoriel canvas va y conduire, et je voulais voir si je pouvais y arriver.

+ +

Donc, à chaque mise à jour, le projeteur de rayons vérifie si vous avez pressé une touche récemment, pour s'éviter des calculs si vous êtes immobile. S'il y a eu un mouvement, le canvas est effacé, le ciel et le sol sont dessinés, la position et l'orientation de la caméra corrigées et les rayons projetés. Lorsque les rayons rencontrent un mur, ils créent une bandelette verticale de canvas de la couleur du mur qu'ils ont touché, mélangée à une nuance plus sombre de cette couleur en fonction de la distance au mur. La hauteur de la bandelette est modulée par la distance entre le mur et la caméra, et la bandelette est dessinée centrée sur la ligne d'horizon.

+ +

Le code que j'ai obtenu est l'amalgame des chapitres "raycaster" d'un vieux livre d'André Lamothe Tricks of the Game Programming Gurus (ISBN: 0672305070), et d'un Projeteur de rayons Java que j'ai trouvé en ligne, modifié par mon besoin compulsif de tout renommer pour que cela ait un sens pour moi, et pour tout le bricolage nécessaire pour que l'ensemble fonctionne bien.

+ +

Résultats

+ +

Le canvas dans Safari 2.0.1 a étonnement bien marché. Avec le facteur de bloc-itude poussé pour rendre des bandelettes de 8 pixels de largeur, j'arrive à faire tourner une fenêtre en 320 x 240 à 24 images/seconde sur mon Apple mini. Firefox 1.5 Beta 1 est encore plus rapide, j'obtiens 24 images/seconde sur la fenêtre de 320 x 240 avec des bandelettes de 4 pixels. Pas vraiment un nouveau membre de la famille "ID software", mais plutôt décent si l'on considère qu'il s'agit d'un environnement entièrement interprété, et que je n'ai eu à m'inquiéter ni de l'allocation mémoire, ni des modes vidéos, ni de coder les routines centrales en assembleur, ni de quoi que soit d'autre. Le code cherche à être très efficace, consultant un tableau de valeurs précalculées, mais je ne suis pas un dieu de l'optimisation, donc les choses pourraient probablement être écrites plus rapidement.

+ +

De plus, il laisse beaucoup à désirer en tant que tentative d'une espèce de moteur de jeu— il n'y a pas de textures sur les murs, pas de sprites, pas de portes, même pas de téléporteurs pour passer à un autre niveau. Je suis cependant presque certain que toutes ces choses peuvent être intégrées pourvu qu'on en prenne le temps. L' API de canvas supporte la copie d'images par pixel, donc les textures semblent possibles. Je laisse ça pour un autre article, probablement d'une autre personne. =)

+ +

Le projeteur de rayons (ray-caster)

+ +

De sympathiques personnes ici ont copié mes fichiers manuellement pour que vous puissiez y jeter un coup d'oeil, et pour votre plaisir, j'ai posté le contenu de chacun des fichiers sous la forme de listings de code (voir plus bas).

+ +

Vous y voici donc, lancez Safari 1.3+, Firefox 1.5+ ou un autre navigateur supportant l'élément <canvas> et amusez-vous!
+
+ input.js | Level.js | Player.js | RayCaster.html | RayCaster.js | trace.css | trace.js

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/canvas_api/manipulating_video_using_canvas/index.html b/files/fr/web/api/canvas_api/manipulating_video_using_canvas/index.html new file mode 100644 index 0000000000..8a95281220 --- /dev/null +++ b/files/fr/web/api/canvas_api/manipulating_video_using_canvas/index.html @@ -0,0 +1,158 @@ +--- +title: Manipulation vidéo avec la balise canvas +slug: HTML/Manipulating_video_using_canvas +tags: + - Canvas + - Video +translation_of: Web/API/Canvas_API/Manipulating_video_using_canvas +--- +

{{CanvasSidebar}}

+ +

En combinant les possibilités de l'élément video avec celles de l'élément canvas, vous pouvez manipuler les données vidéos en temps réel, et y incorporer une variété d'effets visuels. Ce tutoriel explique comment réaliser un travail d'incrustation "chroma-keying" (fond vert) en utilisant JavaScript.

+ +

Voir l'exemple.

+ +

Le contenu du document

+ +

Le document XHTML utilisé pour rendre ce contenu est montré ci-dessous :

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <style>
+      body {
+        background: black;
+        color:#CCCCCC;
+      }
+      #c2 {
+        background-image: url(foo.png);
+        background-repeat: no-repeat;
+      }
+      div {
+        float: left;
+        border :1px solid #444444;
+        padding:10px;
+        margin: 10px;
+        background:#3B3B3B;
+      }
+    </style>
+    <script type="text/javascript" src="main.js"></script>
+  </head>
+
+  <body onload="processor.doLoad()">
+    <div>
+      <video id="video" src="video.ogv" controls="true"/>
+    </div>
+    <div>
+      <canvas id="c1" width="160" height="96"></canvas>
+      <canvas id="c2" width="160" height="96"></canvas>
+    </div>
+  </body>
+</html>
+ +

Les éléments clés à retenir sont :

+ +
    +
  1. Ce document dispose de deux balises canvas, avec les IDs c1 et c2 : l'élément c1 est utilisé pour afficher l'image courante de la vidéo originale, pendant que c2 est utilisé pour afficher la vidéo après application de l'effet d'incrustation ; c2 est préchargé avec la même image que celle qui sera utilisée pour le remplacement du fond vert.
  2. +
  3. Le code JavaScript est importé dans le script nommé main.js ; Ce script utilise les fonctionnalités propres à la version 1.8, aussi cette version est précisée, à la ligne 22, quand le script est importé.
  4. +
  5. Quand le document se charge, la méthode processor.doLoad(), dans le script main.js, est exécutée.
  6. +
+ +

Le code JavaScript

+ +

Le code JavaScript main.js est composé de trois méthodes.

+ +

Initialisation du lecteur avec effet d'incrustation (chroma-key)

+ +

La métode doLoad() est appelée quand le document XHTML se charge. Cette méthode sert à initialiser chaque variable nécessaire au code traitant l'incrustation (chroma-key), ainsi qu'à associer un écouteur d'évènement qui détectera le moment où l'utilisateur lancera la vidéo.

+ +
var processor;
+
+  processor.doLoad = function doLoad() {
+    this.video = document.getElementById('video');
+    this.c1 = document.getElementById('c1');
+    this.ctx1 = this.c1.getContext('2d');
+    this.c2 = document.getElementById('c2');
+    this.ctx2 = this.c2.getContext('2d');
+    let self = this;
+    this.video.addEventListener('play', function() {
+        self.width = self.video.videoWidth / 2;
+        self.height = self.video.videoHeight / 2;
+        self.timerCallback();
+      }, false);
+  },
+ +

Le code récupère les références aux élément XHTML qui nous intéressent, à savoir l'élément video et les deux éléments canvas. Il définit également les contextes graphique de chacun des éléments canvas. Ce sera utile pour la suite, lorsque nous créerons l'effet d'incrustation.

+ +

Ensuite, l'écouteur d'évènement addEventListener() est appelé sur l'élément video pour détecter le moment où l'utilisateur va cliquer sur le bouton de lecture. Dès lors, le code récupère la hauteur et la largeur de la vidéo, que l'on divise par deux (nécessaire pour plus tard effectuer l'effet d'incrustation), puis on appelle la méthode timerCallback() pour surveiller l'avancement de la vidéo et appliquer l'effet visuel.

+ +

Le rappel du minuteur

+ +

Le rappel du minuteur est initialisé lorsque la vidéo commence à jouer (lorsque l'événement "play" se produit), puis est chargé d'établir le rappel périodique afin de lancer l'effet d'ajustement pour chaque "frame".

+ +
processor.timerCallback = function timerCallback() {
+    if (this.video.paused || this.video.ended) {
+      return;
+    }
+    this.computeFrame();
+    let self = this;
+    setTimeout(function() {
+        self.timerCallback();
+      }, 0);
+  },
+ +

La première chose que le rappel fait est de vérifier si la vidéo est en train de jouer. Si ce n'est pas le cas, le rappel revient immédiatement sans rien faire.

+ +

Ensuite, il appelle la méthode computeFrame(), qui effectue l'effet "chroma-keying" sur l'image vidéo en cours.

+ +

La dernière chose que fait le rappel est d'appeler setTimeout() pour programmer  un nouvel appel. En réalité, vous planifierez probablement cela en fonction de la connaissance de la fréquence d'images de la vidéo.

+ +

Manipulation des données des images vidéo

+ +

La méthode computeFrame() , présentée ci-dessous, est en charge de récupérer les données de chaque image et d'y appliquer l'effet d'incrustation.

+ +
processor.computeFrame = function computeFrame() {
+    this.ctx1.drawImage(this.video, 0, 0, this.width, this.height);
+    let frame = this.ctx1.getImageData(0, 0, this.width, this.height);
+    let l = frame.data.length / 4;
+
+    for (let i = 0; i < l; i++) {
+      let r = frame.data[i * 4 + 0];
+      let g = frame.data[i * 4 + 1];
+      let b = frame.data[i * 4 + 2];
+      if (g > 100 && r > 100 && b < 43)
+        frame.data[i * 4 + 3] = 0;
+    }
+    this.ctx2.putImageData(frame, 0, 0);
+    return;
+  }
+ +

²

+ +

Quand la routine est appelée, l'élément vidéo affiche les données de la plus récente image de la vidéo, ce qui ressemble à :

+ +

video.png

+ +

À la seconde ligne, cette image est copiée dans le contexte graphique ctx1 du premier élément canvas, en spécifiant ses hauteur et largeur, définies plus tôt (soit, réduites de moitié). Notez que c'est très simplement que vous passez les données de l'élément vidéo à afficher dans le contexte graphique avec la méthode drawImage(). Voici ce que cela donne :

+ +

sourcectx.png

+ +

La ligne 3 extrait une copie des données graphiques brutes pour l'image courante de la vidéo en appelant la méthode getImageData() sur le premier contexte. Cela fournit des données brutes d'image pixel 32 bits que nous pouvons ensuite manipuler. La ligne 4 calcule le nombre de pixels de l'image en divisant la taille totale des données d'image du cadre par quatre.

+ +

La boucle for, qui commence à la ligne 6, parcourt les pixels du cadre  en extrayant les valeurs rouges, vertes et bleues de chaque pixel et compare les valeurs aux nombres prédéterminés utilisés pour détecter l'écran vert qui sera remplacé par l'image de fond importée de foo.png.

+ +

Chaque pixel dans les données d'image, qui se trouve dans les paramètres considérés comme faisant partie de l'écran vert, a sa valeur alpha remplacée par un zéro, indiquant que le pixel est entièrement transparent. En conséquence, l'image finale a toute la zone d'écran vert 100% transparente, de sorte que lorsqu'elle est dessinée dans le contexte de destination à la ligne 13, le résultat est une superposition sur la toile de fond statique.

+ +

L'image résultante ressemble à ceci :

+ +

output.png

+ +

Cela se fait de façon répétée au fur et à mesure que la vidéo est lue, de sorte que, image après image, la vidéo est traitée et affichée avec l'effet de chrominance.

+ +

Voyez cet exemple réel.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/canvas_api/tutorial/advanced_animations/index.html b/files/fr/web/api/canvas_api/tutorial/advanced_animations/index.html new file mode 100644 index 0000000000..fadf515090 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/advanced_animations/index.html @@ -0,0 +1,376 @@ +--- +title: Animations avancées +slug: Web/API/Canvas_API/Tutoriel_canvas/Advanced_animations +translation_of: Web/API/Canvas_API/Tutorial/Advanced_animations +--- +
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Animations_basiques", "Tutoriel_canvas/Pixel_manipulation_with_canvas")}}
+ +
+

Dans le dernier chapitre, nous avons réalisé des animations basiques et avons appris comment faire en sorte que les éléments se déplacent. Dans cette partie, nous allons regarder de prêt le mouvement lui-même et ajouter un peu de physique afin de réaliser nos animations avancées.

+
+ +

Dessinons une balle

+ +

Nous allons utiliser une balle pour étudier les animations. Ainsi, Commençons par dessiner notre balle au sein du canevas.

+ +
<canvas id="canvas" width="600" height="300"></canvas>
+
+ +

Comme d'habitude, nous avons tout d'abord besoin de dessiner le contexte. Pour dessiner la balle, nous allons créer un objet ball contenant des propriétés et une méthode draw() afin de la placer sur le canevas.

+ +
var canvas = document.getElementById('canvas');
+var ctx = canvas.getContext('2d');
+
+var ball = {
+  x: 100,
+  y: 100,
+  radius: 25,
+  color: 'blue',
+  draw: function() {
+    ctx.beginPath();
+    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
+    ctx.closePath();
+    ctx.fillStyle = this.color;
+    ctx.fill();
+  }
+};
+
+ball.draw();
+ +

Il n'y a rien de spécial ici, la balle est pour le moment un simple cercle qui est dessiné à l'aide de la méthode {{domxref("CanvasRenderingContext2D.arc()", "arc()")}}.

+ +

Ajout de la vitesse

+ +

Maintenant que nous avons une balle, nous sommes prêts à ajouter une animation simple comme nous avons pu le voir dans le dernier chapitre de ce tutoriel. Une fois encore, {{domxref("window.requestAnimationFrame()")}} nous aide à contrôler l'animation. Il est possible de déplacer la balle en ajoutant un vecteur de vitesse à la position. Pour chaque "frame", nous avons aussi {{domxref("CanvasRenderingContext2D.clearRect", "clear", "", 1)}} (nettoyé) les canvas pour supprimer les anciens cercles des "frames" précédents.

+ +
var canvas = document.getElementById('canvas');
+var ctx = canvas.getContext('2d');
+var raf;
+
+var ball = {
+  x: 100,
+  y: 100,
+  vx: 5,
+  vy: 2,
+  radius: 25,
+  color: 'blue',
+  draw: function() {
+    ctx.beginPath();
+    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
+    ctx.closePath();
+    ctx.fillStyle = this.color;
+    ctx.fill();
+  }
+};
+
+function draw() {
+  ctx.clearRect(0,0, canvas.width, canvas.height);
+  ball.draw();
+  ball.x += ball.vx;
+  ball.y += ball.vy;
+  raf = window.requestAnimationFrame(draw);
+}
+
+canvas.addEventListener('mouseover', function(e){
+  raf = window.requestAnimationFrame(draw);
+});
+
+canvas.addEventListener("mouseout",function(e){
+  window.cancelAnimationFrame(raf);
+});
+
+ball.draw();
+
+ +

Limites

+ +

Si aucun test de collision n'est effectué, notre balle sort hors du canevas rapidement. Nous avons ici besoin de vérifier si les positions x et y de la balle sont hors des dimensions du canevas et si c'est le cas, d'inverser la direction des vecteurs de vitesse. Pour faire cela, nous ajoutons les vérifications suivantes à la méthode draw :

+ +
if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {
+  ball.vy = -ball.vy;
+}
+if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {
+  ball.vx = -ball.vx;
+}
+ +

Première demo

+ +

Voyons voir ce que cela donne. Déplacez votre souris dans le canevas pour commencer l'animation :

+ + + +

{{EmbedLiveSample("Première_demo", "610", "310")}}

+ +

Accélération

+ +

Afin d'obtenir un mouvement plus réel, vous pouvez jouer sur la vitesse, par exemple :

+ +
ball.vy *= .99;
+ball.vy += .25;
+ +

Ceci ralentit la vitesse verticale à chaque rendu d'image de sorte que la balle va rebondir de moins en moins haut.

+ + + +

{{EmbedLiveSample("Second_demo", "610", "310")}}

+ +

Effet de traînée

+ +

Jusqu'à maintenant, nous avons utilisé la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect")}} pour effacer les images précédentes. En la remplaçant par la méthode {{domxref("CanvasRenderingContext2D.fillRect", "fillRect")}} et en utilisant un remplissage semi-transparent, on obtient un effet de traînée.

+ +
ctx.fillStyle = 'rgba(255,255,255,0.3)';
+ctx.fillRect(0,0,canvas.width,canvas.height);
+ + + +

{{EmbedLiveSample("Third_demo", "610", "310")}}

+ +

Ajout d'un contrôle de souris

+ +

Afin d'obtenir quelques contrôles sur la balle, nous pouvons faire suivre notre souris en utilisant l'événement mousemove, par exemple. L'événement click relâche la balle et la laisse rebondir à nouveau.

+ + + +
var canvas = document.getElementById('canvas');
+var ctx = canvas.getContext('2d');
+var raf;
+var running = false;
+
+var ball = {
+  x: 100,
+  y: 100,
+  vx: 5,
+  vy: 1,
+  radius: 25,
+  color: 'blue',
+  draw: function() {
+    ctx.beginPath();
+    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
+    ctx.closePath();
+    ctx.fillStyle = this.color;
+    ctx.fill();
+  }
+};
+
+function clear() {
+  ctx.fillStyle = 'rgba(255,255,255,0.3)';
+  ctx.fillRect(0,0,canvas.width,canvas.height);
+}
+
+function draw() {
+  clear();
+  ball.draw();
+  ball.x += ball.vx;
+  ball.y += ball.vy;
+
+  if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {
+    ball.vy = -ball.vy;
+  }
+  if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {
+    ball.vx = -ball.vx;
+  }
+
+  raf = window.requestAnimationFrame(draw);
+}
+
+canvas.addEventListener('mousemove', function(e){
+  if (!running) {
+    clear();
+    ball.x = e.clientX;
+    ball.y = e.clientY;
+    ball.draw();
+  }
+});
+
+canvas.addEventListener("click",function(e){
+  if (!running) {
+    raf = window.requestAnimationFrame(draw);
+    running = true;
+  }
+});
+
+canvas.addEventListener("mouseout",function(e){
+  window.cancelAnimationFrame(raf);
+  running = false;
+});
+
+ball.draw();
+
+ +

Déplacez la balle en utilisant votre souris et relâchez-la avec un click.

+ +

{{EmbedLiveSample("Ajout_d'un_contrôle_de_souris", "610", "310")}}

+ +

Casse-briques

+ +

Ce petit chapitre explique seulement quelques techniques pour créer des animations avancées. Il en existe bien davantage ! Que diriez-vous d'ajouter une raquette, des briques et de transformer cette démo en une partie de casse-briques ? Consultez notre zone de développement de jeux pour plus d'articles liés aux jeux.

+ +

Voir aussi

+ + + +

{{PreviousNext("Tutoriel_canvas/Animations_basiques", "Tutoriel_canvas/Pixel_manipulation_with_canvas")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html b/files/fr/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html new file mode 100644 index 0000000000..15eef37006 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/applying_styles_and_colors/index.html @@ -0,0 +1,719 @@ +--- +title: Ajout de styles et de couleurs +slug: Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs +tags: + - Canvas + - Couleurs + - Formes géométriques + - Graphismes + - Tutorial +translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +--- +
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Formes_géométriques", "Dessin_de_texte_avec_canvas")}}
+ +
+

Dans le chapitre sur les formes géométriques, nous avons utilisé les styles de lignes et de remplissage par défaut. Ici, nous allons explorer les options de canvas à notre disposition pour rendre nos dessins un peu plus attrayants. Vous apprendrez comment ajouter des couleurs différentes, des styles de ligne, des dégradés, des motifs et des ombres à vos dessins.

+
+ +

Les couleurs

+ +

Jusqu'à présent, nous avons seulement vu des méthodes sur le contexte de dessin. Si nous voulons appliquer des couleurs à une forme, il y a deux propriétés importantes que nous pouvons utiliser : fillStyle et strokeStyle .

+ +
+
{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle = color")}}
+
Définit le style utilisé lors du remplissage de formes.
+
{{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle = color")}}
+
Définit le style pour les contours des formes.
+
+ +

color est une chaîne représentant un CSS {{cssxref("<color>")}}, d'un objet gradient ou d'un objet motif. Nous allons examiner le gradient et la structure des objets plus tard. Par défaut, l'encadrement et la couleur de remplissage sont fixés sur noir (valeur #000000 de CSS color).

+ +
+

Remarque: Lorsque vous définissez strokeStyle et fillStyle, la nouvelle valeur devient la valeur par défaut pour toutes les formes en cours d'élaboration à partir de là. Pour chaque forme que vous voulez dans une couleur différente, vous aurez besoin de réaffecter fillStyle ou strokeStyle.

+
+ +

Les chaînes pour être valides, doivent être conforme à la spécification CSS {{cssxref("<color>")}}. Chacun des exemples suivants décrit la même couleur.

+ +
// Les valeurs possibles de fillStyle pour "orange"
+
+ctx.fillStyle = 'orange';
+ctx.fillStyle = '#FFA500';
+ctx.fillStyle = 'rgb(255, 165, 0)';
+ctx.fillStyle = 'rgba(255, 165, 0, 1)';
+ +

Un exemple fillStyle

+ +

Dans cet exemple, nous utilisons une nouvelle fois deux boucles for pour dessiner une grille de rectangles, chacun dans une couleur différente. L'image résultante devrait ressembler à la capture d'écran. Il n'y a rien de spectaculaire ici. Nous utilisons les deux variables i et j pour générer une couleur RVB unique pour chaque carré, et seulement modifier les valeurs rouges et vertes. Le canal bleu a une valeur fixe. En modifiant les canaux, vous pouvez générer toutes sortes de palettes. En augmentant les étapes, vous pouvez obtenir quelque chose qui ressemble à des palettes de couleurs que Photoshop utilise.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  for (var i = 0; i < 6; i++) {
+    for (var j = 0; j < 6; j++) {
+      ctx.fillStyle = 'rgb(' + Math.floor(255 - 42.5 * i) + ',' +
+                       Math.floor(255 - 42.5 * j) + ',0)';
+      ctx.fillRect(j * 25, i * 25, 25, 25);
+    }
+  }
+}
+ + + +

Le résultat ressemble à ceci:

+ +

{{EmbedLiveSample("A_fillStyle_example", 160, 160, "https://mdn.mozillademos.org/files/5417/Canvas_fillstyle.png")}}

+ +

Un exemple strokeStyle

+ +

Cet exemple est similaire à celui ci-dessus, mais utilise strokeStyle pour changer les couleurs des contours des formes. Nous utilisons la méthode arc() pour dessiner des cercles au lieu de carrés.

+ +
function draw() {
+    var ctx = document.getElementById('canvas').getContext('2d');
+    for (var i = 0; i < 6; i++) {
+      for (var j = 0; j < 6; j++) {
+        ctx.strokeStyle = 'rgb(0, ' + Math.floor(255 - 42.5 * i) + ', ' +
+                         Math.floor(255 - 42.5 * j) + ')';
+        ctx.beginPath();
+        ctx.arc(12.5 + j * 25, 12.5 + i * 25, 10, 0, Math.PI * 2, true);
+        ctx.stroke();
+      }
+    }
+  }
+ + + +

Le résultat ressemble à ceci :

+ +

{{EmbedLiveSample("A_strokeStyle_example", "180", "180", "https://mdn.mozillademos.org/files/253/Canvas_strokestyle.png")}}

+ +

Transparence

+ +

En plus de dessiner des formes opaques sur la toile, nous pouvons également dessiner des formes semi-transparentes (ou translucides). Cela se fait soit par le réglage de globalAlpha ou en attribuant une couleur semi-transparente à strokeStyle et/ou fillStyle.

+ +
+
{{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha = transparencyValue")}}
+
Applique la valeur de transparence spécifiée à toutes les formes futures tracées sur le Canvas. La valeur doit être comprise entre 0.0 (complètement transparent) à 1.0 (complètement opaque). Cette valeur est de 1,0 (complètement opaque) par défaut.
+
+ +

La propriété globalAlpha peut être utile si vous voulez dessiner un grand nombre de formes sur la toile avec la même transparence, mais sinon, il est généralement plus utile de définir la transparence sur les formes individuelles lors de la définition de leurs couleurs.

+ +

Parce que strokeStyle et fillStyle acceptent les valeurs de couleur rvba CSS, nous pouvons utiliser la notation suivante pour attribuer une couleur transparente.

+ +
//Affecter des couleurs transparentes pour dessiner et remplir le style
+
+ctx.strokeStyle = "rgba(255, 0, 0, .5)";
+ctx.fillStyle = "rgba(255, 0, 0, .5)";
+
+ +

La fonction rgba() (rvba) est similaire à la fonction rgb() (rvb) mais il a un paramètre supplémentaire. Le dernier paramètre définit la valeur de la transparence de cette couleur particulière. La plage valide est entre 0,0 (totalement transparent) et 1,0 (totalement opaque).

+ +

Un exemple globalAlpha

+ +

Dans cet exemple, nous allons dessiner un fond de quatre carrés de couleurs différentes. En plus de ceux-ci, nous allons dessiner un ensemble de cercles semi-transparents. globalAlpha est réglé à 0.2 et sera utilisé pour toutes les formes. Chaque étape de boucle for dessine un ensemble de cercles avec un rayon croissant. Le résultat final est un gradient radial. En superposant toujours plus de cercles, les uns au-dessus des autres, nous réduisons efficacement la transparence des cercles qui ont déjà été établis. En augmentant le pas et le nombre de cercles, l'arrière-plan devrait complètement disparaître du centre de l'image.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  // draw background
+  ctx.fillStyle = '#FD0';
+  ctx.fillRect(0, 0, 75, 75);
+  ctx.fillStyle = '#6C0';
+  ctx.fillRect(75, 0, 75, 75);
+  ctx.fillStyle = '#09F';
+  ctx.fillRect(0, 75, 75, 75);
+  ctx.fillStyle = '#F30';
+  ctx.fillRect(75, 75, 75, 75);
+  ctx.fillStyle = '#FFF';
+
+  // règle la valeur de transparence
+  ctx.globalAlpha = 0.2;
+
+  // Dessine des cercles semi-transparents
+  for (i = 0; i < 7; i++) {
+    ctx.beginPath();
+    ctx.arc(75, 75, 10 + 10 * i, 0, Math.PI * 2, true);
+    ctx.fill();
+  }
+}
+ + + +

{{EmbedLiveSample("A_globalAlpha_example", "180", "180", "https://mdn.mozillademos.org/files/232/Canvas_globalalpha.png")}}

+ +

Un exemple en utilisant rgba()

+ +

Dans ce deuxième exemple, nous faisons quelque chose de similaire, mais au lieu de dessiner des cercles, nous dessinons de petits rectangles à l'opacité croissante. L'utilisation de rgba() nous donne un peu plus de contrôle et de flexibilité.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Dessine le fond
+  ctx.fillStyle = 'rgb(255, 221, 0)';
+  ctx.fillRect(0, 0, 150, 37.5);
+  ctx.fillStyle = 'rgb(102, 204, 0)';
+  ctx.fillRect(0, 37.5, 150, 37.5);
+  ctx.fillStyle = 'rgb(0, 153, 255)';
+  ctx.fillRect(0, 75, 150, 37.5);
+  ctx.fillStyle = 'rgb(255, 51, 0)';
+  ctx.fillRect(0, 112.5, 150, 37.5);
+
+  // Dessine des rectangles semi-transparents
+  for (var i = 0; i < 10; i++) {
+    ctx.fillStyle = 'rgba(255, 255, 255, ' + (i + 1) / 10 + ')';
+    for (var j = 0; j < 4; j++) {
+      ctx.fillRect(5 + i * 14, 5 + j * 37.5, 14, 27.5);
+    }
+  }
+}
+ + + +

{{EmbedLiveSample("An_example_using_rgba()", "180", "180", "https://mdn.mozillademos.org/files/246/Canvas_rgba.png")}}

+ +

Le style des lignes

+ +

Il y a plusieurs propriétés qui nous permettent de modifier le style des lignes.

+ +
+
{{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth = value")}}
+
Définit la largeur des lignes qui serons tracées.
+
{{domxref("CanvasRenderingContext2D.lineCap", "lineCap = type")}}
+
Définit l'apparence des extrémités des lignes.
+
{{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin = type")}}
+
Définit l'apparence des «coins» où les lignes se rencontrent.
+
{{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit = value")}}
+
Établit une limite lorsque deux lignes se rejoignent en un angle aigu, pour permettre de contrôler l'épaisseur de la jonction.
+
{{domxref("CanvasRenderingContext2D.getLineDash", "getLineDash()")}}
+
Retourne le tableau du modele courant de ligne contenant un nombre pair de nombres positifs.
+
{{domxref("CanvasRenderingContext2D.setLineDash", "setLineDash(segments)")}}
+
Définit le modele de ligne.
+
{{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset = value")}}
+
Indique où commencer un modele sur une ligne.
+
+ +

Vous aurez une meilleure compréhension de ce qu'ils font en regardant les exemples ci-dessous.

+ +

Un exemple lineWidth

+ +

Cette propriété définit l'épaisseur de la ligne actuelle. Les valeurs doivent être des nombres positifs. Par défaut, cette valeur est définie à 1,0.

+ +

La largeur de ligne est l'épaisseur centrée sur le tracé. En d'autres termes, la zone qui est dessinée s'étend de part et d'autre du tracé. Parce que les coordonnées ne font pas référence directement aux pixels, une attention particulière doit être prise pour obtenir des lignes horizontales et verticales nettes.

+ +

Dans l'exemple ci-dessous, 10 lignes droites sont dessinées avec des largeurs croissantes. La ligne à l'extrême gauche a 1,0 unités de large. Cependant, celle ci et toutes les lignes d'épaisseur impair ne semblent pas nettes, en raison du positionnement du tracé.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  for (var i = 0; i < 10; i++) {
+    ctx.lineWidth = 1 + i;
+    ctx.beginPath();
+    ctx.moveTo(5 + i * 14, 5);
+    ctx.lineTo(5 + i * 14, 140);
+    ctx.stroke();
+  }
+}
+ + + +

{{EmbedLiveSample("A_lineWidth_example", "180", "180", "https://mdn.mozillademos.org/files/239/Canvas_linewidth.png")}}

+ +

Pour l'obtention de lignes nettes, il faut comprendre comment les lignes sont tracées. Ci-dessous, la grille représente la grille de coordonnées. Les carrés sont des pixels réels de l'écran. Dans la première grille, un rectangle (2,1) à (5,5) est rempli. La zone entière couverte par les lignes (rouge clair) tombe sur les limites des pixels, de sorte que le rectangle rempli résultant aura des bords nets.

+ +

+ +

Si vous considérez un tracé de (3,1) à (3,5) avec une épaisseur de ligne de 1.0, vous vous retrouvez dans la situation de la deuxième grille. La surface réelle à remplir (bleu foncé) se prolonge seulement à moitié sur les pixels de part et d'autre du chemin. Une approximation de ceci doit être rendue, ce qui signifie que ces pixels sont partiellement ombrés, et le résultat est que toute la zone (le bleu clair et bleu foncé) est remplie avec une couleur moitié moins sombre que la couleur du tracé attendu. C'est ce qui arrive avec la largeur de 1.0 dans l'exemple précédent.

+ +

Pour résoudre ce problème, vous devez être très précis dans la création de votre tracé. Sachant qu'une largeur de 1.0 s'étendra d'une demi-unité de chaque côté du tracé, créer le tracé de (3.5,1) à (3.5,5) aboutit à l'exemple trois pour une largeur de 1.0 et au remplissage d'un seul pixel de ligne verticale.

+ +
+

Note: Sachez que dans notre exemple de ligne verticale, la position Y fait toujours référence à une position de grille entière — sinon, vous verrez des pixels à moitié colorés à gauche et à droite (mais notez aussi que ce comportement dépend de l'actuel style lineCap, dont la valeur par défaut est butt. Vous pouvez essayer de tracer des traits consistants avec des coordonnées non-entières pour les lignes et avec une largeur particulière, en définissant le style lineCap à square, pour que le bord extérieur du trait autour du point final soit automatiquement étendu pour couvrir le pixel entier).

+ +

Notez également que seuls les points de début et de fin d'un chemin sont affectés : si un chemin est fermé avec closePath (), il n'y a pas de point de départ ni de point final ; à la place, tous les points d'extrémité du chemin sont connectés à leurs segments joints précédent et suivant, en utilisant le paramètre courant du style lineJoin, dont la valeur par défaut est miter, avec pour effet d'étendre automatiquement les bordures extérieures des segments connectés à leur point d'intersection. Ainsi, le trait de rendu couvrira exactement les pixels pleins centrés à chaque extrémité si ces segments connectés sont horizontaux et / ou verticaux. Voir les deux sections suivantes pour les démonstrations de ces styles de lignes supplémentaires.

+
+ +

Pour les lignes de largeur paire, chaque moitié finit par être un nombre entier de pixels, vous voulez donc un chemin entre les pixels (c'est-à-dire (3,1) à (3,5)), au lieu de descendre au milieu des pixels .

+ +

Bien que légèrement ennuyeux quand on travaille avec des graphismes 2D évolutifs, en accordant une attention à la grille de pixels et à la position des tracés, vous vous assurez du comportement correct de vos dessins, et ce, indépendamment de la mise à l'échelle ou d'autres transformations. Une ligne verticale de largeur 1,0 à la bonne position deviendra une ligne de 2 pixels nette à l'échelle 2.

+ +

Un exemple de lineCap

+ +

La propriété lineCap détermine comment les extrêmités de chaque ligne sont dessinées. Il y a trois valeurs possibles pour la propriété : butt, round et square. Par défaut, la propriété est définie à butt.

+ +

+ +
+
butt (bout)
+
L'extrémité des lignes est en angle droit.
+
round (rond)
+
Les extrémités sont arrondies.
+
square (carré)
+
Les extrémités sont en angle droit en ajoutant une extension d'une largeur égale à la ligne et une hauteur égale à la moitié de la largeur de la ligne.
+
+ +

Dans cet exemple, nous avons tracé trois lignes, chacune avec une valeur différente pour la propriété lineCap. Nous avons par ailleurs ajouté deux guides pour voir exactement les différences entre les trois lignes. Chacune de ces trois lignes est identique entre les deux traits bleus.

+ +

La ligne de gauche utilise l'option par défaut butt. Vous pourrez noter qu'elle est entièrement dessinée entre les deux guides. La deuxième utilise l'option round. Elle ajoute un demi-cercle à chaque extrémité d'un rayon valant la moitié de la largeur de la ligne. La ligne de droite utilise l'option square. Elle ajoute une extension avec une largeur égale à la ligne et une hauteur équivalante à la moitié de la largeur de la ligne.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var lineCap = ['butt', 'round', 'square'];
+
+  // Dessiner des guides
+  ctx.strokeStyle = '#09f';
+  ctx.beginPath();
+  ctx.moveTo(10, 10);
+  ctx.lineTo(140, 10);
+  ctx.moveTo(10, 140);
+  ctx.lineTo(140, 140);
+  ctx.stroke();
+
+  // Dessiner des lignes
+  ctx.strokeStyle = 'black';
+  for (var i = 0; i < lineCap.length; i++) {
+    ctx.lineWidth = 15;
+    ctx.lineCap = lineCap[i];
+    ctx.beginPath();
+    ctx.moveTo(25 + i * 50, 10);
+    ctx.lineTo(25 + i * 50, 140);
+    ctx.stroke();
+  }
+}
+ + + +

{{EmbedLiveSample("A_lineCap_example", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}

+ +

Un exemple de lineJoin

+ +

La propriété lineJoin détermine comment deux segments (lignes, arcs ou courbes), de largeur non nulle se connectant dans une forme, sont joints ensemble (les segments de longueur nulle, dont les coordonnées de départ et de fin sont exactement les mêmes, sont ignorés).

+ +

Il existe trois valeurs possibles pour cette propriété : round, bevel et miter. Par défaut, cette propriété est définie à miter. Notez que le paramètre lineJoin n'a pas d'effet si les deux segments connectés ont la même direction, parce qu'aucune zone de jointure ne sera ajoutée dans ce cas.

+ +

+ +
+
round (rond)
+
Arrondit les angles des segments en ajoutant un arc de cercle centré à l'extrémité commune des segments connectés. Le rayon de ces angles arrondis est égal à la moitié de la largeur du trait.
+
bevel (biseau)
+
Ajoute un triangle à l'extrémité commune des segments connectés.
+
miter (onglet)
+
Les segments connectés sont reliés en prolongeant leurs bords extérieurs pour se connecter en un seul point, avec pour effet de remplir une zone supplémentaire en forme de losange. Ce paramètre est effectué par la propriété miterLimit qui est expliquée ci-dessous.
+
+ +

L'exemple ci-dessous dessine trois chemins différents, démontrant chacun de ces trois paramètres de propriété lineJoin ; la sortie est montrée ci-dessus.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var lineJoin = ['round', 'bevel', 'miter'];
+  ctx.lineWidth = 10;
+  for (var i = 0; i < lineJoin.length; i++) {
+    ctx.lineJoin = lineJoin[i];
+    ctx.beginPath();
+    ctx.moveTo(-5, 5 + i * 40);
+    ctx.lineTo(35, 45 + i * 40);
+    ctx.lineTo(75, 5 + i * 40);
+    ctx.lineTo(115, 45 + i * 40);
+    ctx.lineTo(155, 5 + i * 40);
+    ctx.stroke();
+  }
+}
+ + + +

{{EmbedLiveSample("A_lineJoin_example", "180", "180", "https://mdn.mozillademos.org/files/237/Canvas_linejoin.png")}}

+ +

Une démonstration de la propriété miterLimit

+ +

Comme vous l'avez vu dans l'exemple précédent, lorsque vous joignez deux lignes avec l'option d'onglet, les bords extérieurs des deux lignes d'assemblage sont étendus jusqu'au point où ils se rencontrent. Pour les lignes qui sont à grands angles les unes avec les autres, ce point n'est pas loin du point de connexion interne. Cependant, lorsque les angles entre chaque ligne diminuent, la distance entre ces points augmente exponentiellement.

+ +

La propriété miterLimit détermine dans quelle mesure le point de connexion externe peut être placé à partir du point de connexion interne. Si deux lignes dépassent cette valeur, une jointure biseau est dessinée à la place. Notez que la longueur ajoutée maximale est le produit de la largeur de ligne mesurée dans le système de coordonnées actuel, par la valeur de cette propriété miterLimit (dont la valeur par défaut est 10.0 dans le HTML {{HTMLElement("canvas")}}). miterLimit peut être défini indépendamment de l'échelle d'affichage actuelle ou de toutes les transformations affinées de chemins : il n'influence que la forme des bords de lignes effectivement rendues.

+ +

Plus précisément, la limite d'onglet est le rapport maximal autorisé de la longueur d'extension (dans le canvas HTML, il est mesuré entre le coin extérieur des bords joints de la ligne et le point d'extrémité commun des segments de connexion spécifiés dans le chemin) à la moitié de la largeur de la ligne. Il peut être défini, de manière équivalente, comme le rapport maximum autorisé de la distance entre les points de jonction intérieur et extérieur des bords et la largeur totale de la ligne. Il est alors égal à la cosécante de la moitié de l'angle interne minimum des segments de connexion, en-dessous de laquelle aucune jointure d'onglet ne sera rendue, mais seulement une jointure en biseau :

+ + + +

Voici une petite démo dans laquelle vous pouvez définir dynamiquement miterLimit et voir comment cela affecte les formes sur le canevas. Les lignes bleues indiquent où se trouvent les points de départ et d'arrivée de chacune des lignes du motif en zig-zag.

+ +

Si vous spécifiez une valeur miterLimit inférieure à 4.2 dans cette démo, aucun des coins visibles ne se joindra avec une extension onglet, mais seulement avec un petit biseau près des lignes bleues ; avec une limite à onglets au-dessus de 10, la plupart des coins de cette démo devraient se combiner avec un onglet loin des lignes bleues et dont la hauteur diminue entre les coins de gauche à droite, car ils se connectent avec des angles croissants ; avec des valeurs intermédiaires, les coins du côté gauche ne rejoignent qu'un biseau près des lignes bleues et les coins du côté droit avec une extension à onglets (également avec une hauteur décroissante).

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Éffacer canvas
+  ctx.clearRect(0, 0, 150, 150);
+
+  // Dessiner des guides
+  ctx.strokeStyle = '#09f';
+  ctx.lineWidth   = 2;
+  ctx.strokeRect(-5, 50, 160, 50);
+
+  // Définir les styles de lignes
+  ctx.strokeStyle = '#000';
+  ctx.lineWidth = 10;
+
+  // Vérifier l'entrée (input)
+  if (document.getElementById('miterLimit').value.match(/\d+(\.\d+)?/)) {
+    ctx.miterLimit = parseFloat(document.getElementById('miterLimit').value);
+  } else {
+    alert('Value must be a positive number');
+  }
+
+  // Dessiner des lignes
+  ctx.beginPath();
+  ctx.moveTo(0, 100);
+  for (i = 0; i < 24 ; i++) {
+    var dy = i % 2 == 0 ? 25 : -25;
+    ctx.lineTo(Math.pow(i, 1.5) * 2, 75 + dy);
+  }
+  ctx.stroke();
+  return false;
+}
+ + + +

{{EmbedLiveSample("A_demo_of_the_miterLimit_property", "400", "180", "https://mdn.mozillademos.org/files/240/Canvas_miterlimit.png")}}

+ +

Utilisation de lignes pointillées

+ +

setLineDash et lineDashOffset précisent le modèle de lignes. setLineDash accepte une liste de nombres qui spécifie les distances pour dessiner alternativement une ligne et un espace et lineDashOffset définit un décalage pour commencer le motif.

+ +

Dans cet exemple, nous créons un effet de fourmis en marche. C'est une technique d'animation souvent employée dans les sélections d'outils des programmes graphiques. Cet effet permet à l'utilisateur de distinguer la frontière de l'image de fond de la sélection en animant la frontière. Dans une partie de ce tutoriel, vous pouvez apprendre comment faire cela et d'autres animations de base animation basiques..

+ + + +
var ctx = document.getElementById('canvas').getContext('2d');
+var offset = 0;
+
+function draw() {
+  ctx.clearRect(0, 0, canvas.width, canvas.height);
+  ctx.setLineDash([4, 2]);
+  ctx.lineDashOffset = -offset;
+  ctx.strokeRect(10, 10, 100, 100);
+}
+
+function march() {
+  offset++;
+  if (offset > 16) {
+    offset = 0;
+  }
+  draw();
+  setTimeout(march, 20);
+}
+
+march();
+ +

{{EmbedLiveSample("Using_line_dashes", "120", "120", "https://mdn.mozillademos.org/files/9853/marching-ants.png")}}

+ +

Dégradés

+ +

Comme n'importe quel programme de dessin normal, nous pouvons remplir et découper des formes à l'aide de dégradés linéaires et radiaux. Nous créons un objet {{domxref ("CanvasGradient")}} en utilisant l'une des méthodes suivantes. Nous pouvons ensuite affecter cet objet aux propriétés fillStyle ou strokeStyle.

+ +
+
{{domxref("CanvasRenderingContext2D.createLinearGradient", "createLinearGradient(x1, y1, x2, y2)")}}
+
Crée un objet dégradé linéaire avec un point de départ (x1, y1) et un point final (x2, y2).
+
{{domxref("CanvasRenderingContext2D.createRadialGradient", "createRadialGradient(x1, y1, r1, x2, y2, r2)")}}
+
Crée un dégradé radial. Les paramètres représentent deux cercles, l'un avec son centre à (x1, y1) et un rayon r1, l'autre avec son centre à (x2, y2) avec un rayon r2.
+
+ +

Par exemple:

+ +
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
+var radialgradient = ctx.createRadialGradient(75, 75, 0, 75, 75, 100);
+ +

Une fois que nous avons créé un objet CanvasGradient, nous pouvons lui assigner des couleurs en utilisant la méthode addColorStop ().

+ +
+
{{domxref("CanvasGradient.addColorStop", "gradient.addColorStop(position, color)")}}
+
Crée un nouvel arrêt de couleur sur l'objet gradient (dégradé). La position est un nombre entre 0.0 et 1.0 et définit la position relative de la couleur dans le dégradé ; et l'argument color doit être une chaîne représentant une CSS {{cssxref ("<color>")}}, indiquant la couleur que le dégradé devrait atteindre.
+
+ +

Vous pouvez ajouter autant d'arrêts de couleur à un dégradé que vous le souhaitez. Ci-dessous figure un dégradé linéaire très simple du blanc au noir.

+ +
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
+lineargradient.addColorStop(0, 'white');
+lineargradient.addColorStop(1, 'black');
+ +

Un exemple de createLinearGradient

+ +

Dans cet exemple, nous allons créer deux dégradés différents. Comme vous pouvez le voir ici, les propriétés strokeStyle et fillStyle peuvent accepter un objet canvasGradient comme entrée valide.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Créer un dégradé
+  var lingrad = ctx.createLinearGradient(0, 0, 0, 150);
+  lingrad.addColorStop(0, '#00ABEB');
+  lingrad.addColorStop(0.5, '#fff');
+  lingrad.addColorStop(0.5, '#26C000');
+  lingrad.addColorStop(1, '#fff');
+
+  var lingrad2 = ctx.createLinearGradient(0, 50, 0, 95);
+  lingrad2.addColorStop(0.5, '#000');
+  lingrad2.addColorStop(1, 'rgba(0, 0, 0, 0)');
+
+  // assigner des dégradés aux styles "fill" et "stroke"
+  ctx.fillStyle = lingrad;
+  ctx.strokeStyle = lingrad2;
+
+  // Dessiner des formes
+  ctx.fillRect(10, 10, 130, 130);
+  ctx.strokeRect(50, 50, 50, 50);
+
+}
+ + + +

Le premier est un dégradé d'arrière-plan. Comme vous pouvez le voir, nous avons assigné deux couleurs à la même position. Vous faites cela pour faire des transitions de couleurs très nettes - dans ce cas du blanc au vert. Normalement, peu importe dans quel ordre vous définissez l'arrêt de la couleur, mais dans ce cas particulier, la différence peut être significative. Si vous conservez les affectations dans l'ordre où vous voulez qu'elles apparaissent, cela ne posera aucun problème.

+ +

Dans le second gradient, nous n'avons pas assigné la couleur de départ (à la position 0.0) puisqu'il n'était pas strictement nécessaire car il prendra automatiquement la valeur de la prochaine couleur. Par conséquent, l'attribution de la couleur noire à la position 0,5 fait automatiquement passer le dégradé, du début à l'arrêt, en noir.

+ +

{{EmbedLiveSample("A_createLinearGradient_example", "180", "180", "https://mdn.mozillademos.org/files/235/Canvas_lineargradient.png")}}

+ +

Un exemple de createRadialGradient

+ +

Dans cet exemple, nous définirons quatre dégradés radiaux différents. Parce que nous avons le contrôle sur les points de départ et de fermeture du dégradé, nous pouvons obtenir des effets plus complexes que nous aurions normalement dans les dégradés radiaux "classiques" (c'est-à-dire un dégradé avec un seul point central où le dégradé se développe vers l'extérieur dans une forme circulaire).

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // Créer un dégradé
+  var radgrad = ctx.createRadialGradient(45, 45, 10, 52, 50, 30);
+  radgrad.addColorStop(0, '#A7D30C');
+  radgrad.addColorStop(0.9, '#019F62');
+  radgrad.addColorStop(1, 'rgba(1, 159, 98, 0)');
+
+  var radgrad2 = ctx.createRadialGradient(105, 105, 20, 112, 120, 50);
+  radgrad2.addColorStop(0, '#FF5F98');
+  radgrad2.addColorStop(0.75, '#FF0188');
+  radgrad2.addColorStop(1, 'rgba(255, 1, 136, 0)');
+
+  var radgrad3 = ctx.createRadialGradient(95, 15, 15, 102, 20, 40);
+  radgrad3.addColorStop(0, '#00C9FF');
+  radgrad3.addColorStop(0.8, '#00B5E2');
+  radgrad3.addColorStop(1, 'rgba(0, 201, 255, 0)');
+
+  var radgrad4 = ctx.createRadialGradient(0, 150, 50, 0, 140, 90);
+  radgrad4.addColorStop(0, '#F4F201');
+  radgrad4.addColorStop(0.8, '#E4C700');
+  radgrad4.addColorStop(1, 'rgba(228, 199, 0, 0)');
+
+  // dessiner des formes
+  ctx.fillStyle = radgrad4;
+  ctx.fillRect(0, 0, 150, 150);
+  ctx.fillStyle = radgrad3;
+  ctx.fillRect(0, 0, 150, 150);
+  ctx.fillStyle = radgrad2;
+  ctx.fillRect(0, 0, 150, 150);
+  ctx.fillStyle = radgrad;
+  ctx.fillRect(0, 0, 150, 150);
+}
+ + + +

Dans ce cas, nous avons légèrement décalé le point de départ du point final pour obtenir un effet 3D sphérique. Il est préférable d'éviter de laisser les cercles intérieurs et extérieurs se chevaucher car cela entraîne des effets étranges, difficiles à prédire.

+ +

Le dernier arrêt de couleur dans chacun des quatre dégradés utilise une couleur entièrement transparente. Si vous voulez une transition agréable de cette étape à la couleur précédente, les deux couleurs doivent être égales. Ce n'est pas très évident dans le code, car il utilise deux méthodes CSS différentes en démonstration, mais dans le premier dégradé # 019F62 = rgba (1,159,98,1).

+ +

{{EmbedLiveSample("A_createRadialGradient_example", "180", "180", "https://mdn.mozillademos.org/files/244/Canvas_radialgradient.png")}}

+ +

Modèles

+ +

Dans l'un des exemples de la page précédente, nous avons utilisé une série de boucles pour créer un motif d'images. Il existe cependant une méthode beaucoup plus simple : la méthode createPattern ().

+ +
+
{{domxref("CanvasRenderingContext2D.createPattern", "createPattern(image, type)")}}
+
Crée et renvoie un nouvel objet de canvas. image est un {{domxref ("CanvasImageSource")}} (c'est-à-dire un {{domxref ("HTMLImageElement")}} ; un autre élément canvas,  type est une chaîne indiquant comment utiliser l'image.
+
+ +

Le type spécifie comment utiliser l'image pour créer le motif et doit avoir l'une des valeurs de chaîne suivantes :

+ +
+
repeat
+
Tapisse la zone en répètant l'image dans les deux sens vertical et horizontal.
+
repeat-x
+
Tapisse la zone en répètant l'image horizontalement mais pas verticalement.
+
repeat-y
+
Tapisse la zone en répètant l'image verticalement mais pas horizontalement.
+
no-repeat
+
Ne tapisse pas la zone avec l'image, elle est utilisée une seule fois.
+
+ +

Nous utilisons cette méthode pour créer un objet {{domxref ("CanvasPattern")}} qui est très similaire aux méthodes de dégradé que nous avons vu ci-dessus. Une fois que nous avons créé un modèle, nous pouvons l'affecter aux propriétés fillStyle ou strokeStyle. Par exemple :

+ +
var img = new Image();
+img.src = 'someimage.png';
+var ptrn = ctx.createPattern(img, 'repeat');
+ +
+

Note: Comme avec la méthode drawImage (), vous devez vous assurer que l'image que vous utilisez est chargée avant d'appeler cette méthode, ou le motif pourrait être mal dessiné.

+
+ +

Un exemple de createPattern

+ +

Dans ce dernier exemple, nous allons créer un modèle à affecter à la propriété fillStyle. La seule chose à noter, est l'utilisation du gestionnaire onload de l'image. Cela permet de s'assurer que l'image est chargée avant d'être affectée au motif.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // créer un nouvel objet image à utiliser comme modèle
+  var img = new Image();
+  img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
+  img.onload = function() {
+
+    // créer le modèle
+    var ptrn = ctx.createPattern(img, 'repeat');
+    ctx.fillStyle = ptrn;
+    ctx.fillRect(0, 0, 150, 150);
+
+  }
+}
+ + + +

{{EmbedLiveSample("A_createPattern_example", "180", "180", "https://mdn.mozillademos.org/files/222/Canvas_createpattern.png")}}

+ +

Ombres

+ +

L'utilisation des ombres ne comporte que quatre propriétés :

+ +
+
{{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX = float")}}
+
Indique la distance horizontale sur laquelle l'ombre doit s'étendre à partir de l'objet. Cette valeur n'est pas affectée par la matrice de transformation. La valeur par défaut est 0.
+
{{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY = float")}}
+
Indique la distance verticale sur laquelle l'ombre doit s'étendre à partir de l'objet. Cette valeur n'est pas affectée par la matrice de transformation. La valeur par défaut est 0.
+
{{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur = float")}}
+
Indique la taille de l'effet de floutage ; cette valeur ne correspond pas à un nombre de pixels et n'est pas affectée par la matrice de transformation actuelle. La valeur par défaut est 0.
+
{{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor = color")}}
+
Une valeur de couleur CSS standard indiquant la couleur de l'effet d'ombre ; par défaut, il est entièrement noir transparent.
+
+ +

Les propriétés shadowOffsetX et shadowOffsetY indiquent sur quelle distance l'ombre doit s'étendre à partir de l'objet dans les directions X et Y; ces valeurs ne sont pas affectées par la matrice de transformation actuelle. Utilisez des valeurs négatives pour faire en sorte que l'ombre s'étende vers le haut ou vers la gauche et des valeurs positives pour que l'ombre s'étende vers le bas ou vers la droite. La valeur par défaut est 0 pour les 2 propriétés.

+ +

La propriété shadowBlur indique la taille de l'effet de flou ; cette valeur ne correspond pas à un nombre de pixels et n'est pas affectée par la matrice de transformation actuelle. La valeur par défaut est 0.

+ +

La propriété shadowColor est une valeur de couleur CSS standard indiquant la couleur de l'effet d'ombre ; par défaut, il est entièrement en noir transparent.

+ +
+

Note : Les ombres ne sont dessinées que pour les opérations de composition source-over.

+
+ +

Un exemple de texte ombré

+ +

Cet exemple dessine une chaîne de texte avec un effet d'ombrage.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  ctx.shadowOffsetX = 2;
+  ctx.shadowOffsetY = 2;
+  ctx.shadowBlur = 2;
+  ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
+
+  ctx.font = '20px Times New Roman';
+  ctx.fillStyle = 'Black';
+  ctx.fillText('Sample String', 5, 30);
+}
+ + + +

{{EmbedLiveSample("A_shadowed_text_example", "180", "100", "https://mdn.mozillademos.org/files/2505/shadowed-string.png")}}

+ +

Nous allons regarder la propriété de la font (police de caratères) et la méthode fillText dans le chapitre suivant sur le dessin de texte.

+ +

Règles de remplissage Canvas

+ +

Lors de l'utilisation de fill (ou {{domxref ("CanvasRenderingContext2D.clip", "clip")}} et {{domxref("CanvasRenderingContext2D.isPointInPath", "isPointinPath")}}) , déterminez si un point est à l'intérieur ou à l'extérieur d'un chemin et ainsi, s'il est rempli ou non. Ceci est utile lorsqu'un chemin en croise  un autre ou est imbriqué.
+
+ Deux valeurs sont possibles :

+ + + +

Dans cet exemple, nous utilisons la règle evenodd .

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.beginPath();
+  ctx.arc(50, 50, 30, 0, Math.PI * 2, true);
+  ctx.arc(50, 50, 15, 0, Math.PI * 2, true);
+  ctx.fill('evenodd');
+}
+ + + +

{{EmbedLiveSample("Canvas_fill_rules", "110", "110", "https://mdn.mozillademos.org/files/9855/fill-rule.png")}}

+ +

{{PreviousNext("Tutoriel_canvas/Formes_géométriques", "Dessin_de_texte_avec_canvas")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/basic_animations/index.html b/files/fr/web/api/canvas_api/tutorial/basic_animations/index.html new file mode 100644 index 0000000000..f44929e8be --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/basic_animations/index.html @@ -0,0 +1,339 @@ +--- +title: Animations basiques +slug: Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques +tags: + - Canvas + - Graphiques + - HTML + - HTML5 + - Intermédiaire + - Tutoriel +translation_of: Web/API/Canvas_API/Tutorial/Basic_animations +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Tutoriel_canvas/Advanced_animations")}}
+ +
+

Avec l'utilisation en Javascript du composant {{HTMLElement("canvas")}}, il est très simple de créer des animations (interactives). Ce chapitre décrit comment créer quelques animations basiques.

+
+ +

La plus grosse limitation est sans doute qu'une fois qu'une forme est dessinée, elle reste telle quelle. Si on a besoin de la déplacer, il faut la redessiner avec ce qui était dessiné avant. Cela peut prendre beaucoup de temps de redessiner des images complexes et les performances dépendront beaucoup de la vitesse de l'ordinateur qui exécute cet affichage.

+ +

Les étapes d'une animation basique

+ +

Voici les étapes à suivre à chaque image dessinée (frame) :

+ +
    +
  1. Effacer le canevas
    + À moins que les formes que vous voulez dessiner remplissent complètement le canevas (par exemple une image en arrière-plan), vous devrez effacer toutes les formes qui ont été dessinées précédemment. La manière la plus simple de le faire est d'utiliser la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}.
  2. +
  3. Enregistrer l'état du canevas
    + Si vous changez des configurations qui affectent l'état du canevas (comme le style, les transformations, etc.), et vous voulez vous assurer que c'est l'état original qui est utilisé chaque fois que le canevas est redessiné, alors vous devez enregistrer l'état original.
  4. +
  5. Dessiner les formes animées
    + Vous effectuez toutes les opérations pour afficher l'image.
  6. +
  7. Restaurer l'état du canevas
    + Si l'état du canevas a été sauvegardé, vous  restaurez cet état avant le prochain rendu.
  8. +
+ +

Contrôle d'une animation

+ +

Les formes sont dessinées en utilisant soit les méthodes du canevas directement soit en appelant des fonctions personnalisées. Dans des conditions normales, on ne voit le résultat des opérations sur le canevas que quand le script a terminé son exécution. Cela signifie qu'il n'est pas possible de créer une animation avec une boucle for.

+ +

Il nous faut donc un moyen d'exécuter nos fonctions de dessin sur une période de temps. Il existe à ce jour trois manières de le faire.

+ +

Mises à jour planifiées

+ +

Les fonctions {{domxref("window.setInterval()")}}, {{domxref("window.setTimeout()")}}, et {{domxref("window.requestAnimationFrame()")}} peuvent être utilisées :

+ +
+
{{domxref("WindowTimers.setInterval", "setInterval(function, delay)")}}
+
Lance la fonction définie par function chaque delay (délai) millisecondes.
+
{{domxref("WindowTimers.setTimeout", "setTimeout(function, delay)")}}
+
Exécute la fonction définie par function dans delay millisecondes.
+
{{domxref("Window.requestAnimationFrame()", "requestAnimationFrame(callback)")}}
+
Dit au navigateur qu'on veut afficher une animation et lui demande d'appeler la fonction callback pour mettre à jour cette animation avant de dessiner la prochaine image.
+
+ +

Si vous n'avez pas besoin d'interaction utilisateur, vous pouvez utiliser la fonction setInterval(), elle va exécuter périodiquement votre code.

+ +

Si vous voulez faire un jeu, et utiliser les événements du clavier et de la souris pour contrôler l'animation, vous pouvez utiliser setTimeout(). En utilisant des {{domxref("EventListener")}}, on peut récupèrer chaque interaction et d'exécuter nos fonctions d'animation.

+ +

Dans les exemples suivants, nous utiliserons {{domxref("window.requestAnimationFrame()")}} pour contrôler les animations. Cette technique est plus fluide et plus efficace, elle appelle les opérations de rendu quand le système est prêt à dessiner l'image. Dans des conditions idéales, la fonction est alors lancée 60 fois par seconde, mais la fréquence sera réduite si l'animation se passe dans un onglet non visible.

+ +
+

Pour plus d'informations sur la boucle d'animation, plus spécialement pour les jeux, rendez-vous sur l'article L'anatomie d'un jeu vidéo dans notre section Développement de jeux vidéo.

+
+ +

Un système terrestre animé

+ +

Cette exemple anime un petit modèle de notre système terrestre.

+ +
var sun = new Image();
+var moon = new Image();
+var earth = new Image();
+function init(){
+  sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png';
+  moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png';
+  earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png';
+  window.requestAnimationFrame(draw);
+}
+
+function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  ctx.globalCompositeOperation = 'destination-over';
+  ctx.clearRect(0,0,300,300); // effacer le canvas
+
+  ctx.fillStyle = 'rgba(0,0,0,0.4)';
+  ctx.strokeStyle = 'rgba(0,153,255,0.4)';
+  ctx.save();
+  ctx.translate(150,150);
+
+  // Terre
+  var time = new Date();
+  ctx.rotate( ((2*Math.PI)/60)*time.getSeconds() + ((2*Math.PI)/60000)*time.getMilliseconds() );
+  ctx.translate(105,0);
+  ctx.fillRect(0,-12,50,24); // Ombre
+  ctx.drawImage(earth,-12,-12);
+
+  // Lune
+  ctx.save();
+  ctx.rotate( ((2*Math.PI)/6)*time.getSeconds() + ((2*Math.PI)/6000)*time.getMilliseconds() );
+  ctx.translate(0,28.5);
+  ctx.drawImage(moon,-3.5,-3.5);
+  ctx.restore();
+
+  ctx.restore();
+
+  ctx.beginPath();
+  ctx.arc(150,150,105,0,Math.PI*2,false); // Orbite terrestre
+  ctx.stroke();
+
+  ctx.drawImage(sun,0,0,300,300);
+
+  window.requestAnimationFrame(draw);
+}
+
+init();
+
+ + + +

{{EmbedLiveSample("Un_système_terrestre_animé", "310", "310", "https://mdn.mozillademos.org/files/202/Canvas_animation1.png")}}

+ +

Une horloge animée

+ +

Cette exemple dessine une horloge animée qui affiche l'heure actuelle.

+ +
function clock(){
+  var now = new Date();
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.save();
+  ctx.clearRect(0,0,150,150);
+  ctx.translate(75,75);
+  ctx.scale(0.4,0.4);
+  ctx.rotate(-Math.PI/2);
+  ctx.strokeStyle = "black";
+  ctx.fillStyle = "white";
+  ctx.lineWidth = 8;
+  ctx.lineCap = "round";
+
+  // Marquage des heures
+  ctx.save();
+  for (var i=0;i<12;i++){
+    ctx.beginPath();
+    ctx.rotate(Math.PI/6);
+    ctx.moveTo(100,0);
+    ctx.lineTo(120,0);
+    ctx.stroke();
+  }
+  ctx.restore();
+
+  // Marquage des minutes
+  ctx.save();
+  ctx.lineWidth = 5;
+  for (i=0;i<60;i++){
+    if (i%5!=0) {
+      ctx.beginPath();
+      ctx.moveTo(117,0);
+      ctx.lineTo(120,0);
+      ctx.stroke();
+    }
+    ctx.rotate(Math.PI/30);
+  }
+  ctx.restore();
+
+  var sec = now.getSeconds();
+  var min = now.getMinutes();
+  var hr  = now.getHours();
+  hr = hr>=12 ? hr-12 : hr;
+
+  ctx.fillStyle = "black";
+
+  // Aiguille des heures
+  ctx.save();
+  ctx.rotate( hr*(Math.PI/6) + (Math.PI/360)*min + (Math.PI/21600)*sec )
+  ctx.lineWidth = 14;
+  ctx.beginPath();
+  ctx.moveTo(-20,0);
+  ctx.lineTo(80,0);
+  ctx.stroke();
+  ctx.restore();
+
+  // Aiguille des minutes
+  ctx.save();
+  ctx.rotate( (Math.PI/30)*min + (Math.PI/1800)*sec )
+  ctx.lineWidth = 10;
+  ctx.beginPath();
+  ctx.moveTo(-28,0);
+  ctx.lineTo(112,0);
+  ctx.stroke();
+  ctx.restore();
+
+  // Aiguille des secondes
+  ctx.save();
+  ctx.rotate(sec * Math.PI/30);
+  ctx.strokeStyle = "#D40000";
+  ctx.fillStyle = "#D40000";
+  ctx.lineWidth = 6;
+  ctx.beginPath();
+  ctx.moveTo(-30,0);
+  ctx.lineTo(83,0);
+  ctx.stroke();
+  ctx.beginPath();
+  ctx.arc(0,0,10,0,Math.PI*2,true);
+  ctx.fill();
+  ctx.beginPath();
+  ctx.arc(95,0,10,0,Math.PI*2,true);
+  ctx.stroke();
+  ctx.fillStyle = "rgba(0,0,0,0)";
+  ctx.arc(0,0,3,0,Math.PI*2,true);
+  ctx.fill();
+  ctx.restore();
+
+  ctx.beginPath();
+  ctx.lineWidth = 14;
+  ctx.strokeStyle = '#325FA2';
+  ctx.arc(0,0,142,0,Math.PI*2,true);
+  ctx.stroke();
+
+  ctx.restore();
+
+  window.requestAnimationFrame(clock);
+}
+
+window.requestAnimationFrame(clock);
+ + + +

{{EmbedLiveSample("Une_horloge_animée", "180", "180", "https://mdn.mozillademos.org/files/203/Canvas_animation2.png")}}

+ +

Un panorama défilant en boucle

+ +

Dans cet exemple, un panorama défile de la gauche vers la droite et recommence. Nous utilisons une image du parc Yosemite National récupérée sur Wikimedia, vous pouvez utiliser une autre image de votre choix qui est plus grande que le canevas.

+ +
var img = new Image();
+
+// Variables utilisateur - les personnaliser pour changer l'image qui défile, ses
+// directions, et la vitesse.
+
+img.src = 'https://mdn.mozillademos.org/files/4553/Capitan_Meadows,_Yosemite_National_Park.jpg';
+var CanvasXSize = 800;
+var CanvasYSize = 200;
+var speed = 30; // plus elle est basse, plus c'est rapide
+var scale = 1.05;
+var y = -4.5; // décalage vertical
+
+// Programme principal
+
+var dx = 0.75;
+var imgW;
+var imgH;
+var x = 0;
+var clearX;
+var clearY;
+var ctx;
+
+img.onload = function() {
+    imgW = img.width * scale;
+    imgH = img.height * scale;
+
+    if (imgW > CanvasXSize) {
+        // image plus grande que le canvas
+        x = CanvasXSize - imgW;
+    }
+    if (imgW > CanvasXSize) {
+        // largeur de l'image plus grande que le canvas
+        clearX = imgW;
+    } else {
+        clearX = CanvasXSize;
+    }
+    if (imgH > CanvasYSize) {
+        // hauteur de l'image plus grande que le canvas
+        clearY = imgH;
+    } else {
+        clearY = CanvasYSize;
+    }
+
+    // récupérer le contexte du canvas
+    ctx = document.getElementById('canvas').getContext('2d');
+
+    // définir le taux de rafraichissement
+    return setInterval(draw, speed);
+}
+
+function draw() {
+    ctx.clearRect(0, 0, clearX, clearY); // clear the canvas
+
+    // si image est <= taille du canvas
+    if (imgW <= CanvasXSize) {
+        // réinitialise, repart du début
+        if (x > CanvasXSize) {
+            x = -imgW + x;
+        }
+        // dessine image1 supplémentaire
+        if (x > 0) {
+            ctx.drawImage(img, -imgW + x, y, imgW, imgH);
+        }
+        // dessine image2 supplémentaire
+        if (x - imgW > 0) {
+            ctx.drawImage(img, -imgW * 2 + x, y, imgW, imgH);
+        }
+    }
+
+    // image est > taille du canvas
+    else {
+        // réinitialise, repeart du début
+        if (x > (CanvasXSize)) {
+            x = CanvasXSize - imgW;
+        }
+        // dessine image supplémentaire
+        if (x > (CanvasXSize-imgW)) {
+            ctx.drawImage(img, x - imgW + 1, y, imgW, imgH);
+        }
+    }
+    // dessine image
+    ctx.drawImage(img, x, y,imgW, imgH);
+    // quantité à déplacer
+    x += dx;
+}
+
+ +

En dessous, vous trouvez l'élément {{HTMLElement("canvas")}} avec l'image qui défile. Notez que les dimensions de largeur et de hauteur spécifiées doivent correspondre aux valeurs des variables CanvasXZSize et CanvasYSize dans le code JavaScript.

+ +
<canvas id="canvas" width="800" height="200"></canvas>
+ +

{{EmbedLiveSample("Un_panorama_défilant_en_boucle", "830", "230")}}

+ +

Autres exemples

+ +
+
Un raycaster basique avec canvas
+
Un bon exemple d'animation contrôlée par le clavier.
+
Animations avancées
+
Nous nous attarderons sur quelques techniques d'animation et de gestion de physique avancées dans le prochain châpitre.
+
+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Tutoriel_canvas/Advanced_animations")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/basic_usage/index.html b/files/fr/web/api/canvas_api/tutorial/basic_usage/index.html new file mode 100644 index 0000000000..6182dee589 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/basic_usage/index.html @@ -0,0 +1,149 @@ +--- +title: Utilisation de base des canvas +slug: Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base +tags: + - Canvas + - Graphismes + - HTML + - Tutoriel_canvas + - Tutoriels +translation_of: Web/API/Canvas_API/Tutorial/Basic_usage +--- +

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas", "Tutoriel_canvas/Formes_géométriques")}}

+ +

L'élément <canvas>

+ +

Commençons par regarder l'élément {{HTMLElement("canvas")}} lui-même.

+ +
<canvas id="tutoriel" width="150" height="150"></canvas>
+
+ +

Ceci ressemble beaucoup à l'élément <img>. La seule différence est qu'il n'y a pas les attributs src et alt. L'élément <canvas> a seulement deux attributs : {{htmlattrxref ("width", "canvas")}} et {{htmlattrxref ("height", "canvas")}} (« largeur » et « hauteur »). Ces deux attributs sont optionnels et peuvent aussi être fixés à travers le DOM. Quand les attributs width et height ne sont pas spécifiés, le canvas sera initialement large de 300 pixels et haut de 150 pixels. Les dimensions du canvas peuvent être modifiés par du CSS, mais l'image sera dessinée selon les valeurs width et height du canvas et ensuite étirée pour afficher dans l'espace donné par le CSS.

+ +
+

Note : Si l'image semble déformée, essayez de spécifier de manière explicite vos attributs width et height dans l'élément <canvas>, et de ne pas utiliser de CSS.

+
+ +

L'attribut id n'est pas spécifique à l'élément <canvas>. C'est en fait un des attributs HTML de base qui peut être utilisé par presque tous les éléments HTML. C'est toujours mieux d'assigner une id car ça facilite beaucoup l'identification du canvas dans le code javascript.

+ +

L'élément <canvas> peut être stylisé comme n'importe quelle image normale (marges, contours, arrière-plan, etc). Si aucun style n'est donné, le canvas sera par défaut complètement transparent. Il faut noter que peu importe quels styles sont utilisés, le style n'affectera pas l'acte de dessiner sur le canvas. Nous verrons en détail la stylisation des canvas plus tard dans ce tutoriel.

+ +
+

Contenu de repli

+ +

Puisque certains plus anciens navigateurs ne supportent pas l'élément {{HTMLElement("canvas")}} (les plus communs étant les versions d'Internet Explorer avant la version 9), il est mieux d'avoir du contenu de repli pour afficher.

+ +

Heureusement, c'est très facile : il faut tout simplement mettre le contenu dans l'élément <canvas> lui-même. Les navigateurs qui ne supportent pas <canvas> vont afficher ce contenu de repli, et ceux qui supportent <canvas> vont l'ignorer et dessiner le canvas.

+ +

Le contenu de repli pourrait, par exemple, donner une description texte du canvas, ou afficher une image fixe comme aperçu de ce que le canvas dessinerait de façon dynamique.

+ +
<canvas id="stockGraph" width="150" height="150">
+  current stock price: $3.15 + 0.15
+</canvas>
+
+<canvas id="clock" width="150" height="150">
+  <img src="images/clock.png" width="150" height="150" alt=""/>
+</canvas>
+ +

La nécessité de la balise </canvas>

+ +

Au contraire de l'élément {{HTMLElement("img")}}, l'élément {{HTMLElement("canvas")}} requiert la balise fermante (</canvas>).

+ +
+

Note : Bien que quelques unes des premières versions du navigateur Safari ne requièrent pas la balise fermante, la spécification HTML indique qu'elle est nécessaire, alors il est mieux de l'inclure pour avoir le plus de compatibilité possible. Ces anciennes versions de Safari (avant la version 2.0) affichent le contenu de repli en plus que le canvas lui-même, sauf si vous utilisez des trucs CSS pour le masquer. Heureusement, il y a très peu d'utilisateurs de ces vieilles versions de Safari de nos jours.

+
+ +

Si vous n'avez pas besoin de contenu de repli, un simple <canvas id="foo" ...></canvas> est totalement compatible avec tous les navigateurs qui ont pris en charge la fonctionnalité canvas.

+ +

Le contexte de rendu

+ +

L'élément {{HTMLElement("canvas")}} crée une surface pour dessiner à grandeur fixe. Cette surface expose un ou plusieurs contextes de rendu, qui sont utilisés pour créer et manipuler le contenu affiché. Ce tutoriel se concentrera sur le contexte de rendu 2D. D'autres contextes permettent d'autres types de rendu, tel que le contexte WebGL, qui utilise un contexte 3D ("experimental-webgl") inspiré de OpenGL ES.

+ +

Initialement, le canvas est vide. Pour afficher quelque chose,  un script doit commencer par accéder au contexte de rendu pour pouvoir dessiner dessus. L'élément {{HTMLElement("canvas")}} a une méthode nommée getContext(), qui peut être utilisée pour obtenir le contexte de rendu et ses fonctions de dessin. getContext() a comme seul paramètre le type de contexte. Pour des graphiques 2D, comme ceux utilisés dans ce tutoriel, il faut spécifier "2d".

+ +
var canvas = document.getElementById('tutorial');
+var ctx = canvas.getContext('2d');
+ +

La première ligne obtient le {{HTMLElement("canvas")}} dans le DOM en appelant {{domxref("document.getElementById()")}}. Lorsque nous avons l'élément canvas, nous pouvons accéder au contexte de rendu en utilisant sa méthode getContext().

+ +
+

Vérification de la prise en charge

+ +

Le contenu de repli est affiché dans les navigateurs qui ne prennent pas en charge l'élément {{HTMLElement("canvas")}}. Les scripts peuvent aussi vérifier la prise en charge de manière programmatique en vérifiant la présence de la méthode getContext(). Notre extrait de code ci-dessus se transforme donc en ceci :

+ +
var canvas = document.getElementById('tutorial');
+
+if (canvas.getContext) {
+  var ctx = canvas.getContext('2d');
+  // code de dessin dans le canvas
+} else {
+  // code pour le cas où canvas ne serait pas supporté
+}
+
+
+ +

Un modèle basique

+ +

Voici un modèle minimaliste, que nous allons utiliser comme point de départ dans des futurs exemples.

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8"/>
+    <title>Canvas tutorial</title>
+    <script type="text/javascript">
+      function draw() {
+        var canvas = document.getElementById('tutorial');
+        if (canvas.getContext) {
+          var ctx = canvas.getContext('2d');
+        }
+      }
+    </script>
+    <style type="text/css">
+      canvas { border: 1px solid black; }
+    </style>
+  </head>
+  <body onload="draw();">
+    <canvas id="tutorial" width="150" height="150"></canvas>
+  </body>
+</html>
+ +

Ce script contient une fonction draw(), qui est exécutée lorsque la page a fini de charger. Ce résultat est obtenu en utilisant l'événement de chargement du document. Cette fonction, ou une fonction similaire, pourrait aussi être appelé en utilisant {{domxref("window.setTimeout()")}}, {{domxref("window.setInterval()")}}, ou n'importe quel autre gestionnaire d'événement, tant que la page est chargée en premier.

+ +

Voici à quoi le modèle ressemble :

+ +

{{EmbedLiveSample("Un_modèle_basique", 160, 160)}}

+ +

Un exemple simple

+ +

Pour commencer, observons un exemple simple qui dessine deux rectangles qui s'intersectent, un d'entre eux ayant de la transparence alpha. Nous verrons plus en détail comment ça marche dans les exemples suivants.

+ +
<!DOCTYPE html>
+<html>
+ <head>
+  <meta charset="utf-8"/>
+  <script type="application/javascript">
+    function draw() {
+      var canvas = document.getElementById("canvas");
+      if (canvas.getContext) {
+        var ctx = canvas.getContext("2d");
+
+        ctx.fillStyle = 'rgb(200, 0, 0)';
+        ctx.fillRect(10, 10, 50, 50);
+
+        ctx.fillStyle = 'rgba(0, 0, 200, 0.5)';
+        ctx.fillRect(30, 30, 50, 50);
+      }
+    }
+  </script>
+ </head>
+ <body onload="draw();">
+   <canvas id="canvas" width="150" height="150"></canvas>
+ </body>
+</html>
+ +

Cet exemple ressemble a ceci :

+ +

{{EmbedLiveSample("Un_exemple_simple", 160, 160, "https://mdn.mozillademos.org/files/228/canvas_ex1.png")}}

+ +

{{PreviousNext("Tutoriel_canvas", "Tutoriel_canvas/Formes_géométriques")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/compositing/example/index.html b/files/fr/web/api/canvas_api/tutorial/compositing/example/index.html new file mode 100644 index 0000000000..8fbb3ec79c --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/compositing/example/index.html @@ -0,0 +1,295 @@ +--- +title: Exemple de composition +slug: Web/API/Canvas_API/Tutoriel_canvas/Composition/Example +tags: + - Canvas + - Exemple + - Graphisme + - HTML + - HTML5 + - Tutoriel +translation_of: Web/API/Canvas_API/Tutorial/Compositing/Example +--- +
{{CanvasSidebar}}
+ +

Cet exemple illustre un certain nombre d'opérations de composition. Le résultat donne ceci:

+ +

{{EmbedLiveSample("Exemple_de_composition", "100%", 7250)}}

+ +

Exemple de composition

+ +

Ce code configure les valeurs globales utilisées par le reste du programme.

+ +
var canvas1 = document.createElement("canvas");
+var canvas2 = document.createElement("canvas");
+var gco = [ 'source-over','source-in','source-out','source-atop',
+            'destination-over','destination-in','destination-out','destination-atop',
+            'lighter', 'copy','xor', 'multiply', 'screen', 'overlay', 'darken',
+            'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light',
+            'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'
+          ].reverse();
+var gcoText = [
+"C'est la configuration par défaut, elle dessine les nouvelles formes au-dessus du contenu existant sur le canvas.",
+"La nouvelle forme est dessinée uniquement là où il y a déjà du contenu sur le canvas. Tout le reste est rendu transparent.",
+"La nouvelle forme est dessinée uniquement là où il n'y a pas de contenu sur le canvas.",
+"La nouvelle forme est dessinée uniquement là où il y a déjà du contenu sur le canvas. Elle s'ajoute au contenu existant.",
+"Les nouvelles formes sont dessinées derrière le contenu existant du canvas.",
+"Le contenu existant du canvas est conservé là où il chevauche la nouvelle forme. Tout le reste est rendu transparent.",
+"Le contenu existant du canvas est conservé là où il ne chevauche pas la nouvelle forme.",
+"Le contenu existant du canvas est conservé là où il chevauche la nouvelle forme. La nouvelle forme est dessinée derrière le contenu existant.",
+"La nouvelle forme est ajoutée en additionnant ses couleurs à celles du contenu existant.",
+"Seule la nouvelle forme est affichée.",
+"Les formes sont rendues transparentes lorsqu'elles se chevauchent.",
+"Les pixels de la nouvelle forme sont multipliés avec les pixels du contenu existant. Le résultat est une image plus sombre.",
+"Les pixels sont inversés, multipliés, puis inversés de nouveau. Le résultat est une image plus claire (l'inverse de multiply)",
+"Une combinaison de multiply et screen. Les parties sombres du contenu existant deviennent plus sombres, et les parties claires deviennent plus claires.",
+"Retiens les pixels les plus sombres entre les deux.",
+"Retiens les pixels les plus clairs entre les deux.",
+"Divise le layer inférieur par le layer supérieur inversé.",
+"Divise le layer inférieur inversé par le layer supérieur, puis inverse le résultat.",
+"Une combinaison de multiply et screen (comme overlay), mais avec le layer supérieur et inférieur inversés.",
+"Assombrit ou éclaircit les couleurs, en fonction de la couleur de la forme ajoutée.",
+"Soustrait le layer inférieur au layer supérieur ou inversemment pour toujours obtenir une valeur positive.",
+"Comme difference, mais avec un contraste moins élevé.",
+"Préserve la luminance et saturation du layer inférieur, et utilise la teinte du layer supérieur.",
+"Préserve la luminance et teinte du layer inférieur, et utilise la saturation du layer supérieur.",
+"Préserve la luminance du layer inférieur, et utilise la teinte et saturation du layer supérieur.",
+"Préserve la teinte et saturation du layer inférieur, et utilise la luminance du layer supérieur."
+].reverse();
+var width = 320;
+var height = 340;
+
+ +

Programme principal

+ +

Quand la page se charge, le code suivant s'exécute pour configurer et exécuter l'exemple:

+ +
window.onload = function() {
+    // lum en sRGB
+    var lum = {
+        r: 0.33,
+        g: 0.33,
+        b: 0.33
+    };
+    // redimensionne le canvas
+    canvas1.width = width;
+    canvas1.height = height;
+    canvas2.width = width;
+    canvas2.height = height;
+    lightMix()
+    colorSphere();
+    runComposite();
+    return;
+};
+
+ +

Et dans le code suivant, runComposite() gère la majeure partie du travail, en s'appuyant sur un certain nombre de fonctions utilitaires pour faire les parties difficiles.

+ +
function createCanvas() {
+    var canvas = document.createElement("canvas");
+    canvas.style.background = "url("+op_8x8.data+")";
+    canvas.style.border = "1px solid #000";
+    canvas.style.margin = "5px";
+    canvas.width = width/2;
+    canvas.height = height/2;
+    return canvas;
+}
+
+function runComposite() {
+    var dl = document.createElement("dl");
+    document.body.appendChild(dl);
+    while(gco.length) {
+        var pop = gco.pop();
+        var dt = document.createElement("dt");
+        dt.textContent = pop;
+        dl.appendChild(dt);
+        var dd = document.createElement("dd");
+        var p = document.createElement("p");
+        p.textContent = gcoText.pop();
+        dd.appendChild(p);
+
+        var canvasToDrawOn = createCanvas();
+        var canvasToDrawFrom = createCanvas();
+        var canvasToDrawResult = createCanvas();
+
+        var ctx = canvasToDrawResult.getContext('2d');
+        ctx.clearRect(0, 0, width, height)
+        ctx.save();
+        ctx.drawImage(canvas1, 0, 0, width/2, height/2);
+        ctx.globalCompositeOperation = pop;
+        ctx.drawImage(canvas2, 0, 0, width/2, height/2);
+        ctx.globalCompositeOperation = "source-over";
+        ctx.fillStyle = "rgba(0,0,0,0.8)";
+        ctx.fillRect(0, height/2 - 20, width/2, 20);
+        ctx.fillStyle = "#FFF";
+        ctx.font = "14px arial";
+        ctx.fillText(pop, 5, height/2 - 5);
+        ctx.restore();
+
+        var ctx = canvasToDrawOn.getContext('2d');
+        ctx.clearRect(0, 0, width, height)
+        ctx.save();
+        ctx.drawImage(canvas1, 0, 0, width/2, height/2);
+        ctx.fillStyle = "rgba(0,0,0,0.8)";
+        ctx.fillRect(0, height/2 - 20, width/2, 20);
+        ctx.fillStyle = "#FFF";
+        ctx.font = "14px arial";
+        ctx.fillText('existing content', 5, height/2 - 5);
+        ctx.restore();
+
+        var ctx = canvasToDrawFrom.getContext('2d');
+        ctx.clearRect(0, 0, width, height)
+        ctx.save();
+        ctx.drawImage(canvas2, 0, 0, width/2, height/2);
+        ctx.fillStyle = "rgba(0,0,0,0.8)";
+        ctx.fillRect(0, height/2 - 20, width/2, 20);
+        ctx.fillStyle = "#FFF";
+        ctx.font = "14px arial";
+        ctx.fillText('new content', 5, height/2 - 5);
+        ctx.restore();
+
+        dd.appendChild(canvasToDrawOn);
+        dd.appendChild(canvasToDrawFrom);
+        dd.appendChild(canvasToDrawResult);
+
+        dl.appendChild(dd);
+    }
+};
+
+ +

Fonctions utilitaires

+ +

Notre programme repose sur un certain nombbre de fonctions utilitaires:

+ +
var lightMix = function() {
+    var ctx = canvas2.getContext("2d");
+    ctx.save();
+    ctx.globalCompositeOperation = "lighter";
+    ctx.beginPath();
+    ctx.fillStyle = "rgba(255,0,0,1)";
+    ctx.arc(100, 200, 100, Math.PI*2, 0, false);
+    ctx.fill()
+    ctx.beginPath();
+    ctx.fillStyle = "rgba(0,0,255,1)";
+    ctx.arc(220, 200, 100, Math.PI*2, 0, false);
+    ctx.fill()
+    ctx.beginPath();
+    ctx.fillStyle = "rgba(0,255,0,1)";
+    ctx.arc(160, 100, 100, Math.PI*2, 0, false);
+    ctx.fill();
+    ctx.restore();
+    ctx.beginPath();
+    ctx.fillStyle = "#f00";
+    ctx.fillRect(0,0,30,30)
+    ctx.fill();
+};
+
+ +
var colorSphere = function(element) {
+    var ctx = canvas1.getContext("2d");
+    var width = 360;
+    var halfWidth = width / 2;
+    var rotate = (1 / 360) * Math.PI * 2; // per degree
+    var offset = 0; // scrollbar offset
+    var oleft = -20;
+    var otop = -20;
+    for (var n = 0; n <= 359; n ++) {
+        var gradient = ctx.createLinearGradient(oleft + halfWidth, otop, oleft + halfWidth, otop + halfWidth);
+        var color = Color.HSV_RGB({ H: (n + 300) % 360, S: 100, V: 100 });
+        gradient.addColorStop(0, "rgba(0,0,0,0)");
+        gradient.addColorStop(0.7, "rgba("+color.R+","+color.G+","+color.B+",1)");
+        gradient.addColorStop(1, "rgba(255,255,255,1)");
+        ctx.beginPath();
+        ctx.moveTo(oleft + halfWidth, otop);
+        ctx.lineTo(oleft + halfWidth, otop + halfWidth);
+        ctx.lineTo(oleft + halfWidth + 6, otop);
+        ctx.fillStyle = gradient;
+        ctx.fill();
+        ctx.translate(oleft + halfWidth, otop + halfWidth);
+        ctx.rotate(rotate);
+        ctx.translate(-(oleft + halfWidth), -(otop + halfWidth));
+    }
+    ctx.beginPath();
+    ctx.fillStyle = "#00f";
+    ctx.fillRect(15,15,30,30)
+    ctx.fill();
+    return ctx.canvas;
+};
+
+ +
// HSV (1978) = H: Hue / S: Saturation / V: Value
+Color = {};
+Color.HSV_RGB = function (o) {
+    var H = o.H / 360,
+        S = o.S / 100,
+        V = o.V / 100,
+        R, G, B;
+    var A, B, C, D;
+    if (S == 0) {
+        R = G = B = Math.round(V * 255);
+    } else {
+        if (H >= 1) H = 0;
+        H = 6 * H;
+        D = H - Math.floor(H);
+        A = Math.round(255 * V * (1 - S));
+        B = Math.round(255 * V * (1 - (S * D)));
+        C = Math.round(255 * V * (1 - (S * (1 - D))));
+        V = Math.round(255 * V);
+        switch (Math.floor(H)) {
+            case 0:
+                R = V;
+                G = C;
+                B = A;
+                break;
+            case 1:
+                R = B;
+                G = V;
+                B = A;
+                break;
+            case 2:
+                R = A;
+                G = V;
+                B = C;
+                break;
+            case 3:
+                R = A;
+                G = B;
+                B = V;
+                break;
+            case 4:
+                R = C;
+                G = A;
+                B = V;
+                break;
+            case 5:
+                R = V;
+                G = A;
+                B = B;
+                break;
+        }
+    }
+    return {
+        R: R,
+        G: G,
+        B: B
+    };
+};
+
+var createInterlace = function (size, color1, color2) {
+    var proto = document.createElement("canvas").getContext("2d");
+    proto.canvas.width = size * 2;
+    proto.canvas.height = size * 2;
+    proto.fillStyle = color1; // top-left
+    proto.fillRect(0, 0, size, size);
+    proto.fillStyle = color2; // top-right
+    proto.fillRect(size, 0, size, size);
+    proto.fillStyle = color2; // bottom-left
+    proto.fillRect(0, size, size, size);
+    proto.fillStyle = color1; // bottom-right
+    proto.fillRect(size, size, size, size);
+    var pattern = proto.createPattern(proto.canvas, "repeat");
+    pattern.data = proto.canvas.toDataURL();
+    return pattern;
+};
+
+var op_8x8 = createInterlace(8, "#FFF", "#eee");
diff --git a/files/fr/web/api/canvas_api/tutorial/compositing/index.html b/files/fr/web/api/canvas_api/tutorial/compositing/index.html new file mode 100644 index 0000000000..cc646762dd --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/compositing/index.html @@ -0,0 +1,110 @@ +--- +title: Composition et découpe +slug: Web/API/Canvas_API/Tutoriel_canvas/Composition +tags: + - Canvas + - Composition + - dessin +translation_of: Web/API/Canvas_API/Tutorial/Compositing +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}
+ +
+

Dans tous nos exemples précédents, les formes étaient toutes dessinées les unes au dessus des autres. C'est plus que suffisant pour la plupart des situations, mais cela limite l'ordre dans lequel les formes composées sont construites. Nous pouvons cependant changer ce comportement en définissant la propriété globalCompositeOperation. En complément, la propriété clip nous permet de cacher les parties des formes que nous ne désirons pas.

+
+ +

globalCompositeOperation

+ +

Nous pouvons non seulement dessiner de nouvelles formes derrière des formes existantes mais nous pouvons aussi les utiliser pour masquer certaines zones, supprimer des sections du canvas (ce n'est pas limité aux rectangles comme pour la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}) et davantage.

+ +
+
{{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation = type")}}
+
Cela configure le type d'opération de composition à appliquer lorsqu'on dessine de nouvelles formes, où le type correspond à une string qui fait référence à une des douze opérations de composition possibles.
+
+ +

Reportez-vous aux exemples de compositon pour le code des exemples suivants.

+ +

{{EmbedLiveSample("Exemple_de_composition", 750, 6750, "" ,"/Tutoriel_canvas/Composition/Example")}}

+ +

Détourage

+ +

Un détourage (clipping path en anglais) est comme une forme de canvas standard, à la différence près qu'elle sert à masquer certaines parties du canvas. Voyez l'image de droite, la forme rouge (en étoile) est un détourage du canvas. Tout ce qui est en dehors du chemin n'est pas dessiné sur le canvas.

+ +

Si nous comparons le détourage à la propriété globalCompositeOperation vue précédemment, nous voyons deux modes de composition qui ont plus ou moins les mémes effets qu'avec source-in et source-atop. La différence la plus significative entre les deux est que le détourage n'est jamais dessiné sur le canvas à proprement parler et il n'est jamais affecté par l'ajout de nouvelles formes. Ça le rend idéal pour dessiner plusieurs formes dans une zone restreinte.

+ +

Dans le chapitre "dessiner des formes avec le canevas", nous n'avions mentionné que les méthodes stroke() et fill(), mais il y en a une troisième: clip() — elle permet de faire des détourages.

+ +
+
{{domxref("CanvasRenderingContext2D.clip", "clip()")}}
+
Transforme le chemin en cours de création en détourage effectif.
+
+ +

Il faut utiliser clip() plutot que closePath() pour fermer un chemin et enfaire un détourage.

+ +

Par défault, l'élément {{HTMLElement("canvas")}} possède un détourage aux mêmes dimensions que le canvas lui-même. Donc, par défaut aucune découpe n'est apparente.

+ +

Un exemple de clip

+ +

Dans cet exemple, nous allons utiliser un détourage circulaire pour restreindre le dessin d'un essemble d'étoiles aléatoires à une zone particulière (et circulaire...).

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.fillRect(0, 0, 150, 150);
+  ctx.translate(75, 75);
+
+  // Create a circular clipping path
+  ctx.beginPath();
+  ctx.arc(0, 0, 60, 0, Math.PI * 2, true);
+  ctx.clip();
+
+  // draw background
+  var lingrad = ctx.createLinearGradient(0, -75, 0, 75);
+  lingrad.addColorStop(0, '#232256');
+  lingrad.addColorStop(1, '#143778');
+
+  ctx.fillStyle = lingrad;
+  ctx.fillRect(-75, -75, 150, 150);
+
+  // draw stars
+  for (var j = 1; j < 50; j++) {
+    ctx.save();
+    ctx.fillStyle = '#fff';
+    ctx.translate(75 - Math.floor(Math.random() * 150),
+                  75 - Math.floor(Math.random() * 150));
+    drawStar(ctx, Math.floor(Math.random() * 4) + 2);
+    ctx.restore();
+  }
+
+}
+
+function drawStar(ctx, r) {
+  ctx.save();
+  ctx.beginPath();
+  ctx.moveTo(r, 0);
+  for (var i = 0; i < 9; i++) {
+    ctx.rotate(Math.PI / 5);
+    if (i % 2 === 0) {
+      ctx.lineTo((r / 0.525731) * 0.200811, 0);
+    } else {
+      ctx.lineTo(r, 0);
+    }
+  }
+  ctx.closePath();
+  ctx.fill();
+  ctx.restore();
+}
+
+ + + +

Dans les premières lignes de code, nous dessinons un rectangle noir ayant la même taille que le canvas comme toile de fond puis nous déplaçons l'origine au centre de l'image. Ensuite, nous créons le détourage circulaire en dessinant un arc (complet) et en faisant appelle à clip(). Les détourages font aussi partie de l'état de sauvegarde des canvas. Si on voulait garder le détourage d'origine, on pourrait par exemple sauvegarder l'état du canvas au préalable.

+ +

Tout ce qui sera dessiné après la création du détourage n'apparaîtra qu'à l'intérieur de ce chemin. Vous pouvez voir ça clairement avec le dégradé linéaire qui est dessiné après. Ensuite, un ensemble de 50 étoiles aléatoires est dessiné, en utilisant la fonction drawStar(). Nous pouvons voir, une fois de plus, que les éléments (ici les étoiles) n'apparaissent qu'à l'intérieur du détourage.

+ +

{{EmbedLiveSample("A_clip_example", "180", "180", "https://mdn.mozillademos.org/files/208/Canvas_clip.png")}}

+ +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/fr/web/api/canvas_api/tutorial/drawing_shapes/index.html new file mode 100644 index 0000000000..233d1baeb2 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/drawing_shapes/index.html @@ -0,0 +1,581 @@ +--- +title: Dessiner des formes avec le canevas +slug: Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques +tags: + - Canvas + - Graphisme + - Guide + - HTML + - HTML5 + - Intermédiaire + - Tutoriel +translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes +--- +

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Utilisation_de_base", "Tutoriel_canvas/Ajout_de_styles_et_de_couleurs")}}

+ +

Maintenant que nous avons défini notre environnement de canevas, nous pouvons entrer dans les détails de la façon de dessiner sur le canevas. A la fin de cet article, vous aurez appris à tracer des rectangles, des triangles, des lignes, des arcs et des courbes, vous rendant ainsi familier avec certaines des formes de base. Le travail avec les trajets est essentiel lors du dessin d'objets sur le canevas, et nous verrons comment cela peut être fait.

+ +

La grille

+ +

Avant de pouvoir commencer à dessiner, il nous faut parler de la grille ou système de coordonnées. Notre schéma HTML de la page précédente avait un élément canevas large de 150 pixels et haut de 150 pixels. À droite, vous voyez ce canevas avec la grille par défaut superposée. Normalement, 1 unité dans la grille correspond à 1 pixel sur le canevas. L'origine de cette grille est positionnée dans le coin supérieur gauche de coordonnées (0, 0). Tous les éléments sont placés relativement à cette origine. Ainsi, le coin supérieur gauche du carré bleu est à x pixels à partir de la gauche et à y pixels à partir du haut, aux coordonnées (x, y). Plus loin dans ce tutoriel, nous verrons comment déplacer l'origine à une position différente, faire pivoter la grille ou même la mettre à l'échelle ; mais pour l'instant, nous nous en tiendrons aux valeurs par défaut.

+ +

Dessin de rectangles

+ +

Au contraire de SVG, le {{HTMLElement("canvas")}} ne supporte qu'une seule forme primitive : le rectangle. Toute autre forme doit être créée en combinant un ou plusieurs trajets, c'est-à-dire des listes de points reliés par des lignes. Heureusement, nous avons un assortiment de fonctions de dessin de trajets, qui rendent possible la composition de formes très complexes.

+ +
+

Commençons par le rectangle. Il y a trois fonctions qui dessinent des rectangles sur le canvas :

+ +
+
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, largeur, hauteur)")}}
+
Dessine un rectangle rempli.
+
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, largeur, hauteur)")}}
+
Dessine un contour rectangulaire
+
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, largeur, hauteur)")}}
+
Efface la zone rectangulaire spécifiée, la rendant complètement transparente.
+
+ +

Chacune de ces trois fonctions a les mêmes paramètres. x et y indiquent la position sur le canevas (par rapport à l'origine) du coin supérieur gauche du rectangle sur le canvas. largeur et hauteur indiquent la taille du rectangle.

+ +

Ci-dessous la fonction draw() de la page précédente, mais utilisant maintenant ces trois fonctions.

+ +

Exemple de forme rectangulaire

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    ctx.fillRect(25, 25, 100, 100);
+    ctx.clearRect(45, 45, 60, 60);
+    ctx.strokeRect(50, 50, 50, 50);
+  }
+}
+ +

Le résultat de cet exemple est montré ci-dessous.

+ +

{{EmbedLiveSample("Exemple_de_forme_rectangulaire", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

+ +

La fonction fillRect() dessine un grand carré noir de 100 pixels de côté. La fonction clearRect() efface ensuite un carré de 60x60 pixels, et finalement, la fonction strokeRect() est appelée pour créer un contour rectangulaire de 50x50 pixels dans l'espace effacé.

+ +

Dans les pages qui suivent, nous verrons deux méthodes alternatives pour clearRect(), et nous verrons aussi comment changer la couleur et le style de trait des formes rendues.

+ +

A la différence des fonctions de trajet que nous allons voir dans la prochaine section, les trois fonctions de rectangles dessinent immédiatement sur le canvas.

+ +

Dessin de trajets

+ +

Les seules autres formes primitives sont les trajets. Un trajet est une liste de points, reliés par des segments de lignes qui peuvent être de différentes formes, incurvées ou non, de largeur différente et de couleur différente. Un trajet, ou même un sous-trajet, peut être fermé. La réalisation de formes utilisant des trajets requiert quelques étapes supplémentaires :

+ +
    +
  1. Tout d'abord, vous devez créer le trajet.
  2. +
  3. Ensuite vous devez utiliser des instructions de dessin pour dessiner sur le trajet.
  4. +
  5. Finalement, vous devez fermer le trajet.
  6. +
  7. Une fois que le trajet a été créé, vous devez le tracer ou le remplir pour le faire apparaître.
  8. +
+ +

Voici les functions utilisées pour réaliser ces étapes :

+ +
+
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
+
Crée un nouveau trajet. Une fois créé, les fonctions de dessin ultérieures seront dirigées vers le trajet et utilisées pour le construire.
+
Méthodes de trajet
+
Méthodes pour définir différents trajets pour les objets.
+
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
+
Ferme le trajet pour que les fonctions de dessin ultérieures soient à nouveau dirigées vers le contexte.
+
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
+
Dessine la forme en traçant son contour.
+
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
+
Dessine une forme pleine en remplissant la zone de contenu du trajet.
+
+ +

La première étape pour créer un trajet est d'appeler beginPath(). En interne, les trajets sont stockés comme une liste de sous-trajets (lignes, arcs, etc) qui ensemble réalisent une forme. Chaque fois que cette méthode est appelée, la liste est remise à zéro, et nous pouvons commencer à dessiner de nouvelles formes.

+ +
Note : lorsque le trajet en cours est vide, par exemple immédiatement après avoir appelé beginPath(), ou sur un canvas nouvellement créé, la première instruction de construction de trajet est toujours traitée comme un moveTo(), indépendamment de ce qu'elle est en réalité. Pour cette raison, il sera pratiquement toujours souhaitable d'indiquer la position de départ après la réinitialisation d'un trajet.
+ +

La deuxième étape est d'appeler les méthodes qui indiquent effectivement les sous-trajets à dessiner. Nous verrons ces méthodes bientôt.

+ +

La troisième méthode, optionnelle, est l'appel à closePath(). Cette méthode essaye de fermer la forme géométrique en dessinant une ligne droite depuis le point courant jusqu'au début du trajet. Si la forme a déjà été fermée ou s'il n'y a qu'un seul point dans la liste, cette fonction ne fait rien.

+ +
Note : quand vous appelez fill(), toutes les formes ouvertes sont automatiquement fermées, ainsi vous n'avez pas à appeler closePath(). Ce n'est pas le cas quand vous appelez stroke().
+ +

Dessin d'un triangle

+ +

Par exemple, le code pour dessiner un triangle peut ressembler à ce qui suit :

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.moveTo(75, 50);
+    ctx.lineTo(100, 75);
+    ctx.lineTo(100, 25);
+    ctx.fill();
+  }
+}
+
+ +

Le résultat ressemble à :

+ +

{{EmbedLiveSample("Dessin_d'un_triangle", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

+ +

Déplacement du stylo

+ +

Une fonction très utile, qui ne dessine rien mais qui fait tout de même partie de la liste de trajets décrite plus haut, est la fonction moveTo(). La meilleure façon de l'imaginer est le fait de lever un stylo ou un crayon depuis une position sur un papier, et de le placer sur une autre.

+ +
+
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
+
Déplace le stylo aux coordonnées x et y.
+
+ +

Lorsque le canevas est initialisé ou que beginPath() est appelé, vous souhaiterez typiquement utiliser moveTo() pour positionner le point de départ quelque part ailleurs. On pourrait aussi utiliser moveTo() pour dessiner des trajets non reliés. Jetez un coup d'œil à l'émoticon ci-dessous.

+ +

Pour essayer par vous-même, vous pouvez utiliser le fragment de code ci-dessous. Collez-le simplement dans la fonction draw() que nous avons vue plus tôt.

+ + + +
function draw() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.arc(75, 75, 50, 0, Math.PI * 2, true);  // Cercle extérieur
+    ctx.moveTo(110,75);
+    ctx.arc(75, 75, 35, 0, Math.PI, false);  // Bouche (sens horaire)
+    ctx.moveTo(65, 65);
+    ctx.arc(60, 65, 5, 0, Math.PI * 2, true);  // Oeil gauche
+    ctx.moveTo(95, 65);
+    ctx.arc(90, 65, 5, 0, Math.PI * 2, true);  // Oeil droite
+    ctx.stroke();
+  }
+}
+
+ +

Le résultat ressemble à ce qui suit :

+ +

{{EmbedLiveSample("Déplacement_du_stylo", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

+ +

Si vous voulez voir les lignes d'interconnexion, vous pouvez enlever les lignes qui appellent moveTo().

+ +
+

Note : pour en savoir plus sur la fonction arc(), voir la section {{anch("Arcs")}} ci-dessous.

+
+ +

Les lignes

+ +

Pour dessiner des lignes droites, utilisez la méthode lineTo().

+ +
+
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
+
Dessine une ligne depuis la position de dessin courante jusqu'à la position spécifiée par x et y.
+
+ +

Cette méthode prend deux arguments, x et y, qui sont les coordonnées du point final de la ligne. Le point de départ dépend des trajets précédemment tracés, où le point final du trajet précédent est le point de départ du suivant, etc. Le point de départ peut aussi être changé en utilisant la méthode moveTo().

+ +

L'exemple ci-dessous dessine deux triangles, un rempli et un filaire.

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    // Triangle plein
+    ctx.beginPath();
+    ctx.moveTo(25, 25);
+    ctx.lineTo(105, 25);
+    ctx.lineTo(25, 105);
+    ctx.fill();
+
+    // Triangle filaire
+    ctx.beginPath();
+    ctx.moveTo(125, 125);
+    ctx.lineTo(125, 45);
+    ctx.lineTo(45, 125);
+    ctx.closePath();
+    ctx.stroke();
+  }
+}
+
+ +

Il commence par appeler beginPath() pour démarrer un nouveau trajet de forme. Nous utilisons ensuite la méthode moveTo() pour déplacer le point de départ à la position désirée. En dessous, deux lignes sont dessinées, qui constituent deux côtés du triangle.

+ +

{{EmbedLiveSample("Les_lignes", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

+ +

Vous remarquerez la différence entre le triangle plein et le filaire. Cela, comme mentionné précédemment, vient du fait que les formes sont automatiquement fermées lorsqu'un trajet est rempli, mais pas lorsqu'elles sont dessinées au trait. Si nous avions omis le closePath() pour le triangle filaire, seules deux lignes auraient été tracées, et non pas un triangle complet.

+ +

Les arcs

+ +

Pour dessiner des arcs ou des cercles, on utilise les méthodes arc() ou arcTo().

+ +
+
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, rayon, angleInitial, angleFinal, antihoraire)")}}
+
Dessine un arc de cercle qui est centré à la position (x, y), de rayon r, commençant à angleInitial et finissant à angleFinal en allant dans le sens indiqué par antihoraire (par défaut, horaire).
+
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, rayon)")}}
+
Dessine un arc avec les points de contrôle et l'angle donnés, relié au point précédent par une ligne droite.
+
+ +

Regardons plus en détail la méthode arc, qui prend six paramètres : x et y sont les coordonnées du centre du cercle sur lequel l'arc doit être tracé. rayon se passe d'explication. Les paramètres angleInitial et angleFinal définissent en radians les points de départ et d'arrivée de l'arc, le long de la courbe du cercle. Ceux-ci sont mesurés à partir de l'axe des x. Le paramètre antihoraire est une valeur booléenne qui, lorsque true, dessine l'arc dans le sens antihoraire, sinon, l'arc est dessiné dans le sens horaire.

+ +
+

Note : les angles dans la fonction arc sont mesurés en radians, et non en degrés. Pour convertir des degrés en radians, vous pouvez utiliser l'expression JavaScript suivante : radians = (Math.PI/180)*degres.

+
+ +

L'exemple suivant est un peu plus complexe que ceux que nous avons vus plus haut. Il dessine 12 arcs différents, avec des angles et des remplissages différents.

+ +

Les deux boucles for bouclent sur les lignes et les colonnes des arcs. Pour chaque arc, on commence un nouveau trajet en appelant beginPath(). Dans le code, chacun des paramètres dans l'arc est une variable pour des raisons de clarté, mais en réalité, vous n'avez pas besoin de le faire.

+ +

Les coordonnées x et y devraient être claires. rayon et angleInitial sont fixés. L'angleFinal commence à 180 degrés (demi-cercle) dans la première colonne et il est augmenté par pas de 90 degrés, pour finir par un cercle complet dans la dernière colonne.

+ +

L'instruction pour le paramètre antihoraire a pour résultat que la première et de la troisième ligne sont dessinées comme des arcs de sens horaire, et que la deuxième et quatrième sont dessinées comme des arcs de sens antihoraire. Enfin, l'instruction if fait des arcs filaires dans la moité supérieure, et des arcs remplis dans la moitié inférieure.

+ +
+

Note : cet exemple requiert canevas légèrement plus large que les autres sur cette page : 150 x 200 pixels.

+
+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    for(var i = 0; i < 4; i++) {
+      for(var j = 0; j < 3; j++) {
+        ctx.beginPath();
+        var x = 25 + j * 50; // Coordonnée x
+        var y = 25 + i * 50; // Coordonnée y
+        var rayon = 20; // Rayon de l'arc
+        var angleInitial = 0; // Point de départ sur le cercle
+        var angleFinal = Math.PI + (Math.PI * j) / 2; // Point d'arrivée sur le cercle
+        var antihoraire = i % 2 != 0; // Horaire ou antihoraire
+
+        ctx.arc(x, y, rayon, angleInitial, angleFinal, antihoraire);
+
+        if (i>1) {
+          ctx.fill();
+        } else {
+          ctx.stroke();
+        }
+      }
+    }
+  }
+}
+
+ +

{{EmbedLiveSample("Les_arcs", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

+ +

Les courbes quadratiques et de Bézier

+ +

Le type suivant de trajets disponible est la courbe de Bézier, disponible en deux variétés, cubique et quadratique. Elles sont généralement utilisées pour dessiner des formes naturelles complexes.

+ +
+
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
+
Dessine une courbe de Bézier quadratique depuis la position courante du stylo jusqu'au point final spécifié par x et y, en utilisant le point de contrôle spécifié par cp1x et cp1y.
+
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
+
Dessine une courbe de Bézier cubique depuis la position courante du stylo jusqu'au point spécifié par x et y, en utilisant les points de contrôle (cp1x, cp1y) et (cp2x, cp2y).
+
+ +

La différence entre ces deux méthodes est mieux décrite par l'image à droite. Une courbe quadratique de Bézier a un point de départ et un point d'arrivée (points bleus), et seulement un point de contrôle (indiqué par le point rouge), tandis qu'une courbe de Bézier cubique utilise deux points de contrôle.

+ +

Les paramètres x et y de ces deux méthodes sont les coordonnées du point d'arrivée. cp1x et cp1y sont les coordonnées du premier point de contrôle, et  cp2x et cp2y sont les coordonnées du second point de contrôle.

+ +

Utiliser des courbes quadratiques et cubiques de Bézier peut constituer un certain défi, car à la différence d'un logiciel de tracé des vecteurs comme Adobe Illustrator, nous n'avons pas de retour visuel direct concernant ce que nous faisons. Cela rend passablement difficile le dessin de formes complexes. Dans l'exemple suivant, nous allons dessiner quelques formes naturelles simples, mais si vous avez du temps et - surtout - de la patience, des formes bien plus complexes peuvent être créées.

+ +

Il n'y a rien de très difficile dans ces exemples. Dans les deux cas, on peut voir une succession de courbes être dessinées qui aboutissent finalement à une forme complète.

+ +

Courbes de Bézier quadratiques

+ +

Cet exemple utilise plusieurs courbes quadratiques de Bézier pour rendre une bulle de dialogue.

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    // Exemples de courbes quadratiques
+    ctx.beginPath();
+    ctx.moveTo(75, 25);
+    ctx.quadraticCurveTo(25, 25, 25, 62.5);
+    ctx.quadraticCurveTo(25, 100, 50, 100);
+    ctx.quadraticCurveTo(50, 120, 30, 125);
+    ctx.quadraticCurveTo(60, 120, 65, 100);
+    ctx.quadraticCurveTo(125, 100, 125, 62.5);
+    ctx.quadraticCurveTo(125, 25, 75, 25);
+    ctx.stroke();
+  }
+}
+
+ +

{{EmbedLiveSample("Courbes_de_Bézier_quadratiques", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

+ +

Les courbes de Bézier cubiques

+ +

Cet exemple dessine un cœur en utilisant les courbes de Bézier cubiques.

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    // Exemple de courbes cubiques
+    ctx.beginPath();
+    ctx.moveTo(75, 40);
+    ctx.bezierCurveTo(75, 37, 70, 25, 50, 25);
+    ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
+    ctx.bezierCurveTo(20, 80, 40, 102, 75, 120);
+    ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
+    ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
+    ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
+    ctx.fill();
+  }
+}
+
+ +

{{EmbedLiveSample("Les_courbes_de_Bézier_cubiques", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

+ +

Rectangles

+ +

En plus des trois méthodes que nous avons vues dans {{anch("Dessin de rectangles")}}, qui dessinent des formes rectangulaires directement sur le canevas, il y a la méthode rect(), qui ajoute un trajet rectangulaire à un trajet actuellement ouvert.

+ +
+
{{domxref("CanvasRenderingContext2D.rect", "rect(x, y, largeur, hauteur)")}}
+
Dessine un rectangle dont l'angle supérieur gauche est spécifié par (x, y), avec les largeur et hauteur spécifiées.
+
+ +

Quand cette méthode est exécutée, la méthode moveTo() est automatiquement appelée avec les paramètres (0,0). En d'autres termes, la position en cours du stylo est automatiquement réinitialisée aux coordonnées par défaut.

+ +

Combiner les possibilités

+ +

Jusqu'à présent, chaque exemple de cette page a utilisé un seul type de fonction de trajet par forme. Cependant, il n'y a pas de limite au nombre ou aux types de trajets que vous pouvez utiliser pour créer une forme. Ainsi, dans ce dernier exemple, combinons toutes les fonctions de trajet pour faire un ensemble de personnages d'un jeu très célèbre.

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canevas');
+  if (canevas.getContext) {
+    var ctx = canevas.getContext('2d');
+
+    rectArrondi(ctx, 12, 12, 150, 150, 15);
+    rectArrondi(ctx, 19, 19, 150, 150, 9);
+    rectArrondi(ctx, 53, 53, 49, 33, 10);
+    rectArrondi(ctx, 53, 119, 49, 16, 6);
+    rectArrondi(ctx, 135, 53, 49, 33, 10);
+    rectArrondi(ctx, 135, 119, 25, 49, 10);
+
+    ctx.beginPath();
+    ctx.arc(37, 37, 13, Math.PI/7, -Math.PI/7, false);
+    ctx.lineTo(31, 37);
+    ctx.fill();
+
+    for(var i = 0; i< 8; i++) {
+      ctx.fillRect(51 + i * 16, 35, 4, 4);
+    }
+
+    for(i = 0; i < 6; i++) {
+      ctx.fillRect(115, 51 + i * 16, 4, 4);
+    }
+
+    for(i = 0; i < 8; i++) {
+      ctx.fillRect(51 + i * 16, 99, 4, 4);
+    }
+
+    ctx.beginPath();
+    ctx.moveTo(83, 116);
+    ctx.lineTo(83, 102);
+    ctx.bezierCurveTo(83, 94, 89, 88, 97, 88);
+    ctx.bezierCurveTo(105, 88, 111, 94, 111, 102);
+    ctx.lineTo(111, 116);
+    ctx.lineTo(106.333, 111.333);
+    ctx.lineTo(101.666, 116);
+    ctx.lineTo(97, 111.333);
+    ctx.lineTo(92.333, 116);
+    ctx.lineTo(87.666, 111.333);
+    ctx.lineTo(83, 116);
+    ctx.fill();
+
+    ctx.fillStyle = "white";
+    ctx.beginPath();
+    ctx.moveTo(91, 96);
+    ctx.bezierCurveTo(88, 96, 87, 99, 87, 101);
+    ctx.bezierCurveTo(87, 103, 88, 106, 91, 106);
+    ctx.bezierCurveTo(94, 106, 95, 103, 95, 101);
+    ctx.bezierCurveTo(95, 99, 94, 96, 91, 96);
+    ctx.moveTo(103, 96);
+    ctx.bezierCurveTo(100, 96, 99, 99, 99, 101);
+    ctx.bezierCurveTo(99, 103, 100, 106, 103, 106);
+    ctx.bezierCurveTo(106, 106, 107, 103, 107, 101);
+    ctx.bezierCurveTo(107, 99, 106, 96, 103, 96);
+    ctx.fill();
+
+    ctx.fillStyle = "black";
+    ctx.beginPath();
+    ctx.arc(101, 102, 2, 0, Math.PI * 2, true);
+    ctx.fill();
+
+    ctx.beginPath();
+    ctx.arc(89, 102, 2, 0, Math.PI * 2, true);
+    ctx.fill();
+  }
+}
+
+// Une fonction utilitaire pour tracer des rectangles avec des coins arrondis
+
+function rectArrondi(ctx, x, y, largeur, hauteur, rayon) {
+  ctx.beginPath();
+  ctx.moveTo(x, y + rayon);
+  ctx.lineTo(x, y + hauteur - rayon);
+  ctx.quadraticCurveTo(x, y + hauteur, x + rayon, y + hauteur);
+  ctx.lineTo(x + largeur - rayon, y + hauteur);
+  ctx.quadraticCurveTo(x + largeur, y + hauteur, x + largeur, y + hauteur - rayon);
+  ctx.lineTo(x + largeur, y + rayon);
+  ctx.quadraticCurveTo(x + largeur, y, x + largeur - rayon, y);
+  ctx.lineTo(x + rayon,y);
+  ctx.quadraticCurveTo(x, y, x, y + rayon);
+  ctx.stroke();
+}
+
+
+ +

L'image résultante ressemble à ce qui suit :

+ +
+

{{EmbedLiveSample("Combiner_les_possibilités", 160, 160)}}

+ +

Nous ne l'expliquerons pas plus en détails, du fait que c'est étonnament simple. Les choses les plus importantes à noter sont l'utilisation de la propriété fillStyle sur le contexte du dessin, et l'utilisation d'une fonction utilitaire dans ce cas, rectArrondi()). L'utilisation de fonctions utilitaires pour des éléments de dessin que vous faites souvent peut être très utile, et peut réduire la quantité de code dont vous avez besoin, ainsi que sa complexité.

+ +

Nous reviendrons sur fillStyle plus en détail plus loin dans ce tutoriel. Pour l'instant, tout ce que nous faisons est de l'utiliser pour changer en blanc la couleur pour les trajets depuis la couleur noire par défaut, et inversement ensuite.

+
+
+ +

Objets Path2D

+ +

Comme nous l'avons vu dans le dernier exemple, il peut y avoir une série de trajets et d'instructions de dessin pour dessiner des objets sur votre canevas. Pour simplifier le code et améliorer les performances, l'objet {{domxref("Path2D")}}, disponible dans les versions récentes des navigateurs, vous permet de mettre en cache ou d'enregistrer ces instrucions de dessin. Vous pourrez alors rejouer vos trajets rapidement.
+ Voyons comment nous pouvons construire un objet Path2D :

+ +
+
{{domxref("Path2D.Path2D", "Path2D()")}}
+
Le constructor Path2D() retourne un objet Path2D nouvellement instancié, optionellement avec un autre trajet comme argument (crée une copie), ou optionellement avec une chaîne constituée de données de trajet SVG.
+
+ +
new Path2D();     // objet trajet vide
+new Path2D(trajet); // copie depuis un autre objet Path2D
+new Path2D(d);    // trajet depuis des données de trajet SVG
+ +

Toutes les méthodes de trajet telles que moveTorectarc ou quadraticCurveTo, etc., que nous avons appris à connaître ci-dessus, sont disponibles sur les objets Path2D.

+ +

L'API Path2D ajoute aussi une manière de combiner des trajets en utilisant la méthode addPath. Cela peut être utile quand vous voulez contruire des objets à partir de plusieurs composants, par exemple.

+ +
+
{{domxref("Path2D.addPath", "Path2D.addPath(trajet [, transformation])")}}
+
Ajoute un trajet, au trajet en cours, avec une matrice de transformation.
+
+ +

Exemple de Path2D

+ +

Dans cet exemple, on crée un rectangle et un cercle. Tous deux sont stockés comme des objets Path2D, de sorte qu'ils sont disponibles pour un usage ultérieur. Avec la nouvelle API Path2D, plusieurs méthodes ont été mises à jour pour accepter optionnellement un objet Path2D à utiliser au lieu du trajet en cours. Ici, stroke et fill sont utilisés avec un argument de trajet pour dessiner les deux objets sur le canevas, par exemple.

+ + + +
function dessiner() {
+  var canevas = document.getElementById('canvas');
+  if (canevas.getContext){
+    var ctx = canevas.getContext('2d');
+
+    var rectangle = new Path2D();
+    rectangle.rect(10, 10, 50, 50);
+
+    var cercle = new Path2D();
+    cercle.moveTo(125, 35);
+    cercle.arc(100, 35, 25, 0, 2 * Math.PI);
+
+    ctx.stroke(rectangle);
+    ctx.fill(cercle);
+  }
+}
+ +

{{EmbedLiveSample("Exemple_de_Path2D", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

+ +

Utilisation de trajets SVG

+ +

Une autre fonctionnalité puissante de la nouvelle API Path2D de canevas est l'utilisation de données de trajet SVG pour initialiser des trajets sur votre canevas. Cela peut vous permettre de faire circuler des données de trajet et les réutiliser, à la fois en SVG et dans un canevas.

+ +

Le trajet se déplacera au point (M10 10) et se déplacera alors de 80 points horizontalement vers la droite (h 80), ensuite de 80 points vers le bas (v 80), puis de 80 points vers la gauche (h -80), et reviendra alors au départ (z). Vous pouvez voir cet exemple sur la page du constructeur Path2D.

+ +
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
+ +

{{PreviousNext("Tutoriel_canvas/Utilisation_de_base", "Tutoriel_canvas/Ajout_de_styles_et_de_couleurs")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/drawing_text/index.html b/files/fr/web/api/canvas_api/tutorial/drawing_text/index.html new file mode 100644 index 0000000000..761b5baf3d --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/drawing_text/index.html @@ -0,0 +1,161 @@ +--- +title: Dessin de texte avec canvas +slug: Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas +tags: + - Canvas + - Graphismes + - HTML + - Tutoriels +translation_of: Web/API/Canvas_API/Tutorial/Drawing_text +--- +

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Ajout_de_styles_et_de_couleurs", "Tutoriel_canvas/Utilisation_d'images")}}

+ +

Après avoir vu comment appliquer les styles et les couleurs dans le chapitre précédent, nous allons maintenant voir comment dessiner du texte sur canvas.

+ +

Dessin de texte

+ +

  Le contexte de rendu du canevas fournit deux méthodes pour le rendu du texte :

+ +
+
{{domxref("CanvasRenderingContext2D.fillText", "fillText(text, x, y [, maxWidth])")}}
+
Remplit un texte donné à la position (x, y). Facultatif, avec une largeur maximale à dessiner.
+
{{domxref("CanvasRenderingContext2D.strokeText", "strokeText(text, x, y [, maxWidth])")}}
+
Trait d'un texte donné à la position (x, y). Facultatif, avec une largeur maximale à dessiner.
+
+ +

Un exemple fillText

+ +

Le texte est rempli en utilisant le fillStyle actuel.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.font = '48px serif';
+  ctx.fillText('Hello world', 10, 50);
+}
+ + + +

{{EmbedLiveSample("A_fillText_example", 310, 110)}}

+ +

Un exemple de strokeText

+ +

Le texte est rempli en utilisant le strokeStyle courant.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  ctx.font = '48px serif';
+  ctx.strokeText('Hello world', 10, 50);
+}
+ + + +

{{EmbedLiveSample("A_strokeText_example", 310, 110)}}

+ +

Style de texte

+ +

Dans les exemples ci-dessus, nous utilisons déjà la propriété de police pour rendre le texte un peu plus grand que la taille par défaut. Il existe d'autres propriétés qui vous permettent d'ajuster la façon dont le texte est affiché sur le canevas :

+ +
+
{{domxref("CanvasRenderingContext2D.font", "font = value")}}
+
Le style de texte actuel utilisé lors du dessin du texte. Cette chaîne utilise la même syntaxe que la propriété CSS {{cssxref ("font")}}. La police par défaut est 10px sans-serif.
+
{{domxref("CanvasRenderingContext2D.textAlign", "textAlign = value")}}
+
Paramètre d'alignement du texte. Valeurs possibles : start (début), end (fin), left (gauche), right (droite) ou center (centre). La valeur par défaut est start.
+
{{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline = value")}}
+
Paramètre d'alignement de base. Valeurs possibles : top (haut), hanging (suspendu), middle (moyen), alphabetic (alphabétique), ideographic (idéographique), bottom (en bas). La valeur par défaut est alphabetic.
+
{{domxref("CanvasRenderingContext2D.direction", "direction = value")}}
+
Directionnalité. Valeurs possibles: ltr (de gauche à droite), rtl (de droite à gauche), inherit (hérité). La valeur par défaut est inherit.
+
+ +

Ces propriétés peuvent vous être familières si vous avez déjà travaillé avec CSS.

+ +

Le diagramme suivant du WHATWG illustre les différentes lignes de base prises en charge par la propriété textBaseline.

+ +

The top of the em square is
+roughly at the top of the glyphs in a font, the hanging baseline is
+where some glyphs like आ are anchored, the middle is half-way
+between the top of the em square and the bottom of the em square,
+the alphabetic baseline is where characters like Á, ÿ,
+f, and Ω are anchored, the ideographic baseline is
+where glyphs like 私 and 達 are anchored, and the bottom
+of the em square is roughly at the bottom of the glyphs in a
+font. The top and bottom of the bounding box can be far from these
+baselines, due to glyphs extending far outside the em square.

+ +

Un exemple de textBaseline

+ +

Modifiez le code ci-dessous et visualisez vos mises à jour en direct dans le canevas :

+ +
ctx.font = '48px serif';
+ctx.textBaseline = 'hanging';
+ctx.strokeText('Hello world', 0, 100);
+ + + +

{{ EmbedLiveSample('Playable_code', 700, 360) }}

+ +

Mesures de texte avancées

+ +

Dans le cas où vous avez besoin d'obtenir plus de détails sur le texte, la méthode suivante vous permet de le mesurer.

+ +
+
{{domxref("CanvasRenderingContext2D.measureText", "measureText()")}}
+
Retourne un objet {{domxref("TextMetrics")}} contenant la largeur en pixels, sur la base duquel le texte spécifié sera dessiné dans le style de texte actuel.
+
+ +

L'extrait de code suivant montre comment vous pouvez mesurer un texte et obtenir sa largeur.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var text = ctx.measureText('foo'); // objet TextMetrics
+  text.width; // 16;
+}
+ +

Notes spécifiques à Gecko

+ +

Dans Gecko (le moteur de rendu de Firefox, Firefox OS et d'autres applications basées sur Mozilla), certaines API préfixées ont été implémentées dans des versions antérieures pour dessiner du texte sur un canevas. Ceux-ci sont maintenant déconseillés et supprimés, et leur fonctionnement n'est pas garanti.

+ +

{{PreviousNext("Tutoriel_canvas/Ajout_de_styles_et_de_couleurs", "Tutoriel_canvas/Utilisation_d'images")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html b/files/fr/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html new file mode 100644 index 0000000000..59a4d1ce35 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/hit_regions_and_accessibility/index.html @@ -0,0 +1,97 @@ +--- +title: Hit regions and accessibility +slug: Web/API/Canvas_API/Tutoriel_canvas/Hit_regions_and_accessibility +translation_of: Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility +--- +
{{CanvasSidebar}} {{ PreviousNext("Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas", "Web/API/Canvas_API/Tutorial/Optimizing_canvas") }}
+ +
L'élément {{HTMLElement("canvas")}} lui-même est juste un bitmap et ne fourni aucune information sur les objets dessinés. Le contenu des canvas n'est pas sujet aux outils d'accessibility comme l'est la sémantique HTML. En général vous devriez éviter d'utiliser les canvas sur les sites ou les applications accessibles. Le marche à suivre suivante peut vous aider à les rendre plus accessibles.
+ +

Moyen de repli

+ +

Le contenu à l'intérieur d'un tag <canvas> ... </canvas> peut être utilisé comme moyen de secours pour les navigteurs qui ne supportent pas le rendu de canvas. C'est aussi très utile pour les utilisateurs qui utilisent des technologies adaptées (comme les lecteurs d'écran) qui peuvent lire et interpréter les éléments du DOM. Un bon exemple sur html5accessibility.com demontre comment cela peut être fait.

+ +
<canvas>
+  <h2>Shapes</h2>
+  <p>A rectangle with a black border.
+   In the background is a pink circle.
+   Partially overlaying the <a href="http://en.wikipedia.org/wiki/Circle" onfocus="drawCircle();" onblur="drawPicture();">circle</a>.
+   Partially overlaying the circle is a green
+   <a href="http://en.wikipedia.org/wiki/Square" onfocus="drawSquare();" onblur="drawPicture();">square</a>
+   and a purple <a href="http://en.wikipedia.org/wiki/Triangle" onfocus="drawTriangle();" onblur="drawPicture();">triangle</a>,
+   both of which are semi-opaque, so the full circle can be seen underneath.</p>
+</canvas> 
+ +

Jetez un oeil à la video comment NVDA lit cet exemple par Steve Faulkner (en anglais).

+ +

Les règles ARIA

+ +

Accessible Rich Internet Applications (ARIA) (≈ Les applications Internet Accessibles Riches) défini des pistes pour rendre le contenu Web et les applications Web plus accessibles pour les personnes ayant un handicap. Vous pouvez utiliser les attributs ARIA pour decrire le comportement et le but de vos éléments canvas. Allez voir ARIA et les techniques ARIA pour plus d'informations.

+ +
<canvas id="button" tabindex="0" role="button" aria-pressed="false" aria-label="Start game"></canvas>
+
+ +

Zones cibles (hit Region)

+ +

Que les coordonnés de la souris soient dans une zone particulière des canvas, est un problème fréquent à résoudre. L'API de la "hit region" vous permet de definir une zone de votre canvas et offre une autre possibilité pour proposer du contenu interactif dans les canvas a destination des outils d'accessibilité. Il permet de rendre la "hit detection" plus simple easier and vous laisser envoyer des événements aux éléments du DOM. L'API a les trois methodes suivantes (qui sont encore expérimentales dans les navigateurs actuel ; reportez-vous au tableau des comptibilités des navigateurs).

+ +
+
{{domxref("CanvasRenderingContext2D.addHitRegion()")}} {{experimental_inline}}
+
Ajoute une "hit region" au canvas..
+
{{domxref("CanvasRenderingContext2D.removeHitRegion()")}} {{experimental_inline}}
+
Supprime la "hit region" avec l'id spécifiée venant du canvas.
+
{{domxref("CanvasRenderingContext2D.clearHitRegions()")}} {{experimental_inline}}
+
Retire toutes les "hit regions" du cnavas.
+
+ +

Vous pouvez ajouter une "hit region" à votre chemin et vérifier la propriété {{domxref("MouseEvent.region")}} pour tester si votre souris entre dans votre région, par exemple.

+ +
<canvas id="canvas"></canvas>
+<script>
+var canvas = document.getElementById('canvas');
+var ctx = canvas.getContext('2d');
+
+ctx.beginPath();
+ctx.arc(70, 80, 10, 0, 2 * Math.PI, false);
+ctx.fill();
+ctx.addHitRegion({id: 'circle'});
+
+canvas.addEventListener('mousemove', function(event) {
+  if (event.region) {
+    alert('hit region: ' + event.region);
+  }
+});
+</script>
+ +

La méthode addHitRegion() accepte aussi une option de control pour envoyer des événement vers un élément (c'est un enfant des canvas):

+ +
ctx.addHitRegion({control: element});
+ +

Cela peut être utile pour le routage d'éléments {{HTMLElement("input")}}, par exemple. Regardez aussi codepen demo.

+ +

Focus rings

+ +

Quand on travaille avec le clavier, focus rings (anneaux de mise au point) sont utilies pour aider dans la navigation sur une page. Pour dessiner des "focus ring" dans un dessin de canvas, la propriété drawFocusIfNeeded peut être utilisée.

+ +
+
{{domxref("CanvasRenderingContext2D.drawFocusIfNeeded()")}} {{experimental_inline}}
+
Si un élément donné est ciblé, cette méthode dessine un anneaud de mise ne valeur autoure du chemin courant.
+
+ +

De plus, la méthode scrollPathIntoView() peut être utilisée pour rendre visible un élément dans une page s'il est ciblé, par exemple.

+ +
+
{{domxref("CanvasRenderingContext2D.scrollPathIntoView()")}} {{experimental_inline}}
+
Affiche le chemin courant ou le chemin donné.
+
+ +

See also

+ + + +
{{ PreviousNext("Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas", "Web/API/Canvas_API/Tutorial/Optimizing_canvas") }}
diff --git a/files/fr/web/api/canvas_api/tutorial/index.html b/files/fr/web/api/canvas_api/tutorial/index.html new file mode 100644 index 0000000000..a430b361bd --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/index.html @@ -0,0 +1,52 @@ +--- +title: Tutoriel canvas +slug: Web/API/Canvas_API/Tutoriel_canvas +tags: + - Canvas + - Guide + - HTML + - Tutoriel_canvas + - Tutoriels +translation_of: Web/API/Canvas_API/Tutorial +--- +
{{CanvasSidebar}}
+ +

+ +

<canvas> est un nouvel élément HTML qui peut être utilisé pour dessiner des éléments graphiques à l'aide de scripts (habituellement JavaScript). Il permet par exemple de dessiner des graphiques, de réaliser des compositions de photographies ou des animations simples (voire pas si simples). Les images à droite montrent quelques exemples d'implémentations utilisant <canvas> que nous verrons plus tard dans ce tutoriel.

+ +

Ce tutoriel explique comment utiliser l'élément <canvas> pour dessiner des graphiques 2D, en commençant par les bases. Les exemples fournis devraient vous donner des idées claires sur ce que vous pouvez faire avec la toile et fournir des extraits de code qui peuvent vous aider à créer votre propre contenu.

+ +

D'abord introduit dans WebKit par Apple pour le tableau de bord OS X, <canvas> a depuis été implémenté dans les navigateurs. Aujourd'hui, tous les principaux navigateurs le prennent en charge.

+ +

Avant de commencer

+ +

L'utilisation de l'élément <canvas> n'a rien de très compliqué, mais nécessite tout de même une compréhension de base de HTML et JavaScript. L'élément <canvas> n'est pas reconnu par tous les vieux navigateurs, mais il est supporté par les versions les plus récentes des principaux. La taille par défaut de canvas est 300 px × 150 px (largeur × hauteur). Mais les tailles personnalisées peuvent être définies à l'aide des propriétés HTML height et width. Afin de dessiner des graphiques sur canvas , nous utilisons un objet de contexte JavaScript, qui crée des graphiques à la volée.

+ +

Dans ce tutoriel

+ + + +

Voir aussi

+ + + +

{{ Next("Tutoriel_canvas/Utilisation_de_base") }}

diff --git a/files/fr/web/api/canvas_api/tutorial/optimizing_canvas/index.html b/files/fr/web/api/canvas_api/tutorial/optimizing_canvas/index.html new file mode 100644 index 0000000000..d8e6e8383c --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/optimizing_canvas/index.html @@ -0,0 +1,112 @@ +--- +title: Optimiser les Canvas +slug: Web/API/Canvas_API/Tutoriel_canvas/Optimizing_canvas +translation_of: Web/API/Canvas_API/Tutorial/Optimizing_canvas +--- +
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}
+ +
+

L'élément {{HTMLElement("canvas")}} est l'un des standards les plus utilisés pour le rendu graphique 2D sur le web. Il est surtout utilisé dans les jeux et les visualisations complexes. Cependant, les sites et applications web poussent les canvas à leurs limites, et les performances commencent à en pâtir. Cet article propose des suggestions pour optimiser votre utilisation de l'élément canvas, et pour être certain que votre site ou application web fonctionne bien.

+
+ +

Conseils sur les performances

+ +

Ceci est une liste de conseils pour améliorer les performances

+ +

Pré-rendre les primitifs similaires ou répéter les objects dans un canvas hors-champ

+ +

Si vous avez besoin d'ajouter un dessin complexe identique à chaque image rendue, préférez l'utilisation d'un canvas hors-champ, le rendre une fois (ou à chaque fois qu'il change) sur ce canvas, puis dessinez-le sur le canvas principal à chaque image rendue.

+ +
myEntity.offscreenCanvas = document.createElement("canvas");
+myEntity.offscreenCanvas.width = myEntity.width;
+myEntity.offscreenCanvas.height = myEntity.height;
+myEntity.offscreenContext = myEntity.offscreenCanvas.getContext("2d");
+
+myEntity.render(myEntity.offscreenContext);
+
+ +

Abandonnez les coordonnées décimales et utilisez des entiers à la place

+ +

Un rendu de sous-pixel est opéré quand on dessine des objets sur un canvas sans valeur entière.

+ +
ctx.drawImage(myImage, 0.3, 0.5);
+
+ +

Cela pousse le navigateur à faire des calculs supplémentaires pour créer un effet d'anti-crénelage. Pour empêcher cela, il faut s'assurer d'arrondir les coordonnées utilisées pour {{domxref("CanvasRenderingContext2D.drawImage", "drawImage()")}}.

+ +

Ne pas redimensionner d'images avec drawImage

+ +

Préférez mettre en cache plusieurs dimensions de votre image dans un canvas hors-champ au lieu de les redimensionner constamment avec {{domxref("CanvasRenderingContext2D.drawImage", "drawImage()")}}.

+ +

Utiliser des canvas empilés pour les scènes complexes

+ +

Pour des scènes complexes, on peut souvent remarquer que quelques éléments changent souvent tandis que d'autres ne changent jamais. Une optimisation possible dans ce cas consiste à utiliser plusieurs calques sous forme de canvas empilés.

+ +

Par exemple, on peut créer un calque UI, dessiné au-dessus de tous les autres uniquement lorsque l'utilisateur accède à un menu. En dessous, un calque jeu où les entités du jeu sont souvent mises à jour. Et, à l'arrière, un calque de fond rarement modifié.

+ +
<div id="stage">
+  <canvas id="ui-layer" width="480" height="320"></canvas>
+  <canvas id="game-layer" width="480" height="320"></canvas>
+  <canvas id="background-layer" width="480" height="320"></canvas>
+</div>
+
+<style>
+  #stage {
+    width: 480px;
+    height: 320px;
+    position: relative;
+    border: 2px solid black
+  }
+  canvas { position: absolute; }
+  #ui-layer { z-index: 3 }
+  #game-layer { z-index: 2 }
+  #background-layer { z-index: 1 }
+</style>
+
+ +

Du CSS pour les grandes images de fond

+ +

Si comme pour la plupart des jeux, vous utilisez une image de fond statique, préférez utiliser un simple {{HTMLElement("div")}} en dessous du canvas avec les propriétés CSS {{cssxref("background")}} appropriées. Cela vous évitera de redessiner une grande image dans le canvas à chaque tick.

+ +

Redimensionner les canvas avec CSS transform

+ +

Les transformations CSS sont plus rapides car elles utilisent le GPU. Le mieux est d'utiliser un canvas plus grand et de réduire sa taille. Pour Firefox OS, les dimensions sont de 480 x 320 px.

+ +
var scaleX = window.innerWidth / canvas.width;
+var scaleY = window.innerHeight / canvas.height;
+
+var scaleToFit = Math.min(scaleX, scaleY);
+var scaleToCover = Math.max(scaleX, scaleY);
+
+stage.style.transformOrigin = "0 0"; //scale from top left
+stage.style.transform = "scale(" + scaleToFit + ")";
+
+ +

Utiliser l'attribut moz-opaque (Gecko only)

+ +

Si le canvas n'a pas besoin de transparence, ajouter l'attribut moz-opaque dans la balise canvas. Cette information peut être utilisée par le navigateur pour optimiser le rendu.

+ +
<canvas id="mycanvas" moz-opaque></canvas>
+ +

D'autres conseils

+ + + +

Voir aussi

+ + + +

{{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/pixel_manipulation_with_canvas/index.html b/files/fr/web/api/canvas_api/tutorial/pixel_manipulation_with_canvas/index.html new file mode 100644 index 0000000000..a2182f43c1 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/pixel_manipulation_with_canvas/index.html @@ -0,0 +1,258 @@ +--- +title: Manipulation de pixels avec canvas +slug: Web/API/Canvas_API/Tutoriel_canvas/Pixel_manipulation_with_canvas +translation_of: Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas +--- +
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}
+ +
+

Jusqu'à présent, nous n'avons pas examiné dans le détail les pixels réels de notre canevas. Avec l'objet ImageData, vous pouvez directement lire et écrire dans le tableau de données de l'image, pour manipuler les pixels un par un. Nous verrons également comment le lissage (anticrénelage) de l'image peut être contrôlé et comment sauvegarder des images depuis votre canevas.

+
+ +

L'objet ImageData

+ +

L'objet {{domxref("ImageData")}} représente les données de pixels sous-jacentes à une zone d'un objet canevas. Il contient les attributs (en lecture seule) suivants :

+ +
+
width
+
La largeur de l'image en pixels.
+
height
+
La hauteur de l'image en pixels.
+
data
+
Un {{jsxref("Uint8ClampedArray")}} représentant un tableau monodimensionnel contenant les données dans l'ordre RVBA, ayant des valeurs entières entre 0 et  255 (inclus).
+
+ +

La propriété data retourne un tableau {{jsxref("Uint8ClampedArray")}} auquel on peut accéder pour voir plus en détail les données brutes des pixels ; chaque pixel est représenté par quatre valeurs sur un octet (rouge, vert, bleu et alpha, dans cet ordre ; c'est-à-dire, le format "RVBA").  Chaque composante de couleur est représentée par un entier entre 0 et 255. Chaque composante reçoit un indice à l'intérieur du tableau, la composante rouge du pixel supérieur gauche étant à l'indice 0 à l'intérieur du tableau. Les pixels continuent ensuite de gauche à droite, puis vers le bas, jusqu'au bout du tableau.

+ +

Le {{jsxref("Uint8ClampedArray")}} contient height(hauteur) × width(largeur)  × 4 octets, dont les valeurs d'indices vont de 0 à (height×width×4)-1.

+ +

Par exemple, pour lire la valeur de la composante bleue d'un pixel situé en colonne 200, ligne 50  de l'image, vous pouvez faire ce qui suit :

+ +
composanteBleue = imageData.data[((50 * (imageData.width * 4)) + (200 * 4)) + 2];
+ +

Vous pouvez accéder à la taille en octets du tableau de pixels en lisant l'attribut Uint8ClampedArray.length :

+ +
var nbOctets = imageData.data.length;
+
+ +

Création d'un objet ImageData

+ +

Pour créer un nouvel objet ImageData vierge, vous pouvez utiliser la méthode  {{domxref("CanvasRenderingContext2D.createImageData", "createImageData()")}}. Il existe deux versions de la méthode createImageData() :

+ +
var monImageData = ctx.createImageData(largeur, hauteur);
+ +

Cela crée un nouvel objet ImageData avec les dimensions spécifiées. Tous les pixels sont prédéfinis comme étant noirs transparents.

+ +

Vous pouvez aussi créer un nouvel objet ImageData ayant les mêmes dimensions que celles de l'objet indiqué par autreImageData. Les pixels du nouvel objet sont tous prédéfinis comme étant noirs transparents. Cela ne copie pas les données d'image !

+ +
var monImageData = ctx.createImageData(autreImageData);
+ +

Obtention des données pixel pour un contexte

+ +

Pour obtenir un objet  ImageData contenant une copie des données pixel pour un contexte de canevas, vous pouvez utiliser la méthode getImageData() :

+ +
var monImageData = ctx.getImageData(gauche, haut, largeur, hauteur);
+ +

Cette méthode retourne un objet ImageData représentant les données pixel pour la zone du canevas dont les coins sont représentés par les points  (left,top) (gauche,haut), (left+width, top) (gauche+largeur, haut), (left, top+height) (gauche, haut+hauteur) et  (left+width, top+height) (gauche+largeur, haut+hauteur). Les coordonnées sont spécifiées en unités d'espace de coordonnées du canevas.

+ +
+

Note : Tous les pixels en dehors du canevas seront retournés comme noirs transparents dans l'objet ImageData résultant.

+
+ +

Cette méthode est aussi présentée dans l'article Manipulation vidéo utilisant canvas.

+ +

Une pipette à couleur

+ +

Dans cet exemple, nous utilisons la méthode getImageData() pour afficher la couleur en dessous du curseur de la souris. Pour cela, nous avons besoin de la position en cours de la souris donnée par layerX et layerY, nous recherchons ensuite les données pixel à cette position dans le tableau de pixels que getImageData() nous fournit. Finalement, nous utilisons les données du tableau pour définir une couleur d'arrière-plan et un texte dans le <div> pour afficher la couleur.

+ + + +
var img = new Image();
+img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
+var canvas = document.getElementById('canvas');
+var ctx = canvas.getContext('2d');
+img.onload = function() {
+  ctx.drawImage(img, 0, 0);
+  img.style.display = 'none';
+};
+var color = document.getElementById('color');
+function pick(event) {
+  var x = event.layerX;
+  var y = event.layerY;
+  var pixel = ctx.getImageData(x, y, 1, 1);
+  var data = pixel.data;
+  var rgba = 'rgba(' + data[0] + ', ' + data[1] +
+             ', ' + data[2] + ', ' + (data[3] / 255) + ')';
+  color.style.background =  rgba;
+  color.textContent = rgba;
+}
+canvas.addEventListener('mousemove', pick);
+ +

{{ EmbedLiveSample('A_color_picker', 610, 240) }}

+ +

Peinture des données pixel dans un contexte

+ +

Vous pouvez utiliser la méthode putImageData() pour peindre les données pixel dans un contexte :

+ +
ctx.putImageData(monImageData, dx, dy);
+
+ +

Les paramètres dx et dy indiquent les coordonnées système dans le contexte du coin supérieur gauche des données pixel qui doivent être peintes.

+ +

Par exemple, pour peindre l'image entière représentée par monImageData dans le coin supérieur gauche du contexte, vous pouvez simplement faire ce qui suit :

+ +
ctx.putImageData(monImageData, 0, 0);
+
+ +

Niveaux de gris et inversion de couleurs

+ +

Dans cet exemple, nous itérons sur tous les pixels pour changer leurs valeurs, puis nous remettons le tableau de pixels modifié sur le canevas à l'aide de putImageData(). La fonction inversion soustrait simplement chaque couleur de la valeur maximale 255. La fonction  grayscale (niveaux de gris) fait simplement la moyenne du rouge, du vert et du bleu. Vous pouvez également utiliser une moyenne pondérée, donnée par la formule x = 0.299r + 0.587v + 0.114b, par exemple. Voir Niveaux de gris sur Wikipedia pour plus d'informations.

+ + + +
var img = new Image();
+img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
+img.onload = function() {
+  dessiner(this);
+};
+
+function dessiner(img) {
+  var canevas = document.getElementById('canevas');
+  var ctx = canevas.getContext('2d');
+  ctx.drawImage(img, 0, 0);
+  img.style.display = 'none';
+  var imageData = ctx.getImageData(0, 0, canevas.width, canevas.height);
+  var data = imageData.data;
+
+  var inversion = function() {
+    for (var i = 0; i < data.length; i += 4) {
+      data[i]     = 255 - data[i];     // rouge
+      data[i + 1] = 255 - data[i + 1]; // vert
+      data[i + 2] = 255 - data[i + 2]; // bleu
+    }
+    ctx.putImageData(imageData, 0, 0);
+  };
+
+  var niveaudegris = function() {
+    for (var i = 0; i < data.length; i += 4) {
+      var moy = (data[i] + data[i + 1] + data[i + 2]) / 3;
+      data[i]     = moy; // rouge
+      data[i + 1] = moy; // vert
+      data[i + 2] = moy; // bleu
+    }
+    ctx.putImageData(imageData, 0, 0);
+  };
+
+  var btninversion = document.getElementById('btninversion');
+  btninversion.addEventListener('click', inversion);
+  var btnniveaudegris = document.getElementById('btnniveaudegris');
+  btnniveaudegris.addEventListener('click', niveaudegris);
+}
+
+ +

{{ EmbedLiveSample('Grayscaling_and_inverting_colors', 330, 270) }}

+ +

Zoom et anticrénelage

+ +

A l'aide de la méthode {{domxref ("CanvasRenderingContext2D.drawImage", "drawImage ()")}}, un deuxième canevas, et la propriété {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} , nous pouvons zoomer sur notre image et voir les détails.

+ +

Nous obtenons la position de la souris et recadrons une image de 5 pixels à gauche et au-dessus à 5 pixels à droite et en-dessous. Ensuite, nous copions celle-ci sur un autre canevas et redimensionnons l'image à la taille que nous voulons. Dans la zone de zoom, nous redimensionnons une zone de 10 × 10 pixels du canevas d'origine à 200 × 200.

+ +
zoomctx.drawImage(canvas,
+                  Math.abs(x - 5), Math.abs(y - 5),
+                  10, 10, 0, 0, 200, 200);
+ +

Étant donné que l'anticrénelage est activé par défaut, nous pouvons désactiver le lissage pour voir les pixels clairs. Vous pouvez basculer la case à cocher pour voir l'effet de la propriété imageSmoothingEnabled (qui a besoin de préfixes pour différents navigateurs).

+ + + + + +
var img = new Image();
+img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
+img.onload = function() {
+  draw(this);
+};
+
+function draw(img) {
+  var canvas = document.getElementById('canvas');
+  var ctx = canvas.getContext('2d');
+  ctx.drawImage(img, 0, 0);
+  img.style.display = 'none';
+  var zoomctx = document.getElementById('zoom').getContext('2d');
+
+  var smoothbtn = document.getElementById('smoothbtn');
+  var toggleSmoothing = function(event) {
+    zoomctx.imageSmoothingEnabled = this.checked;
+    zoomctx.mozImageSmoothingEnabled = this.checked;
+    zoomctx.webkitImageSmoothingEnabled = this.checked;
+    zoomctx.msImageSmoothingEnabled = this.checked;
+  };
+  smoothbtn.addEventListener('change', toggleSmoothing);
+
+  var zoom = function(event) {
+    var x = event.layerX;
+    var y = event.layerY;
+    zoomctx.drawImage(canvas,
+                      Math.abs(x - 5),
+                      Math.abs(y - 5),
+                      10, 10,
+                      0, 0,
+                      200, 200);
+  };
+
+  canvas.addEventListener('mousemove', zoom);
+}
+ +

{{ EmbedLiveSample('Zoom_example', 620, 490) }}

+ +

Sauvegarde des images

+ +

L' {{domxref ("HTMLCanvasElement")}} fournit une méthode toDataURL (), utile lors de l'enregistrement d'images. Il retourne un URI de données contenant une représentation de l'image dans le format spécifié par le paramètre de type (par défaut en PNG ). L'image renvoyée est dans une résolution de 96 dpi.

+ +
+
{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/png')")}}
+
Par défaut. Crée un image PNG.
+
{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/jpeg', quality)")}}
+
Crée une image JPG. En option, vous pouvez fournir une qualité comprise entre 0 et 1, 1 étant de la meilleure qualité et 0 presque non reconnaissable mais de petite taille.
+
+ +

Une fois que vous avez généré un URI de données à partir de votre canevas, vous pouvez l'utiliser comme source de {{HTMLElement ("image")}} ou le mettre dans un lien hypertexte avec un attribut de téléchargement pour l'enregistrer sur le disque par exemple.

+ +

Vous pouvez également créer un {{domxref ("Blob")}} à partir du canevas.

+ +
+
{{domxref("HTMLCanvasElement.toBlob", "canvas.toBlob(callback, type, encoderOptions)")}}
+
Crée un objet Blob représentant l'image contenue dans le canevas.
+
+ +

Voir aussi

+ + + +

{{PreviousNext("Tutoriel_canvas/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/transformations/index.html b/files/fr/web/api/canvas_api/tutorial/transformations/index.html new file mode 100644 index 0000000000..bf21fab4c8 --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/transformations/index.html @@ -0,0 +1,276 @@ +--- +title: Transformations +slug: Web/API/Canvas_API/Tutoriel_canvas/Transformations +tags: + - Canvas + - Graphismes + - Guide + - HTML + - Web +translation_of: Web/API/Canvas_API/Tutorial/Transformations +--- +
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Utilisation_d'images", " Web/API/Canvas_API/Tutorial/Compositing ")}}
+ +
Précédemment dans ce tutoriel, nous avons étudié la grille du canevas et le système de coordonnées. Jusqu'à maintenant, nous avons uniquement utilisé la grille par défaut et modifié la taille de la globalité du canevas afin de répondre à nos besoins. Les transformations que nous allons aborder dans la suite vont nous permettre, de manière plus puissante, d'effectuer des déplacements et des rotations sur la grille et même d'effectuer des mises à l'échelle.
+ +

Sauvegarde et restauration d'état

+ +

Avant d'étudier les méthodes de transformations, examinons deux autres méthodes qui vont être indispensables à partir du moment où l'on commence à créer des dessins complexes.

+ +
+
{{domxref("CanvasRenderingContext2D.save", "save()")}}
+
Sauvegarde l'état du canevas dans sa globalité.
+
{{domxref("CanvasRenderingContext2D.restore", "restore()")}}
+
Restore le plus récent état sauvegardé du canevas.
+
+ +

Les états du canevas sont stockés dans une pile. Chaque invocation de la méthode save() ajoute une copie de l'état courant du canevas en haut de la pile. L'état du dessin est constitué de :

+ + + +

La méthode save() peut être invoquée autant de fois que nécessaire. Chaque appel de restore() enlève le dernier état sauvegardé de la pile et tous les paramètres sauvegardés sont restaurés.

+ +

Un exemple de sauvegarde et de restauration de l état du canevas

+ +

Cet exemple tente d'illustrer comment fonctionne la pile d'états de dessin en dessinant un ensemble de rectangles consécutifs.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  ctx.fillRect(0, 0, 150, 150);   // Dessine un rectangle avec les réglages par défaut
+  ctx.save();                  // Sauvegarde l'état par défaut
+
+  ctx.fillStyle = '#09F';      // Fait des changements de réglages
+  ctx.fillRect(15, 15, 120, 120); // Dessine un rectangle avec les nouveaux réglages
+
+  ctx.save();                  // Sauvegarde l'état actuel
+  ctx.fillStyle = '#FFF';      // Fait des changements de réglages
+  ctx.globalAlpha = 0.5;
+  ctx.fillRect(30, 30, 90, 90);   // Dessine un rectangle avec de nouveaux réglages
+
+  ctx.restore();               // Restaure l'état précédent
+  ctx.fillRect(45, 45, 60, 60);   // Dessine un rectangle avec les réglages restaurés
+
+  ctx.restore();               // Restaure l'état d'origine
+  ctx.fillRect(60, 60, 30, 30);   // Dessine un rectangle avec les réglages restaurés
+}
+ + + +

La première étape consiste à dessiner un grand rectangle avec les paramètres par défaut. Ensuite, nous sauvegardons cet état et modifions la couleur de remplissage. Nous dessinons ensuite le deuxième rectangle bleu et mettons l'état de côté. Encore une fois, nous modifions certains paramètres de dessin et dessinons le troisième rectangle blanc semi-transparent.

+ +

Jusqu'à présent, cela ressemble beaucoup à ce que nous avons fait dans les sections précédentes. Cependant, une fois que nous appelons la première instruction restore(), l'état de dessin supérieur est supprimé de la pile et les paramètres sont restaurés. Si nous n'avions pas sauvegardé l'état en utilisant save (), nous devrions modifier manuellement la couleur de remplissage et la transparence afin de revenir à l'état précédent. Cela serait facile pour deux propriétés, mais si nous avons plus que cela, notre code deviendrait très long très rapidement.

+ +

Lorsque la deuxième instruction restore() est appelée, l'état d'origine (celui que nous avons configuré avant le premier appel à enregistrer) est restauré et le dernier rectangle est de nouveau tracé en noir.

+ +

{{EmbedLiveSample("Un_exemple_de_sauvegarde_et_de_restauration_de_l_état_du_canevas", "180", "180", "https://mdn.mozillademos.org/files/249/Canvas_savestate.png")}}

+ +

Déplacement

+ +

La première des méthodes de transformation que nous examinerons est translate (). Cette méthode est utilisée pour déplacer la toile et son origine vers un autre point de la grille.

+ +
+
{{domxref("CanvasRenderingContext2D.translate", "translate(x, y)")}}
+
Déplace la toile et son origine sur la grille. x indique la distance horizontale du déplacement, et y indique à quelle distance déplacer la grille verticalement.
+
+ +

C'est une bonne idée de sauvegarder l'état du canevas avant d'effectuer des transformations. Dans la plupart des cas, il est plus facile d'appeler la méthode restore que d'avoir à effectuer un déplacement inverse pour revenir à l'état d'origine. De même, si vous déplacez à l'intérieur d'une boucle et que vous ne sauvegardez pas et ne restaurez pas l'état du canevas, il se peut qu'une partie de votre dessin soit manquante, car elle a été dessinée en dehors du bord du canevas.

+ +

Un exemple translate

+ +

Cet exemple montre certains des avantages du déplacement de l'origine du canevas. Sans la méthode translate (), tous les rectangles seraient dessinés à la même position (0,0). La méthode translate () nous donne également la liberté de placer le rectangle n'importe où sur le canevas sans avoir à ajuster manuellement les coordonnées dans la fonction fillRect (). Cela le rend un peu plus facile à comprendre et à utiliser.

+ +

Dans la fonction draw (), nous appelons la fonction fillRect () neuf fois en utilisant deux boucles for . Dans chaque boucle, le canevas est déplacé, le rectangle est dessiné et le canevas est retourné à son état d'origine. Notez comment l'appel à fillRect () utilise les mêmes coordonnées à chaque fois, en s'appuyant sur translate () pour ajuster la position du dessin.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  for (var i = 0; i < 3; i++) {
+    for (var j = 0; j < 3; j++) {
+      ctx.save();
+      ctx.fillStyle = 'rgb(' + (51 * i) + ', ' + (255 - 51 * i) + ', 255)';
+      ctx.translate(10 + j * 50, 10 + i * 50);
+      ctx.fillRect(0, 0, 25, 25);
+      ctx.restore();
+    }
+  }
+}
+ + + +

{{EmbedLiveSample("Un_exemple_translate", "160", "160", "https://mdn.mozillademos.org/files/9857/translate.png")}}

+ +

Rotation

+ +

La seconde méthode de transformation est rotate(). Nous l'utilisons pour faire pivoter le canevas autour de l'origine actuelle.

+ +
+
{{domxref("CanvasRenderingContext2D.rotate", "rotate(angle)")}}
+
Fait pivoter le canevas, dans le sens des aiguilles d'une montre autour de l'origine actuelle, par le nombre de radians de l'angle.
+
+ +

Le point central de rotation est toujours l'origine de la toile. Pour changer le point central, nous devrons déplacer le canevas en utilisant la méthode translate ().

+ +

Un exemple rotate

+ +

Dans cet exemple, nous utiliserons la méthode rotate () pour faire d'abord tourner un rectangle à partir de l'origine du canevas, puis du centre du rectangle lui-même à l'aide de translate ().

+ +
+

Rappel : Les angles sont en radians, pas en degrés. Pour convertir en degrés, nous utilisons : radians = (Math.PI/180)*degrees.

+
+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // rectangles de gauche, rotation depuis l'origine du canevas
+  ctx.save();
+  // rectangle bleu
+  ctx.fillStyle = '#0095DD';
+  ctx.fillRect(30, 30, 100, 100);
+  ctx.rotate((Math.PI / 180) * 25);
+  // rectangle gris
+  ctx.fillStyle = '#4D4E53';
+  ctx.fillRect(30, 30, 100, 100);
+  ctx.restore();
+
+  // rectangles de droite, rotation depuis le centre du rectangle
+  // dessine le rectangle bleu
+  ctx.fillStyle = '#0095DD';
+  ctx.fillRect(150, 30, 100, 100);
+
+  ctx.translate(200, 80); // déplace au centre du rectangle
+                          // x = x + 0.5 * width
+                          // y = y + 0.5 * height
+  ctx.rotate((Math.PI / 180) * 25); // rotation
+  ctx.translate(-200, -80); // déplace en arrière
+
+  // dessine le rectangle gris
+  ctx.fillStyle = '#4D4E53';
+  ctx.fillRect(150, 30, 100, 100);
+}
+ +

Pour faire pivoter le rectangle autour de son propre centre, nous déplaçons le canevas au centre du rectangle, puis faisons pivoter le canevas, puis le déplaçons à 0,0, puis dessinons le rectangle.

+ + + +

{{EmbedLiveSample("Un_exemple_rotate", "310", "210", "https://mdn.mozillademos.org/files/9859/rotate.png")}}

+ +

Mise à l'échelle

+ +

La méthode de transformation suivante est la mise à l'échelle. Nous l'utilisons pour augmenter ou diminuer les unités de notre grille de canevas. Cela peut être utilisé pour dessiner des formes ou des bitmaps réduits ou agrandis.

+ +
+
{{domxref("CanvasRenderingContext2D.scale", "scale(x, y)")}}
+
Met à l'échelle les unités du canevas avec x horizontalement et y verticalement. Les deux paramètres sont des nombres réels. Les valeurs inférieures à 1,0 réduisent la taille de l'unité et les valeurs supérieures à 1,0 augmentent la taille de l'unité. Les valeurs 1.0 laissent les unités à la même taille.
+
+ +

En utilisant des nombres négatifs, vous pouvez faire une mise en miroir d'axe (par exemple en utilisant translate (0, canvas.height), scale (1, -1), vous aurez le système de coordonnées cartésien bien connu, avec l'origine dans le coin inférieur gauche).

+ +

Par défaut, une unité sur la toile est exactement un pixel. Si nous appliquons, par exemple, un facteur d'échelle de 0,5, l'unité résultante deviendrait 0,5 pixels et ainsi les formes seraient dessinées à la moitié de la taille. De la même façon, si nous définissons le facteur d'échelle sur 2.0, la taille de l'unité augmentera et une unité deviendra deux pixels. Cela donne des formes dessinées deux fois plus grandes.

+ +

Un exemple scale

+ +

Dans ce dernier exemple, nous allons dessiner des  formes avec différents facteurs d'échelle.

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  // dessine un rectangle simple, mais le met à l'échelle.
+  ctx.save();
+  ctx.scale(10, 3);
+  ctx.fillRect(1, 10, 10, 10);
+  ctx.restore();
+
+  // mirror horizontally
+  ctx.scale(-1, 1);
+  ctx.font = '48px serif';
+  ctx.fillText('MDN', -135, 120);
+}
+ + + +

{{EmbedLiveSample("Un_exemple_scale", "160", "160", "https://mdn.mozillademos.org/files/9861/scale.png")}}

+ +

Transformation

+ +

Enfin, les méthodes de transformation suivantes appliquent des modifications directement à la matrice de transformation.

+ +
+
{{domxref("CanvasRenderingContext2D.transform", "transform(a, b, c, d, e, f)")}}
+
Multiplie la matrice de transformation actuelle avec la matrice décrite par ses arguments. La matrice de transformation est décrite par : [acebdf001]\left[ \begin{array}{ccc} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{array} \right]
+
+ +
+
Si l'un des arguments est infini, la matrice de transformation doit être marquée comme infinie, plutôt que d'utiliser la méthode qui lance une exception.
+
+ +

Les paramètres de cette fonction sont :

+ +
+
a (m11)
+
Mise à l'échelle horizontale.
+
b (m12)
+
Inclinaison horizontale.
+
c (m21)
+
Inclinaison verticale.
+
d (m22)
+
Mise à l'échelle verticale.
+
e (dx)
+
Déplacement horizontal.
+
f (dy)
+
Déplacement vertical.
+
{{domxref("CanvasRenderingContext2D.setTransform", "setTransform(a, b, c, d, e, f)")}}
+
Réinitialise la transformation en cours dans la matrice d'identité, puis appelle la méthode transform () avec les mêmes arguments. Cela défait la transformation en cours, puis définit la transformation spécifiée, le tout en une seule étape.
+
{{domxref("CanvasRenderingContext2D.resetTransform", "resetTransform()")}}
+
Réinitialise la transformation en cours à la matrice d'identité. C'est la même chose que d'appeler : ctx.setTransform (1, 0, 0, 1, 0, 0);
+
+ +

Exemple pour transform et setTransform

+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+
+  var sin = Math.sin(Math.PI / 6);
+  var cos = Math.cos(Math.PI / 6);
+  ctx.translate(100, 100);
+  var c = 0;
+  for (var i = 0; i <= 12; i++) {
+    c = Math.floor(255 / 12 * i);
+    ctx.fillStyle = 'rgb(' + c + ', ' + c + ', ' + c + ')';
+    ctx.fillRect(0, 0, 100, 10);
+    ctx.transform(cos, sin, -sin, cos, 0, 0);
+  }
+
+  ctx.setTransform(-1, 0, 0, 1, 100, 100);
+  ctx.fillStyle = 'rgba(255, 128, 255, 0.5)';
+  ctx.fillRect(0, 50, 100, 100);
+}
+ + + +

{{EmbedLiveSample("Exemple_pour_transform_et_setTransform", "230", "280", "https://mdn.mozillademos.org/files/255/Canvas_transform.png")}}

+ +

{{PreviousNext("Tutoriel_canvas/Utilisation_d'images", "Tutoriel_canvas/Composition")}}

diff --git a/files/fr/web/api/canvas_api/tutorial/using_images/index.html b/files/fr/web/api/canvas_api/tutorial/using_images/index.html new file mode 100644 index 0000000000..50a286e0fa --- /dev/null +++ b/files/fr/web/api/canvas_api/tutorial/using_images/index.html @@ -0,0 +1,320 @@ +--- +title: Utilisation d'images +slug: Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images +tags: + - Canvas + - Graphismes + - HTML + - Tutoriels +translation_of: Web/API/Canvas_API/Tutorial/Using_images +--- +

{{CanvasSidebar}} {{PreviousNext("Dessin_de_texte_avec_canvas", "Tutoriel_canvas/Transformations" )}}

+ +

Jusqu'à présent, nous avons créé nos propres formes et styles appliqués. L'une des fonctionnalités les plus intéressantes de {{HTMLElement ("canvas")}} est la possibilité d'utiliser des images. Celles-ci peuvent être utilisées pour faire de la composition dynamique de photos ou comme décors de graphes, pour des "sprites" dans des jeux, et ainsi de suite. Les images externes peuvent être utilisées dans n'importe quel format pris en charge par le navigateur, comme PNG, GIF ou JPEG. Vous pouvez même utiliser l'image produite par d'autres éléments du canevas sur la même page comme source !

+ +

L'importation d'images est un processus en deux étapes :

+ +
    +
  1. obtenez une référence à un objet {{domxref ("HTMLImageElement")}} ou à un autre élément canvas en tant que source. Il est également possible d'utiliser des images en fournissant une URL.
  2. +
  3. l'image est dessinée sur le canevas à l'aide de la fonction drawImage() .
  4. +
+ +

Jetons un oeil à la façon de le faire.

+ +

Obtenir des images à dessiner

+ +

L'API Canvas peut utiliser l'un des types de données suivants comme source d'image :

+ +
+
{{domxref("HTMLImageElement")}}
+
Il s'agit d'images créées à l'aide du constructeur Image() , ainsi que de tout élément {{HTMLElement ("img")}}.
+
{{domxref("SVGImageElement")}}
+
Ce sont des images incorporées en utilisant l'élément {{SVGElement ("image")}}.
+
{{domxref("HTMLVideoElement")}}
+
L'utilisation d'un élément HTML {{HTMLElement("video")}} comme source d'image capture l'image actuelle de la vidéo et l'utilise comme une image.
+
{{domxref("HTMLCanvasElement")}}
+
Vous pouvez utiliser un autre élément {{HTMLElement("canvas")}} comme source d'image.
+
+ +

Ces sources sont collectivement référencées par le type {{domxref ("CanvasImageSource")}}.

+ +

Il existe plusieurs façons d'obtenir des images pour une utilisation sur une toile.

+ +

Utilisation d'images présentes sur la même page

+ +

Nous pouvons obtenir une référence aux images sur la même page que le canevas en utilisant l'un des éléments suivants :

+ + + +

Utilisation d'images d'un autre domaine

+ +

En utilisant l'attribut {{htmlattrxref ("crossorigin", "img")}} d'un élément {{HTMLElement ("img")}} (reflété par la propriété {{domxref("HTMLImageElement.crossOrigin")}}), vous pouvez demander la permission de charger une image d'un autre domaine pour l'utiliser dans votre appel à drawImage (). Si le domaine d'hébergement permet un accès interdomaine à l'image, l'image peut être utilisée dans votre canevas sans l'altérer; sinon utiliser l'image va souiller le canevas.

+ +

Utilisation d'autres éléments canvas

+ +

Comme pour les images normales, nous accédons aux autres éléments Canvas en utilisant la méthode {{domxref ("document.getElementsByTagName ()")}} ou {{domxref ("document.getElementById ()")}}. Assurez-vous d'avoir dessiné quelque chose sur le canevas source avant de l'utiliser dans votre canevas cible.

+ +

Une des utilisations les plus pratiques de cette fonctionnalité serait d'utiliser un second élément canvas comme aperçu de taille réduite d'un canevas de grande taille.

+ +

Création d'une image à partir de rien

+ +

Une autre option est de créer de nouveaux objets {{domxref("HTMLImageElement")}} dans le script même. Pour ce faire, vous pouvez utiliser le constructeur Image().

+ +
var img = new Image();   // Crée un nouvel élément Image
+img.src = 'myImage.png'; // Définit le chemin vers sa source
+
+ +

Lorsque ce script est exécuté, l'image commence à être chargée.

+ +

Si vous essayez d'appeler drawImage () avant le chargement de l'image, il ne fera rien (ou, dans les anciens navigateurs, cela peut même déclencher une exception). Vous devez donc être sûr d'utiliser l'événement load pour ne pas essayer avant que l'image ne soit chargée :

+ +
var img = new Image();   // Crée un nouvel élément img
+img.addEventListener('load', function() {
+  //  exécute les instructions drawImage ici 
+}, false);
+img.src = 'myImage.png'; // définit le chemin de la source
+ +

Si vous n'utilisez qu'une image externe, cela peut être une bonne approche, mais une fois que vous avez besoin de suivre plus d'une image, vous devez recourir à quelque chose de plus intelligent. Il est hors de portée de ce tutoriel de regarder les tactiques de préchargement d'images, mais vous devriez garder cela à l'esprit.

+ +

Intégration d'une image via une data: URL

+ +

Un autre moyen possible d'inclure des images est via les data: url.. . Les URL de données vous permettent de définir complètement une image en tant que chaîne de caractères codée en Base64 directement dans votre code.

+ +
var img = new Image();   // Crée un nouvel élément img
+img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==';
+ +

L'un des avantages des URL de données est que l'image résultante est disponible immédiatement, sans autre aller-retour au serveur. Un autre avantage potentiel,'il est également possible d'encapsuler dans un fichier tous vos CSS, JavaScript, HTML et images, ce qui les rend plus portable vers d'autres endroits.

+ +

Certains inconvénients de cette méthode sont que votre image n'est pas mise en cache, et pour les grandes images, l'URL encodée peut devenir assez longue.

+ +

Utilisation des images d'une vidéo

+ +

Vous pouvez également utiliser les images d'une vidéo présentée par un élément {{HTMLElement("video")}} (même si la vidéo n'est pas visible). Par exemple, si vous avez un élément {{HTMLElement("video")}} avec l'ID "myvideo", vous pouvez faire :

+ +
function getMyVideo() {
+  var canvas = document.getElementById('canvas');
+  if (canvas.getContext) {
+    var ctx = canvas.getContext('2d');
+
+    return document.getElementById('myvideo');
+  }
+}
+ +

Cela renvoie l'objet {{domxref ("HTMLVideoElement")}} pour la vidéo, qui, comme décrit précédemment, est l'un des objets pouvant être utilisé comme CanvasImageSource.

+ +

Dessin d'images

+ +

Une fois la référence à l'objet image source obtenue, on peut utiliser la méthode drawImage() pour l'afficher sur le canevas. Comme nous le verrons plus tard, la méthode drawImage() est surchargée et possède trois variantes différentes. Dans sa forme la plus basique, elle ressemble à ceci :

+ +
+
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y)")}}
+
Dessine le CanvasImageSource spécifié par le paramètre image aux coordonnées (x, y).
+
+ +
+

Les images SVG doivent spécifier une largeur et une hauteur dans l'élément racine <svg>.

+
+ +

Exemple: un graphique linéaire simple

+ +

Dans l'exemple suivant, nous utiliserons une image externe comme fond pour un petit graphique linéaire. L'utilisation d'images de fond peut rendre vos scripts considérablement plus légers puisqu'il n'est alors pas nécessaire de dessiner des arrières-plans élaborés. Une seule image est utilisée ici, on utilise donc le gestionnaire d'évènement load de l'objet image pour lancer les instructions de dessin. La méthode drawImage() place l'image de fond aux coordonnées (0,0), soit le coin supérieur gauche du canevas.

+ +
<html>
+ <body onload="draw();">
+   <canvas id="canvas" width="180" height="150"></canvas>
+ </body>
+</html>
+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var img = new Image();
+  img.onload = function() {
+    ctx.drawImage(img, 0, 0);
+    ctx.beginPath();
+    ctx.moveTo(30, 96);
+    ctx.lineTo(70, 66);
+    ctx.lineTo(103, 76);
+    ctx.lineTo(170, 15);
+    ctx.stroke();
+  };
+  img.src = 'https://mdn.mozillademos.org/files/5395/backdrop.png';
+}
+ +

Le graphique résultant ressemble à ceci :

+ +

{{EmbedLiveSample("Example_A_simple_line_graph", 220, 160, "https://mdn.mozillademos.org/files/206/Canvas_backdrop.png")}}

+ +

Mise à l'échelle

+ +

La seconde variante de la méthode drawImage() ajoute deux paramètres supplémentaires et permet de placer des images redimensionnées sur le canevas.

+ +

Exemple: Tapissage d'une image

+ +

Dans cet exemple, nous utiliserons une image comme papier-peint en la répétant plusieurs fois sur le canevas. Cette opération est réalisée simplement en faisant une boucle plaçant plusieurs fois l'image redimensionnée à différentes positions. Dans le code ci-dessous, la première boucle for s'occupe des lignes alors que la seconde gère les colonnes. L'image est redimensionnée à un tiers de sa taille originale, ce qui fait 50×38 pixels.

+ +
+

Note : les images peuvent devenir floues lorsqu'elles sont agrandies ou granuleuses si elles sont réduites. Il vaut mieux ne pas redimensionner une image contenant du texte devant rester lisible.

+
+ +
<html>
+ <body onload="draw();">
+   <canvas id="canvas" width="150" height="150"></canvas>
+ </body>
+</html>
+ +
function draw() {
+  var ctx = document.getElementById('canvas').getContext('2d');
+  var img = new Image();
+  img.onload = function() {
+    for (var i = 0; i < 4; i++) {
+      for (var j = 0; j < 3; j++) {
+        ctx.drawImage(img, j * 50, i * 38, 50, 38);
+      }
+    }
+  };
+  img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
+}
+ +

Le canevas résultant ressemble à ceci :

+ +

{{EmbedLiveSample("Example_Tiling_an_image", 160, 160, "https://mdn.mozillademos.org/files/251/Canvas_scale_image.png")}}

+ +

Découpage

+ +

La troisième et dernière variante de la méthode drawImage() possède huit nouveaux paramètres. On peut l'utiliser pour découper des parties d'une image source et les afficher sur le canevas.

+ +
+
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)")}}
+
Cette fonction prend la zone de l'image source spécifiée par le rectangle dont le coin en haut à gauche est (sx, sy) et dont la largeur et la hauteur sont sWidth et sHeight et le dessine dans le canevas en le plaçant sur le canevas (dx, dy) et le redimensionner à la taille spécifiée par dWidth et dHeight.
+
+ +

Pour vraiment comprendre ce que cela fait, il peut être utile de regarder l'image à droite. Les quatre premiers paramètres définissent l'emplacement et la taille du morceau de l'image source. Les quatre derniers paramètres définissent le rectangle dans lequel dessiner l'image sur le canevas de destination.

+ +

Le découpage peut être un outil utile pour réaliser des compositions. Vous pouvez disposer tous les éléments dans un seul fichier image et utiliser cette méthode pour composer un dessin complet. Par exemple, si vous voulez réaliser un graphique, vous pouvez utiliser une image PNG contenant tout le texte nécessaire dans un seul fichier et, selon vos données, changer l'échelle de votre graphique sans trop de difficultés. Un autre avantage est qu'il n'est pas nécessaire de charger chaque image individuellement.

+ +

Exemple : encadrer une image

+ +

Dans cet exemple, nous utiliserons le même rhinocéros que plus haut, mais sa tête sera coupée et composée avec un cadre. L'image du cadre fournit une ombre portée qui a été enregistrée dans une image PNG 24 bits. Comme les images PNG 24 bits comportent un canal alpha complet de 8 bits, contrairement aux images GIF et PNG 8 bits, elle peut être placée sur n'importe quel fond sans avoir à se préoccuper de la couleur de transition.

+ +
<html>
+ <body onload="draw();">
+   <canvas id="canvas" width="150" height="150"></canvas>
+   <div style="display:none;">
+     <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227">
+     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
+   </div>
+ </body>
+</html>
+ +
function draw() {
+  var canvas = document.getElementById('canvas');
+  var ctx = canvas.getContext('2d');
+
+  // Draw slice
+  ctx.drawImage(document.getElementById('source'),
+                33, 71, 104, 124, 21, 20, 87, 104);
+
+  // Draw frame
+  ctx.drawImage(document.getElementById('frame'), 0, 0);
+}
+ +

Nous avons pris une approche différente pour charger les images cette fois. Au lieu de les charger en créant de nouveaux objets {{domxref ("HTMLImageElement")}}, nous les avons incluses comme balises {{HTMLElement("img")}} directement dans notre source HTML et avons récupéré les images depuis ceux-ci. Les images sont masquées à partir de la sortie, en définissant la propriété CSS {{cssxref ("display")}} à aucune.

+ +

{{EmbedLiveSample("Example_Framing_an_image", 160, 160, "https://mdn.mozillademos.org/files/226/Canvas_drawimage2.jpg")}}

+ +

Le script lui-même est très simple. Chaque {{HTMLElement ("img")}} se voit attribuer un attribut ID, ce qui facilite leur sélection en utilisant {{domxref ("document.getElementById ()")}}. Nous utilisons simplement drawImage () pour découper le rhinocéros de la première image et le mettre à l'échelle sur le canevas, puis dessiner le cadre par le haut en utilisant un deuxième appel drawImage ().

+ + + +

Dans le dernier exemple de ce chapitre, nous présenterons une petite galerie d'art. Cette galerie est constituée d'un tableau contenant plusieurs images. Lorsque la page est chargée, un élément {{HTMLElement("canvas")}} est inséré pour chaque image et un cadre est dessiné autour.

+ +

Dans notre cas, toutes les images ont une largeur et une hauteur fixes, ainsi que le cadre qui sera dessiné autour. Le script pourrait être amélioré afin d'utiliser la largeur et la hauteur de l'image pour que le cadre s'adapte parfaitement à ses dimensions.

+ +

Le code ci-dessous devrait s'expliquer de lui-même. Nous parcourons le conteneur {{domxref ("document.images")}} et nous ajoutons de nouveaux éléments canvas. La seule chose notable est probablement, pour ceux qui ne sont pas familiers avec le DOM, l'utilisation de la méthode {{domxref("Node.insertBefore")}} . insertBefore() est une méthode du nœud parent (une cellule de tableau) de l'élément (l'image) avant lequel on désire insérer le nouveau nœud (l'élément canvas).

+ +
<html>
+ <body onload="draw();">
+     <table>
+      <tr>
+        <td><img src="https://mdn.mozillademos.org/files/5399/gallery_1.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5401/gallery_2.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5403/gallery_3.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5405/gallery_4.jpg"></td>
+      </tr>
+      <tr>
+        <td><img src="https://mdn.mozillademos.org/files/5407/gallery_5.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5409/gallery_6.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5411/gallery_7.jpg"></td>
+        <td><img src="https://mdn.mozillademos.org/files/5413/gallery_8.jpg"></td>
+      </tr>
+     </table>
+     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
+ </body>
+</html>
+
+ +

Et voici quelques CSS pour rendre les choses agréables :

+ +
body {
+  background: 0 -100px repeat-x url(https://mdn.mozillademos.org/files/5415/bg_gallery.png) #4F191A;
+  margin: 10px;
+}
+
+img {
+  display: none;
+}
+
+table {
+  margin: 0 auto;
+}
+
+td {
+  padding: 15px;
+}
+
+ +

Le lien pour tout cela, c'est le JavaScript pour dessiner les images encadrées :

+ +
function draw() {
+
+  // Boucle à travers toutes les images
+  for (var i = 0; i < document.images.length; i++) {
+
+    // N'ajoute pas de canevas pour l'image du cadre
+    if (document.images[i].getAttribute('id') != 'frame') {
+
+      // Crée un élément canvas
+      canvas = document.createElement('canvas');
+      canvas.setAttribute('width', 132);
+      canvas.setAttribute('height', 150);
+
+      // Insère avant l'image
+      document.images[i].parentNode.insertBefore(canvas,document.images[i]);
+
+      ctx = canvas.getContext('2d');
+
+      // Dessine l'image sur canvas
+      ctx.drawImage(document.images[i], 15, 20);
+
+      // Ajoute un cadre
+      ctx.drawImage(document.getElementById('frame'), 0, 0);
+    }
+  }
+}
+ +

{{EmbedLiveSample("Art_gallery_example", 725, 400)}}

+ +

Contrôle du comportement de la mise à l'échelle de l'image

+ +

Comme mentionné précédemment, la mise à l'échelle des images peut entraîner des objets flous ou granuleux en raison du processus de mise à l'échelle. Vous pouvez utiliser la propriété {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} du contexte de dessin pour contrôler l'utilisation des algorithmes de lissage d'image lors de la mise à l'échelle des images dans votre contexte. Par défaut, cela est vrai, ce qui signifie que les images seront lissées lors de la mise à l'échelle. Vous pouvez désactiver cette fonctionnalité comme ceci :

+ +
ctx.mozImageSmoothingEnabled = false;
+ctx.webkitImageSmoothingEnabled = false;
+ctx.msImageSmoothingEnabled = false;
+ctx.imageSmoothingEnabled = false;
+ +

{{PreviousNext("Dessin_de_texte_avec_canvas", "Tutoriel_canvas/Transformations" )}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/advanced_animations/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/advanced_animations/index.html deleted file mode 100644 index fadf515090..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/advanced_animations/index.html +++ /dev/null @@ -1,376 +0,0 @@ ---- -title: Animations avancées -slug: Web/API/Canvas_API/Tutoriel_canvas/Advanced_animations -translation_of: Web/API/Canvas_API/Tutorial/Advanced_animations ---- -
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Animations_basiques", "Tutoriel_canvas/Pixel_manipulation_with_canvas")}}
- -
-

Dans le dernier chapitre, nous avons réalisé des animations basiques et avons appris comment faire en sorte que les éléments se déplacent. Dans cette partie, nous allons regarder de prêt le mouvement lui-même et ajouter un peu de physique afin de réaliser nos animations avancées.

-
- -

Dessinons une balle

- -

Nous allons utiliser une balle pour étudier les animations. Ainsi, Commençons par dessiner notre balle au sein du canevas.

- -
<canvas id="canvas" width="600" height="300"></canvas>
-
- -

Comme d'habitude, nous avons tout d'abord besoin de dessiner le contexte. Pour dessiner la balle, nous allons créer un objet ball contenant des propriétés et une méthode draw() afin de la placer sur le canevas.

- -
var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
-
-var ball = {
-  x: 100,
-  y: 100,
-  radius: 25,
-  color: 'blue',
-  draw: function() {
-    ctx.beginPath();
-    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
-    ctx.closePath();
-    ctx.fillStyle = this.color;
-    ctx.fill();
-  }
-};
-
-ball.draw();
- -

Il n'y a rien de spécial ici, la balle est pour le moment un simple cercle qui est dessiné à l'aide de la méthode {{domxref("CanvasRenderingContext2D.arc()", "arc()")}}.

- -

Ajout de la vitesse

- -

Maintenant que nous avons une balle, nous sommes prêts à ajouter une animation simple comme nous avons pu le voir dans le dernier chapitre de ce tutoriel. Une fois encore, {{domxref("window.requestAnimationFrame()")}} nous aide à contrôler l'animation. Il est possible de déplacer la balle en ajoutant un vecteur de vitesse à la position. Pour chaque "frame", nous avons aussi {{domxref("CanvasRenderingContext2D.clearRect", "clear", "", 1)}} (nettoyé) les canvas pour supprimer les anciens cercles des "frames" précédents.

- -
var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
-var raf;
-
-var ball = {
-  x: 100,
-  y: 100,
-  vx: 5,
-  vy: 2,
-  radius: 25,
-  color: 'blue',
-  draw: function() {
-    ctx.beginPath();
-    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
-    ctx.closePath();
-    ctx.fillStyle = this.color;
-    ctx.fill();
-  }
-};
-
-function draw() {
-  ctx.clearRect(0,0, canvas.width, canvas.height);
-  ball.draw();
-  ball.x += ball.vx;
-  ball.y += ball.vy;
-  raf = window.requestAnimationFrame(draw);
-}
-
-canvas.addEventListener('mouseover', function(e){
-  raf = window.requestAnimationFrame(draw);
-});
-
-canvas.addEventListener("mouseout",function(e){
-  window.cancelAnimationFrame(raf);
-});
-
-ball.draw();
-
- -

Limites

- -

Si aucun test de collision n'est effectué, notre balle sort hors du canevas rapidement. Nous avons ici besoin de vérifier si les positions x et y de la balle sont hors des dimensions du canevas et si c'est le cas, d'inverser la direction des vecteurs de vitesse. Pour faire cela, nous ajoutons les vérifications suivantes à la méthode draw :

- -
if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {
-  ball.vy = -ball.vy;
-}
-if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {
-  ball.vx = -ball.vx;
-}
- -

Première demo

- -

Voyons voir ce que cela donne. Déplacez votre souris dans le canevas pour commencer l'animation :

- - - -

{{EmbedLiveSample("Première_demo", "610", "310")}}

- -

Accélération

- -

Afin d'obtenir un mouvement plus réel, vous pouvez jouer sur la vitesse, par exemple :

- -
ball.vy *= .99;
-ball.vy += .25;
- -

Ceci ralentit la vitesse verticale à chaque rendu d'image de sorte que la balle va rebondir de moins en moins haut.

- - - -

{{EmbedLiveSample("Second_demo", "610", "310")}}

- -

Effet de traînée

- -

Jusqu'à maintenant, nous avons utilisé la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect")}} pour effacer les images précédentes. En la remplaçant par la méthode {{domxref("CanvasRenderingContext2D.fillRect", "fillRect")}} et en utilisant un remplissage semi-transparent, on obtient un effet de traînée.

- -
ctx.fillStyle = 'rgba(255,255,255,0.3)';
-ctx.fillRect(0,0,canvas.width,canvas.height);
- - - -

{{EmbedLiveSample("Third_demo", "610", "310")}}

- -

Ajout d'un contrôle de souris

- -

Afin d'obtenir quelques contrôles sur la balle, nous pouvons faire suivre notre souris en utilisant l'événement mousemove, par exemple. L'événement click relâche la balle et la laisse rebondir à nouveau.

- - - -
var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
-var raf;
-var running = false;
-
-var ball = {
-  x: 100,
-  y: 100,
-  vx: 5,
-  vy: 1,
-  radius: 25,
-  color: 'blue',
-  draw: function() {
-    ctx.beginPath();
-    ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2, true);
-    ctx.closePath();
-    ctx.fillStyle = this.color;
-    ctx.fill();
-  }
-};
-
-function clear() {
-  ctx.fillStyle = 'rgba(255,255,255,0.3)';
-  ctx.fillRect(0,0,canvas.width,canvas.height);
-}
-
-function draw() {
-  clear();
-  ball.draw();
-  ball.x += ball.vx;
-  ball.y += ball.vy;
-
-  if (ball.y + ball.vy > canvas.height || ball.y + ball.vy < 0) {
-    ball.vy = -ball.vy;
-  }
-  if (ball.x + ball.vx > canvas.width || ball.x + ball.vx < 0) {
-    ball.vx = -ball.vx;
-  }
-
-  raf = window.requestAnimationFrame(draw);
-}
-
-canvas.addEventListener('mousemove', function(e){
-  if (!running) {
-    clear();
-    ball.x = e.clientX;
-    ball.y = e.clientY;
-    ball.draw();
-  }
-});
-
-canvas.addEventListener("click",function(e){
-  if (!running) {
-    raf = window.requestAnimationFrame(draw);
-    running = true;
-  }
-});
-
-canvas.addEventListener("mouseout",function(e){
-  window.cancelAnimationFrame(raf);
-  running = false;
-});
-
-ball.draw();
-
- -

Déplacez la balle en utilisant votre souris et relâchez-la avec un click.

- -

{{EmbedLiveSample("Ajout_d'un_contrôle_de_souris", "610", "310")}}

- -

Casse-briques

- -

Ce petit chapitre explique seulement quelques techniques pour créer des animations avancées. Il en existe bien davantage ! Que diriez-vous d'ajouter une raquette, des briques et de transformer cette démo en une partie de casse-briques ? Consultez notre zone de développement de jeux pour plus d'articles liés aux jeux.

- -

Voir aussi

- - - -

{{PreviousNext("Tutoriel_canvas/Animations_basiques", "Tutoriel_canvas/Pixel_manipulation_with_canvas")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/ajout_de_styles_et_de_couleurs/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/ajout_de_styles_et_de_couleurs/index.html deleted file mode 100644 index 15eef37006..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/ajout_de_styles_et_de_couleurs/index.html +++ /dev/null @@ -1,719 +0,0 @@ ---- -title: Ajout de styles et de couleurs -slug: Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs -tags: - - Canvas - - Couleurs - - Formes géométriques - - Graphismes - - Tutorial -translation_of: Web/API/Canvas_API/Tutorial/Applying_styles_and_colors ---- -
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Formes_géométriques", "Dessin_de_texte_avec_canvas")}}
- -
-

Dans le chapitre sur les formes géométriques, nous avons utilisé les styles de lignes et de remplissage par défaut. Ici, nous allons explorer les options de canvas à notre disposition pour rendre nos dessins un peu plus attrayants. Vous apprendrez comment ajouter des couleurs différentes, des styles de ligne, des dégradés, des motifs et des ombres à vos dessins.

-
- -

Les couleurs

- -

Jusqu'à présent, nous avons seulement vu des méthodes sur le contexte de dessin. Si nous voulons appliquer des couleurs à une forme, il y a deux propriétés importantes que nous pouvons utiliser : fillStyle et strokeStyle .

- -
-
{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle = color")}}
-
Définit le style utilisé lors du remplissage de formes.
-
{{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle = color")}}
-
Définit le style pour les contours des formes.
-
- -

color est une chaîne représentant un CSS {{cssxref("<color>")}}, d'un objet gradient ou d'un objet motif. Nous allons examiner le gradient et la structure des objets plus tard. Par défaut, l'encadrement et la couleur de remplissage sont fixés sur noir (valeur #000000 de CSS color).

- -
-

Remarque: Lorsque vous définissez strokeStyle et fillStyle, la nouvelle valeur devient la valeur par défaut pour toutes les formes en cours d'élaboration à partir de là. Pour chaque forme que vous voulez dans une couleur différente, vous aurez besoin de réaffecter fillStyle ou strokeStyle.

-
- -

Les chaînes pour être valides, doivent être conforme à la spécification CSS {{cssxref("<color>")}}. Chacun des exemples suivants décrit la même couleur.

- -
// Les valeurs possibles de fillStyle pour "orange"
-
-ctx.fillStyle = 'orange';
-ctx.fillStyle = '#FFA500';
-ctx.fillStyle = 'rgb(255, 165, 0)';
-ctx.fillStyle = 'rgba(255, 165, 0, 1)';
- -

Un exemple fillStyle

- -

Dans cet exemple, nous utilisons une nouvelle fois deux boucles for pour dessiner une grille de rectangles, chacun dans une couleur différente. L'image résultante devrait ressembler à la capture d'écran. Il n'y a rien de spectaculaire ici. Nous utilisons les deux variables i et j pour générer une couleur RVB unique pour chaque carré, et seulement modifier les valeurs rouges et vertes. Le canal bleu a une valeur fixe. En modifiant les canaux, vous pouvez générer toutes sortes de palettes. En augmentant les étapes, vous pouvez obtenir quelque chose qui ressemble à des palettes de couleurs que Photoshop utilise.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  for (var i = 0; i < 6; i++) {
-    for (var j = 0; j < 6; j++) {
-      ctx.fillStyle = 'rgb(' + Math.floor(255 - 42.5 * i) + ',' +
-                       Math.floor(255 - 42.5 * j) + ',0)';
-      ctx.fillRect(j * 25, i * 25, 25, 25);
-    }
-  }
-}
- - - -

Le résultat ressemble à ceci:

- -

{{EmbedLiveSample("A_fillStyle_example", 160, 160, "https://mdn.mozillademos.org/files/5417/Canvas_fillstyle.png")}}

- -

Un exemple strokeStyle

- -

Cet exemple est similaire à celui ci-dessus, mais utilise strokeStyle pour changer les couleurs des contours des formes. Nous utilisons la méthode arc() pour dessiner des cercles au lieu de carrés.

- -
function draw() {
-    var ctx = document.getElementById('canvas').getContext('2d');
-    for (var i = 0; i < 6; i++) {
-      for (var j = 0; j < 6; j++) {
-        ctx.strokeStyle = 'rgb(0, ' + Math.floor(255 - 42.5 * i) + ', ' +
-                         Math.floor(255 - 42.5 * j) + ')';
-        ctx.beginPath();
-        ctx.arc(12.5 + j * 25, 12.5 + i * 25, 10, 0, Math.PI * 2, true);
-        ctx.stroke();
-      }
-    }
-  }
- - - -

Le résultat ressemble à ceci :

- -

{{EmbedLiveSample("A_strokeStyle_example", "180", "180", "https://mdn.mozillademos.org/files/253/Canvas_strokestyle.png")}}

- -

Transparence

- -

En plus de dessiner des formes opaques sur la toile, nous pouvons également dessiner des formes semi-transparentes (ou translucides). Cela se fait soit par le réglage de globalAlpha ou en attribuant une couleur semi-transparente à strokeStyle et/ou fillStyle.

- -
-
{{domxref("CanvasRenderingContext2D.globalAlpha", "globalAlpha = transparencyValue")}}
-
Applique la valeur de transparence spécifiée à toutes les formes futures tracées sur le Canvas. La valeur doit être comprise entre 0.0 (complètement transparent) à 1.0 (complètement opaque). Cette valeur est de 1,0 (complètement opaque) par défaut.
-
- -

La propriété globalAlpha peut être utile si vous voulez dessiner un grand nombre de formes sur la toile avec la même transparence, mais sinon, il est généralement plus utile de définir la transparence sur les formes individuelles lors de la définition de leurs couleurs.

- -

Parce que strokeStyle et fillStyle acceptent les valeurs de couleur rvba CSS, nous pouvons utiliser la notation suivante pour attribuer une couleur transparente.

- -
//Affecter des couleurs transparentes pour dessiner et remplir le style
-
-ctx.strokeStyle = "rgba(255, 0, 0, .5)";
-ctx.fillStyle = "rgba(255, 0, 0, .5)";
-
- -

La fonction rgba() (rvba) est similaire à la fonction rgb() (rvb) mais il a un paramètre supplémentaire. Le dernier paramètre définit la valeur de la transparence de cette couleur particulière. La plage valide est entre 0,0 (totalement transparent) et 1,0 (totalement opaque).

- -

Un exemple globalAlpha

- -

Dans cet exemple, nous allons dessiner un fond de quatre carrés de couleurs différentes. En plus de ceux-ci, nous allons dessiner un ensemble de cercles semi-transparents. globalAlpha est réglé à 0.2 et sera utilisé pour toutes les formes. Chaque étape de boucle for dessine un ensemble de cercles avec un rayon croissant. Le résultat final est un gradient radial. En superposant toujours plus de cercles, les uns au-dessus des autres, nous réduisons efficacement la transparence des cercles qui ont déjà été établis. En augmentant le pas et le nombre de cercles, l'arrière-plan devrait complètement disparaître du centre de l'image.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  // draw background
-  ctx.fillStyle = '#FD0';
-  ctx.fillRect(0, 0, 75, 75);
-  ctx.fillStyle = '#6C0';
-  ctx.fillRect(75, 0, 75, 75);
-  ctx.fillStyle = '#09F';
-  ctx.fillRect(0, 75, 75, 75);
-  ctx.fillStyle = '#F30';
-  ctx.fillRect(75, 75, 75, 75);
-  ctx.fillStyle = '#FFF';
-
-  // règle la valeur de transparence
-  ctx.globalAlpha = 0.2;
-
-  // Dessine des cercles semi-transparents
-  for (i = 0; i < 7; i++) {
-    ctx.beginPath();
-    ctx.arc(75, 75, 10 + 10 * i, 0, Math.PI * 2, true);
-    ctx.fill();
-  }
-}
- - - -

{{EmbedLiveSample("A_globalAlpha_example", "180", "180", "https://mdn.mozillademos.org/files/232/Canvas_globalalpha.png")}}

- -

Un exemple en utilisant rgba()

- -

Dans ce deuxième exemple, nous faisons quelque chose de similaire, mais au lieu de dessiner des cercles, nous dessinons de petits rectangles à l'opacité croissante. L'utilisation de rgba() nous donne un peu plus de contrôle et de flexibilité.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Dessine le fond
-  ctx.fillStyle = 'rgb(255, 221, 0)';
-  ctx.fillRect(0, 0, 150, 37.5);
-  ctx.fillStyle = 'rgb(102, 204, 0)';
-  ctx.fillRect(0, 37.5, 150, 37.5);
-  ctx.fillStyle = 'rgb(0, 153, 255)';
-  ctx.fillRect(0, 75, 150, 37.5);
-  ctx.fillStyle = 'rgb(255, 51, 0)';
-  ctx.fillRect(0, 112.5, 150, 37.5);
-
-  // Dessine des rectangles semi-transparents
-  for (var i = 0; i < 10; i++) {
-    ctx.fillStyle = 'rgba(255, 255, 255, ' + (i + 1) / 10 + ')';
-    for (var j = 0; j < 4; j++) {
-      ctx.fillRect(5 + i * 14, 5 + j * 37.5, 14, 27.5);
-    }
-  }
-}
- - - -

{{EmbedLiveSample("An_example_using_rgba()", "180", "180", "https://mdn.mozillademos.org/files/246/Canvas_rgba.png")}}

- -

Le style des lignes

- -

Il y a plusieurs propriétés qui nous permettent de modifier le style des lignes.

- -
-
{{domxref("CanvasRenderingContext2D.lineWidth", "lineWidth = value")}}
-
Définit la largeur des lignes qui serons tracées.
-
{{domxref("CanvasRenderingContext2D.lineCap", "lineCap = type")}}
-
Définit l'apparence des extrémités des lignes.
-
{{domxref("CanvasRenderingContext2D.lineJoin", "lineJoin = type")}}
-
Définit l'apparence des «coins» où les lignes se rencontrent.
-
{{domxref("CanvasRenderingContext2D.miterLimit", "miterLimit = value")}}
-
Établit une limite lorsque deux lignes se rejoignent en un angle aigu, pour permettre de contrôler l'épaisseur de la jonction.
-
{{domxref("CanvasRenderingContext2D.getLineDash", "getLineDash()")}}
-
Retourne le tableau du modele courant de ligne contenant un nombre pair de nombres positifs.
-
{{domxref("CanvasRenderingContext2D.setLineDash", "setLineDash(segments)")}}
-
Définit le modele de ligne.
-
{{domxref("CanvasRenderingContext2D.lineDashOffset", "lineDashOffset = value")}}
-
Indique où commencer un modele sur une ligne.
-
- -

Vous aurez une meilleure compréhension de ce qu'ils font en regardant les exemples ci-dessous.

- -

Un exemple lineWidth

- -

Cette propriété définit l'épaisseur de la ligne actuelle. Les valeurs doivent être des nombres positifs. Par défaut, cette valeur est définie à 1,0.

- -

La largeur de ligne est l'épaisseur centrée sur le tracé. En d'autres termes, la zone qui est dessinée s'étend de part et d'autre du tracé. Parce que les coordonnées ne font pas référence directement aux pixels, une attention particulière doit être prise pour obtenir des lignes horizontales et verticales nettes.

- -

Dans l'exemple ci-dessous, 10 lignes droites sont dessinées avec des largeurs croissantes. La ligne à l'extrême gauche a 1,0 unités de large. Cependant, celle ci et toutes les lignes d'épaisseur impair ne semblent pas nettes, en raison du positionnement du tracé.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  for (var i = 0; i < 10; i++) {
-    ctx.lineWidth = 1 + i;
-    ctx.beginPath();
-    ctx.moveTo(5 + i * 14, 5);
-    ctx.lineTo(5 + i * 14, 140);
-    ctx.stroke();
-  }
-}
- - - -

{{EmbedLiveSample("A_lineWidth_example", "180", "180", "https://mdn.mozillademos.org/files/239/Canvas_linewidth.png")}}

- -

Pour l'obtention de lignes nettes, il faut comprendre comment les lignes sont tracées. Ci-dessous, la grille représente la grille de coordonnées. Les carrés sont des pixels réels de l'écran. Dans la première grille, un rectangle (2,1) à (5,5) est rempli. La zone entière couverte par les lignes (rouge clair) tombe sur les limites des pixels, de sorte que le rectangle rempli résultant aura des bords nets.

- -

- -

Si vous considérez un tracé de (3,1) à (3,5) avec une épaisseur de ligne de 1.0, vous vous retrouvez dans la situation de la deuxième grille. La surface réelle à remplir (bleu foncé) se prolonge seulement à moitié sur les pixels de part et d'autre du chemin. Une approximation de ceci doit être rendue, ce qui signifie que ces pixels sont partiellement ombrés, et le résultat est que toute la zone (le bleu clair et bleu foncé) est remplie avec une couleur moitié moins sombre que la couleur du tracé attendu. C'est ce qui arrive avec la largeur de 1.0 dans l'exemple précédent.

- -

Pour résoudre ce problème, vous devez être très précis dans la création de votre tracé. Sachant qu'une largeur de 1.0 s'étendra d'une demi-unité de chaque côté du tracé, créer le tracé de (3.5,1) à (3.5,5) aboutit à l'exemple trois pour une largeur de 1.0 et au remplissage d'un seul pixel de ligne verticale.

- -
-

Note: Sachez que dans notre exemple de ligne verticale, la position Y fait toujours référence à une position de grille entière — sinon, vous verrez des pixels à moitié colorés à gauche et à droite (mais notez aussi que ce comportement dépend de l'actuel style lineCap, dont la valeur par défaut est butt. Vous pouvez essayer de tracer des traits consistants avec des coordonnées non-entières pour les lignes et avec une largeur particulière, en définissant le style lineCap à square, pour que le bord extérieur du trait autour du point final soit automatiquement étendu pour couvrir le pixel entier).

- -

Notez également que seuls les points de début et de fin d'un chemin sont affectés : si un chemin est fermé avec closePath (), il n'y a pas de point de départ ni de point final ; à la place, tous les points d'extrémité du chemin sont connectés à leurs segments joints précédent et suivant, en utilisant le paramètre courant du style lineJoin, dont la valeur par défaut est miter, avec pour effet d'étendre automatiquement les bordures extérieures des segments connectés à leur point d'intersection. Ainsi, le trait de rendu couvrira exactement les pixels pleins centrés à chaque extrémité si ces segments connectés sont horizontaux et / ou verticaux. Voir les deux sections suivantes pour les démonstrations de ces styles de lignes supplémentaires.

-
- -

Pour les lignes de largeur paire, chaque moitié finit par être un nombre entier de pixels, vous voulez donc un chemin entre les pixels (c'est-à-dire (3,1) à (3,5)), au lieu de descendre au milieu des pixels .

- -

Bien que légèrement ennuyeux quand on travaille avec des graphismes 2D évolutifs, en accordant une attention à la grille de pixels et à la position des tracés, vous vous assurez du comportement correct de vos dessins, et ce, indépendamment de la mise à l'échelle ou d'autres transformations. Une ligne verticale de largeur 1,0 à la bonne position deviendra une ligne de 2 pixels nette à l'échelle 2.

- -

Un exemple de lineCap

- -

La propriété lineCap détermine comment les extrêmités de chaque ligne sont dessinées. Il y a trois valeurs possibles pour la propriété : butt, round et square. Par défaut, la propriété est définie à butt.

- -

- -
-
butt (bout)
-
L'extrémité des lignes est en angle droit.
-
round (rond)
-
Les extrémités sont arrondies.
-
square (carré)
-
Les extrémités sont en angle droit en ajoutant une extension d'une largeur égale à la ligne et une hauteur égale à la moitié de la largeur de la ligne.
-
- -

Dans cet exemple, nous avons tracé trois lignes, chacune avec une valeur différente pour la propriété lineCap. Nous avons par ailleurs ajouté deux guides pour voir exactement les différences entre les trois lignes. Chacune de ces trois lignes est identique entre les deux traits bleus.

- -

La ligne de gauche utilise l'option par défaut butt. Vous pourrez noter qu'elle est entièrement dessinée entre les deux guides. La deuxième utilise l'option round. Elle ajoute un demi-cercle à chaque extrémité d'un rayon valant la moitié de la largeur de la ligne. La ligne de droite utilise l'option square. Elle ajoute une extension avec une largeur égale à la ligne et une hauteur équivalante à la moitié de la largeur de la ligne.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var lineCap = ['butt', 'round', 'square'];
-
-  // Dessiner des guides
-  ctx.strokeStyle = '#09f';
-  ctx.beginPath();
-  ctx.moveTo(10, 10);
-  ctx.lineTo(140, 10);
-  ctx.moveTo(10, 140);
-  ctx.lineTo(140, 140);
-  ctx.stroke();
-
-  // Dessiner des lignes
-  ctx.strokeStyle = 'black';
-  for (var i = 0; i < lineCap.length; i++) {
-    ctx.lineWidth = 15;
-    ctx.lineCap = lineCap[i];
-    ctx.beginPath();
-    ctx.moveTo(25 + i * 50, 10);
-    ctx.lineTo(25 + i * 50, 140);
-    ctx.stroke();
-  }
-}
- - - -

{{EmbedLiveSample("A_lineCap_example", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}

- -

Un exemple de lineJoin

- -

La propriété lineJoin détermine comment deux segments (lignes, arcs ou courbes), de largeur non nulle se connectant dans une forme, sont joints ensemble (les segments de longueur nulle, dont les coordonnées de départ et de fin sont exactement les mêmes, sont ignorés).

- -

Il existe trois valeurs possibles pour cette propriété : round, bevel et miter. Par défaut, cette propriété est définie à miter. Notez que le paramètre lineJoin n'a pas d'effet si les deux segments connectés ont la même direction, parce qu'aucune zone de jointure ne sera ajoutée dans ce cas.

- -

- -
-
round (rond)
-
Arrondit les angles des segments en ajoutant un arc de cercle centré à l'extrémité commune des segments connectés. Le rayon de ces angles arrondis est égal à la moitié de la largeur du trait.
-
bevel (biseau)
-
Ajoute un triangle à l'extrémité commune des segments connectés.
-
miter (onglet)
-
Les segments connectés sont reliés en prolongeant leurs bords extérieurs pour se connecter en un seul point, avec pour effet de remplir une zone supplémentaire en forme de losange. Ce paramètre est effectué par la propriété miterLimit qui est expliquée ci-dessous.
-
- -

L'exemple ci-dessous dessine trois chemins différents, démontrant chacun de ces trois paramètres de propriété lineJoin ; la sortie est montrée ci-dessus.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var lineJoin = ['round', 'bevel', 'miter'];
-  ctx.lineWidth = 10;
-  for (var i = 0; i < lineJoin.length; i++) {
-    ctx.lineJoin = lineJoin[i];
-    ctx.beginPath();
-    ctx.moveTo(-5, 5 + i * 40);
-    ctx.lineTo(35, 45 + i * 40);
-    ctx.lineTo(75, 5 + i * 40);
-    ctx.lineTo(115, 45 + i * 40);
-    ctx.lineTo(155, 5 + i * 40);
-    ctx.stroke();
-  }
-}
- - - -

{{EmbedLiveSample("A_lineJoin_example", "180", "180", "https://mdn.mozillademos.org/files/237/Canvas_linejoin.png")}}

- -

Une démonstration de la propriété miterLimit

- -

Comme vous l'avez vu dans l'exemple précédent, lorsque vous joignez deux lignes avec l'option d'onglet, les bords extérieurs des deux lignes d'assemblage sont étendus jusqu'au point où ils se rencontrent. Pour les lignes qui sont à grands angles les unes avec les autres, ce point n'est pas loin du point de connexion interne. Cependant, lorsque les angles entre chaque ligne diminuent, la distance entre ces points augmente exponentiellement.

- -

La propriété miterLimit détermine dans quelle mesure le point de connexion externe peut être placé à partir du point de connexion interne. Si deux lignes dépassent cette valeur, une jointure biseau est dessinée à la place. Notez que la longueur ajoutée maximale est le produit de la largeur de ligne mesurée dans le système de coordonnées actuel, par la valeur de cette propriété miterLimit (dont la valeur par défaut est 10.0 dans le HTML {{HTMLElement("canvas")}}). miterLimit peut être défini indépendamment de l'échelle d'affichage actuelle ou de toutes les transformations affinées de chemins : il n'influence que la forme des bords de lignes effectivement rendues.

- -

Plus précisément, la limite d'onglet est le rapport maximal autorisé de la longueur d'extension (dans le canvas HTML, il est mesuré entre le coin extérieur des bords joints de la ligne et le point d'extrémité commun des segments de connexion spécifiés dans le chemin) à la moitié de la largeur de la ligne. Il peut être défini, de manière équivalente, comme le rapport maximum autorisé de la distance entre les points de jonction intérieur et extérieur des bords et la largeur totale de la ligne. Il est alors égal à la cosécante de la moitié de l'angle interne minimum des segments de connexion, en-dessous de laquelle aucune jointure d'onglet ne sera rendue, mais seulement une jointure en biseau :

- - - -

Voici une petite démo dans laquelle vous pouvez définir dynamiquement miterLimit et voir comment cela affecte les formes sur le canevas. Les lignes bleues indiquent où se trouvent les points de départ et d'arrivée de chacune des lignes du motif en zig-zag.

- -

Si vous spécifiez une valeur miterLimit inférieure à 4.2 dans cette démo, aucun des coins visibles ne se joindra avec une extension onglet, mais seulement avec un petit biseau près des lignes bleues ; avec une limite à onglets au-dessus de 10, la plupart des coins de cette démo devraient se combiner avec un onglet loin des lignes bleues et dont la hauteur diminue entre les coins de gauche à droite, car ils se connectent avec des angles croissants ; avec des valeurs intermédiaires, les coins du côté gauche ne rejoignent qu'un biseau près des lignes bleues et les coins du côté droit avec une extension à onglets (également avec une hauteur décroissante).

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Éffacer canvas
-  ctx.clearRect(0, 0, 150, 150);
-
-  // Dessiner des guides
-  ctx.strokeStyle = '#09f';
-  ctx.lineWidth   = 2;
-  ctx.strokeRect(-5, 50, 160, 50);
-
-  // Définir les styles de lignes
-  ctx.strokeStyle = '#000';
-  ctx.lineWidth = 10;
-
-  // Vérifier l'entrée (input)
-  if (document.getElementById('miterLimit').value.match(/\d+(\.\d+)?/)) {
-    ctx.miterLimit = parseFloat(document.getElementById('miterLimit').value);
-  } else {
-    alert('Value must be a positive number');
-  }
-
-  // Dessiner des lignes
-  ctx.beginPath();
-  ctx.moveTo(0, 100);
-  for (i = 0; i < 24 ; i++) {
-    var dy = i % 2 == 0 ? 25 : -25;
-    ctx.lineTo(Math.pow(i, 1.5) * 2, 75 + dy);
-  }
-  ctx.stroke();
-  return false;
-}
- - - -

{{EmbedLiveSample("A_demo_of_the_miterLimit_property", "400", "180", "https://mdn.mozillademos.org/files/240/Canvas_miterlimit.png")}}

- -

Utilisation de lignes pointillées

- -

setLineDash et lineDashOffset précisent le modèle de lignes. setLineDash accepte une liste de nombres qui spécifie les distances pour dessiner alternativement une ligne et un espace et lineDashOffset définit un décalage pour commencer le motif.

- -

Dans cet exemple, nous créons un effet de fourmis en marche. C'est une technique d'animation souvent employée dans les sélections d'outils des programmes graphiques. Cet effet permet à l'utilisateur de distinguer la frontière de l'image de fond de la sélection en animant la frontière. Dans une partie de ce tutoriel, vous pouvez apprendre comment faire cela et d'autres animations de base animation basiques..

- - - -
var ctx = document.getElementById('canvas').getContext('2d');
-var offset = 0;
-
-function draw() {
-  ctx.clearRect(0, 0, canvas.width, canvas.height);
-  ctx.setLineDash([4, 2]);
-  ctx.lineDashOffset = -offset;
-  ctx.strokeRect(10, 10, 100, 100);
-}
-
-function march() {
-  offset++;
-  if (offset > 16) {
-    offset = 0;
-  }
-  draw();
-  setTimeout(march, 20);
-}
-
-march();
- -

{{EmbedLiveSample("Using_line_dashes", "120", "120", "https://mdn.mozillademos.org/files/9853/marching-ants.png")}}

- -

Dégradés

- -

Comme n'importe quel programme de dessin normal, nous pouvons remplir et découper des formes à l'aide de dégradés linéaires et radiaux. Nous créons un objet {{domxref ("CanvasGradient")}} en utilisant l'une des méthodes suivantes. Nous pouvons ensuite affecter cet objet aux propriétés fillStyle ou strokeStyle.

- -
-
{{domxref("CanvasRenderingContext2D.createLinearGradient", "createLinearGradient(x1, y1, x2, y2)")}}
-
Crée un objet dégradé linéaire avec un point de départ (x1, y1) et un point final (x2, y2).
-
{{domxref("CanvasRenderingContext2D.createRadialGradient", "createRadialGradient(x1, y1, r1, x2, y2, r2)")}}
-
Crée un dégradé radial. Les paramètres représentent deux cercles, l'un avec son centre à (x1, y1) et un rayon r1, l'autre avec son centre à (x2, y2) avec un rayon r2.
-
- -

Par exemple:

- -
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
-var radialgradient = ctx.createRadialGradient(75, 75, 0, 75, 75, 100);
- -

Une fois que nous avons créé un objet CanvasGradient, nous pouvons lui assigner des couleurs en utilisant la méthode addColorStop ().

- -
-
{{domxref("CanvasGradient.addColorStop", "gradient.addColorStop(position, color)")}}
-
Crée un nouvel arrêt de couleur sur l'objet gradient (dégradé). La position est un nombre entre 0.0 et 1.0 et définit la position relative de la couleur dans le dégradé ; et l'argument color doit être une chaîne représentant une CSS {{cssxref ("<color>")}}, indiquant la couleur que le dégradé devrait atteindre.
-
- -

Vous pouvez ajouter autant d'arrêts de couleur à un dégradé que vous le souhaitez. Ci-dessous figure un dégradé linéaire très simple du blanc au noir.

- -
var lineargradient = ctx.createLinearGradient(0, 0, 150, 150);
-lineargradient.addColorStop(0, 'white');
-lineargradient.addColorStop(1, 'black');
- -

Un exemple de createLinearGradient

- -

Dans cet exemple, nous allons créer deux dégradés différents. Comme vous pouvez le voir ici, les propriétés strokeStyle et fillStyle peuvent accepter un objet canvasGradient comme entrée valide.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Créer un dégradé
-  var lingrad = ctx.createLinearGradient(0, 0, 0, 150);
-  lingrad.addColorStop(0, '#00ABEB');
-  lingrad.addColorStop(0.5, '#fff');
-  lingrad.addColorStop(0.5, '#26C000');
-  lingrad.addColorStop(1, '#fff');
-
-  var lingrad2 = ctx.createLinearGradient(0, 50, 0, 95);
-  lingrad2.addColorStop(0.5, '#000');
-  lingrad2.addColorStop(1, 'rgba(0, 0, 0, 0)');
-
-  // assigner des dégradés aux styles "fill" et "stroke"
-  ctx.fillStyle = lingrad;
-  ctx.strokeStyle = lingrad2;
-
-  // Dessiner des formes
-  ctx.fillRect(10, 10, 130, 130);
-  ctx.strokeRect(50, 50, 50, 50);
-
-}
- - - -

Le premier est un dégradé d'arrière-plan. Comme vous pouvez le voir, nous avons assigné deux couleurs à la même position. Vous faites cela pour faire des transitions de couleurs très nettes - dans ce cas du blanc au vert. Normalement, peu importe dans quel ordre vous définissez l'arrêt de la couleur, mais dans ce cas particulier, la différence peut être significative. Si vous conservez les affectations dans l'ordre où vous voulez qu'elles apparaissent, cela ne posera aucun problème.

- -

Dans le second gradient, nous n'avons pas assigné la couleur de départ (à la position 0.0) puisqu'il n'était pas strictement nécessaire car il prendra automatiquement la valeur de la prochaine couleur. Par conséquent, l'attribution de la couleur noire à la position 0,5 fait automatiquement passer le dégradé, du début à l'arrêt, en noir.

- -

{{EmbedLiveSample("A_createLinearGradient_example", "180", "180", "https://mdn.mozillademos.org/files/235/Canvas_lineargradient.png")}}

- -

Un exemple de createRadialGradient

- -

Dans cet exemple, nous définirons quatre dégradés radiaux différents. Parce que nous avons le contrôle sur les points de départ et de fermeture du dégradé, nous pouvons obtenir des effets plus complexes que nous aurions normalement dans les dégradés radiaux "classiques" (c'est-à-dire un dégradé avec un seul point central où le dégradé se développe vers l'extérieur dans une forme circulaire).

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // Créer un dégradé
-  var radgrad = ctx.createRadialGradient(45, 45, 10, 52, 50, 30);
-  radgrad.addColorStop(0, '#A7D30C');
-  radgrad.addColorStop(0.9, '#019F62');
-  radgrad.addColorStop(1, 'rgba(1, 159, 98, 0)');
-
-  var radgrad2 = ctx.createRadialGradient(105, 105, 20, 112, 120, 50);
-  radgrad2.addColorStop(0, '#FF5F98');
-  radgrad2.addColorStop(0.75, '#FF0188');
-  radgrad2.addColorStop(1, 'rgba(255, 1, 136, 0)');
-
-  var radgrad3 = ctx.createRadialGradient(95, 15, 15, 102, 20, 40);
-  radgrad3.addColorStop(0, '#00C9FF');
-  radgrad3.addColorStop(0.8, '#00B5E2');
-  radgrad3.addColorStop(1, 'rgba(0, 201, 255, 0)');
-
-  var radgrad4 = ctx.createRadialGradient(0, 150, 50, 0, 140, 90);
-  radgrad4.addColorStop(0, '#F4F201');
-  radgrad4.addColorStop(0.8, '#E4C700');
-  radgrad4.addColorStop(1, 'rgba(228, 199, 0, 0)');
-
-  // dessiner des formes
-  ctx.fillStyle = radgrad4;
-  ctx.fillRect(0, 0, 150, 150);
-  ctx.fillStyle = radgrad3;
-  ctx.fillRect(0, 0, 150, 150);
-  ctx.fillStyle = radgrad2;
-  ctx.fillRect(0, 0, 150, 150);
-  ctx.fillStyle = radgrad;
-  ctx.fillRect(0, 0, 150, 150);
-}
- - - -

Dans ce cas, nous avons légèrement décalé le point de départ du point final pour obtenir un effet 3D sphérique. Il est préférable d'éviter de laisser les cercles intérieurs et extérieurs se chevaucher car cela entraîne des effets étranges, difficiles à prédire.

- -

Le dernier arrêt de couleur dans chacun des quatre dégradés utilise une couleur entièrement transparente. Si vous voulez une transition agréable de cette étape à la couleur précédente, les deux couleurs doivent être égales. Ce n'est pas très évident dans le code, car il utilise deux méthodes CSS différentes en démonstration, mais dans le premier dégradé # 019F62 = rgba (1,159,98,1).

- -

{{EmbedLiveSample("A_createRadialGradient_example", "180", "180", "https://mdn.mozillademos.org/files/244/Canvas_radialgradient.png")}}

- -

Modèles

- -

Dans l'un des exemples de la page précédente, nous avons utilisé une série de boucles pour créer un motif d'images. Il existe cependant une méthode beaucoup plus simple : la méthode createPattern ().

- -
-
{{domxref("CanvasRenderingContext2D.createPattern", "createPattern(image, type)")}}
-
Crée et renvoie un nouvel objet de canvas. image est un {{domxref ("CanvasImageSource")}} (c'est-à-dire un {{domxref ("HTMLImageElement")}} ; un autre élément canvas,  type est une chaîne indiquant comment utiliser l'image.
-
- -

Le type spécifie comment utiliser l'image pour créer le motif et doit avoir l'une des valeurs de chaîne suivantes :

- -
-
repeat
-
Tapisse la zone en répètant l'image dans les deux sens vertical et horizontal.
-
repeat-x
-
Tapisse la zone en répètant l'image horizontalement mais pas verticalement.
-
repeat-y
-
Tapisse la zone en répètant l'image verticalement mais pas horizontalement.
-
no-repeat
-
Ne tapisse pas la zone avec l'image, elle est utilisée une seule fois.
-
- -

Nous utilisons cette méthode pour créer un objet {{domxref ("CanvasPattern")}} qui est très similaire aux méthodes de dégradé que nous avons vu ci-dessus. Une fois que nous avons créé un modèle, nous pouvons l'affecter aux propriétés fillStyle ou strokeStyle. Par exemple :

- -
var img = new Image();
-img.src = 'someimage.png';
-var ptrn = ctx.createPattern(img, 'repeat');
- -
-

Note: Comme avec la méthode drawImage (), vous devez vous assurer que l'image que vous utilisez est chargée avant d'appeler cette méthode, ou le motif pourrait être mal dessiné.

-
- -

Un exemple de createPattern

- -

Dans ce dernier exemple, nous allons créer un modèle à affecter à la propriété fillStyle. La seule chose à noter, est l'utilisation du gestionnaire onload de l'image. Cela permet de s'assurer que l'image est chargée avant d'être affectée au motif.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // créer un nouvel objet image à utiliser comme modèle
-  var img = new Image();
-  img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
-  img.onload = function() {
-
-    // créer le modèle
-    var ptrn = ctx.createPattern(img, 'repeat');
-    ctx.fillStyle = ptrn;
-    ctx.fillRect(0, 0, 150, 150);
-
-  }
-}
- - - -

{{EmbedLiveSample("A_createPattern_example", "180", "180", "https://mdn.mozillademos.org/files/222/Canvas_createpattern.png")}}

- -

Ombres

- -

L'utilisation des ombres ne comporte que quatre propriétés :

- -
-
{{domxref("CanvasRenderingContext2D.shadowOffsetX", "shadowOffsetX = float")}}
-
Indique la distance horizontale sur laquelle l'ombre doit s'étendre à partir de l'objet. Cette valeur n'est pas affectée par la matrice de transformation. La valeur par défaut est 0.
-
{{domxref("CanvasRenderingContext2D.shadowOffsetY", "shadowOffsetY = float")}}
-
Indique la distance verticale sur laquelle l'ombre doit s'étendre à partir de l'objet. Cette valeur n'est pas affectée par la matrice de transformation. La valeur par défaut est 0.
-
{{domxref("CanvasRenderingContext2D.shadowBlur", "shadowBlur = float")}}
-
Indique la taille de l'effet de floutage ; cette valeur ne correspond pas à un nombre de pixels et n'est pas affectée par la matrice de transformation actuelle. La valeur par défaut est 0.
-
{{domxref("CanvasRenderingContext2D.shadowColor", "shadowColor = color")}}
-
Une valeur de couleur CSS standard indiquant la couleur de l'effet d'ombre ; par défaut, il est entièrement noir transparent.
-
- -

Les propriétés shadowOffsetX et shadowOffsetY indiquent sur quelle distance l'ombre doit s'étendre à partir de l'objet dans les directions X et Y; ces valeurs ne sont pas affectées par la matrice de transformation actuelle. Utilisez des valeurs négatives pour faire en sorte que l'ombre s'étende vers le haut ou vers la gauche et des valeurs positives pour que l'ombre s'étende vers le bas ou vers la droite. La valeur par défaut est 0 pour les 2 propriétés.

- -

La propriété shadowBlur indique la taille de l'effet de flou ; cette valeur ne correspond pas à un nombre de pixels et n'est pas affectée par la matrice de transformation actuelle. La valeur par défaut est 0.

- -

La propriété shadowColor est une valeur de couleur CSS standard indiquant la couleur de l'effet d'ombre ; par défaut, il est entièrement en noir transparent.

- -
-

Note : Les ombres ne sont dessinées que pour les opérations de composition source-over.

-
- -

Un exemple de texte ombré

- -

Cet exemple dessine une chaîne de texte avec un effet d'ombrage.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  ctx.shadowOffsetX = 2;
-  ctx.shadowOffsetY = 2;
-  ctx.shadowBlur = 2;
-  ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
-
-  ctx.font = '20px Times New Roman';
-  ctx.fillStyle = 'Black';
-  ctx.fillText('Sample String', 5, 30);
-}
- - - -

{{EmbedLiveSample("A_shadowed_text_example", "180", "100", "https://mdn.mozillademos.org/files/2505/shadowed-string.png")}}

- -

Nous allons regarder la propriété de la font (police de caratères) et la méthode fillText dans le chapitre suivant sur le dessin de texte.

- -

Règles de remplissage Canvas

- -

Lors de l'utilisation de fill (ou {{domxref ("CanvasRenderingContext2D.clip", "clip")}} et {{domxref("CanvasRenderingContext2D.isPointInPath", "isPointinPath")}}) , déterminez si un point est à l'intérieur ou à l'extérieur d'un chemin et ainsi, s'il est rempli ou non. Ceci est utile lorsqu'un chemin en croise  un autre ou est imbriqué.
-
- Deux valeurs sont possibles :

- - - -

Dans cet exemple, nous utilisons la règle evenodd .

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.beginPath();
-  ctx.arc(50, 50, 30, 0, Math.PI * 2, true);
-  ctx.arc(50, 50, 15, 0, Math.PI * 2, true);
-  ctx.fill('evenodd');
-}
- - - -

{{EmbedLiveSample("Canvas_fill_rules", "110", "110", "https://mdn.mozillademos.org/files/9855/fill-rule.png")}}

- -

{{PreviousNext("Tutoriel_canvas/Formes_géométriques", "Dessin_de_texte_avec_canvas")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/animations_basiques/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/animations_basiques/index.html deleted file mode 100644 index f44929e8be..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/animations_basiques/index.html +++ /dev/null @@ -1,339 +0,0 @@ ---- -title: Animations basiques -slug: Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques -tags: - - Canvas - - Graphiques - - HTML - - HTML5 - - Intermédiaire - - Tutoriel -translation_of: Web/API/Canvas_API/Tutorial/Basic_animations ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Tutoriel_canvas/Advanced_animations")}}
- -
-

Avec l'utilisation en Javascript du composant {{HTMLElement("canvas")}}, il est très simple de créer des animations (interactives). Ce chapitre décrit comment créer quelques animations basiques.

-
- -

La plus grosse limitation est sans doute qu'une fois qu'une forme est dessinée, elle reste telle quelle. Si on a besoin de la déplacer, il faut la redessiner avec ce qui était dessiné avant. Cela peut prendre beaucoup de temps de redessiner des images complexes et les performances dépendront beaucoup de la vitesse de l'ordinateur qui exécute cet affichage.

- -

Les étapes d'une animation basique

- -

Voici les étapes à suivre à chaque image dessinée (frame) :

- -
    -
  1. Effacer le canevas
    - À moins que les formes que vous voulez dessiner remplissent complètement le canevas (par exemple une image en arrière-plan), vous devrez effacer toutes les formes qui ont été dessinées précédemment. La manière la plus simple de le faire est d'utiliser la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}.
  2. -
  3. Enregistrer l'état du canevas
    - Si vous changez des configurations qui affectent l'état du canevas (comme le style, les transformations, etc.), et vous voulez vous assurer que c'est l'état original qui est utilisé chaque fois que le canevas est redessiné, alors vous devez enregistrer l'état original.
  4. -
  5. Dessiner les formes animées
    - Vous effectuez toutes les opérations pour afficher l'image.
  6. -
  7. Restaurer l'état du canevas
    - Si l'état du canevas a été sauvegardé, vous  restaurez cet état avant le prochain rendu.
  8. -
- -

Contrôle d'une animation

- -

Les formes sont dessinées en utilisant soit les méthodes du canevas directement soit en appelant des fonctions personnalisées. Dans des conditions normales, on ne voit le résultat des opérations sur le canevas que quand le script a terminé son exécution. Cela signifie qu'il n'est pas possible de créer une animation avec une boucle for.

- -

Il nous faut donc un moyen d'exécuter nos fonctions de dessin sur une période de temps. Il existe à ce jour trois manières de le faire.

- -

Mises à jour planifiées

- -

Les fonctions {{domxref("window.setInterval()")}}, {{domxref("window.setTimeout()")}}, et {{domxref("window.requestAnimationFrame()")}} peuvent être utilisées :

- -
-
{{domxref("WindowTimers.setInterval", "setInterval(function, delay)")}}
-
Lance la fonction définie par function chaque delay (délai) millisecondes.
-
{{domxref("WindowTimers.setTimeout", "setTimeout(function, delay)")}}
-
Exécute la fonction définie par function dans delay millisecondes.
-
{{domxref("Window.requestAnimationFrame()", "requestAnimationFrame(callback)")}}
-
Dit au navigateur qu'on veut afficher une animation et lui demande d'appeler la fonction callback pour mettre à jour cette animation avant de dessiner la prochaine image.
-
- -

Si vous n'avez pas besoin d'interaction utilisateur, vous pouvez utiliser la fonction setInterval(), elle va exécuter périodiquement votre code.

- -

Si vous voulez faire un jeu, et utiliser les événements du clavier et de la souris pour contrôler l'animation, vous pouvez utiliser setTimeout(). En utilisant des {{domxref("EventListener")}}, on peut récupèrer chaque interaction et d'exécuter nos fonctions d'animation.

- -

Dans les exemples suivants, nous utiliserons {{domxref("window.requestAnimationFrame()")}} pour contrôler les animations. Cette technique est plus fluide et plus efficace, elle appelle les opérations de rendu quand le système est prêt à dessiner l'image. Dans des conditions idéales, la fonction est alors lancée 60 fois par seconde, mais la fréquence sera réduite si l'animation se passe dans un onglet non visible.

- -
-

Pour plus d'informations sur la boucle d'animation, plus spécialement pour les jeux, rendez-vous sur l'article L'anatomie d'un jeu vidéo dans notre section Développement de jeux vidéo.

-
- -

Un système terrestre animé

- -

Cette exemple anime un petit modèle de notre système terrestre.

- -
var sun = new Image();
-var moon = new Image();
-var earth = new Image();
-function init(){
-  sun.src = 'https://mdn.mozillademos.org/files/1456/Canvas_sun.png';
-  moon.src = 'https://mdn.mozillademos.org/files/1443/Canvas_moon.png';
-  earth.src = 'https://mdn.mozillademos.org/files/1429/Canvas_earth.png';
-  window.requestAnimationFrame(draw);
-}
-
-function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  ctx.globalCompositeOperation = 'destination-over';
-  ctx.clearRect(0,0,300,300); // effacer le canvas
-
-  ctx.fillStyle = 'rgba(0,0,0,0.4)';
-  ctx.strokeStyle = 'rgba(0,153,255,0.4)';
-  ctx.save();
-  ctx.translate(150,150);
-
-  // Terre
-  var time = new Date();
-  ctx.rotate( ((2*Math.PI)/60)*time.getSeconds() + ((2*Math.PI)/60000)*time.getMilliseconds() );
-  ctx.translate(105,0);
-  ctx.fillRect(0,-12,50,24); // Ombre
-  ctx.drawImage(earth,-12,-12);
-
-  // Lune
-  ctx.save();
-  ctx.rotate( ((2*Math.PI)/6)*time.getSeconds() + ((2*Math.PI)/6000)*time.getMilliseconds() );
-  ctx.translate(0,28.5);
-  ctx.drawImage(moon,-3.5,-3.5);
-  ctx.restore();
-
-  ctx.restore();
-
-  ctx.beginPath();
-  ctx.arc(150,150,105,0,Math.PI*2,false); // Orbite terrestre
-  ctx.stroke();
-
-  ctx.drawImage(sun,0,0,300,300);
-
-  window.requestAnimationFrame(draw);
-}
-
-init();
-
- - - -

{{EmbedLiveSample("Un_système_terrestre_animé", "310", "310", "https://mdn.mozillademos.org/files/202/Canvas_animation1.png")}}

- -

Une horloge animée

- -

Cette exemple dessine une horloge animée qui affiche l'heure actuelle.

- -
function clock(){
-  var now = new Date();
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.save();
-  ctx.clearRect(0,0,150,150);
-  ctx.translate(75,75);
-  ctx.scale(0.4,0.4);
-  ctx.rotate(-Math.PI/2);
-  ctx.strokeStyle = "black";
-  ctx.fillStyle = "white";
-  ctx.lineWidth = 8;
-  ctx.lineCap = "round";
-
-  // Marquage des heures
-  ctx.save();
-  for (var i=0;i<12;i++){
-    ctx.beginPath();
-    ctx.rotate(Math.PI/6);
-    ctx.moveTo(100,0);
-    ctx.lineTo(120,0);
-    ctx.stroke();
-  }
-  ctx.restore();
-
-  // Marquage des minutes
-  ctx.save();
-  ctx.lineWidth = 5;
-  for (i=0;i<60;i++){
-    if (i%5!=0) {
-      ctx.beginPath();
-      ctx.moveTo(117,0);
-      ctx.lineTo(120,0);
-      ctx.stroke();
-    }
-    ctx.rotate(Math.PI/30);
-  }
-  ctx.restore();
-
-  var sec = now.getSeconds();
-  var min = now.getMinutes();
-  var hr  = now.getHours();
-  hr = hr>=12 ? hr-12 : hr;
-
-  ctx.fillStyle = "black";
-
-  // Aiguille des heures
-  ctx.save();
-  ctx.rotate( hr*(Math.PI/6) + (Math.PI/360)*min + (Math.PI/21600)*sec )
-  ctx.lineWidth = 14;
-  ctx.beginPath();
-  ctx.moveTo(-20,0);
-  ctx.lineTo(80,0);
-  ctx.stroke();
-  ctx.restore();
-
-  // Aiguille des minutes
-  ctx.save();
-  ctx.rotate( (Math.PI/30)*min + (Math.PI/1800)*sec )
-  ctx.lineWidth = 10;
-  ctx.beginPath();
-  ctx.moveTo(-28,0);
-  ctx.lineTo(112,0);
-  ctx.stroke();
-  ctx.restore();
-
-  // Aiguille des secondes
-  ctx.save();
-  ctx.rotate(sec * Math.PI/30);
-  ctx.strokeStyle = "#D40000";
-  ctx.fillStyle = "#D40000";
-  ctx.lineWidth = 6;
-  ctx.beginPath();
-  ctx.moveTo(-30,0);
-  ctx.lineTo(83,0);
-  ctx.stroke();
-  ctx.beginPath();
-  ctx.arc(0,0,10,0,Math.PI*2,true);
-  ctx.fill();
-  ctx.beginPath();
-  ctx.arc(95,0,10,0,Math.PI*2,true);
-  ctx.stroke();
-  ctx.fillStyle = "rgba(0,0,0,0)";
-  ctx.arc(0,0,3,0,Math.PI*2,true);
-  ctx.fill();
-  ctx.restore();
-
-  ctx.beginPath();
-  ctx.lineWidth = 14;
-  ctx.strokeStyle = '#325FA2';
-  ctx.arc(0,0,142,0,Math.PI*2,true);
-  ctx.stroke();
-
-  ctx.restore();
-
-  window.requestAnimationFrame(clock);
-}
-
-window.requestAnimationFrame(clock);
- - - -

{{EmbedLiveSample("Une_horloge_animée", "180", "180", "https://mdn.mozillademos.org/files/203/Canvas_animation2.png")}}

- -

Un panorama défilant en boucle

- -

Dans cet exemple, un panorama défile de la gauche vers la droite et recommence. Nous utilisons une image du parc Yosemite National récupérée sur Wikimedia, vous pouvez utiliser une autre image de votre choix qui est plus grande que le canevas.

- -
var img = new Image();
-
-// Variables utilisateur - les personnaliser pour changer l'image qui défile, ses
-// directions, et la vitesse.
-
-img.src = 'https://mdn.mozillademos.org/files/4553/Capitan_Meadows,_Yosemite_National_Park.jpg';
-var CanvasXSize = 800;
-var CanvasYSize = 200;
-var speed = 30; // plus elle est basse, plus c'est rapide
-var scale = 1.05;
-var y = -4.5; // décalage vertical
-
-// Programme principal
-
-var dx = 0.75;
-var imgW;
-var imgH;
-var x = 0;
-var clearX;
-var clearY;
-var ctx;
-
-img.onload = function() {
-    imgW = img.width * scale;
-    imgH = img.height * scale;
-
-    if (imgW > CanvasXSize) {
-        // image plus grande que le canvas
-        x = CanvasXSize - imgW;
-    }
-    if (imgW > CanvasXSize) {
-        // largeur de l'image plus grande que le canvas
-        clearX = imgW;
-    } else {
-        clearX = CanvasXSize;
-    }
-    if (imgH > CanvasYSize) {
-        // hauteur de l'image plus grande que le canvas
-        clearY = imgH;
-    } else {
-        clearY = CanvasYSize;
-    }
-
-    // récupérer le contexte du canvas
-    ctx = document.getElementById('canvas').getContext('2d');
-
-    // définir le taux de rafraichissement
-    return setInterval(draw, speed);
-}
-
-function draw() {
-    ctx.clearRect(0, 0, clearX, clearY); // clear the canvas
-
-    // si image est <= taille du canvas
-    if (imgW <= CanvasXSize) {
-        // réinitialise, repart du début
-        if (x > CanvasXSize) {
-            x = -imgW + x;
-        }
-        // dessine image1 supplémentaire
-        if (x > 0) {
-            ctx.drawImage(img, -imgW + x, y, imgW, imgH);
-        }
-        // dessine image2 supplémentaire
-        if (x - imgW > 0) {
-            ctx.drawImage(img, -imgW * 2 + x, y, imgW, imgH);
-        }
-    }
-
-    // image est > taille du canvas
-    else {
-        // réinitialise, repeart du début
-        if (x > (CanvasXSize)) {
-            x = CanvasXSize - imgW;
-        }
-        // dessine image supplémentaire
-        if (x > (CanvasXSize-imgW)) {
-            ctx.drawImage(img, x - imgW + 1, y, imgW, imgH);
-        }
-    }
-    // dessine image
-    ctx.drawImage(img, x, y,imgW, imgH);
-    // quantité à déplacer
-    x += dx;
-}
-
- -

En dessous, vous trouvez l'élément {{HTMLElement("canvas")}} avec l'image qui défile. Notez que les dimensions de largeur et de hauteur spécifiées doivent correspondre aux valeurs des variables CanvasXZSize et CanvasYSize dans le code JavaScript.

- -
<canvas id="canvas" width="800" height="200"></canvas>
- -

{{EmbedLiveSample("Un_panorama_défilant_en_boucle", "830", "230")}}

- -

Autres exemples

- -
-
Un raycaster basique avec canvas
-
Un bon exemple d'animation contrôlée par le clavier.
-
Animations avancées
-
Nous nous attarderons sur quelques techniques d'animation et de gestion de physique avancées dans le prochain châpitre.
-
- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Compositing", "Tutoriel_canvas/Advanced_animations")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/composition/example/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/composition/example/index.html deleted file mode 100644 index 8fbb3ec79c..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/composition/example/index.html +++ /dev/null @@ -1,295 +0,0 @@ ---- -title: Exemple de composition -slug: Web/API/Canvas_API/Tutoriel_canvas/Composition/Example -tags: - - Canvas - - Exemple - - Graphisme - - HTML - - HTML5 - - Tutoriel -translation_of: Web/API/Canvas_API/Tutorial/Compositing/Example ---- -
{{CanvasSidebar}}
- -

Cet exemple illustre un certain nombre d'opérations de composition. Le résultat donne ceci:

- -

{{EmbedLiveSample("Exemple_de_composition", "100%", 7250)}}

- -

Exemple de composition

- -

Ce code configure les valeurs globales utilisées par le reste du programme.

- -
var canvas1 = document.createElement("canvas");
-var canvas2 = document.createElement("canvas");
-var gco = [ 'source-over','source-in','source-out','source-atop',
-            'destination-over','destination-in','destination-out','destination-atop',
-            'lighter', 'copy','xor', 'multiply', 'screen', 'overlay', 'darken',
-            'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light',
-            'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'
-          ].reverse();
-var gcoText = [
-"C'est la configuration par défaut, elle dessine les nouvelles formes au-dessus du contenu existant sur le canvas.",
-"La nouvelle forme est dessinée uniquement là où il y a déjà du contenu sur le canvas. Tout le reste est rendu transparent.",
-"La nouvelle forme est dessinée uniquement là où il n'y a pas de contenu sur le canvas.",
-"La nouvelle forme est dessinée uniquement là où il y a déjà du contenu sur le canvas. Elle s'ajoute au contenu existant.",
-"Les nouvelles formes sont dessinées derrière le contenu existant du canvas.",
-"Le contenu existant du canvas est conservé là où il chevauche la nouvelle forme. Tout le reste est rendu transparent.",
-"Le contenu existant du canvas est conservé là où il ne chevauche pas la nouvelle forme.",
-"Le contenu existant du canvas est conservé là où il chevauche la nouvelle forme. La nouvelle forme est dessinée derrière le contenu existant.",
-"La nouvelle forme est ajoutée en additionnant ses couleurs à celles du contenu existant.",
-"Seule la nouvelle forme est affichée.",
-"Les formes sont rendues transparentes lorsqu'elles se chevauchent.",
-"Les pixels de la nouvelle forme sont multipliés avec les pixels du contenu existant. Le résultat est une image plus sombre.",
-"Les pixels sont inversés, multipliés, puis inversés de nouveau. Le résultat est une image plus claire (l'inverse de multiply)",
-"Une combinaison de multiply et screen. Les parties sombres du contenu existant deviennent plus sombres, et les parties claires deviennent plus claires.",
-"Retiens les pixels les plus sombres entre les deux.",
-"Retiens les pixels les plus clairs entre les deux.",
-"Divise le layer inférieur par le layer supérieur inversé.",
-"Divise le layer inférieur inversé par le layer supérieur, puis inverse le résultat.",
-"Une combinaison de multiply et screen (comme overlay), mais avec le layer supérieur et inférieur inversés.",
-"Assombrit ou éclaircit les couleurs, en fonction de la couleur de la forme ajoutée.",
-"Soustrait le layer inférieur au layer supérieur ou inversemment pour toujours obtenir une valeur positive.",
-"Comme difference, mais avec un contraste moins élevé.",
-"Préserve la luminance et saturation du layer inférieur, et utilise la teinte du layer supérieur.",
-"Préserve la luminance et teinte du layer inférieur, et utilise la saturation du layer supérieur.",
-"Préserve la luminance du layer inférieur, et utilise la teinte et saturation du layer supérieur.",
-"Préserve la teinte et saturation du layer inférieur, et utilise la luminance du layer supérieur."
-].reverse();
-var width = 320;
-var height = 340;
-
- -

Programme principal

- -

Quand la page se charge, le code suivant s'exécute pour configurer et exécuter l'exemple:

- -
window.onload = function() {
-    // lum en sRGB
-    var lum = {
-        r: 0.33,
-        g: 0.33,
-        b: 0.33
-    };
-    // redimensionne le canvas
-    canvas1.width = width;
-    canvas1.height = height;
-    canvas2.width = width;
-    canvas2.height = height;
-    lightMix()
-    colorSphere();
-    runComposite();
-    return;
-};
-
- -

Et dans le code suivant, runComposite() gère la majeure partie du travail, en s'appuyant sur un certain nombre de fonctions utilitaires pour faire les parties difficiles.

- -
function createCanvas() {
-    var canvas = document.createElement("canvas");
-    canvas.style.background = "url("+op_8x8.data+")";
-    canvas.style.border = "1px solid #000";
-    canvas.style.margin = "5px";
-    canvas.width = width/2;
-    canvas.height = height/2;
-    return canvas;
-}
-
-function runComposite() {
-    var dl = document.createElement("dl");
-    document.body.appendChild(dl);
-    while(gco.length) {
-        var pop = gco.pop();
-        var dt = document.createElement("dt");
-        dt.textContent = pop;
-        dl.appendChild(dt);
-        var dd = document.createElement("dd");
-        var p = document.createElement("p");
-        p.textContent = gcoText.pop();
-        dd.appendChild(p);
-
-        var canvasToDrawOn = createCanvas();
-        var canvasToDrawFrom = createCanvas();
-        var canvasToDrawResult = createCanvas();
-
-        var ctx = canvasToDrawResult.getContext('2d');
-        ctx.clearRect(0, 0, width, height)
-        ctx.save();
-        ctx.drawImage(canvas1, 0, 0, width/2, height/2);
-        ctx.globalCompositeOperation = pop;
-        ctx.drawImage(canvas2, 0, 0, width/2, height/2);
-        ctx.globalCompositeOperation = "source-over";
-        ctx.fillStyle = "rgba(0,0,0,0.8)";
-        ctx.fillRect(0, height/2 - 20, width/2, 20);
-        ctx.fillStyle = "#FFF";
-        ctx.font = "14px arial";
-        ctx.fillText(pop, 5, height/2 - 5);
-        ctx.restore();
-
-        var ctx = canvasToDrawOn.getContext('2d');
-        ctx.clearRect(0, 0, width, height)
-        ctx.save();
-        ctx.drawImage(canvas1, 0, 0, width/2, height/2);
-        ctx.fillStyle = "rgba(0,0,0,0.8)";
-        ctx.fillRect(0, height/2 - 20, width/2, 20);
-        ctx.fillStyle = "#FFF";
-        ctx.font = "14px arial";
-        ctx.fillText('existing content', 5, height/2 - 5);
-        ctx.restore();
-
-        var ctx = canvasToDrawFrom.getContext('2d');
-        ctx.clearRect(0, 0, width, height)
-        ctx.save();
-        ctx.drawImage(canvas2, 0, 0, width/2, height/2);
-        ctx.fillStyle = "rgba(0,0,0,0.8)";
-        ctx.fillRect(0, height/2 - 20, width/2, 20);
-        ctx.fillStyle = "#FFF";
-        ctx.font = "14px arial";
-        ctx.fillText('new content', 5, height/2 - 5);
-        ctx.restore();
-
-        dd.appendChild(canvasToDrawOn);
-        dd.appendChild(canvasToDrawFrom);
-        dd.appendChild(canvasToDrawResult);
-
-        dl.appendChild(dd);
-    }
-};
-
- -

Fonctions utilitaires

- -

Notre programme repose sur un certain nombbre de fonctions utilitaires:

- -
var lightMix = function() {
-    var ctx = canvas2.getContext("2d");
-    ctx.save();
-    ctx.globalCompositeOperation = "lighter";
-    ctx.beginPath();
-    ctx.fillStyle = "rgba(255,0,0,1)";
-    ctx.arc(100, 200, 100, Math.PI*2, 0, false);
-    ctx.fill()
-    ctx.beginPath();
-    ctx.fillStyle = "rgba(0,0,255,1)";
-    ctx.arc(220, 200, 100, Math.PI*2, 0, false);
-    ctx.fill()
-    ctx.beginPath();
-    ctx.fillStyle = "rgba(0,255,0,1)";
-    ctx.arc(160, 100, 100, Math.PI*2, 0, false);
-    ctx.fill();
-    ctx.restore();
-    ctx.beginPath();
-    ctx.fillStyle = "#f00";
-    ctx.fillRect(0,0,30,30)
-    ctx.fill();
-};
-
- -
var colorSphere = function(element) {
-    var ctx = canvas1.getContext("2d");
-    var width = 360;
-    var halfWidth = width / 2;
-    var rotate = (1 / 360) * Math.PI * 2; // per degree
-    var offset = 0; // scrollbar offset
-    var oleft = -20;
-    var otop = -20;
-    for (var n = 0; n <= 359; n ++) {
-        var gradient = ctx.createLinearGradient(oleft + halfWidth, otop, oleft + halfWidth, otop + halfWidth);
-        var color = Color.HSV_RGB({ H: (n + 300) % 360, S: 100, V: 100 });
-        gradient.addColorStop(0, "rgba(0,0,0,0)");
-        gradient.addColorStop(0.7, "rgba("+color.R+","+color.G+","+color.B+",1)");
-        gradient.addColorStop(1, "rgba(255,255,255,1)");
-        ctx.beginPath();
-        ctx.moveTo(oleft + halfWidth, otop);
-        ctx.lineTo(oleft + halfWidth, otop + halfWidth);
-        ctx.lineTo(oleft + halfWidth + 6, otop);
-        ctx.fillStyle = gradient;
-        ctx.fill();
-        ctx.translate(oleft + halfWidth, otop + halfWidth);
-        ctx.rotate(rotate);
-        ctx.translate(-(oleft + halfWidth), -(otop + halfWidth));
-    }
-    ctx.beginPath();
-    ctx.fillStyle = "#00f";
-    ctx.fillRect(15,15,30,30)
-    ctx.fill();
-    return ctx.canvas;
-};
-
- -
// HSV (1978) = H: Hue / S: Saturation / V: Value
-Color = {};
-Color.HSV_RGB = function (o) {
-    var H = o.H / 360,
-        S = o.S / 100,
-        V = o.V / 100,
-        R, G, B;
-    var A, B, C, D;
-    if (S == 0) {
-        R = G = B = Math.round(V * 255);
-    } else {
-        if (H >= 1) H = 0;
-        H = 6 * H;
-        D = H - Math.floor(H);
-        A = Math.round(255 * V * (1 - S));
-        B = Math.round(255 * V * (1 - (S * D)));
-        C = Math.round(255 * V * (1 - (S * (1 - D))));
-        V = Math.round(255 * V);
-        switch (Math.floor(H)) {
-            case 0:
-                R = V;
-                G = C;
-                B = A;
-                break;
-            case 1:
-                R = B;
-                G = V;
-                B = A;
-                break;
-            case 2:
-                R = A;
-                G = V;
-                B = C;
-                break;
-            case 3:
-                R = A;
-                G = B;
-                B = V;
-                break;
-            case 4:
-                R = C;
-                G = A;
-                B = V;
-                break;
-            case 5:
-                R = V;
-                G = A;
-                B = B;
-                break;
-        }
-    }
-    return {
-        R: R,
-        G: G,
-        B: B
-    };
-};
-
-var createInterlace = function (size, color1, color2) {
-    var proto = document.createElement("canvas").getContext("2d");
-    proto.canvas.width = size * 2;
-    proto.canvas.height = size * 2;
-    proto.fillStyle = color1; // top-left
-    proto.fillRect(0, 0, size, size);
-    proto.fillStyle = color2; // top-right
-    proto.fillRect(size, 0, size, size);
-    proto.fillStyle = color2; // bottom-left
-    proto.fillRect(0, size, size, size);
-    proto.fillStyle = color1; // bottom-right
-    proto.fillRect(size, size, size, size);
-    var pattern = proto.createPattern(proto.canvas, "repeat");
-    pattern.data = proto.canvas.toDataURL();
-    return pattern;
-};
-
-var op_8x8 = createInterlace(8, "#FFF", "#eee");
diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/composition/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/composition/index.html deleted file mode 100644 index cc646762dd..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/composition/index.html +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Composition et découpe -slug: Web/API/Canvas_API/Tutoriel_canvas/Composition -tags: - - Canvas - - Composition - - dessin -translation_of: Web/API/Canvas_API/Tutorial/Compositing ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}
- -
-

Dans tous nos exemples précédents, les formes étaient toutes dessinées les unes au dessus des autres. C'est plus que suffisant pour la plupart des situations, mais cela limite l'ordre dans lequel les formes composées sont construites. Nous pouvons cependant changer ce comportement en définissant la propriété globalCompositeOperation. En complément, la propriété clip nous permet de cacher les parties des formes que nous ne désirons pas.

-
- -

globalCompositeOperation

- -

Nous pouvons non seulement dessiner de nouvelles formes derrière des formes existantes mais nous pouvons aussi les utiliser pour masquer certaines zones, supprimer des sections du canvas (ce n'est pas limité aux rectangles comme pour la méthode {{domxref("CanvasRenderingContext2D.clearRect", "clearRect()")}}) et davantage.

- -
-
{{domxref("CanvasRenderingContext2D.globalCompositeOperation", "globalCompositeOperation = type")}}
-
Cela configure le type d'opération de composition à appliquer lorsqu'on dessine de nouvelles formes, où le type correspond à une string qui fait référence à une des douze opérations de composition possibles.
-
- -

Reportez-vous aux exemples de compositon pour le code des exemples suivants.

- -

{{EmbedLiveSample("Exemple_de_composition", 750, 6750, "" ,"/Tutoriel_canvas/Composition/Example")}}

- -

Détourage

- -

Un détourage (clipping path en anglais) est comme une forme de canvas standard, à la différence près qu'elle sert à masquer certaines parties du canvas. Voyez l'image de droite, la forme rouge (en étoile) est un détourage du canvas. Tout ce qui est en dehors du chemin n'est pas dessiné sur le canvas.

- -

Si nous comparons le détourage à la propriété globalCompositeOperation vue précédemment, nous voyons deux modes de composition qui ont plus ou moins les mémes effets qu'avec source-in et source-atop. La différence la plus significative entre les deux est que le détourage n'est jamais dessiné sur le canvas à proprement parler et il n'est jamais affecté par l'ajout de nouvelles formes. Ça le rend idéal pour dessiner plusieurs formes dans une zone restreinte.

- -

Dans le chapitre "dessiner des formes avec le canevas", nous n'avions mentionné que les méthodes stroke() et fill(), mais il y en a une troisième: clip() — elle permet de faire des détourages.

- -
-
{{domxref("CanvasRenderingContext2D.clip", "clip()")}}
-
Transforme le chemin en cours de création en détourage effectif.
-
- -

Il faut utiliser clip() plutot que closePath() pour fermer un chemin et enfaire un détourage.

- -

Par défault, l'élément {{HTMLElement("canvas")}} possède un détourage aux mêmes dimensions que le canvas lui-même. Donc, par défaut aucune découpe n'est apparente.

- -

Un exemple de clip

- -

Dans cet exemple, nous allons utiliser un détourage circulaire pour restreindre le dessin d'un essemble d'étoiles aléatoires à une zone particulière (et circulaire...).

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.fillRect(0, 0, 150, 150);
-  ctx.translate(75, 75);
-
-  // Create a circular clipping path
-  ctx.beginPath();
-  ctx.arc(0, 0, 60, 0, Math.PI * 2, true);
-  ctx.clip();
-
-  // draw background
-  var lingrad = ctx.createLinearGradient(0, -75, 0, 75);
-  lingrad.addColorStop(0, '#232256');
-  lingrad.addColorStop(1, '#143778');
-
-  ctx.fillStyle = lingrad;
-  ctx.fillRect(-75, -75, 150, 150);
-
-  // draw stars
-  for (var j = 1; j < 50; j++) {
-    ctx.save();
-    ctx.fillStyle = '#fff';
-    ctx.translate(75 - Math.floor(Math.random() * 150),
-                  75 - Math.floor(Math.random() * 150));
-    drawStar(ctx, Math.floor(Math.random() * 4) + 2);
-    ctx.restore();
-  }
-
-}
-
-function drawStar(ctx, r) {
-  ctx.save();
-  ctx.beginPath();
-  ctx.moveTo(r, 0);
-  for (var i = 0; i < 9; i++) {
-    ctx.rotate(Math.PI / 5);
-    if (i % 2 === 0) {
-      ctx.lineTo((r / 0.525731) * 0.200811, 0);
-    } else {
-      ctx.lineTo(r, 0);
-    }
-  }
-  ctx.closePath();
-  ctx.fill();
-  ctx.restore();
-}
-
- - - -

Dans les premières lignes de code, nous dessinons un rectangle noir ayant la même taille que le canvas comme toile de fond puis nous déplaçons l'origine au centre de l'image. Ensuite, nous créons le détourage circulaire en dessinant un arc (complet) et en faisant appelle à clip(). Les détourages font aussi partie de l'état de sauvegarde des canvas. Si on voulait garder le détourage d'origine, on pourrait par exemple sauvegarder l'état du canvas au préalable.

- -

Tout ce qui sera dessiné après la création du détourage n'apparaîtra qu'à l'intérieur de ce chemin. Vous pouvez voir ça clairement avec le dégradé linéaire qui est dessiné après. Ensuite, un ensemble de 50 étoiles aléatoires est dessiné, en utilisant la fonction drawStar(). Nous pouvons voir, une fois de plus, que les éléments (ici les étoiles) n'apparaissent qu'à l'intérieur du détourage.

- -

{{EmbedLiveSample("A_clip_example", "180", "180", "https://mdn.mozillademos.org/files/208/Canvas_clip.png")}}

- -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Transformations", "Web/API/Canvas_API/Tutorial/Basic_animations")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/dessin_de_texte_avec_canvas/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/dessin_de_texte_avec_canvas/index.html deleted file mode 100644 index 761b5baf3d..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/dessin_de_texte_avec_canvas/index.html +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Dessin de texte avec canvas -slug: Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas -tags: - - Canvas - - Graphismes - - HTML - - Tutoriels -translation_of: Web/API/Canvas_API/Tutorial/Drawing_text ---- -

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Ajout_de_styles_et_de_couleurs", "Tutoriel_canvas/Utilisation_d'images")}}

- -

Après avoir vu comment appliquer les styles et les couleurs dans le chapitre précédent, nous allons maintenant voir comment dessiner du texte sur canvas.

- -

Dessin de texte

- -

  Le contexte de rendu du canevas fournit deux méthodes pour le rendu du texte :

- -
-
{{domxref("CanvasRenderingContext2D.fillText", "fillText(text, x, y [, maxWidth])")}}
-
Remplit un texte donné à la position (x, y). Facultatif, avec une largeur maximale à dessiner.
-
{{domxref("CanvasRenderingContext2D.strokeText", "strokeText(text, x, y [, maxWidth])")}}
-
Trait d'un texte donné à la position (x, y). Facultatif, avec une largeur maximale à dessiner.
-
- -

Un exemple fillText

- -

Le texte est rempli en utilisant le fillStyle actuel.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.font = '48px serif';
-  ctx.fillText('Hello world', 10, 50);
-}
- - - -

{{EmbedLiveSample("A_fillText_example", 310, 110)}}

- -

Un exemple de strokeText

- -

Le texte est rempli en utilisant le strokeStyle courant.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  ctx.font = '48px serif';
-  ctx.strokeText('Hello world', 10, 50);
-}
- - - -

{{EmbedLiveSample("A_strokeText_example", 310, 110)}}

- -

Style de texte

- -

Dans les exemples ci-dessus, nous utilisons déjà la propriété de police pour rendre le texte un peu plus grand que la taille par défaut. Il existe d'autres propriétés qui vous permettent d'ajuster la façon dont le texte est affiché sur le canevas :

- -
-
{{domxref("CanvasRenderingContext2D.font", "font = value")}}
-
Le style de texte actuel utilisé lors du dessin du texte. Cette chaîne utilise la même syntaxe que la propriété CSS {{cssxref ("font")}}. La police par défaut est 10px sans-serif.
-
{{domxref("CanvasRenderingContext2D.textAlign", "textAlign = value")}}
-
Paramètre d'alignement du texte. Valeurs possibles : start (début), end (fin), left (gauche), right (droite) ou center (centre). La valeur par défaut est start.
-
{{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline = value")}}
-
Paramètre d'alignement de base. Valeurs possibles : top (haut), hanging (suspendu), middle (moyen), alphabetic (alphabétique), ideographic (idéographique), bottom (en bas). La valeur par défaut est alphabetic.
-
{{domxref("CanvasRenderingContext2D.direction", "direction = value")}}
-
Directionnalité. Valeurs possibles: ltr (de gauche à droite), rtl (de droite à gauche), inherit (hérité). La valeur par défaut est inherit.
-
- -

Ces propriétés peuvent vous être familières si vous avez déjà travaillé avec CSS.

- -

Le diagramme suivant du WHATWG illustre les différentes lignes de base prises en charge par la propriété textBaseline.

- -

The top of the em square is
-roughly at the top of the glyphs in a font, the hanging baseline is
-where some glyphs like आ are anchored, the middle is half-way
-between the top of the em square and the bottom of the em square,
-the alphabetic baseline is where characters like Á, ÿ,
-f, and Ω are anchored, the ideographic baseline is
-where glyphs like 私 and 達 are anchored, and the bottom
-of the em square is roughly at the bottom of the glyphs in a
-font. The top and bottom of the bounding box can be far from these
-baselines, due to glyphs extending far outside the em square.

- -

Un exemple de textBaseline

- -

Modifiez le code ci-dessous et visualisez vos mises à jour en direct dans le canevas :

- -
ctx.font = '48px serif';
-ctx.textBaseline = 'hanging';
-ctx.strokeText('Hello world', 0, 100);
- - - -

{{ EmbedLiveSample('Playable_code', 700, 360) }}

- -

Mesures de texte avancées

- -

Dans le cas où vous avez besoin d'obtenir plus de détails sur le texte, la méthode suivante vous permet de le mesurer.

- -
-
{{domxref("CanvasRenderingContext2D.measureText", "measureText()")}}
-
Retourne un objet {{domxref("TextMetrics")}} contenant la largeur en pixels, sur la base duquel le texte spécifié sera dessiné dans le style de texte actuel.
-
- -

L'extrait de code suivant montre comment vous pouvez mesurer un texte et obtenir sa largeur.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var text = ctx.measureText('foo'); // objet TextMetrics
-  text.width; // 16;
-}
- -

Notes spécifiques à Gecko

- -

Dans Gecko (le moteur de rendu de Firefox, Firefox OS et d'autres applications basées sur Mozilla), certaines API préfixées ont été implémentées dans des versions antérieures pour dessiner du texte sur un canevas. Ceux-ci sont maintenant déconseillés et supprimés, et leur fonctionnement n'est pas garanti.

- -

{{PreviousNext("Tutoriel_canvas/Ajout_de_styles_et_de_couleurs", "Tutoriel_canvas/Utilisation_d'images")}}

diff --git "a/files/fr/web/api/canvas_api/tutoriel_canvas/formes_g\303\251om\303\251triques/index.html" "b/files/fr/web/api/canvas_api/tutoriel_canvas/formes_g\303\251om\303\251triques/index.html" deleted file mode 100644 index 233d1baeb2..0000000000 --- "a/files/fr/web/api/canvas_api/tutoriel_canvas/formes_g\303\251om\303\251triques/index.html" +++ /dev/null @@ -1,581 +0,0 @@ ---- -title: Dessiner des formes avec le canevas -slug: Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques -tags: - - Canvas - - Graphisme - - Guide - - HTML - - HTML5 - - Intermédiaire - - Tutoriel -translation_of: Web/API/Canvas_API/Tutorial/Drawing_shapes ---- -

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Utilisation_de_base", "Tutoriel_canvas/Ajout_de_styles_et_de_couleurs")}}

- -

Maintenant que nous avons défini notre environnement de canevas, nous pouvons entrer dans les détails de la façon de dessiner sur le canevas. A la fin de cet article, vous aurez appris à tracer des rectangles, des triangles, des lignes, des arcs et des courbes, vous rendant ainsi familier avec certaines des formes de base. Le travail avec les trajets est essentiel lors du dessin d'objets sur le canevas, et nous verrons comment cela peut être fait.

- -

La grille

- -

Avant de pouvoir commencer à dessiner, il nous faut parler de la grille ou système de coordonnées. Notre schéma HTML de la page précédente avait un élément canevas large de 150 pixels et haut de 150 pixels. À droite, vous voyez ce canevas avec la grille par défaut superposée. Normalement, 1 unité dans la grille correspond à 1 pixel sur le canevas. L'origine de cette grille est positionnée dans le coin supérieur gauche de coordonnées (0, 0). Tous les éléments sont placés relativement à cette origine. Ainsi, le coin supérieur gauche du carré bleu est à x pixels à partir de la gauche et à y pixels à partir du haut, aux coordonnées (x, y). Plus loin dans ce tutoriel, nous verrons comment déplacer l'origine à une position différente, faire pivoter la grille ou même la mettre à l'échelle ; mais pour l'instant, nous nous en tiendrons aux valeurs par défaut.

- -

Dessin de rectangles

- -

Au contraire de SVG, le {{HTMLElement("canvas")}} ne supporte qu'une seule forme primitive : le rectangle. Toute autre forme doit être créée en combinant un ou plusieurs trajets, c'est-à-dire des listes de points reliés par des lignes. Heureusement, nous avons un assortiment de fonctions de dessin de trajets, qui rendent possible la composition de formes très complexes.

- -
-

Commençons par le rectangle. Il y a trois fonctions qui dessinent des rectangles sur le canvas :

- -
-
{{domxref("CanvasRenderingContext2D.fillRect", "fillRect(x, y, largeur, hauteur)")}}
-
Dessine un rectangle rempli.
-
{{domxref("CanvasRenderingContext2D.strokeRect", "strokeRect(x, y, largeur, hauteur)")}}
-
Dessine un contour rectangulaire
-
{{domxref("CanvasRenderingContext2D.clearRect", "clearRect(x, y, largeur, hauteur)")}}
-
Efface la zone rectangulaire spécifiée, la rendant complètement transparente.
-
- -

Chacune de ces trois fonctions a les mêmes paramètres. x et y indiquent la position sur le canevas (par rapport à l'origine) du coin supérieur gauche du rectangle sur le canvas. largeur et hauteur indiquent la taille du rectangle.

- -

Ci-dessous la fonction draw() de la page précédente, mais utilisant maintenant ces trois fonctions.

- -

Exemple de forme rectangulaire

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    ctx.fillRect(25, 25, 100, 100);
-    ctx.clearRect(45, 45, 60, 60);
-    ctx.strokeRect(50, 50, 50, 50);
-  }
-}
- -

Le résultat de cet exemple est montré ci-dessous.

- -

{{EmbedLiveSample("Exemple_de_forme_rectangulaire", 160, 160, "https://mdn.mozillademos.org/files/245/Canvas_rect.png")}}

- -

La fonction fillRect() dessine un grand carré noir de 100 pixels de côté. La fonction clearRect() efface ensuite un carré de 60x60 pixels, et finalement, la fonction strokeRect() est appelée pour créer un contour rectangulaire de 50x50 pixels dans l'espace effacé.

- -

Dans les pages qui suivent, nous verrons deux méthodes alternatives pour clearRect(), et nous verrons aussi comment changer la couleur et le style de trait des formes rendues.

- -

A la différence des fonctions de trajet que nous allons voir dans la prochaine section, les trois fonctions de rectangles dessinent immédiatement sur le canvas.

- -

Dessin de trajets

- -

Les seules autres formes primitives sont les trajets. Un trajet est une liste de points, reliés par des segments de lignes qui peuvent être de différentes formes, incurvées ou non, de largeur différente et de couleur différente. Un trajet, ou même un sous-trajet, peut être fermé. La réalisation de formes utilisant des trajets requiert quelques étapes supplémentaires :

- -
    -
  1. Tout d'abord, vous devez créer le trajet.
  2. -
  3. Ensuite vous devez utiliser des instructions de dessin pour dessiner sur le trajet.
  4. -
  5. Finalement, vous devez fermer le trajet.
  6. -
  7. Une fois que le trajet a été créé, vous devez le tracer ou le remplir pour le faire apparaître.
  8. -
- -

Voici les functions utilisées pour réaliser ces étapes :

- -
-
{{domxref("CanvasRenderingContext2D.beginPath", "beginPath()")}}
-
Crée un nouveau trajet. Une fois créé, les fonctions de dessin ultérieures seront dirigées vers le trajet et utilisées pour le construire.
-
Méthodes de trajet
-
Méthodes pour définir différents trajets pour les objets.
-
{{domxref("CanvasRenderingContext2D.closePath", "closePath()")}}
-
Ferme le trajet pour que les fonctions de dessin ultérieures soient à nouveau dirigées vers le contexte.
-
{{domxref("CanvasRenderingContext2D.stroke", "stroke()")}}
-
Dessine la forme en traçant son contour.
-
{{domxref("CanvasRenderingContext2D.fill", "fill()")}}
-
Dessine une forme pleine en remplissant la zone de contenu du trajet.
-
- -

La première étape pour créer un trajet est d'appeler beginPath(). En interne, les trajets sont stockés comme une liste de sous-trajets (lignes, arcs, etc) qui ensemble réalisent une forme. Chaque fois que cette méthode est appelée, la liste est remise à zéro, et nous pouvons commencer à dessiner de nouvelles formes.

- -
Note : lorsque le trajet en cours est vide, par exemple immédiatement après avoir appelé beginPath(), ou sur un canvas nouvellement créé, la première instruction de construction de trajet est toujours traitée comme un moveTo(), indépendamment de ce qu'elle est en réalité. Pour cette raison, il sera pratiquement toujours souhaitable d'indiquer la position de départ après la réinitialisation d'un trajet.
- -

La deuxième étape est d'appeler les méthodes qui indiquent effectivement les sous-trajets à dessiner. Nous verrons ces méthodes bientôt.

- -

La troisième méthode, optionnelle, est l'appel à closePath(). Cette méthode essaye de fermer la forme géométrique en dessinant une ligne droite depuis le point courant jusqu'au début du trajet. Si la forme a déjà été fermée ou s'il n'y a qu'un seul point dans la liste, cette fonction ne fait rien.

- -
Note : quand vous appelez fill(), toutes les formes ouvertes sont automatiquement fermées, ainsi vous n'avez pas à appeler closePath(). Ce n'est pas le cas quand vous appelez stroke().
- -

Dessin d'un triangle

- -

Par exemple, le code pour dessiner un triangle peut ressembler à ce qui suit :

- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.moveTo(75, 50);
-    ctx.lineTo(100, 75);
-    ctx.lineTo(100, 25);
-    ctx.fill();
-  }
-}
-
- -

Le résultat ressemble à :

- -

{{EmbedLiveSample("Dessin_d'un_triangle", 110, 110, "https://mdn.mozillademos.org/files/9847/triangle.png")}}

- -

Déplacement du stylo

- -

Une fonction très utile, qui ne dessine rien mais qui fait tout de même partie de la liste de trajets décrite plus haut, est la fonction moveTo(). La meilleure façon de l'imaginer est le fait de lever un stylo ou un crayon depuis une position sur un papier, et de le placer sur une autre.

- -
-
{{domxref("CanvasRenderingContext2D.moveTo", "moveTo(x, y)")}}
-
Déplace le stylo aux coordonnées x et y.
-
- -

Lorsque le canevas est initialisé ou que beginPath() est appelé, vous souhaiterez typiquement utiliser moveTo() pour positionner le point de départ quelque part ailleurs. On pourrait aussi utiliser moveTo() pour dessiner des trajets non reliés. Jetez un coup d'œil à l'émoticon ci-dessous.

- -

Pour essayer par vous-même, vous pouvez utiliser le fragment de code ci-dessous. Collez-le simplement dans la fonction draw() que nous avons vue plus tôt.

- - - -
function draw() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    ctx.beginPath();
-    ctx.arc(75, 75, 50, 0, Math.PI * 2, true);  // Cercle extérieur
-    ctx.moveTo(110,75);
-    ctx.arc(75, 75, 35, 0, Math.PI, false);  // Bouche (sens horaire)
-    ctx.moveTo(65, 65);
-    ctx.arc(60, 65, 5, 0, Math.PI * 2, true);  // Oeil gauche
-    ctx.moveTo(95, 65);
-    ctx.arc(90, 65, 5, 0, Math.PI * 2, true);  // Oeil droite
-    ctx.stroke();
-  }
-}
-
- -

Le résultat ressemble à ce qui suit :

- -

{{EmbedLiveSample("Déplacement_du_stylo", 160, 160, "https://mdn.mozillademos.org/files/252/Canvas_smiley.png")}}

- -

Si vous voulez voir les lignes d'interconnexion, vous pouvez enlever les lignes qui appellent moveTo().

- -
-

Note : pour en savoir plus sur la fonction arc(), voir la section {{anch("Arcs")}} ci-dessous.

-
- -

Les lignes

- -

Pour dessiner des lignes droites, utilisez la méthode lineTo().

- -
-
{{domxref("CanvasRenderingContext2D.lineTo", "lineTo(x, y)")}}
-
Dessine une ligne depuis la position de dessin courante jusqu'à la position spécifiée par x et y.
-
- -

Cette méthode prend deux arguments, x et y, qui sont les coordonnées du point final de la ligne. Le point de départ dépend des trajets précédemment tracés, où le point final du trajet précédent est le point de départ du suivant, etc. Le point de départ peut aussi être changé en utilisant la méthode moveTo().

- -

L'exemple ci-dessous dessine deux triangles, un rempli et un filaire.

- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    // Triangle plein
-    ctx.beginPath();
-    ctx.moveTo(25, 25);
-    ctx.lineTo(105, 25);
-    ctx.lineTo(25, 105);
-    ctx.fill();
-
-    // Triangle filaire
-    ctx.beginPath();
-    ctx.moveTo(125, 125);
-    ctx.lineTo(125, 45);
-    ctx.lineTo(45, 125);
-    ctx.closePath();
-    ctx.stroke();
-  }
-}
-
- -

Il commence par appeler beginPath() pour démarrer un nouveau trajet de forme. Nous utilisons ensuite la méthode moveTo() pour déplacer le point de départ à la position désirée. En dessous, deux lignes sont dessinées, qui constituent deux côtés du triangle.

- -

{{EmbedLiveSample("Les_lignes", 160, 160, "https://mdn.mozillademos.org/files/238/Canvas_lineTo.png")}}

- -

Vous remarquerez la différence entre le triangle plein et le filaire. Cela, comme mentionné précédemment, vient du fait que les formes sont automatiquement fermées lorsqu'un trajet est rempli, mais pas lorsqu'elles sont dessinées au trait. Si nous avions omis le closePath() pour le triangle filaire, seules deux lignes auraient été tracées, et non pas un triangle complet.

- -

Les arcs

- -

Pour dessiner des arcs ou des cercles, on utilise les méthodes arc() ou arcTo().

- -
-
{{domxref("CanvasRenderingContext2D.arc", "arc(x, y, rayon, angleInitial, angleFinal, antihoraire)")}}
-
Dessine un arc de cercle qui est centré à la position (x, y), de rayon r, commençant à angleInitial et finissant à angleFinal en allant dans le sens indiqué par antihoraire (par défaut, horaire).
-
{{domxref("CanvasRenderingContext2D.arcTo", "arcTo(x1, y1, x2, y2, rayon)")}}
-
Dessine un arc avec les points de contrôle et l'angle donnés, relié au point précédent par une ligne droite.
-
- -

Regardons plus en détail la méthode arc, qui prend six paramètres : x et y sont les coordonnées du centre du cercle sur lequel l'arc doit être tracé. rayon se passe d'explication. Les paramètres angleInitial et angleFinal définissent en radians les points de départ et d'arrivée de l'arc, le long de la courbe du cercle. Ceux-ci sont mesurés à partir de l'axe des x. Le paramètre antihoraire est une valeur booléenne qui, lorsque true, dessine l'arc dans le sens antihoraire, sinon, l'arc est dessiné dans le sens horaire.

- -
-

Note : les angles dans la fonction arc sont mesurés en radians, et non en degrés. Pour convertir des degrés en radians, vous pouvez utiliser l'expression JavaScript suivante : radians = (Math.PI/180)*degres.

-
- -

L'exemple suivant est un peu plus complexe que ceux que nous avons vus plus haut. Il dessine 12 arcs différents, avec des angles et des remplissages différents.

- -

Les deux boucles for bouclent sur les lignes et les colonnes des arcs. Pour chaque arc, on commence un nouveau trajet en appelant beginPath(). Dans le code, chacun des paramètres dans l'arc est une variable pour des raisons de clarté, mais en réalité, vous n'avez pas besoin de le faire.

- -

Les coordonnées x et y devraient être claires. rayon et angleInitial sont fixés. L'angleFinal commence à 180 degrés (demi-cercle) dans la première colonne et il est augmenté par pas de 90 degrés, pour finir par un cercle complet dans la dernière colonne.

- -

L'instruction pour le paramètre antihoraire a pour résultat que la première et de la troisième ligne sont dessinées comme des arcs de sens horaire, et que la deuxième et quatrième sont dessinées comme des arcs de sens antihoraire. Enfin, l'instruction if fait des arcs filaires dans la moité supérieure, et des arcs remplis dans la moitié inférieure.

- -
-

Note : cet exemple requiert canevas légèrement plus large que les autres sur cette page : 150 x 200 pixels.

-
- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    for(var i = 0; i < 4; i++) {
-      for(var j = 0; j < 3; j++) {
-        ctx.beginPath();
-        var x = 25 + j * 50; // Coordonnée x
-        var y = 25 + i * 50; // Coordonnée y
-        var rayon = 20; // Rayon de l'arc
-        var angleInitial = 0; // Point de départ sur le cercle
-        var angleFinal = Math.PI + (Math.PI * j) / 2; // Point d'arrivée sur le cercle
-        var antihoraire = i % 2 != 0; // Horaire ou antihoraire
-
-        ctx.arc(x, y, rayon, angleInitial, angleFinal, antihoraire);
-
-        if (i>1) {
-          ctx.fill();
-        } else {
-          ctx.stroke();
-        }
-      }
-    }
-  }
-}
-
- -

{{EmbedLiveSample("Les_arcs", 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png")}}

- -

Les courbes quadratiques et de Bézier

- -

Le type suivant de trajets disponible est la courbe de Bézier, disponible en deux variétés, cubique et quadratique. Elles sont généralement utilisées pour dessiner des formes naturelles complexes.

- -
-
{{domxref("CanvasRenderingContext2D.quadraticCurveTo", "quadraticCurveTo(cp1x, cp1y, x, y)")}}
-
Dessine une courbe de Bézier quadratique depuis la position courante du stylo jusqu'au point final spécifié par x et y, en utilisant le point de contrôle spécifié par cp1x et cp1y.
-
{{domxref("CanvasRenderingContext2D.bezierCurveTo", "bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)")}}
-
Dessine une courbe de Bézier cubique depuis la position courante du stylo jusqu'au point spécifié par x et y, en utilisant les points de contrôle (cp1x, cp1y) et (cp2x, cp2y).
-
- -

La différence entre ces deux méthodes est mieux décrite par l'image à droite. Une courbe quadratique de Bézier a un point de départ et un point d'arrivée (points bleus), et seulement un point de contrôle (indiqué par le point rouge), tandis qu'une courbe de Bézier cubique utilise deux points de contrôle.

- -

Les paramètres x et y de ces deux méthodes sont les coordonnées du point d'arrivée. cp1x et cp1y sont les coordonnées du premier point de contrôle, et  cp2x et cp2y sont les coordonnées du second point de contrôle.

- -

Utiliser des courbes quadratiques et cubiques de Bézier peut constituer un certain défi, car à la différence d'un logiciel de tracé des vecteurs comme Adobe Illustrator, nous n'avons pas de retour visuel direct concernant ce que nous faisons. Cela rend passablement difficile le dessin de formes complexes. Dans l'exemple suivant, nous allons dessiner quelques formes naturelles simples, mais si vous avez du temps et - surtout - de la patience, des formes bien plus complexes peuvent être créées.

- -

Il n'y a rien de très difficile dans ces exemples. Dans les deux cas, on peut voir une succession de courbes être dessinées qui aboutissent finalement à une forme complète.

- -

Courbes de Bézier quadratiques

- -

Cet exemple utilise plusieurs courbes quadratiques de Bézier pour rendre une bulle de dialogue.

- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    // Exemples de courbes quadratiques
-    ctx.beginPath();
-    ctx.moveTo(75, 25);
-    ctx.quadraticCurveTo(25, 25, 25, 62.5);
-    ctx.quadraticCurveTo(25, 100, 50, 100);
-    ctx.quadraticCurveTo(50, 120, 30, 125);
-    ctx.quadraticCurveTo(60, 120, 65, 100);
-    ctx.quadraticCurveTo(125, 100, 125, 62.5);
-    ctx.quadraticCurveTo(125, 25, 75, 25);
-    ctx.stroke();
-  }
-}
-
- -

{{EmbedLiveSample("Courbes_de_Bézier_quadratiques", 160, 160, "https://mdn.mozillademos.org/files/243/Canvas_quadratic.png")}}

- -

Les courbes de Bézier cubiques

- -

Cet exemple dessine un cœur en utilisant les courbes de Bézier cubiques.

- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    // Exemple de courbes cubiques
-    ctx.beginPath();
-    ctx.moveTo(75, 40);
-    ctx.bezierCurveTo(75, 37, 70, 25, 50, 25);
-    ctx.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
-    ctx.bezierCurveTo(20, 80, 40, 102, 75, 120);
-    ctx.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
-    ctx.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
-    ctx.bezierCurveTo(85, 25, 75, 37, 75, 40);
-    ctx.fill();
-  }
-}
-
- -

{{EmbedLiveSample("Les_courbes_de_Bézier_cubiques", 160, 160, "https://mdn.mozillademos.org/files/207/Canvas_bezier.png")}}

- -

Rectangles

- -

En plus des trois méthodes que nous avons vues dans {{anch("Dessin de rectangles")}}, qui dessinent des formes rectangulaires directement sur le canevas, il y a la méthode rect(), qui ajoute un trajet rectangulaire à un trajet actuellement ouvert.

- -
-
{{domxref("CanvasRenderingContext2D.rect", "rect(x, y, largeur, hauteur)")}}
-
Dessine un rectangle dont l'angle supérieur gauche est spécifié par (x, y), avec les largeur et hauteur spécifiées.
-
- -

Quand cette méthode est exécutée, la méthode moveTo() est automatiquement appelée avec les paramètres (0,0). En d'autres termes, la position en cours du stylo est automatiquement réinitialisée aux coordonnées par défaut.

- -

Combiner les possibilités

- -

Jusqu'à présent, chaque exemple de cette page a utilisé un seul type de fonction de trajet par forme. Cependant, il n'y a pas de limite au nombre ou aux types de trajets que vous pouvez utiliser pour créer une forme. Ainsi, dans ce dernier exemple, combinons toutes les fonctions de trajet pour faire un ensemble de personnages d'un jeu très célèbre.

- - - -
function dessiner() {
-  var canevas = document.getElementById('canevas');
-  if (canevas.getContext) {
-    var ctx = canevas.getContext('2d');
-
-    rectArrondi(ctx, 12, 12, 150, 150, 15);
-    rectArrondi(ctx, 19, 19, 150, 150, 9);
-    rectArrondi(ctx, 53, 53, 49, 33, 10);
-    rectArrondi(ctx, 53, 119, 49, 16, 6);
-    rectArrondi(ctx, 135, 53, 49, 33, 10);
-    rectArrondi(ctx, 135, 119, 25, 49, 10);
-
-    ctx.beginPath();
-    ctx.arc(37, 37, 13, Math.PI/7, -Math.PI/7, false);
-    ctx.lineTo(31, 37);
-    ctx.fill();
-
-    for(var i = 0; i< 8; i++) {
-      ctx.fillRect(51 + i * 16, 35, 4, 4);
-    }
-
-    for(i = 0; i < 6; i++) {
-      ctx.fillRect(115, 51 + i * 16, 4, 4);
-    }
-
-    for(i = 0; i < 8; i++) {
-      ctx.fillRect(51 + i * 16, 99, 4, 4);
-    }
-
-    ctx.beginPath();
-    ctx.moveTo(83, 116);
-    ctx.lineTo(83, 102);
-    ctx.bezierCurveTo(83, 94, 89, 88, 97, 88);
-    ctx.bezierCurveTo(105, 88, 111, 94, 111, 102);
-    ctx.lineTo(111, 116);
-    ctx.lineTo(106.333, 111.333);
-    ctx.lineTo(101.666, 116);
-    ctx.lineTo(97, 111.333);
-    ctx.lineTo(92.333, 116);
-    ctx.lineTo(87.666, 111.333);
-    ctx.lineTo(83, 116);
-    ctx.fill();
-
-    ctx.fillStyle = "white";
-    ctx.beginPath();
-    ctx.moveTo(91, 96);
-    ctx.bezierCurveTo(88, 96, 87, 99, 87, 101);
-    ctx.bezierCurveTo(87, 103, 88, 106, 91, 106);
-    ctx.bezierCurveTo(94, 106, 95, 103, 95, 101);
-    ctx.bezierCurveTo(95, 99, 94, 96, 91, 96);
-    ctx.moveTo(103, 96);
-    ctx.bezierCurveTo(100, 96, 99, 99, 99, 101);
-    ctx.bezierCurveTo(99, 103, 100, 106, 103, 106);
-    ctx.bezierCurveTo(106, 106, 107, 103, 107, 101);
-    ctx.bezierCurveTo(107, 99, 106, 96, 103, 96);
-    ctx.fill();
-
-    ctx.fillStyle = "black";
-    ctx.beginPath();
-    ctx.arc(101, 102, 2, 0, Math.PI * 2, true);
-    ctx.fill();
-
-    ctx.beginPath();
-    ctx.arc(89, 102, 2, 0, Math.PI * 2, true);
-    ctx.fill();
-  }
-}
-
-// Une fonction utilitaire pour tracer des rectangles avec des coins arrondis
-
-function rectArrondi(ctx, x, y, largeur, hauteur, rayon) {
-  ctx.beginPath();
-  ctx.moveTo(x, y + rayon);
-  ctx.lineTo(x, y + hauteur - rayon);
-  ctx.quadraticCurveTo(x, y + hauteur, x + rayon, y + hauteur);
-  ctx.lineTo(x + largeur - rayon, y + hauteur);
-  ctx.quadraticCurveTo(x + largeur, y + hauteur, x + largeur, y + hauteur - rayon);
-  ctx.lineTo(x + largeur, y + rayon);
-  ctx.quadraticCurveTo(x + largeur, y, x + largeur - rayon, y);
-  ctx.lineTo(x + rayon,y);
-  ctx.quadraticCurveTo(x, y, x, y + rayon);
-  ctx.stroke();
-}
-
-
- -

L'image résultante ressemble à ce qui suit :

- -
-

{{EmbedLiveSample("Combiner_les_possibilités", 160, 160)}}

- -

Nous ne l'expliquerons pas plus en détails, du fait que c'est étonnament simple. Les choses les plus importantes à noter sont l'utilisation de la propriété fillStyle sur le contexte du dessin, et l'utilisation d'une fonction utilitaire dans ce cas, rectArrondi()). L'utilisation de fonctions utilitaires pour des éléments de dessin que vous faites souvent peut être très utile, et peut réduire la quantité de code dont vous avez besoin, ainsi que sa complexité.

- -

Nous reviendrons sur fillStyle plus en détail plus loin dans ce tutoriel. Pour l'instant, tout ce que nous faisons est de l'utiliser pour changer en blanc la couleur pour les trajets depuis la couleur noire par défaut, et inversement ensuite.

-
-
- -

Objets Path2D

- -

Comme nous l'avons vu dans le dernier exemple, il peut y avoir une série de trajets et d'instructions de dessin pour dessiner des objets sur votre canevas. Pour simplifier le code et améliorer les performances, l'objet {{domxref("Path2D")}}, disponible dans les versions récentes des navigateurs, vous permet de mettre en cache ou d'enregistrer ces instrucions de dessin. Vous pourrez alors rejouer vos trajets rapidement.
- Voyons comment nous pouvons construire un objet Path2D :

- -
-
{{domxref("Path2D.Path2D", "Path2D()")}}
-
Le constructor Path2D() retourne un objet Path2D nouvellement instancié, optionellement avec un autre trajet comme argument (crée une copie), ou optionellement avec une chaîne constituée de données de trajet SVG.
-
- -
new Path2D();     // objet trajet vide
-new Path2D(trajet); // copie depuis un autre objet Path2D
-new Path2D(d);    // trajet depuis des données de trajet SVG
- -

Toutes les méthodes de trajet telles que moveTorectarc ou quadraticCurveTo, etc., que nous avons appris à connaître ci-dessus, sont disponibles sur les objets Path2D.

- -

L'API Path2D ajoute aussi une manière de combiner des trajets en utilisant la méthode addPath. Cela peut être utile quand vous voulez contruire des objets à partir de plusieurs composants, par exemple.

- -
-
{{domxref("Path2D.addPath", "Path2D.addPath(trajet [, transformation])")}}
-
Ajoute un trajet, au trajet en cours, avec une matrice de transformation.
-
- -

Exemple de Path2D

- -

Dans cet exemple, on crée un rectangle et un cercle. Tous deux sont stockés comme des objets Path2D, de sorte qu'ils sont disponibles pour un usage ultérieur. Avec la nouvelle API Path2D, plusieurs méthodes ont été mises à jour pour accepter optionnellement un objet Path2D à utiliser au lieu du trajet en cours. Ici, stroke et fill sont utilisés avec un argument de trajet pour dessiner les deux objets sur le canevas, par exemple.

- - - -
function dessiner() {
-  var canevas = document.getElementById('canvas');
-  if (canevas.getContext){
-    var ctx = canevas.getContext('2d');
-
-    var rectangle = new Path2D();
-    rectangle.rect(10, 10, 50, 50);
-
-    var cercle = new Path2D();
-    cercle.moveTo(125, 35);
-    cercle.arc(100, 35, 25, 0, 2 * Math.PI);
-
-    ctx.stroke(rectangle);
-    ctx.fill(cercle);
-  }
-}
- -

{{EmbedLiveSample("Exemple_de_Path2D", 130, 110, "https://mdn.mozillademos.org/files/9851/path2d.png")}}

- -

Utilisation de trajets SVG

- -

Une autre fonctionnalité puissante de la nouvelle API Path2D de canevas est l'utilisation de données de trajet SVG pour initialiser des trajets sur votre canevas. Cela peut vous permettre de faire circuler des données de trajet et les réutiliser, à la fois en SVG et dans un canevas.

- -

Le trajet se déplacera au point (M10 10) et se déplacera alors de 80 points horizontalement vers la droite (h 80), ensuite de 80 points vers le bas (v 80), puis de 80 points vers la gauche (h -80), et reviendra alors au départ (z). Vous pouvez voir cet exemple sur la page du constructeur Path2D.

- -
var p = new Path2D("M10 10 h 80 v 80 h -80 Z");
- -

{{PreviousNext("Tutoriel_canvas/Utilisation_de_base", "Tutoriel_canvas/Ajout_de_styles_et_de_couleurs")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/hit_regions_and_accessibility/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/hit_regions_and_accessibility/index.html deleted file mode 100644 index 59a4d1ce35..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/hit_regions_and_accessibility/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Hit regions and accessibility -slug: Web/API/Canvas_API/Tutoriel_canvas/Hit_regions_and_accessibility -translation_of: Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility ---- -
{{CanvasSidebar}} {{ PreviousNext("Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas", "Web/API/Canvas_API/Tutorial/Optimizing_canvas") }}
- -
L'élément {{HTMLElement("canvas")}} lui-même est juste un bitmap et ne fourni aucune information sur les objets dessinés. Le contenu des canvas n'est pas sujet aux outils d'accessibility comme l'est la sémantique HTML. En général vous devriez éviter d'utiliser les canvas sur les sites ou les applications accessibles. Le marche à suivre suivante peut vous aider à les rendre plus accessibles.
- -

Moyen de repli

- -

Le contenu à l'intérieur d'un tag <canvas> ... </canvas> peut être utilisé comme moyen de secours pour les navigteurs qui ne supportent pas le rendu de canvas. C'est aussi très utile pour les utilisateurs qui utilisent des technologies adaptées (comme les lecteurs d'écran) qui peuvent lire et interpréter les éléments du DOM. Un bon exemple sur html5accessibility.com demontre comment cela peut être fait.

- -
<canvas>
-  <h2>Shapes</h2>
-  <p>A rectangle with a black border.
-   In the background is a pink circle.
-   Partially overlaying the <a href="http://en.wikipedia.org/wiki/Circle" onfocus="drawCircle();" onblur="drawPicture();">circle</a>.
-   Partially overlaying the circle is a green
-   <a href="http://en.wikipedia.org/wiki/Square" onfocus="drawSquare();" onblur="drawPicture();">square</a>
-   and a purple <a href="http://en.wikipedia.org/wiki/Triangle" onfocus="drawTriangle();" onblur="drawPicture();">triangle</a>,
-   both of which are semi-opaque, so the full circle can be seen underneath.</p>
-</canvas> 
- -

Jetez un oeil à la video comment NVDA lit cet exemple par Steve Faulkner (en anglais).

- -

Les règles ARIA

- -

Accessible Rich Internet Applications (ARIA) (≈ Les applications Internet Accessibles Riches) défini des pistes pour rendre le contenu Web et les applications Web plus accessibles pour les personnes ayant un handicap. Vous pouvez utiliser les attributs ARIA pour decrire le comportement et le but de vos éléments canvas. Allez voir ARIA et les techniques ARIA pour plus d'informations.

- -
<canvas id="button" tabindex="0" role="button" aria-pressed="false" aria-label="Start game"></canvas>
-
- -

Zones cibles (hit Region)

- -

Que les coordonnés de la souris soient dans une zone particulière des canvas, est un problème fréquent à résoudre. L'API de la "hit region" vous permet de definir une zone de votre canvas et offre une autre possibilité pour proposer du contenu interactif dans les canvas a destination des outils d'accessibilité. Il permet de rendre la "hit detection" plus simple easier and vous laisser envoyer des événements aux éléments du DOM. L'API a les trois methodes suivantes (qui sont encore expérimentales dans les navigateurs actuel ; reportez-vous au tableau des comptibilités des navigateurs).

- -
-
{{domxref("CanvasRenderingContext2D.addHitRegion()")}} {{experimental_inline}}
-
Ajoute une "hit region" au canvas..
-
{{domxref("CanvasRenderingContext2D.removeHitRegion()")}} {{experimental_inline}}
-
Supprime la "hit region" avec l'id spécifiée venant du canvas.
-
{{domxref("CanvasRenderingContext2D.clearHitRegions()")}} {{experimental_inline}}
-
Retire toutes les "hit regions" du cnavas.
-
- -

Vous pouvez ajouter une "hit region" à votre chemin et vérifier la propriété {{domxref("MouseEvent.region")}} pour tester si votre souris entre dans votre région, par exemple.

- -
<canvas id="canvas"></canvas>
-<script>
-var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
-
-ctx.beginPath();
-ctx.arc(70, 80, 10, 0, 2 * Math.PI, false);
-ctx.fill();
-ctx.addHitRegion({id: 'circle'});
-
-canvas.addEventListener('mousemove', function(event) {
-  if (event.region) {
-    alert('hit region: ' + event.region);
-  }
-});
-</script>
- -

La méthode addHitRegion() accepte aussi une option de control pour envoyer des événement vers un élément (c'est un enfant des canvas):

- -
ctx.addHitRegion({control: element});
- -

Cela peut être utile pour le routage d'éléments {{HTMLElement("input")}}, par exemple. Regardez aussi codepen demo.

- -

Focus rings

- -

Quand on travaille avec le clavier, focus rings (anneaux de mise au point) sont utilies pour aider dans la navigation sur une page. Pour dessiner des "focus ring" dans un dessin de canvas, la propriété drawFocusIfNeeded peut être utilisée.

- -
-
{{domxref("CanvasRenderingContext2D.drawFocusIfNeeded()")}} {{experimental_inline}}
-
Si un élément donné est ciblé, cette méthode dessine un anneaud de mise ne valeur autoure du chemin courant.
-
- -

De plus, la méthode scrollPathIntoView() peut être utilisée pour rendre visible un élément dans une page s'il est ciblé, par exemple.

- -
-
{{domxref("CanvasRenderingContext2D.scrollPathIntoView()")}} {{experimental_inline}}
-
Affiche le chemin courant ou le chemin donné.
-
- -

See also

- - - -
{{ PreviousNext("Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas", "Web/API/Canvas_API/Tutorial/Optimizing_canvas") }}
diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/index.html deleted file mode 100644 index a430b361bd..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Tutoriel canvas -slug: Web/API/Canvas_API/Tutoriel_canvas -tags: - - Canvas - - Guide - - HTML - - Tutoriel_canvas - - Tutoriels -translation_of: Web/API/Canvas_API/Tutorial ---- -
{{CanvasSidebar}}
- -

- -

<canvas> est un nouvel élément HTML qui peut être utilisé pour dessiner des éléments graphiques à l'aide de scripts (habituellement JavaScript). Il permet par exemple de dessiner des graphiques, de réaliser des compositions de photographies ou des animations simples (voire pas si simples). Les images à droite montrent quelques exemples d'implémentations utilisant <canvas> que nous verrons plus tard dans ce tutoriel.

- -

Ce tutoriel explique comment utiliser l'élément <canvas> pour dessiner des graphiques 2D, en commençant par les bases. Les exemples fournis devraient vous donner des idées claires sur ce que vous pouvez faire avec la toile et fournir des extraits de code qui peuvent vous aider à créer votre propre contenu.

- -

D'abord introduit dans WebKit par Apple pour le tableau de bord OS X, <canvas> a depuis été implémenté dans les navigateurs. Aujourd'hui, tous les principaux navigateurs le prennent en charge.

- -

Avant de commencer

- -

L'utilisation de l'élément <canvas> n'a rien de très compliqué, mais nécessite tout de même une compréhension de base de HTML et JavaScript. L'élément <canvas> n'est pas reconnu par tous les vieux navigateurs, mais il est supporté par les versions les plus récentes des principaux. La taille par défaut de canvas est 300 px × 150 px (largeur × hauteur). Mais les tailles personnalisées peuvent être définies à l'aide des propriétés HTML height et width. Afin de dessiner des graphiques sur canvas , nous utilisons un objet de contexte JavaScript, qui crée des graphiques à la volée.

- -

Dans ce tutoriel

- - - -

Voir aussi

- - - -

{{ Next("Tutoriel_canvas/Utilisation_de_base") }}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/optimizing_canvas/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/optimizing_canvas/index.html deleted file mode 100644 index d8e6e8383c..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/optimizing_canvas/index.html +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Optimiser les Canvas -slug: Web/API/Canvas_API/Tutoriel_canvas/Optimizing_canvas -translation_of: Web/API/Canvas_API/Tutorial/Optimizing_canvas ---- -
{{CanvasSidebar}} {{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}
- -
-

L'élément {{HTMLElement("canvas")}} est l'un des standards les plus utilisés pour le rendu graphique 2D sur le web. Il est surtout utilisé dans les jeux et les visualisations complexes. Cependant, les sites et applications web poussent les canvas à leurs limites, et les performances commencent à en pâtir. Cet article propose des suggestions pour optimiser votre utilisation de l'élément canvas, et pour être certain que votre site ou application web fonctionne bien.

-
- -

Conseils sur les performances

- -

Ceci est une liste de conseils pour améliorer les performances

- -

Pré-rendre les primitifs similaires ou répéter les objects dans un canvas hors-champ

- -

Si vous avez besoin d'ajouter un dessin complexe identique à chaque image rendue, préférez l'utilisation d'un canvas hors-champ, le rendre une fois (ou à chaque fois qu'il change) sur ce canvas, puis dessinez-le sur le canvas principal à chaque image rendue.

- -
myEntity.offscreenCanvas = document.createElement("canvas");
-myEntity.offscreenCanvas.width = myEntity.width;
-myEntity.offscreenCanvas.height = myEntity.height;
-myEntity.offscreenContext = myEntity.offscreenCanvas.getContext("2d");
-
-myEntity.render(myEntity.offscreenContext);
-
- -

Abandonnez les coordonnées décimales et utilisez des entiers à la place

- -

Un rendu de sous-pixel est opéré quand on dessine des objets sur un canvas sans valeur entière.

- -
ctx.drawImage(myImage, 0.3, 0.5);
-
- -

Cela pousse le navigateur à faire des calculs supplémentaires pour créer un effet d'anti-crénelage. Pour empêcher cela, il faut s'assurer d'arrondir les coordonnées utilisées pour {{domxref("CanvasRenderingContext2D.drawImage", "drawImage()")}}.

- -

Ne pas redimensionner d'images avec drawImage

- -

Préférez mettre en cache plusieurs dimensions de votre image dans un canvas hors-champ au lieu de les redimensionner constamment avec {{domxref("CanvasRenderingContext2D.drawImage", "drawImage()")}}.

- -

Utiliser des canvas empilés pour les scènes complexes

- -

Pour des scènes complexes, on peut souvent remarquer que quelques éléments changent souvent tandis que d'autres ne changent jamais. Une optimisation possible dans ce cas consiste à utiliser plusieurs calques sous forme de canvas empilés.

- -

Par exemple, on peut créer un calque UI, dessiné au-dessus de tous les autres uniquement lorsque l'utilisateur accède à un menu. En dessous, un calque jeu où les entités du jeu sont souvent mises à jour. Et, à l'arrière, un calque de fond rarement modifié.

- -
<div id="stage">
-  <canvas id="ui-layer" width="480" height="320"></canvas>
-  <canvas id="game-layer" width="480" height="320"></canvas>
-  <canvas id="background-layer" width="480" height="320"></canvas>
-</div>
-
-<style>
-  #stage {
-    width: 480px;
-    height: 320px;
-    position: relative;
-    border: 2px solid black
-  }
-  canvas { position: absolute; }
-  #ui-layer { z-index: 3 }
-  #game-layer { z-index: 2 }
-  #background-layer { z-index: 1 }
-</style>
-
- -

Du CSS pour les grandes images de fond

- -

Si comme pour la plupart des jeux, vous utilisez une image de fond statique, préférez utiliser un simple {{HTMLElement("div")}} en dessous du canvas avec les propriétés CSS {{cssxref("background")}} appropriées. Cela vous évitera de redessiner une grande image dans le canvas à chaque tick.

- -

Redimensionner les canvas avec CSS transform

- -

Les transformations CSS sont plus rapides car elles utilisent le GPU. Le mieux est d'utiliser un canvas plus grand et de réduire sa taille. Pour Firefox OS, les dimensions sont de 480 x 320 px.

- -
var scaleX = window.innerWidth / canvas.width;
-var scaleY = window.innerHeight / canvas.height;
-
-var scaleToFit = Math.min(scaleX, scaleY);
-var scaleToCover = Math.max(scaleX, scaleY);
-
-stage.style.transformOrigin = "0 0"; //scale from top left
-stage.style.transform = "scale(" + scaleToFit + ")";
-
- -

Utiliser l'attribut moz-opaque (Gecko only)

- -

Si le canvas n'a pas besoin de transparence, ajouter l'attribut moz-opaque dans la balise canvas. Cette information peut être utilisée par le navigateur pour optimiser le rendu.

- -
<canvas id="mycanvas" moz-opaque></canvas>
- -

D'autres conseils

- - - -

Voir aussi

- - - -

{{PreviousNext("Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility", "Web/API/Canvas_API/Tutorial/Finale")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/pixel_manipulation_with_canvas/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/pixel_manipulation_with_canvas/index.html deleted file mode 100644 index a2182f43c1..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/pixel_manipulation_with_canvas/index.html +++ /dev/null @@ -1,258 +0,0 @@ ---- -title: Manipulation de pixels avec canvas -slug: Web/API/Canvas_API/Tutoriel_canvas/Pixel_manipulation_with_canvas -translation_of: Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas ---- -
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}
- -
-

Jusqu'à présent, nous n'avons pas examiné dans le détail les pixels réels de notre canevas. Avec l'objet ImageData, vous pouvez directement lire et écrire dans le tableau de données de l'image, pour manipuler les pixels un par un. Nous verrons également comment le lissage (anticrénelage) de l'image peut être contrôlé et comment sauvegarder des images depuis votre canevas.

-
- -

L'objet ImageData

- -

L'objet {{domxref("ImageData")}} représente les données de pixels sous-jacentes à une zone d'un objet canevas. Il contient les attributs (en lecture seule) suivants :

- -
-
width
-
La largeur de l'image en pixels.
-
height
-
La hauteur de l'image en pixels.
-
data
-
Un {{jsxref("Uint8ClampedArray")}} représentant un tableau monodimensionnel contenant les données dans l'ordre RVBA, ayant des valeurs entières entre 0 et  255 (inclus).
-
- -

La propriété data retourne un tableau {{jsxref("Uint8ClampedArray")}} auquel on peut accéder pour voir plus en détail les données brutes des pixels ; chaque pixel est représenté par quatre valeurs sur un octet (rouge, vert, bleu et alpha, dans cet ordre ; c'est-à-dire, le format "RVBA").  Chaque composante de couleur est représentée par un entier entre 0 et 255. Chaque composante reçoit un indice à l'intérieur du tableau, la composante rouge du pixel supérieur gauche étant à l'indice 0 à l'intérieur du tableau. Les pixels continuent ensuite de gauche à droite, puis vers le bas, jusqu'au bout du tableau.

- -

Le {{jsxref("Uint8ClampedArray")}} contient height(hauteur) × width(largeur)  × 4 octets, dont les valeurs d'indices vont de 0 à (height×width×4)-1.

- -

Par exemple, pour lire la valeur de la composante bleue d'un pixel situé en colonne 200, ligne 50  de l'image, vous pouvez faire ce qui suit :

- -
composanteBleue = imageData.data[((50 * (imageData.width * 4)) + (200 * 4)) + 2];
- -

Vous pouvez accéder à la taille en octets du tableau de pixels en lisant l'attribut Uint8ClampedArray.length :

- -
var nbOctets = imageData.data.length;
-
- -

Création d'un objet ImageData

- -

Pour créer un nouvel objet ImageData vierge, vous pouvez utiliser la méthode  {{domxref("CanvasRenderingContext2D.createImageData", "createImageData()")}}. Il existe deux versions de la méthode createImageData() :

- -
var monImageData = ctx.createImageData(largeur, hauteur);
- -

Cela crée un nouvel objet ImageData avec les dimensions spécifiées. Tous les pixels sont prédéfinis comme étant noirs transparents.

- -

Vous pouvez aussi créer un nouvel objet ImageData ayant les mêmes dimensions que celles de l'objet indiqué par autreImageData. Les pixels du nouvel objet sont tous prédéfinis comme étant noirs transparents. Cela ne copie pas les données d'image !

- -
var monImageData = ctx.createImageData(autreImageData);
- -

Obtention des données pixel pour un contexte

- -

Pour obtenir un objet  ImageData contenant une copie des données pixel pour un contexte de canevas, vous pouvez utiliser la méthode getImageData() :

- -
var monImageData = ctx.getImageData(gauche, haut, largeur, hauteur);
- -

Cette méthode retourne un objet ImageData représentant les données pixel pour la zone du canevas dont les coins sont représentés par les points  (left,top) (gauche,haut), (left+width, top) (gauche+largeur, haut), (left, top+height) (gauche, haut+hauteur) et  (left+width, top+height) (gauche+largeur, haut+hauteur). Les coordonnées sont spécifiées en unités d'espace de coordonnées du canevas.

- -
-

Note : Tous les pixels en dehors du canevas seront retournés comme noirs transparents dans l'objet ImageData résultant.

-
- -

Cette méthode est aussi présentée dans l'article Manipulation vidéo utilisant canvas.

- -

Une pipette à couleur

- -

Dans cet exemple, nous utilisons la méthode getImageData() pour afficher la couleur en dessous du curseur de la souris. Pour cela, nous avons besoin de la position en cours de la souris donnée par layerX et layerY, nous recherchons ensuite les données pixel à cette position dans le tableau de pixels que getImageData() nous fournit. Finalement, nous utilisons les données du tableau pour définir une couleur d'arrière-plan et un texte dans le <div> pour afficher la couleur.

- - - -
var img = new Image();
-img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
-var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
-img.onload = function() {
-  ctx.drawImage(img, 0, 0);
-  img.style.display = 'none';
-};
-var color = document.getElementById('color');
-function pick(event) {
-  var x = event.layerX;
-  var y = event.layerY;
-  var pixel = ctx.getImageData(x, y, 1, 1);
-  var data = pixel.data;
-  var rgba = 'rgba(' + data[0] + ', ' + data[1] +
-             ', ' + data[2] + ', ' + (data[3] / 255) + ')';
-  color.style.background =  rgba;
-  color.textContent = rgba;
-}
-canvas.addEventListener('mousemove', pick);
- -

{{ EmbedLiveSample('A_color_picker', 610, 240) }}

- -

Peinture des données pixel dans un contexte

- -

Vous pouvez utiliser la méthode putImageData() pour peindre les données pixel dans un contexte :

- -
ctx.putImageData(monImageData, dx, dy);
-
- -

Les paramètres dx et dy indiquent les coordonnées système dans le contexte du coin supérieur gauche des données pixel qui doivent être peintes.

- -

Par exemple, pour peindre l'image entière représentée par monImageData dans le coin supérieur gauche du contexte, vous pouvez simplement faire ce qui suit :

- -
ctx.putImageData(monImageData, 0, 0);
-
- -

Niveaux de gris et inversion de couleurs

- -

Dans cet exemple, nous itérons sur tous les pixels pour changer leurs valeurs, puis nous remettons le tableau de pixels modifié sur le canevas à l'aide de putImageData(). La fonction inversion soustrait simplement chaque couleur de la valeur maximale 255. La fonction  grayscale (niveaux de gris) fait simplement la moyenne du rouge, du vert et du bleu. Vous pouvez également utiliser une moyenne pondérée, donnée par la formule x = 0.299r + 0.587v + 0.114b, par exemple. Voir Niveaux de gris sur Wikipedia pour plus d'informations.

- - - -
var img = new Image();
-img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
-img.onload = function() {
-  dessiner(this);
-};
-
-function dessiner(img) {
-  var canevas = document.getElementById('canevas');
-  var ctx = canevas.getContext('2d');
-  ctx.drawImage(img, 0, 0);
-  img.style.display = 'none';
-  var imageData = ctx.getImageData(0, 0, canevas.width, canevas.height);
-  var data = imageData.data;
-
-  var inversion = function() {
-    for (var i = 0; i < data.length; i += 4) {
-      data[i]     = 255 - data[i];     // rouge
-      data[i + 1] = 255 - data[i + 1]; // vert
-      data[i + 2] = 255 - data[i + 2]; // bleu
-    }
-    ctx.putImageData(imageData, 0, 0);
-  };
-
-  var niveaudegris = function() {
-    for (var i = 0; i < data.length; i += 4) {
-      var moy = (data[i] + data[i + 1] + data[i + 2]) / 3;
-      data[i]     = moy; // rouge
-      data[i + 1] = moy; // vert
-      data[i + 2] = moy; // bleu
-    }
-    ctx.putImageData(imageData, 0, 0);
-  };
-
-  var btninversion = document.getElementById('btninversion');
-  btninversion.addEventListener('click', inversion);
-  var btnniveaudegris = document.getElementById('btnniveaudegris');
-  btnniveaudegris.addEventListener('click', niveaudegris);
-}
-
- -

{{ EmbedLiveSample('Grayscaling_and_inverting_colors', 330, 270) }}

- -

Zoom et anticrénelage

- -

A l'aide de la méthode {{domxref ("CanvasRenderingContext2D.drawImage", "drawImage ()")}}, un deuxième canevas, et la propriété {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} , nous pouvons zoomer sur notre image et voir les détails.

- -

Nous obtenons la position de la souris et recadrons une image de 5 pixels à gauche et au-dessus à 5 pixels à droite et en-dessous. Ensuite, nous copions celle-ci sur un autre canevas et redimensionnons l'image à la taille que nous voulons. Dans la zone de zoom, nous redimensionnons une zone de 10 × 10 pixels du canevas d'origine à 200 × 200.

- -
zoomctx.drawImage(canvas,
-                  Math.abs(x - 5), Math.abs(y - 5),
-                  10, 10, 0, 0, 200, 200);
- -

Étant donné que l'anticrénelage est activé par défaut, nous pouvons désactiver le lissage pour voir les pixels clairs. Vous pouvez basculer la case à cocher pour voir l'effet de la propriété imageSmoothingEnabled (qui a besoin de préfixes pour différents navigateurs).

- - - - - -
var img = new Image();
-img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
-img.onload = function() {
-  draw(this);
-};
-
-function draw(img) {
-  var canvas = document.getElementById('canvas');
-  var ctx = canvas.getContext('2d');
-  ctx.drawImage(img, 0, 0);
-  img.style.display = 'none';
-  var zoomctx = document.getElementById('zoom').getContext('2d');
-
-  var smoothbtn = document.getElementById('smoothbtn');
-  var toggleSmoothing = function(event) {
-    zoomctx.imageSmoothingEnabled = this.checked;
-    zoomctx.mozImageSmoothingEnabled = this.checked;
-    zoomctx.webkitImageSmoothingEnabled = this.checked;
-    zoomctx.msImageSmoothingEnabled = this.checked;
-  };
-  smoothbtn.addEventListener('change', toggleSmoothing);
-
-  var zoom = function(event) {
-    var x = event.layerX;
-    var y = event.layerY;
-    zoomctx.drawImage(canvas,
-                      Math.abs(x - 5),
-                      Math.abs(y - 5),
-                      10, 10,
-                      0, 0,
-                      200, 200);
-  };
-
-  canvas.addEventListener('mousemove', zoom);
-}
- -

{{ EmbedLiveSample('Zoom_example', 620, 490) }}

- -

Sauvegarde des images

- -

L' {{domxref ("HTMLCanvasElement")}} fournit une méthode toDataURL (), utile lors de l'enregistrement d'images. Il retourne un URI de données contenant une représentation de l'image dans le format spécifié par le paramètre de type (par défaut en PNG ). L'image renvoyée est dans une résolution de 96 dpi.

- -
-
{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/png')")}}
-
Par défaut. Crée un image PNG.
-
{{domxref("HTMLCanvasElement.toDataURL", "canvas.toDataURL('image/jpeg', quality)")}}
-
Crée une image JPG. En option, vous pouvez fournir une qualité comprise entre 0 et 1, 1 étant de la meilleure qualité et 0 presque non reconnaissable mais de petite taille.
-
- -

Une fois que vous avez généré un URI de données à partir de votre canevas, vous pouvez l'utiliser comme source de {{HTMLElement ("image")}} ou le mettre dans un lien hypertexte avec un attribut de téléchargement pour l'enregistrer sur le disque par exemple.

- -

Vous pouvez également créer un {{domxref ("Blob")}} à partir du canevas.

- -
-
{{domxref("HTMLCanvasElement.toBlob", "canvas.toBlob(callback, type, encoderOptions)")}}
-
Crée un objet Blob représentant l'image contenue dans le canevas.
-
- -

Voir aussi

- - - -

{{PreviousNext("Tutoriel_canvas/Advanced_animations", "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/transformations/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/transformations/index.html deleted file mode 100644 index bf21fab4c8..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/transformations/index.html +++ /dev/null @@ -1,276 +0,0 @@ ---- -title: Transformations -slug: Web/API/Canvas_API/Tutoriel_canvas/Transformations -tags: - - Canvas - - Graphismes - - Guide - - HTML - - Web -translation_of: Web/API/Canvas_API/Tutorial/Transformations ---- -
{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas/Utilisation_d'images", " Web/API/Canvas_API/Tutorial/Compositing ")}}
- -
Précédemment dans ce tutoriel, nous avons étudié la grille du canevas et le système de coordonnées. Jusqu'à maintenant, nous avons uniquement utilisé la grille par défaut et modifié la taille de la globalité du canevas afin de répondre à nos besoins. Les transformations que nous allons aborder dans la suite vont nous permettre, de manière plus puissante, d'effectuer des déplacements et des rotations sur la grille et même d'effectuer des mises à l'échelle.
- -

Sauvegarde et restauration d'état

- -

Avant d'étudier les méthodes de transformations, examinons deux autres méthodes qui vont être indispensables à partir du moment où l'on commence à créer des dessins complexes.

- -
-
{{domxref("CanvasRenderingContext2D.save", "save()")}}
-
Sauvegarde l'état du canevas dans sa globalité.
-
{{domxref("CanvasRenderingContext2D.restore", "restore()")}}
-
Restore le plus récent état sauvegardé du canevas.
-
- -

Les états du canevas sont stockés dans une pile. Chaque invocation de la méthode save() ajoute une copie de l'état courant du canevas en haut de la pile. L'état du dessin est constitué de :

- - - -

La méthode save() peut être invoquée autant de fois que nécessaire. Chaque appel de restore() enlève le dernier état sauvegardé de la pile et tous les paramètres sauvegardés sont restaurés.

- -

Un exemple de sauvegarde et de restauration de l état du canevas

- -

Cet exemple tente d'illustrer comment fonctionne la pile d'états de dessin en dessinant un ensemble de rectangles consécutifs.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  ctx.fillRect(0, 0, 150, 150);   // Dessine un rectangle avec les réglages par défaut
-  ctx.save();                  // Sauvegarde l'état par défaut
-
-  ctx.fillStyle = '#09F';      // Fait des changements de réglages
-  ctx.fillRect(15, 15, 120, 120); // Dessine un rectangle avec les nouveaux réglages
-
-  ctx.save();                  // Sauvegarde l'état actuel
-  ctx.fillStyle = '#FFF';      // Fait des changements de réglages
-  ctx.globalAlpha = 0.5;
-  ctx.fillRect(30, 30, 90, 90);   // Dessine un rectangle avec de nouveaux réglages
-
-  ctx.restore();               // Restaure l'état précédent
-  ctx.fillRect(45, 45, 60, 60);   // Dessine un rectangle avec les réglages restaurés
-
-  ctx.restore();               // Restaure l'état d'origine
-  ctx.fillRect(60, 60, 30, 30);   // Dessine un rectangle avec les réglages restaurés
-}
- - - -

La première étape consiste à dessiner un grand rectangle avec les paramètres par défaut. Ensuite, nous sauvegardons cet état et modifions la couleur de remplissage. Nous dessinons ensuite le deuxième rectangle bleu et mettons l'état de côté. Encore une fois, nous modifions certains paramètres de dessin et dessinons le troisième rectangle blanc semi-transparent.

- -

Jusqu'à présent, cela ressemble beaucoup à ce que nous avons fait dans les sections précédentes. Cependant, une fois que nous appelons la première instruction restore(), l'état de dessin supérieur est supprimé de la pile et les paramètres sont restaurés. Si nous n'avions pas sauvegardé l'état en utilisant save (), nous devrions modifier manuellement la couleur de remplissage et la transparence afin de revenir à l'état précédent. Cela serait facile pour deux propriétés, mais si nous avons plus que cela, notre code deviendrait très long très rapidement.

- -

Lorsque la deuxième instruction restore() est appelée, l'état d'origine (celui que nous avons configuré avant le premier appel à enregistrer) est restauré et le dernier rectangle est de nouveau tracé en noir.

- -

{{EmbedLiveSample("Un_exemple_de_sauvegarde_et_de_restauration_de_l_état_du_canevas", "180", "180", "https://mdn.mozillademos.org/files/249/Canvas_savestate.png")}}

- -

Déplacement

- -

La première des méthodes de transformation que nous examinerons est translate (). Cette méthode est utilisée pour déplacer la toile et son origine vers un autre point de la grille.

- -
-
{{domxref("CanvasRenderingContext2D.translate", "translate(x, y)")}}
-
Déplace la toile et son origine sur la grille. x indique la distance horizontale du déplacement, et y indique à quelle distance déplacer la grille verticalement.
-
- -

C'est une bonne idée de sauvegarder l'état du canevas avant d'effectuer des transformations. Dans la plupart des cas, il est plus facile d'appeler la méthode restore que d'avoir à effectuer un déplacement inverse pour revenir à l'état d'origine. De même, si vous déplacez à l'intérieur d'une boucle et que vous ne sauvegardez pas et ne restaurez pas l'état du canevas, il se peut qu'une partie de votre dessin soit manquante, car elle a été dessinée en dehors du bord du canevas.

- -

Un exemple translate

- -

Cet exemple montre certains des avantages du déplacement de l'origine du canevas. Sans la méthode translate (), tous les rectangles seraient dessinés à la même position (0,0). La méthode translate () nous donne également la liberté de placer le rectangle n'importe où sur le canevas sans avoir à ajuster manuellement les coordonnées dans la fonction fillRect (). Cela le rend un peu plus facile à comprendre et à utiliser.

- -

Dans la fonction draw (), nous appelons la fonction fillRect () neuf fois en utilisant deux boucles for . Dans chaque boucle, le canevas est déplacé, le rectangle est dessiné et le canevas est retourné à son état d'origine. Notez comment l'appel à fillRect () utilise les mêmes coordonnées à chaque fois, en s'appuyant sur translate () pour ajuster la position du dessin.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  for (var i = 0; i < 3; i++) {
-    for (var j = 0; j < 3; j++) {
-      ctx.save();
-      ctx.fillStyle = 'rgb(' + (51 * i) + ', ' + (255 - 51 * i) + ', 255)';
-      ctx.translate(10 + j * 50, 10 + i * 50);
-      ctx.fillRect(0, 0, 25, 25);
-      ctx.restore();
-    }
-  }
-}
- - - -

{{EmbedLiveSample("Un_exemple_translate", "160", "160", "https://mdn.mozillademos.org/files/9857/translate.png")}}

- -

Rotation

- -

La seconde méthode de transformation est rotate(). Nous l'utilisons pour faire pivoter le canevas autour de l'origine actuelle.

- -
-
{{domxref("CanvasRenderingContext2D.rotate", "rotate(angle)")}}
-
Fait pivoter le canevas, dans le sens des aiguilles d'une montre autour de l'origine actuelle, par le nombre de radians de l'angle.
-
- -

Le point central de rotation est toujours l'origine de la toile. Pour changer le point central, nous devrons déplacer le canevas en utilisant la méthode translate ().

- -

Un exemple rotate

- -

Dans cet exemple, nous utiliserons la méthode rotate () pour faire d'abord tourner un rectangle à partir de l'origine du canevas, puis du centre du rectangle lui-même à l'aide de translate ().

- -
-

Rappel : Les angles sont en radians, pas en degrés. Pour convertir en degrés, nous utilisons : radians = (Math.PI/180)*degrees.

-
- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // rectangles de gauche, rotation depuis l'origine du canevas
-  ctx.save();
-  // rectangle bleu
-  ctx.fillStyle = '#0095DD';
-  ctx.fillRect(30, 30, 100, 100);
-  ctx.rotate((Math.PI / 180) * 25);
-  // rectangle gris
-  ctx.fillStyle = '#4D4E53';
-  ctx.fillRect(30, 30, 100, 100);
-  ctx.restore();
-
-  // rectangles de droite, rotation depuis le centre du rectangle
-  // dessine le rectangle bleu
-  ctx.fillStyle = '#0095DD';
-  ctx.fillRect(150, 30, 100, 100);
-
-  ctx.translate(200, 80); // déplace au centre du rectangle
-                          // x = x + 0.5 * width
-                          // y = y + 0.5 * height
-  ctx.rotate((Math.PI / 180) * 25); // rotation
-  ctx.translate(-200, -80); // déplace en arrière
-
-  // dessine le rectangle gris
-  ctx.fillStyle = '#4D4E53';
-  ctx.fillRect(150, 30, 100, 100);
-}
- -

Pour faire pivoter le rectangle autour de son propre centre, nous déplaçons le canevas au centre du rectangle, puis faisons pivoter le canevas, puis le déplaçons à 0,0, puis dessinons le rectangle.

- - - -

{{EmbedLiveSample("Un_exemple_rotate", "310", "210", "https://mdn.mozillademos.org/files/9859/rotate.png")}}

- -

Mise à l'échelle

- -

La méthode de transformation suivante est la mise à l'échelle. Nous l'utilisons pour augmenter ou diminuer les unités de notre grille de canevas. Cela peut être utilisé pour dessiner des formes ou des bitmaps réduits ou agrandis.

- -
-
{{domxref("CanvasRenderingContext2D.scale", "scale(x, y)")}}
-
Met à l'échelle les unités du canevas avec x horizontalement et y verticalement. Les deux paramètres sont des nombres réels. Les valeurs inférieures à 1,0 réduisent la taille de l'unité et les valeurs supérieures à 1,0 augmentent la taille de l'unité. Les valeurs 1.0 laissent les unités à la même taille.
-
- -

En utilisant des nombres négatifs, vous pouvez faire une mise en miroir d'axe (par exemple en utilisant translate (0, canvas.height), scale (1, -1), vous aurez le système de coordonnées cartésien bien connu, avec l'origine dans le coin inférieur gauche).

- -

Par défaut, une unité sur la toile est exactement un pixel. Si nous appliquons, par exemple, un facteur d'échelle de 0,5, l'unité résultante deviendrait 0,5 pixels et ainsi les formes seraient dessinées à la moitié de la taille. De la même façon, si nous définissons le facteur d'échelle sur 2.0, la taille de l'unité augmentera et une unité deviendra deux pixels. Cela donne des formes dessinées deux fois plus grandes.

- -

Un exemple scale

- -

Dans ce dernier exemple, nous allons dessiner des  formes avec différents facteurs d'échelle.

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  // dessine un rectangle simple, mais le met à l'échelle.
-  ctx.save();
-  ctx.scale(10, 3);
-  ctx.fillRect(1, 10, 10, 10);
-  ctx.restore();
-
-  // mirror horizontally
-  ctx.scale(-1, 1);
-  ctx.font = '48px serif';
-  ctx.fillText('MDN', -135, 120);
-}
- - - -

{{EmbedLiveSample("Un_exemple_scale", "160", "160", "https://mdn.mozillademos.org/files/9861/scale.png")}}

- -

Transformation

- -

Enfin, les méthodes de transformation suivantes appliquent des modifications directement à la matrice de transformation.

- -
-
{{domxref("CanvasRenderingContext2D.transform", "transform(a, b, c, d, e, f)")}}
-
Multiplie la matrice de transformation actuelle avec la matrice décrite par ses arguments. La matrice de transformation est décrite par : [acebdf001]\left[ \begin{array}{ccc} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{array} \right]
-
- -
-
Si l'un des arguments est infini, la matrice de transformation doit être marquée comme infinie, plutôt que d'utiliser la méthode qui lance une exception.
-
- -

Les paramètres de cette fonction sont :

- -
-
a (m11)
-
Mise à l'échelle horizontale.
-
b (m12)
-
Inclinaison horizontale.
-
c (m21)
-
Inclinaison verticale.
-
d (m22)
-
Mise à l'échelle verticale.
-
e (dx)
-
Déplacement horizontal.
-
f (dy)
-
Déplacement vertical.
-
{{domxref("CanvasRenderingContext2D.setTransform", "setTransform(a, b, c, d, e, f)")}}
-
Réinitialise la transformation en cours dans la matrice d'identité, puis appelle la méthode transform () avec les mêmes arguments. Cela défait la transformation en cours, puis définit la transformation spécifiée, le tout en une seule étape.
-
{{domxref("CanvasRenderingContext2D.resetTransform", "resetTransform()")}}
-
Réinitialise la transformation en cours à la matrice d'identité. C'est la même chose que d'appeler : ctx.setTransform (1, 0, 0, 1, 0, 0);
-
- -

Exemple pour transform et setTransform

- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-
-  var sin = Math.sin(Math.PI / 6);
-  var cos = Math.cos(Math.PI / 6);
-  ctx.translate(100, 100);
-  var c = 0;
-  for (var i = 0; i <= 12; i++) {
-    c = Math.floor(255 / 12 * i);
-    ctx.fillStyle = 'rgb(' + c + ', ' + c + ', ' + c + ')';
-    ctx.fillRect(0, 0, 100, 10);
-    ctx.transform(cos, sin, -sin, cos, 0, 0);
-  }
-
-  ctx.setTransform(-1, 0, 0, 1, 100, 100);
-  ctx.fillStyle = 'rgba(255, 128, 255, 0.5)';
-  ctx.fillRect(0, 50, 100, 100);
-}
- - - -

{{EmbedLiveSample("Exemple_pour_transform_et_setTransform", "230", "280", "https://mdn.mozillademos.org/files/255/Canvas_transform.png")}}

- -

{{PreviousNext("Tutoriel_canvas/Utilisation_d'images", "Tutoriel_canvas/Composition")}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_d'images/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_d'images/index.html deleted file mode 100644 index 50a286e0fa..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_d'images/index.html +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: Utilisation d'images -slug: Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images -tags: - - Canvas - - Graphismes - - HTML - - Tutoriels -translation_of: Web/API/Canvas_API/Tutorial/Using_images ---- -

{{CanvasSidebar}} {{PreviousNext("Dessin_de_texte_avec_canvas", "Tutoriel_canvas/Transformations" )}}

- -

Jusqu'à présent, nous avons créé nos propres formes et styles appliqués. L'une des fonctionnalités les plus intéressantes de {{HTMLElement ("canvas")}} est la possibilité d'utiliser des images. Celles-ci peuvent être utilisées pour faire de la composition dynamique de photos ou comme décors de graphes, pour des "sprites" dans des jeux, et ainsi de suite. Les images externes peuvent être utilisées dans n'importe quel format pris en charge par le navigateur, comme PNG, GIF ou JPEG. Vous pouvez même utiliser l'image produite par d'autres éléments du canevas sur la même page comme source !

- -

L'importation d'images est un processus en deux étapes :

- -
    -
  1. obtenez une référence à un objet {{domxref ("HTMLImageElement")}} ou à un autre élément canvas en tant que source. Il est également possible d'utiliser des images en fournissant une URL.
  2. -
  3. l'image est dessinée sur le canevas à l'aide de la fonction drawImage() .
  4. -
- -

Jetons un oeil à la façon de le faire.

- -

Obtenir des images à dessiner

- -

L'API Canvas peut utiliser l'un des types de données suivants comme source d'image :

- -
-
{{domxref("HTMLImageElement")}}
-
Il s'agit d'images créées à l'aide du constructeur Image() , ainsi que de tout élément {{HTMLElement ("img")}}.
-
{{domxref("SVGImageElement")}}
-
Ce sont des images incorporées en utilisant l'élément {{SVGElement ("image")}}.
-
{{domxref("HTMLVideoElement")}}
-
L'utilisation d'un élément HTML {{HTMLElement("video")}} comme source d'image capture l'image actuelle de la vidéo et l'utilise comme une image.
-
{{domxref("HTMLCanvasElement")}}
-
Vous pouvez utiliser un autre élément {{HTMLElement("canvas")}} comme source d'image.
-
- -

Ces sources sont collectivement référencées par le type {{domxref ("CanvasImageSource")}}.

- -

Il existe plusieurs façons d'obtenir des images pour une utilisation sur une toile.

- -

Utilisation d'images présentes sur la même page

- -

Nous pouvons obtenir une référence aux images sur la même page que le canevas en utilisant l'un des éléments suivants :

- - - -

Utilisation d'images d'un autre domaine

- -

En utilisant l'attribut {{htmlattrxref ("crossorigin", "img")}} d'un élément {{HTMLElement ("img")}} (reflété par la propriété {{domxref("HTMLImageElement.crossOrigin")}}), vous pouvez demander la permission de charger une image d'un autre domaine pour l'utiliser dans votre appel à drawImage (). Si le domaine d'hébergement permet un accès interdomaine à l'image, l'image peut être utilisée dans votre canevas sans l'altérer; sinon utiliser l'image va souiller le canevas.

- -

Utilisation d'autres éléments canvas

- -

Comme pour les images normales, nous accédons aux autres éléments Canvas en utilisant la méthode {{domxref ("document.getElementsByTagName ()")}} ou {{domxref ("document.getElementById ()")}}. Assurez-vous d'avoir dessiné quelque chose sur le canevas source avant de l'utiliser dans votre canevas cible.

- -

Une des utilisations les plus pratiques de cette fonctionnalité serait d'utiliser un second élément canvas comme aperçu de taille réduite d'un canevas de grande taille.

- -

Création d'une image à partir de rien

- -

Une autre option est de créer de nouveaux objets {{domxref("HTMLImageElement")}} dans le script même. Pour ce faire, vous pouvez utiliser le constructeur Image().

- -
var img = new Image();   // Crée un nouvel élément Image
-img.src = 'myImage.png'; // Définit le chemin vers sa source
-
- -

Lorsque ce script est exécuté, l'image commence à être chargée.

- -

Si vous essayez d'appeler drawImage () avant le chargement de l'image, il ne fera rien (ou, dans les anciens navigateurs, cela peut même déclencher une exception). Vous devez donc être sûr d'utiliser l'événement load pour ne pas essayer avant que l'image ne soit chargée :

- -
var img = new Image();   // Crée un nouvel élément img
-img.addEventListener('load', function() {
-  //  exécute les instructions drawImage ici 
-}, false);
-img.src = 'myImage.png'; // définit le chemin de la source
- -

Si vous n'utilisez qu'une image externe, cela peut être une bonne approche, mais une fois que vous avez besoin de suivre plus d'une image, vous devez recourir à quelque chose de plus intelligent. Il est hors de portée de ce tutoriel de regarder les tactiques de préchargement d'images, mais vous devriez garder cela à l'esprit.

- -

Intégration d'une image via une data: URL

- -

Un autre moyen possible d'inclure des images est via les data: url.. . Les URL de données vous permettent de définir complètement une image en tant que chaîne de caractères codée en Base64 directement dans votre code.

- -
var img = new Image();   // Crée un nouvel élément img
-img.src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==';
- -

L'un des avantages des URL de données est que l'image résultante est disponible immédiatement, sans autre aller-retour au serveur. Un autre avantage potentiel,'il est également possible d'encapsuler dans un fichier tous vos CSS, JavaScript, HTML et images, ce qui les rend plus portable vers d'autres endroits.

- -

Certains inconvénients de cette méthode sont que votre image n'est pas mise en cache, et pour les grandes images, l'URL encodée peut devenir assez longue.

- -

Utilisation des images d'une vidéo

- -

Vous pouvez également utiliser les images d'une vidéo présentée par un élément {{HTMLElement("video")}} (même si la vidéo n'est pas visible). Par exemple, si vous avez un élément {{HTMLElement("video")}} avec l'ID "myvideo", vous pouvez faire :

- -
function getMyVideo() {
-  var canvas = document.getElementById('canvas');
-  if (canvas.getContext) {
-    var ctx = canvas.getContext('2d');
-
-    return document.getElementById('myvideo');
-  }
-}
- -

Cela renvoie l'objet {{domxref ("HTMLVideoElement")}} pour la vidéo, qui, comme décrit précédemment, est l'un des objets pouvant être utilisé comme CanvasImageSource.

- -

Dessin d'images

- -

Une fois la référence à l'objet image source obtenue, on peut utiliser la méthode drawImage() pour l'afficher sur le canevas. Comme nous le verrons plus tard, la méthode drawImage() est surchargée et possède trois variantes différentes. Dans sa forme la plus basique, elle ressemble à ceci :

- -
-
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, x, y)")}}
-
Dessine le CanvasImageSource spécifié par le paramètre image aux coordonnées (x, y).
-
- -
-

Les images SVG doivent spécifier une largeur et une hauteur dans l'élément racine <svg>.

-
- -

Exemple: un graphique linéaire simple

- -

Dans l'exemple suivant, nous utiliserons une image externe comme fond pour un petit graphique linéaire. L'utilisation d'images de fond peut rendre vos scripts considérablement plus légers puisqu'il n'est alors pas nécessaire de dessiner des arrières-plans élaborés. Une seule image est utilisée ici, on utilise donc le gestionnaire d'évènement load de l'objet image pour lancer les instructions de dessin. La méthode drawImage() place l'image de fond aux coordonnées (0,0), soit le coin supérieur gauche du canevas.

- -
<html>
- <body onload="draw();">
-   <canvas id="canvas" width="180" height="150"></canvas>
- </body>
-</html>
- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var img = new Image();
-  img.onload = function() {
-    ctx.drawImage(img, 0, 0);
-    ctx.beginPath();
-    ctx.moveTo(30, 96);
-    ctx.lineTo(70, 66);
-    ctx.lineTo(103, 76);
-    ctx.lineTo(170, 15);
-    ctx.stroke();
-  };
-  img.src = 'https://mdn.mozillademos.org/files/5395/backdrop.png';
-}
- -

Le graphique résultant ressemble à ceci :

- -

{{EmbedLiveSample("Example_A_simple_line_graph", 220, 160, "https://mdn.mozillademos.org/files/206/Canvas_backdrop.png")}}

- -

Mise à l'échelle

- -

La seconde variante de la méthode drawImage() ajoute deux paramètres supplémentaires et permet de placer des images redimensionnées sur le canevas.

- -

Exemple: Tapissage d'une image

- -

Dans cet exemple, nous utiliserons une image comme papier-peint en la répétant plusieurs fois sur le canevas. Cette opération est réalisée simplement en faisant une boucle plaçant plusieurs fois l'image redimensionnée à différentes positions. Dans le code ci-dessous, la première boucle for s'occupe des lignes alors que la seconde gère les colonnes. L'image est redimensionnée à un tiers de sa taille originale, ce qui fait 50×38 pixels.

- -
-

Note : les images peuvent devenir floues lorsqu'elles sont agrandies ou granuleuses si elles sont réduites. Il vaut mieux ne pas redimensionner une image contenant du texte devant rester lisible.

-
- -
<html>
- <body onload="draw();">
-   <canvas id="canvas" width="150" height="150"></canvas>
- </body>
-</html>
- -
function draw() {
-  var ctx = document.getElementById('canvas').getContext('2d');
-  var img = new Image();
-  img.onload = function() {
-    for (var i = 0; i < 4; i++) {
-      for (var j = 0; j < 3; j++) {
-        ctx.drawImage(img, j * 50, i * 38, 50, 38);
-      }
-    }
-  };
-  img.src = 'https://mdn.mozillademos.org/files/5397/rhino.jpg';
-}
- -

Le canevas résultant ressemble à ceci :

- -

{{EmbedLiveSample("Example_Tiling_an_image", 160, 160, "https://mdn.mozillademos.org/files/251/Canvas_scale_image.png")}}

- -

Découpage

- -

La troisième et dernière variante de la méthode drawImage() possède huit nouveaux paramètres. On peut l'utiliser pour découper des parties d'une image source et les afficher sur le canevas.

- -
-
{{domxref("CanvasRenderingContext2D.drawImage", "drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)")}}
-
Cette fonction prend la zone de l'image source spécifiée par le rectangle dont le coin en haut à gauche est (sx, sy) et dont la largeur et la hauteur sont sWidth et sHeight et le dessine dans le canevas en le plaçant sur le canevas (dx, dy) et le redimensionner à la taille spécifiée par dWidth et dHeight.
-
- -

Pour vraiment comprendre ce que cela fait, il peut être utile de regarder l'image à droite. Les quatre premiers paramètres définissent l'emplacement et la taille du morceau de l'image source. Les quatre derniers paramètres définissent le rectangle dans lequel dessiner l'image sur le canevas de destination.

- -

Le découpage peut être un outil utile pour réaliser des compositions. Vous pouvez disposer tous les éléments dans un seul fichier image et utiliser cette méthode pour composer un dessin complet. Par exemple, si vous voulez réaliser un graphique, vous pouvez utiliser une image PNG contenant tout le texte nécessaire dans un seul fichier et, selon vos données, changer l'échelle de votre graphique sans trop de difficultés. Un autre avantage est qu'il n'est pas nécessaire de charger chaque image individuellement.

- -

Exemple : encadrer une image

- -

Dans cet exemple, nous utiliserons le même rhinocéros que plus haut, mais sa tête sera coupée et composée avec un cadre. L'image du cadre fournit une ombre portée qui a été enregistrée dans une image PNG 24 bits. Comme les images PNG 24 bits comportent un canal alpha complet de 8 bits, contrairement aux images GIF et PNG 8 bits, elle peut être placée sur n'importe quel fond sans avoir à se préoccuper de la couleur de transition.

- -
<html>
- <body onload="draw();">
-   <canvas id="canvas" width="150" height="150"></canvas>
-   <div style="display:none;">
-     <img id="source" src="https://mdn.mozillademos.org/files/5397/rhino.jpg" width="300" height="227">
-     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
-   </div>
- </body>
-</html>
- -
function draw() {
-  var canvas = document.getElementById('canvas');
-  var ctx = canvas.getContext('2d');
-
-  // Draw slice
-  ctx.drawImage(document.getElementById('source'),
-                33, 71, 104, 124, 21, 20, 87, 104);
-
-  // Draw frame
-  ctx.drawImage(document.getElementById('frame'), 0, 0);
-}
- -

Nous avons pris une approche différente pour charger les images cette fois. Au lieu de les charger en créant de nouveaux objets {{domxref ("HTMLImageElement")}}, nous les avons incluses comme balises {{HTMLElement("img")}} directement dans notre source HTML et avons récupéré les images depuis ceux-ci. Les images sont masquées à partir de la sortie, en définissant la propriété CSS {{cssxref ("display")}} à aucune.

- -

{{EmbedLiveSample("Example_Framing_an_image", 160, 160, "https://mdn.mozillademos.org/files/226/Canvas_drawimage2.jpg")}}

- -

Le script lui-même est très simple. Chaque {{HTMLElement ("img")}} se voit attribuer un attribut ID, ce qui facilite leur sélection en utilisant {{domxref ("document.getElementById ()")}}. Nous utilisons simplement drawImage () pour découper le rhinocéros de la première image et le mettre à l'échelle sur le canevas, puis dessiner le cadre par le haut en utilisant un deuxième appel drawImage ().

- - - -

Dans le dernier exemple de ce chapitre, nous présenterons une petite galerie d'art. Cette galerie est constituée d'un tableau contenant plusieurs images. Lorsque la page est chargée, un élément {{HTMLElement("canvas")}} est inséré pour chaque image et un cadre est dessiné autour.

- -

Dans notre cas, toutes les images ont une largeur et une hauteur fixes, ainsi que le cadre qui sera dessiné autour. Le script pourrait être amélioré afin d'utiliser la largeur et la hauteur de l'image pour que le cadre s'adapte parfaitement à ses dimensions.

- -

Le code ci-dessous devrait s'expliquer de lui-même. Nous parcourons le conteneur {{domxref ("document.images")}} et nous ajoutons de nouveaux éléments canvas. La seule chose notable est probablement, pour ceux qui ne sont pas familiers avec le DOM, l'utilisation de la méthode {{domxref("Node.insertBefore")}} . insertBefore() est une méthode du nœud parent (une cellule de tableau) de l'élément (l'image) avant lequel on désire insérer le nouveau nœud (l'élément canvas).

- -
<html>
- <body onload="draw();">
-     <table>
-      <tr>
-        <td><img src="https://mdn.mozillademos.org/files/5399/gallery_1.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5401/gallery_2.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5403/gallery_3.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5405/gallery_4.jpg"></td>
-      </tr>
-      <tr>
-        <td><img src="https://mdn.mozillademos.org/files/5407/gallery_5.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5409/gallery_6.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5411/gallery_7.jpg"></td>
-        <td><img src="https://mdn.mozillademos.org/files/5413/gallery_8.jpg"></td>
-      </tr>
-     </table>
-     <img id="frame" src="https://mdn.mozillademos.org/files/242/Canvas_picture_frame.png" width="132" height="150">
- </body>
-</html>
-
- -

Et voici quelques CSS pour rendre les choses agréables :

- -
body {
-  background: 0 -100px repeat-x url(https://mdn.mozillademos.org/files/5415/bg_gallery.png) #4F191A;
-  margin: 10px;
-}
-
-img {
-  display: none;
-}
-
-table {
-  margin: 0 auto;
-}
-
-td {
-  padding: 15px;
-}
-
- -

Le lien pour tout cela, c'est le JavaScript pour dessiner les images encadrées :

- -
function draw() {
-
-  // Boucle à travers toutes les images
-  for (var i = 0; i < document.images.length; i++) {
-
-    // N'ajoute pas de canevas pour l'image du cadre
-    if (document.images[i].getAttribute('id') != 'frame') {
-
-      // Crée un élément canvas
-      canvas = document.createElement('canvas');
-      canvas.setAttribute('width', 132);
-      canvas.setAttribute('height', 150);
-
-      // Insère avant l'image
-      document.images[i].parentNode.insertBefore(canvas,document.images[i]);
-
-      ctx = canvas.getContext('2d');
-
-      // Dessine l'image sur canvas
-      ctx.drawImage(document.images[i], 15, 20);
-
-      // Ajoute un cadre
-      ctx.drawImage(document.getElementById('frame'), 0, 0);
-    }
-  }
-}
- -

{{EmbedLiveSample("Art_gallery_example", 725, 400)}}

- -

Contrôle du comportement de la mise à l'échelle de l'image

- -

Comme mentionné précédemment, la mise à l'échelle des images peut entraîner des objets flous ou granuleux en raison du processus de mise à l'échelle. Vous pouvez utiliser la propriété {{domxref("CanvasRenderingContext2D.imageSmoothingEnabled", "imageSmoothingEnabled")}} du contexte de dessin pour contrôler l'utilisation des algorithmes de lissage d'image lors de la mise à l'échelle des images dans votre contexte. Par défaut, cela est vrai, ce qui signifie que les images seront lissées lors de la mise à l'échelle. Vous pouvez désactiver cette fonctionnalité comme ceci :

- -
ctx.mozImageSmoothingEnabled = false;
-ctx.webkitImageSmoothingEnabled = false;
-ctx.msImageSmoothingEnabled = false;
-ctx.imageSmoothingEnabled = false;
- -

{{PreviousNext("Dessin_de_texte_avec_canvas", "Tutoriel_canvas/Transformations" )}}

diff --git a/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_de_base/index.html b/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_de_base/index.html deleted file mode 100644 index 6182dee589..0000000000 --- a/files/fr/web/api/canvas_api/tutoriel_canvas/utilisation_de_base/index.html +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Utilisation de base des canvas -slug: Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base -tags: - - Canvas - - Graphismes - - HTML - - Tutoriel_canvas - - Tutoriels -translation_of: Web/API/Canvas_API/Tutorial/Basic_usage ---- -

{{CanvasSidebar}} {{PreviousNext("Tutoriel_canvas", "Tutoriel_canvas/Formes_géométriques")}}

- -

L'élément <canvas>

- -

Commençons par regarder l'élément {{HTMLElement("canvas")}} lui-même.

- -
<canvas id="tutoriel" width="150" height="150"></canvas>
-
- -

Ceci ressemble beaucoup à l'élément <img>. La seule différence est qu'il n'y a pas les attributs src et alt. L'élément <canvas> a seulement deux attributs : {{htmlattrxref ("width", "canvas")}} et {{htmlattrxref ("height", "canvas")}} (« largeur » et « hauteur »). Ces deux attributs sont optionnels et peuvent aussi être fixés à travers le DOM. Quand les attributs width et height ne sont pas spécifiés, le canvas sera initialement large de 300 pixels et haut de 150 pixels. Les dimensions du canvas peuvent être modifiés par du CSS, mais l'image sera dessinée selon les valeurs width et height du canvas et ensuite étirée pour afficher dans l'espace donné par le CSS.

- -
-

Note : Si l'image semble déformée, essayez de spécifier de manière explicite vos attributs width et height dans l'élément <canvas>, et de ne pas utiliser de CSS.

-
- -

L'attribut id n'est pas spécifique à l'élément <canvas>. C'est en fait un des attributs HTML de base qui peut être utilisé par presque tous les éléments HTML. C'est toujours mieux d'assigner une id car ça facilite beaucoup l'identification du canvas dans le code javascript.

- -

L'élément <canvas> peut être stylisé comme n'importe quelle image normale (marges, contours, arrière-plan, etc). Si aucun style n'est donné, le canvas sera par défaut complètement transparent. Il faut noter que peu importe quels styles sont utilisés, le style n'affectera pas l'acte de dessiner sur le canvas. Nous verrons en détail la stylisation des canvas plus tard dans ce tutoriel.

- -
-

Contenu de repli

- -

Puisque certains plus anciens navigateurs ne supportent pas l'élément {{HTMLElement("canvas")}} (les plus communs étant les versions d'Internet Explorer avant la version 9), il est mieux d'avoir du contenu de repli pour afficher.

- -

Heureusement, c'est très facile : il faut tout simplement mettre le contenu dans l'élément <canvas> lui-même. Les navigateurs qui ne supportent pas <canvas> vont afficher ce contenu de repli, et ceux qui supportent <canvas> vont l'ignorer et dessiner le canvas.

- -

Le contenu de repli pourrait, par exemple, donner une description texte du canvas, ou afficher une image fixe comme aperçu de ce que le canvas dessinerait de façon dynamique.

- -
<canvas id="stockGraph" width="150" height="150">
-  current stock price: $3.15 + 0.15
-</canvas>
-
-<canvas id="clock" width="150" height="150">
-  <img src="images/clock.png" width="150" height="150" alt=""/>
-</canvas>
- -

La nécessité de la balise </canvas>

- -

Au contraire de l'élément {{HTMLElement("img")}}, l'élément {{HTMLElement("canvas")}} requiert la balise fermante (</canvas>).

- -
-

Note : Bien que quelques unes des premières versions du navigateur Safari ne requièrent pas la balise fermante, la spécification HTML indique qu'elle est nécessaire, alors il est mieux de l'inclure pour avoir le plus de compatibilité possible. Ces anciennes versions de Safari (avant la version 2.0) affichent le contenu de repli en plus que le canvas lui-même, sauf si vous utilisez des trucs CSS pour le masquer. Heureusement, il y a très peu d'utilisateurs de ces vieilles versions de Safari de nos jours.

-
- -

Si vous n'avez pas besoin de contenu de repli, un simple <canvas id="foo" ...></canvas> est totalement compatible avec tous les navigateurs qui ont pris en charge la fonctionnalité canvas.

- -

Le contexte de rendu

- -

L'élément {{HTMLElement("canvas")}} crée une surface pour dessiner à grandeur fixe. Cette surface expose un ou plusieurs contextes de rendu, qui sont utilisés pour créer et manipuler le contenu affiché. Ce tutoriel se concentrera sur le contexte de rendu 2D. D'autres contextes permettent d'autres types de rendu, tel que le contexte WebGL, qui utilise un contexte 3D ("experimental-webgl") inspiré de OpenGL ES.

- -

Initialement, le canvas est vide. Pour afficher quelque chose,  un script doit commencer par accéder au contexte de rendu pour pouvoir dessiner dessus. L'élément {{HTMLElement("canvas")}} a une méthode nommée getContext(), qui peut être utilisée pour obtenir le contexte de rendu et ses fonctions de dessin. getContext() a comme seul paramètre le type de contexte. Pour des graphiques 2D, comme ceux utilisés dans ce tutoriel, il faut spécifier "2d".

- -
var canvas = document.getElementById('tutorial');
-var ctx = canvas.getContext('2d');
- -

La première ligne obtient le {{HTMLElement("canvas")}} dans le DOM en appelant {{domxref("document.getElementById()")}}. Lorsque nous avons l'élément canvas, nous pouvons accéder au contexte de rendu en utilisant sa méthode getContext().

- -
-

Vérification de la prise en charge

- -

Le contenu de repli est affiché dans les navigateurs qui ne prennent pas en charge l'élément {{HTMLElement("canvas")}}. Les scripts peuvent aussi vérifier la prise en charge de manière programmatique en vérifiant la présence de la méthode getContext(). Notre extrait de code ci-dessus se transforme donc en ceci :

- -
var canvas = document.getElementById('tutorial');
-
-if (canvas.getContext) {
-  var ctx = canvas.getContext('2d');
-  // code de dessin dans le canvas
-} else {
-  // code pour le cas où canvas ne serait pas supporté
-}
-
-
- -

Un modèle basique

- -

Voici un modèle minimaliste, que nous allons utiliser comme point de départ dans des futurs exemples.

- -
<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="utf-8"/>
-    <title>Canvas tutorial</title>
-    <script type="text/javascript">
-      function draw() {
-        var canvas = document.getElementById('tutorial');
-        if (canvas.getContext) {
-          var ctx = canvas.getContext('2d');
-        }
-      }
-    </script>
-    <style type="text/css">
-      canvas { border: 1px solid black; }
-    </style>
-  </head>
-  <body onload="draw();">
-    <canvas id="tutorial" width="150" height="150"></canvas>
-  </body>
-</html>
- -

Ce script contient une fonction draw(), qui est exécutée lorsque la page a fini de charger. Ce résultat est obtenu en utilisant l'événement de chargement du document. Cette fonction, ou une fonction similaire, pourrait aussi être appelé en utilisant {{domxref("window.setTimeout()")}}, {{domxref("window.setInterval()")}}, ou n'importe quel autre gestionnaire d'événement, tant que la page est chargée en premier.

- -

Voici à quoi le modèle ressemble :

- -

{{EmbedLiveSample("Un_modèle_basique", 160, 160)}}

- -

Un exemple simple

- -

Pour commencer, observons un exemple simple qui dessine deux rectangles qui s'intersectent, un d'entre eux ayant de la transparence alpha. Nous verrons plus en détail comment ça marche dans les exemples suivants.

- -
<!DOCTYPE html>
-<html>
- <head>
-  <meta charset="utf-8"/>
-  <script type="application/javascript">
-    function draw() {
-      var canvas = document.getElementById("canvas");
-      if (canvas.getContext) {
-        var ctx = canvas.getContext("2d");
-
-        ctx.fillStyle = 'rgb(200, 0, 0)';
-        ctx.fillRect(10, 10, 50, 50);
-
-        ctx.fillStyle = 'rgba(0, 0, 200, 0.5)';
-        ctx.fillRect(30, 30, 50, 50);
-      }
-    }
-  </script>
- </head>
- <body onload="draw();">
-   <canvas id="canvas" width="150" height="150"></canvas>
- </body>
-</html>
- -

Cet exemple ressemble a ceci :

- -

{{EmbedLiveSample("Un_exemple_simple", 160, 160, "https://mdn.mozillademos.org/files/228/canvas_ex1.png")}}

- -

{{PreviousNext("Tutoriel_canvas", "Tutoriel_canvas/Formes_géométriques")}}

diff --git a/files/fr/web/api/crypto/getrandomvalues/index.html b/files/fr/web/api/crypto/getrandomvalues/index.html new file mode 100644 index 0000000000..28682a0c2a --- /dev/null +++ b/files/fr/web/api/crypto/getrandomvalues/index.html @@ -0,0 +1,75 @@ +--- +title: RandomSource.getRandomValues() +slug: Web/API/RandomSource/getRandomValues +tags: + - API + - Cryptographie + - Methode(2) + - Méthode + - Reference + - Référence(2) +translation_of: Web/API/Crypto/getRandomValues +--- +

{{APIRef("Web Crypto API")}}

+ +

La méthode RandomSource.getRandomValues() permet d’obtenir des valeurs pseudo-aléatoires cryptographiquement satisfaisantes. Le tableau donné en paramètre est rempli avec des nombres pseudo-aléatoires.

+ +

Pour garantir une performance suffisante, les implémentations n’utilisent pas un vrai générateur de nombres aléatoires, mais un générateur de nombres pseudo-aléatoires semé avec une valeur ayant suffisamment d'{{Glossary("entropie")}}. Les générateurs utilisés d’une implémentation à une autre seront différents mais toujours satisfaisants pour une utilisation en cryptographie. Les implémentations doivent également utiliser une graine ayant suffisamment d’entropie, comme une source d’entropie au niveau du système.

+ +

Syntaxe

+ +
cryptoObj.getRandomValues(typedArray);
+ +

Paramètres

+ +
+
typedArray
+
Un {{jsxref("TypedArray")}} de nombres entiers, qui est un {{jsxref("Int8Array")}}, un {{jsxref("Uint8Array")}}, un {{jsxref("Uint16Array")}}, un {{jsxref("Int32Array")}}, ou encore un {{jsxref("Uint32Array")}}. Tous les éléments du tableau seront subsitués avec des nombres aléatoires.
+
+ +

Exceptions

+ + + +

Exemple

+ +
/* on part du principe ici que window.crypto.getRandomValues est disponible */
+
+var array = new Uint32Array(10);
+window.crypto.getRandomValues(array);
+
+console.log("Your lucky numbers:");
+for (var i = 0; i < array.length; i++) {
+    console.log(array[i]);
+}
+
+ +

Spécification

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Web Crypto API', '#RandomSource-method-getRandomValues')}}{{Spec2('Web Crypto API')}}Initial definition
+ +

Compatibilité des navigateurs

+ +
{{Compat("api.Crypto.getRandomValues")}}
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/cssmatrix/index.html b/files/fr/web/api/cssmatrix/index.html deleted file mode 100644 index 2b5039986e..0000000000 --- a/files/fr/web/api/cssmatrix/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: CSSMatrix -slug: Web/API/CSSMatrix -tags: - - API - - Reference -translation_of: Web/API/DOMMatrix -translation_of_original: Web/API/CSSMatrix ---- -
-
{{APIRef("CSSOM")}}{{Non-standard_header}}
- -

Une CSSMatrix représente une matrice homogène 4x4 dans laquelle il est possible d'appliquer des transformations 2D ou 3D. Cette classe faisait à un moment partie du module de transitions CSS (Level 3) mais elle n'a pas été propagée dans le brouillon de travail (Working Draft) actuel. Utilisez plutôt DOMMatrix.

- -

Compatibilé des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support simple{{CompatUnknown}}{{CompatUnknown}}10[1]{{CompatUnknown}}{{CompatVersionUnknown}}[2]
-
- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support simple{{CompatUnknown}}{{CompatUnknown}}11[1]{{CompatUnknown}}{{CompatVersionUnknown}}[2]
-
- -

[1] Internet Explorer a  intégré cette API en tant que MSCSSMatrix. Dans la version 11 l'alias WebKitCSSMatrix a été ajouté.

- -

[2] WebKit a intégré cette API en tant que WebKitCSSMatrix.

- -

Voir aussi

- - -
diff --git a/files/fr/web/api/detecting_device_orientation/index.html b/files/fr/web/api/detecting_device_orientation/index.html new file mode 100644 index 0000000000..63d99497df --- /dev/null +++ b/files/fr/web/api/detecting_device_orientation/index.html @@ -0,0 +1,289 @@ +--- +title: Détecter l'orientation de l'appareil +slug: WebAPI/Detecting_device_orientation +tags: + - Device Orientation + - Firefox OS + - Mobile + - Motion + - Orientation +translation_of: Web/API/Detecting_device_orientation +--- +

{{SeeCompatTable}}

+ +

Résumé

+ +

De plus en plus d'appareils connectés à Internet sont capable de déterminer leur orientation. C'est-à-dire qu'ils peuvent fournir des données indiquant des changements dans leur orientation par rapport à la gravité. En particulier les appareils portables, comme les téléphones mobiles, peuvent utiliser cette information pour effectuer automatiquement une rotation de l'écran, afin de toujours proposer la meilleure disposition possible pour le contenu à afficher.

+ +

Il existe deux événements JavaScript pour gérer l'orientation. Le premier est {{domxref("DeviceOrientationEvent")}}, qui est envoyé quand l'accéléromètre détecte un changement d'orientation de l'appareil. En recevant et en analysant les données fournies par ces événements d'orientation, il est possible de répondre de manière interactive aux changements d'orientation et d'élévation causés par les mouvements imprimés à l'appareil par l'utilisateur.

+ +

Le second événement est {{ domxref("DeviceMotionEvent") }}, qui est envoyé quand un changement d’accélération est ajouté. Il est différent de {{domxref("DeviceOrientationEvent")}}, car il écoute les changements d'accélération par opposition à l'orientation. Parmi les capteurs capables de détecter {{ domxref("DeviceMotionEvent") }}, on trouve les capteurs des ordinateurs portables utilisés pour protéger des chutes les périphériques de stockage. Ils sont communément présents dans les appareils mobiles (tablettes, téléphones intelligents).

+ +

Traitement des événements d'orientation

+ +

Tout ce dont vous avez besoin pour commencer à recevoir les changements d'orientation est d’écouter l’événement {{ event("deviceorientation") }} :

+ +
+

Note: gyronorm.js est un polyfill pour normaliser les données de l'accéléromètre et du gyroscope sur les appareils mobiles. C'est utile pour surmonter certaines différences dans la prise en charge des périphériques pour l'orientation du périphérique.

+
+ +
window.addEventListener("deviceorientation", handleOrientation, true);
+
+ +

Après l’enregistrement de votre gestionnaire d'événements (event listener en anglais), dans ce cas, une fonction JS appelée handleOrientation(), votre fonction d'écoute est appelée périodiquement pour récupérer les données de l'orientation mise à jour.

+ +

L'événement d'orientation contient quatre valeurs ::

+ + + +

La fonction gérant l’événement pourrait ressembler à ceci :

+ +
function handleOrientation(event) {
+  var absolute = event.absolute;
+  var alpha    = event.alpha;
+  var beta     = event.beta;
+  var gamma    = event.gamma;
+
+  // Faites quelque chose avec les données acquises. ;)
+}
+
+ +

Détail des valeurs d'orientation

+ +

La valeur reportée pour chaque axe indique l'angle de rotation autour d'un axe donné, en référence à un système de coordonnées standard. Ces valeurs sont décrites de façon plus détaillée dans cet article Orientation et déplacement expliquée.

+ + + +

Exemple d'orientation

+ +

Cet exemple fonctionne sur tout navigateur supportant l’événement {{event("deviceorientation")}} et sur tout appareil capable de détecter son orientation.

+ +

Imaginons une balle dans un jardin :

+ +
<div class="jardin">
+  <div class="balle"></div>
+</div>
+
+<pre class="resultat"></pre>
+
+ +

Ce jardin fait 200 pixels de long (Oui c'est un « petit » jardin !), et la balle est au centre :

+ +
.jardin {
+  position: relative;
+  width : 200px;
+  height: 200px;
+  border: 5px solid #CCC;
+  border-radius: 10px;
+}
+
+.balle {
+  position: absolute;
+  top   : 90px;
+  left  : 90px;
+  width : 20px;
+  height: 20px;
+  background: green;
+  border-radius: 100%;
+}
+
+ +

Maintenant, on définit le déplacement de la balle en fonction de celui de l'appareil :

+ +
var jardin = document.querySelector('.jardin'),
+    balle = document.querySelector('.balle'),
+    resultat = document.querySelector('.resultat'),
+    maxX = jardin.clientWidth  - balle.clientWidth,
+    maxY = jardin.clientHeight - balle.clientHeight;
+
+function handleOrientation(event) {
+  var x = event.beta,  // En degré sur l'interval [-180,180].
+      y = event.gamma; // En degré sur l'interval [-90,90].
+
+  resultat.innerHTML  = "beta : " + x + "<br />";
+  resultat.innerHTML += "gamma: " + y + "<br />";
+
+  // Parce-que l'on ne veut pas avoir l'appareil à l'envers.
+  // On restreint les valeurs de x à l'intervalle [-90,90].
+  if (x >  90) { x =  90};
+  if (x < -90) { x = -90};
+  // Pour rendre le calcul plus simple.
+  // On délimite l'intervalle de x et y sur [0, 180].
+  x += 90;
+  y += 90;
+
+  // 10 est la moitié de la taille de la balle.
+  // Cela centre le point de positionnement au centre de la balle.
+
+  balle.style.top  = (maxX * x / 180 - 10) + "px";
+  balle.style.left = (maxY * y / 180 - 10) + "px";
+}
+
+window.addEventListener('deviceorientation', handleOrientation);
+
+ +

Et voici le résultat en temps réel :

+ +
{{EmbedLiveSample("Exemple_d'orientation", '230', '260')}}
+ +
 
+ +
{{LiveSampleLink("Exemple_d'orientation", "Cliquez ici")}} pour ouvrir cet exemple dans une nouvelle fenêtre;  l'événement {{event("deviceorientation")}} ne marche pas dans les {{HTMLElement("iframe", "iframes")}} cross-origin dans tous les navigateurs.
+ +
 
+ +
+

Attention : Chrome et Firefox ne gèrent pas les angles de la même façon, certaines directions sur les axes sont inversées.

+
+ +

Traiter les événement de mouvement

+ +

Les événements de mouvement gèrent l'orientation de la même façon à l'exception près qu’ils portent un nom d’événement différent : {{event("devicemotion")}}

+ +
window.addEventListener("devicemotion", handleMotion, true);
+
+ +

Ce qui change réellement est l'information fournie par l'objet {{ domxref("DeviceMotionEvent") }} passée comme paramètre par la fonction HandleMotion.

+ +

Les événements de mouvement contiennent quatre propriétés :

+ + + +

Explication des valeurs de mouvement

+ +

L'objet {{ domxref("DeviceMotionEvent") }} fourni aux développeurs Web des informations sur la vitesse de changement d'orientation et de position de l'appareil. Les changements rapportés sont fournis pour les trois axes (voir Orientation et déplacement expliquées pour les détails).

+ +

Pour {{domxref("DeviceMotionEvent.acceleration","acceleration")}} et {{domxref("DeviceMotionEvent.accelerationIncludingGravity","accelerationIncludingGravity")}}, Les axes correspondent à :

+ + + +

Pour {{domxref("DeviceMotionEvent.rotationRate","rotationRate")}}, c'est un peu différent. L'information correspond à :

+ + + +

Au final, {{domxref("DeviceMotionEvent.interval","interval")}} représente l'intervalle de temps, en millisecondes, pour les données générées par l'appareil.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Spécification initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable()}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
{{domxref("DeviceOrientationEvent")}}7.03.6[1]
+ 6
{{CompatUnknown()}}{{CompatUnknown()}}{{CompatUnknown()}}
{{domxref("DeviceMotionEvent")}}{{CompatVersionUnknown()}}6{{CompatUnknown()}}{{CompatUnknown()}}{{CompatUnknown()}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
{{domxref("DeviceOrientationEvent")}}3.03.6[1]
+ 6
{{ CompatNo() }}{{ CompatNo() }}4.2
{{domxref("DeviceMotionEvent")}}{{ CompatVersionUnknown() }}6{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

Notes d'implementation pour Gecko 

+ +
    +
  1. Firefox 3.6, 4, et 5 supportent mozOrientation au lieu de l'événement standard {{domxref("DeviceOrientationEvent")}}.
  2. +
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/devicemotioneventrotationrate/alpha/index.html b/files/fr/web/api/devicemotioneventrotationrate/alpha/index.html new file mode 100644 index 0000000000..b5ea61916c --- /dev/null +++ b/files/fr/web/api/devicemotioneventrotationrate/alpha/index.html @@ -0,0 +1,103 @@ +--- +title: DeviceRotationRate.alpha +slug: Web/API/DeviceRotationRate/alpha +tags: + - API + - DOM + - Mobile + - Propriétés + - Vitesse + - axes + - rotation + - z +translation_of: Web/API/DeviceMotionEventRotationRate/alpha +translation_of_original: Web/API/DeviceRotationRate/alpha +--- +

{{ ApiRef("Device Orientation Events") }}

+ +

Cette propriété indique la vitesse de rotation autour de l'axe Z -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

+ +

Syntaxe

+ +
var alpha = deviceRotationRate.alpha;
+
+ +

Cette propriété est en lecture seule.

+ +

Valeur retournée

+ +
+
alpha
+
Un double indiquant la vitesse de rotation autour de l'axe Z, en degrés par seconde. Voir Détecter l'orientation de l'appareil pour plus de détails.
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
diff --git a/files/fr/web/api/devicemotioneventrotationrate/beta/index.html b/files/fr/web/api/devicemotioneventrotationrate/beta/index.html new file mode 100644 index 0000000000..75fa4b5ced --- /dev/null +++ b/files/fr/web/api/devicemotioneventrotationrate/beta/index.html @@ -0,0 +1,105 @@ +--- +title: DeviceRotationRate.beta +slug: Web/API/DeviceRotationRate/beta +tags: + - API + - DOM + - Orientation + - Propriétés + - Vitesse + - axes + - rotation + - x +translation_of: Web/API/DeviceMotionEventRotationRate/beta +translation_of_original: Web/API/DeviceRotationRate/beta +--- +

{{ ApiRef("Device Orientation Events") }}

+ +

Cette propriété indique la vitesse de rotation autour de l'axe X -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

+ +

Syntaxe

+ +
var beta = deviceRotationRate.beta;
+
+ +

Cette propriété est en lecture seule.

+ +

Valeur retournée

+ +
+
beta
+
Un double indiquant la vitesse de rotation autour de l'axe X, en degrés par seconde. Voir Détecter l'orientation de l'appareil pour plus de détails.
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
diff --git a/files/fr/web/api/devicemotioneventrotationrate/gamma/index.html b/files/fr/web/api/devicemotioneventrotationrate/gamma/index.html new file mode 100644 index 0000000000..bd4731d90c --- /dev/null +++ b/files/fr/web/api/devicemotioneventrotationrate/gamma/index.html @@ -0,0 +1,105 @@ +--- +title: DeviceRotationRate.gamma +slug: Web/API/DeviceRotationRate/gamma +tags: + - API + - DOM + - Mobile + - Orientation + - Propriétés + - axes + - rotation + - 'y' +translation_of: Web/API/DeviceMotionEventRotationRate/gamma +translation_of_original: Web/API/DeviceRotationRate/gamma +--- +

{{ ApiRef("Device Orientation Events") }}

+ +

Cette propriété indique la vitesse de rotation autour de l'axe Y -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

+ +

Syntaxe

+ +
var gamma = deviceRotationRate.gamma;
+
+ +

Cette propriété est en lecture seule.

+ +

Valeur retournée

+ +
+
gamma
+
Un double indiquant la vitesse de rotation autour de l'axe Y, en degrés par seconde. Voir Détecter l'orientation d'un appareil pour plus de détails.
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
diff --git a/files/fr/web/api/devicemotioneventrotationrate/index.html b/files/fr/web/api/devicemotioneventrotationrate/index.html new file mode 100644 index 0000000000..f6cf9b4988 --- /dev/null +++ b/files/fr/web/api/devicemotioneventrotationrate/index.html @@ -0,0 +1,100 @@ +--- +title: DeviceRotationRate +slug: Web/API/DeviceRotationRate +tags: + - API + - Coordonnées + - DOM + - Mobile + - Vitesse + - rotation +translation_of: Web/API/DeviceMotionEventRotationRate +translation_of_original: Web/API/DeviceRotationRate +--- +

{{ ApiRef("Device Orientation Events") }} {{SeeCompatTable}}

+ +

Un objet DeviceRotationRate fournit une information sur la vitesse avec laquelle un appareil est en rotation autour des 3 axes.

+ +

Propriétés

+ +
+
{{ domxref("DeviceRotationRate.alpha") }} {{readonlyInline}}
+
La vitesse de rotation autour de l'axe Z, en degrés par seconde.
+
{{ domxref("DeviceRotationRate.beta") }} {{readonlyInline}}
+
La vitesse de rotation autour de l'axe X, en degrés par seconde.
+
{{ domxref("DeviceRotationRate.gamma") }} {{readonlyInline}}
+
La vitesse de rotation autour de l'axe Y, en degrés par seconde.
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
diff --git a/files/fr/web/api/deviceorientationevent.absolute/index.html b/files/fr/web/api/deviceorientationevent.absolute/index.html deleted file mode 100644 index 3b1c6f593a..0000000000 --- a/files/fr/web/api/deviceorientationevent.absolute/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: DeviceOrientationEvent.absolute -slug: Web/API/DeviceOrientationEvent.absolute -translation_of: Web/API/DeviceOrientationEvent/absolute ---- -

{{ ApiRef() }}

- -

Sommaire

- -

Indique si l'appareil partage des données en référentiel absolut c'est à dire sur avec des cordonnées issu du référentiel terrestre, ou si il partage des données utilisant un référentiel arbitraire déterminé par l'appareil. Voir Orientation et mouvement expliqué pour plus de détails.

- -

Syntaxe

- -
var absolute = instanceOfDeviceOrientationEvent.absolute;
-
- -

DeviceOrientationEvent.absolute retourne un booléen :

- - - -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutsCommentaires
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Initial specification.
- -

Compatibilité entre les navigateurs

- -

{{ page("/en-US/docs/Web/API/DeviceOrientationEvent","Browser_compatibility") }}

- -

Voir aussi

- - - -

{{ event("deviceorientation") }}

diff --git a/files/fr/web/api/deviceorientationevent/absolute/index.html b/files/fr/web/api/deviceorientationevent/absolute/index.html new file mode 100644 index 0000000000..3b1c6f593a --- /dev/null +++ b/files/fr/web/api/deviceorientationevent/absolute/index.html @@ -0,0 +1,56 @@ +--- +title: DeviceOrientationEvent.absolute +slug: Web/API/DeviceOrientationEvent.absolute +translation_of: Web/API/DeviceOrientationEvent/absolute +--- +

{{ ApiRef() }}

+ +

Sommaire

+ +

Indique si l'appareil partage des données en référentiel absolut c'est à dire sur avec des cordonnées issu du référentiel terrestre, ou si il partage des données utilisant un référentiel arbitraire déterminé par l'appareil. Voir Orientation et mouvement expliqué pour plus de détails.

+ +

Syntaxe

+ +
var absolute = instanceOfDeviceOrientationEvent.absolute;
+
+ +

DeviceOrientationEvent.absolute retourne un booléen :

+ + + +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutsCommentaires
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Initial specification.
+ +

Compatibilité entre les navigateurs

+ +

{{ page("/en-US/docs/Web/API/DeviceOrientationEvent","Browser_compatibility") }}

+ +

Voir aussi

+ + + +

{{ event("deviceorientation") }}

diff --git a/files/fr/web/api/devicerotationrate/alpha/index.html b/files/fr/web/api/devicerotationrate/alpha/index.html deleted file mode 100644 index b5ea61916c..0000000000 --- a/files/fr/web/api/devicerotationrate/alpha/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: DeviceRotationRate.alpha -slug: Web/API/DeviceRotationRate/alpha -tags: - - API - - DOM - - Mobile - - Propriétés - - Vitesse - - axes - - rotation - - z -translation_of: Web/API/DeviceMotionEventRotationRate/alpha -translation_of_original: Web/API/DeviceRotationRate/alpha ---- -

{{ ApiRef("Device Orientation Events") }}

- -

Cette propriété indique la vitesse de rotation autour de l'axe Z -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

- -

Syntaxe

- -
var alpha = deviceRotationRate.alpha;
-
- -

Cette propriété est en lecture seule.

- -

Valeur retournée

- -
-
alpha
-
Un double indiquant la vitesse de rotation autour de l'axe Z, en degrés par seconde. Voir Détecter l'orientation de l'appareil pour plus de détails.
-
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/fr/web/api/devicerotationrate/beta/index.html b/files/fr/web/api/devicerotationrate/beta/index.html deleted file mode 100644 index 75fa4b5ced..0000000000 --- a/files/fr/web/api/devicerotationrate/beta/index.html +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: DeviceRotationRate.beta -slug: Web/API/DeviceRotationRate/beta -tags: - - API - - DOM - - Orientation - - Propriétés - - Vitesse - - axes - - rotation - - x -translation_of: Web/API/DeviceMotionEventRotationRate/beta -translation_of_original: Web/API/DeviceRotationRate/beta ---- -

{{ ApiRef("Device Orientation Events") }}

- -

Cette propriété indique la vitesse de rotation autour de l'axe X -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

- -

Syntaxe

- -
var beta = deviceRotationRate.beta;
-
- -

Cette propriété est en lecture seule.

- -

Valeur retournée

- -
-
beta
-
Un double indiquant la vitesse de rotation autour de l'axe X, en degrés par seconde. Voir Détecter l'orientation de l'appareil pour plus de détails.
-
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/fr/web/api/devicerotationrate/gamma/index.html b/files/fr/web/api/devicerotationrate/gamma/index.html deleted file mode 100644 index bd4731d90c..0000000000 --- a/files/fr/web/api/devicerotationrate/gamma/index.html +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: DeviceRotationRate.gamma -slug: Web/API/DeviceRotationRate/gamma -tags: - - API - - DOM - - Mobile - - Orientation - - Propriétés - - axes - - rotation - - 'y' -translation_of: Web/API/DeviceMotionEventRotationRate/gamma -translation_of_original: Web/API/DeviceRotationRate/gamma ---- -

{{ ApiRef("Device Orientation Events") }}

- -

Cette propriété indique la vitesse de rotation autour de l'axe Y -- en degrés par seconde -- dans un objet {{ domxref("DeviceRotationRate") }}.

- -

Syntaxe

- -
var gamma = deviceRotationRate.gamma;
-
- -

Cette propriété est en lecture seule.

- -

Valeur retournée

- -
-
gamma
-
Un double indiquant la vitesse de rotation autour de l'axe Y, en degrés par seconde. Voir Détecter l'orientation d'un appareil pour plus de détails.
-
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/fr/web/api/devicerotationrate/index.html b/files/fr/web/api/devicerotationrate/index.html deleted file mode 100644 index f6cf9b4988..0000000000 --- a/files/fr/web/api/devicerotationrate/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: DeviceRotationRate -slug: Web/API/DeviceRotationRate -tags: - - API - - Coordonnées - - DOM - - Mobile - - Vitesse - - rotation -translation_of: Web/API/DeviceMotionEventRotationRate -translation_of_original: Web/API/DeviceRotationRate ---- -

{{ ApiRef("Device Orientation Events") }} {{SeeCompatTable}}

- -

Un objet DeviceRotationRate fournit une information sur la vitesse avec laquelle un appareil est en rotation autour des 3 axes.

- -

Propriétés

- -
-
{{ domxref("DeviceRotationRate.alpha") }} {{readonlyInline}}
-
La vitesse de rotation autour de l'axe Z, en degrés par seconde.
-
{{ domxref("DeviceRotationRate.beta") }} {{readonlyInline}}
-
La vitesse de rotation autour de l'axe X, en degrés par seconde.
-
{{ domxref("DeviceRotationRate.gamma") }} {{readonlyInline}}
-
La vitesse de rotation autour de l'axe Y, en degrés par seconde.
-
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Device Orientation')}}{{Spec2('Device Orientation')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/fr/web/api/document/activeelement/index.html b/files/fr/web/api/document/activeelement/index.html deleted file mode 100644 index 5115a1135c..0000000000 --- a/files/fr/web/api/document/activeelement/index.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: document.activeElement -slug: Web/API/Document/activeElement -tags: - - Référence_du_DOM_Gecko -translation_of: Web/API/DocumentOrShadowRoot/activeElement -translation_of_original: Web/API/Document/activeElement ---- -

{{ ApiRef() }}

-

Résumé

-

Renvoie l'élément qui dispose actuellement du focus.

-

{{ Note("Cet attribut fait partie de la spécification HTML 5 encore en développement.") }}

-

Syntaxe

-
var elemCourant = document.activeElement;
-
-

Exemple

-

Spécification

- -

 

-

 

-
-  
-

{{ languages( { "en": "en/DOM/document.activeElement", "es": "es/DOM/element.activeElement", "ja": "ja/DOM/document.activeElement", "pl": "pl/DOM/document.activeElement" } ) }}

diff --git a/files/fr/web/api/document/anchors/index.html b/files/fr/web/api/document/anchors/index.html new file mode 100644 index 0000000000..09fadf1b61 --- /dev/null +++ b/files/fr/web/api/document/anchors/index.html @@ -0,0 +1,80 @@ +--- +title: Document.anchors +slug: Web/API/Document/Document.anchors +translation_of: Web/API/Document/anchors +--- +
{{APIRef("DOM")}} {{deprecated_header()}}
+ +

anchors retourne une liste de toutes les ancres du document.

+ +

Syntaxe

+ +
nodeList = document.anchors;
+
+ +

Exemple

+ +
if ( document.anchors.length >= 5 ) {
+  dump("Trop d'ancres trouvées !");
+  window.location = "http://www.google.com";
+}
+
+ +

L'exemple suivant remplit un tableau avec chaque ancre présente sur la page :

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8" />
+<title>Test</title>
+<script>
+function init() {
+  var toc = document.getElementById("toc");
+  var i, li, newAnchor;
+  for (i = 0; i < document.anchors.length; i++) {
+    li = document.createElement("li");
+    newAnchor = document.createElement('a');
+    newAnchor.href = "#" + document.anchors[i].name;
+    newAnchor.innerHTML = document.anchors[i].text;
+    li.appendChild(newAnchor);
+    toc.appendChild(li);
+  }
+}
+</script>
+
+</head>
+<body onload="init()">
+
+<h1>Title</h1>
+<h2><a name="contents">Contents</a></h2>
+<ul id="toc"></ul>
+
+<h2><a name="plants">Plants</a></h2>
+<ol>
+    <li>Apples</li>
+    <li>Oranges</li>
+    <li>Pears</li>
+</ol>
+
+<h2><a name="veggies">Veggies</a></h2>
+<ol>
+    <li>Carrots</li>
+    <li>Celery</li>
+    <li>Beats</li>
+</ol>
+
+</body>
+</html>
+
+ +

Voir dans JSFiddle

+ +

Notes

+ +

Pour des raisons de rétrocompatibilité, la liste d'ancres retournée contient seulement les ancres créées avec l'attribut name, pas celles créées avec l'attribut id.

+ +

Spécification

+ + diff --git a/files/fr/web/api/document/document.anchors/index.html b/files/fr/web/api/document/document.anchors/index.html deleted file mode 100644 index 09fadf1b61..0000000000 --- a/files/fr/web/api/document/document.anchors/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Document.anchors -slug: Web/API/Document/Document.anchors -translation_of: Web/API/Document/anchors ---- -
{{APIRef("DOM")}} {{deprecated_header()}}
- -

anchors retourne une liste de toutes les ancres du document.

- -

Syntaxe

- -
nodeList = document.anchors;
-
- -

Exemple

- -
if ( document.anchors.length >= 5 ) {
-  dump("Trop d'ancres trouvées !");
-  window.location = "http://www.google.com";
-}
-
- -

L'exemple suivant remplit un tableau avec chaque ancre présente sur la page :

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta charset="UTF-8" />
-<title>Test</title>
-<script>
-function init() {
-  var toc = document.getElementById("toc");
-  var i, li, newAnchor;
-  for (i = 0; i < document.anchors.length; i++) {
-    li = document.createElement("li");
-    newAnchor = document.createElement('a');
-    newAnchor.href = "#" + document.anchors[i].name;
-    newAnchor.innerHTML = document.anchors[i].text;
-    li.appendChild(newAnchor);
-    toc.appendChild(li);
-  }
-}
-</script>
-
-</head>
-<body onload="init()">
-
-<h1>Title</h1>
-<h2><a name="contents">Contents</a></h2>
-<ul id="toc"></ul>
-
-<h2><a name="plants">Plants</a></h2>
-<ol>
-    <li>Apples</li>
-    <li>Oranges</li>
-    <li>Pears</li>
-</ol>
-
-<h2><a name="veggies">Veggies</a></h2>
-<ol>
-    <li>Carrots</li>
-    <li>Celery</li>
-    <li>Beats</li>
-</ol>
-
-</body>
-</html>
-
- -

Voir dans JSFiddle

- -

Notes

- -

Pour des raisons de rétrocompatibilité, la liste d'ancres retournée contient seulement les ancres créées avec l'attribut name, pas celles créées avec l'attribut id.

- -

Spécification

- - diff --git a/files/fr/web/api/document/elementfrompoint/index.html b/files/fr/web/api/document/elementfrompoint/index.html deleted file mode 100644 index 493d7a55a1..0000000000 --- a/files/fr/web/api/document/elementfrompoint/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: document.elementFromPoint -slug: Web/API/Document/elementFromPoint -tags: - - Référence_du_DOM_Gecko -translation_of: Web/API/DocumentOrShadowRoot/elementFromPoint -translation_of_original: Web/API/Document/elementFromPoint ---- -

{{ ApiRef() }}

-

Résumé

-

Renvoie l'élément visible au point donné, spécifié relativement au point supérieur gauche visible dans le document.

-

Syntaxe

-
element = document.elementFromPoint(x,y);
-
-

where

- -

Exemple

-
<html>
-<head>
-<title>Exemple d'utilisation d'elementFromPoint</title>
-
-<script type="text/javascript">
-
-function changeColor(newColor)
-{
- elem = document.elementFromPoint(2, 2);
- elem.style.color = newColor;
-}
-</script>
-</head>
-
-<body>
-<p id="para1">Un peu de texte ici</p>
-<button onclick="changeColor('blue');">bleu</button>
-<button onclick="changeColor('red');">rouge</button>
-</body>
-</html>
-
-

Notes

-

Si l'élément au point spécifié appartient à un autre document (par exemple, les sous-document d'un iframe), l'élément dans le DOM du document appelant (l'iframe lui-même) est renvoyé. Si l'élément au point donné est anonyme ou du contenu généré par XBL, comme la barre de défilement d'une boîte de texte, le premier élément parent non anonyme (par exemple, la boîte de texte) est renvoyé.

-

Si le point spécifié est en dehors de la portion visible du document ou que l'une ou l'autre des coordonnées est négative, le résultat est NULL.

-

{{ Note("Les appelants qui sont des documents XUL devraient attendre que l\'évènement onload se soit déclenché avant d\'appeler cette méthode.") }}

-

Spécification

- -

 

-
-  
-

{{ languages( { "en": "en/DOM/document.elementFromPoint", "es": "es/DOM/document.elementFromPoint", "ja": "ja/DOM/document.elementFromPoint" } ) }}

diff --git a/files/fr/web/api/document/getselection/index.html b/files/fr/web/api/document/getselection/index.html deleted file mode 100644 index 9352399ada..0000000000 --- a/files/fr/web/api/document/getselection/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: document.getSelection -slug: Web/API/Document/getSelection -tags: - - API - - DOM - - Méthodes - - Reference - - Selection -translation_of: Web/API/DocumentOrShadowRoot/getSelection -translation_of_original: Web/API/Document/getSelection ---- -

{{APIRef("DOM")}}

- -

Cette méthode fonctionne de manière identique à la méthode {{domxref ("Window.getSelection()")}} ; elle renvoie un objet {{domxref ("Selection")}} représentant le texte actuellement sélectionné dans le document.

diff --git a/files/fr/web/api/document/readystatechange_event/index.html b/files/fr/web/api/document/readystatechange_event/index.html new file mode 100644 index 0000000000..f4adf81f7a --- /dev/null +++ b/files/fr/web/api/document/readystatechange_event/index.html @@ -0,0 +1,87 @@ +--- +title: readystatechange +slug: Web/Events/readystatechange +translation_of: Web/API/Document/readystatechange_event +--- +

{{ApiRef}}

+ +

L'événement readystatechange est déclenché lorsque l'attribut readyState d'un document a changé.

+ +

Information générale

+ +
+
Specification
+
HTML5
+
Interface
+
Event
+
Bubbles
+
No
+
Cancelable
+
No
+
Target
+
Document
+
Default Action
+
None.
+
+ +

propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
+ +

exemple

+ +
document.readyState === "complete";
+// true
+
+
+//alternative à DOMContentLoaded
+document.onreadystatechange = function () {
+    if (document.readyState == "interactive") {
+        initApplication();
+    }
+}
+
+ + + +

Cet événement a longtemps été soutenue par Internet Explorer et peut être utilisé comme une alternative à l'evenement DOMContentLoaded (voir la note [2] de la section Navigateurs compatibles).

+ +

Les événements liés

+ + diff --git a/files/fr/web/api/document/stylesheets/index.html b/files/fr/web/api/document/stylesheets/index.html deleted file mode 100644 index 0c607adc5f..0000000000 --- a/files/fr/web/api/document/stylesheets/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Document.styleSheets -slug: Web/API/Document/styleSheets -translation_of: Web/API/DocumentOrShadowRoot/styleSheets -translation_of_original: Web/API/Document/styleSheets ---- -
{{APIRef}}
- -
La propriété Document.styleSheets est en lecture seule et retourne une liste {{domxref("StyleSheetList")}} d'objets {{domxref("StyleSheet")}}, qui font référence à l'ensemble des feuilles de style contenues ou embarquées dans le document.
- -
 
- -

Syntaxe

- -
var styleSheetList = document.styleSheets;
-
- -

L'objet retourné est une liste {{domxref("StyleSheetList")}}.

- -

Il s'agit d'une collection ordonnée d'objets {{domxref("StyleSheet")}}. styleSheetList.item(index) ou  styleSheetList{{ mediawiki.External('index') }} retourne un seul objet stylesheet par son index (index débute par 0).

- -

Spécification

- - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('CSSOM', '#dom-document-stylesheets', 'styleSheets')}}{{Spec2('CSSOM')}} 
{{SpecName('DOM2 Style', 'stylesheets.html#StyleSheets-DocumentStyle-styleSheets', 'styleSheets')}}{{Spec2('DOM2 Style')}} 
- -

Voir aussi

- - - - diff --git a/files/fr/web/api/document_object_model/events/index.html b/files/fr/web/api/document_object_model/events/index.html new file mode 100644 index 0000000000..cd96a7446c --- /dev/null +++ b/files/fr/web/api/document_object_model/events/index.html @@ -0,0 +1,74 @@ +--- +title: Les évènements et le DOM +slug: Web/API/Document_Object_Model/Les_évènements_et_le_DOM +tags: + - API + - DOM + - Guide + - évènements +translation_of: Web/API/Document_Object_Model/Events +--- +

Introduction

+ +

Ce chapitre décrit le modèle d'événement DOM. L'interface Event elle-même est décrite, ainsi que les interfaces pour l'enregistrement des évènements sur les noeuds dans le DOM, les écouteurs d'évènements et d'autres exemples montrant les relations des différentes interfaces d'évènements entre elles.

+ +

Il existe un excellent diagramme qui explique clairement les trois phases du flux d'évènements à travers le DOM dans le document sur les évènements DOM Niveau 3.

+ +

Voir aussi l'exemple 5 : Propagation des évènements dans le chapitre "Exemples" pour des exemples détaillés sur le déplacement des évènements à travers le DOM.

+ +

Enregistrement des écouteurs d'évènements

+ +

Il y a 3 moyens d'enregistrer les gestionnaires d'évènements pour un élément DOM.

+ +

EventTarget.addEventListener

+ +
// Supposons que myButton est un élément de bouton
+myButton.addEventListener('click', function(){alert('Hello world');}, false);
+
+ +

C'est la méthode à utiliser dans les pages web modernes.

+ +

Note : Internet Explorer 6-8 ne prend pas en charge cette méthode, il offre une API similaire {{domxref("EventTarget.attachEvent")}} à la place. Pour la compatibilité entre navigateurs, utilisez l'une des nombreuses bibliothèques JavaScript disponibles.

+ +

Plus de détails peuvent être trouvés sur la page de référence {{domxref("EventTarget.addEventListener")}}.

+ +

attribut HTML

+ +
<button onclick="alert('Hello world!')">
+
+ +

Le code JavaScript de l'attribut est passé à l'objet évènement par le paramètre event. La valeur renvoyée est traitée d'une façon spéciale décrite dans la spécification HTML.

+ +

Ce moyen devrait être évité. Cela rend le balisage plus grand et moins lisible. Les aspects de contenu / structure et comportement ne sont pas bien séparés, rendant un bogue plus difficile à trouver.

+ +

Propriétés d'un élément DOM

+ +
// Supposons que myButton est un élément de bouton
+myButton.onclick = function(event){alert('Hello world');};
+
+ +

La fonction peut être définie pour prendre un paramètre d'event. La valeur renvoyée est traitée de façon spéciale décrite dans la spécification HTML.

+ +

Le problème avec cette méthode est qu'un seul gestionnaire peut être défini par élément et par évènement.

+ +

Accès aux interfaces d'évènements

+ +

Les gestionnaires d'évènements peuvent être attachés à divers objets y compris les éléments DOM, le document, l'objet fenêtre, etc. Lorsqu'un évènement se produit, un objet évènement est créé et passé séquentiellement aux écouteurs d'évènements.

+ +

L'interface {{domxref("Event")}} est accessible à partir de la fonction gestionnaire, via l'objet événement passé en premier argument. L'exemple simple suivant montre comment un objet d'événement est transmis à la fonction de gestionnaire d'événements et peut être utilisé à partir d'une telle fonction.

+ +
function foo(evt) {
+  // le paramètre evt est automatiquement assigné à l'objet évènement
+  alert(evt);
+}
+table_el.onclick = foo;
+
+ + + + diff --git a/files/fr/web/api/document_object_model/examples/index.html b/files/fr/web/api/document_object_model/examples/index.html new file mode 100644 index 0000000000..08bd432a1e --- /dev/null +++ b/files/fr/web/api/document_object_model/examples/index.html @@ -0,0 +1,369 @@ +--- +title: Exemples +slug: Web/API/Document_Object_Model/Exemples +tags: + - DOM + - Exemples +translation_of: Web/API/Document_Object_Model/Examples +--- +

Cette page présente quelques exemples plus détaillés de développement Web et XML utilisant le DOM. Partout où c'est possible, les exemples utilisent des API courantes, des astuces et des modèles en JavaScript pour manipuler l'objet de document.

+ +

Exemple 1 : height (hauteur) et width (largeur)

+ +

L'exemple qui suit montre l'utilisation des propriétés height et width pour dimensionner des images de diverses tailles :

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>width/height example</title>
+<script>
+function init() {
+  var arrImages = new Array(3);
+
+  arrImages[0] = document.getElementById("image1");
+  arrImages[1] = document.getElementById("image2");
+  arrImages[2] = document.getElementById("image3");
+
+  var objOutput = document.getElementById("output");
+  var strHtml = "<ul>";
+
+  for (var i = 0; i < arrImages.length; i++) {
+    strHtml += "<li>image" + (i+1) +
+            ": height=" + arrImages[i].height +
+            ", width=" + arrImages[i].width +
+            ", style.height=" + arrImages[i].style.height +
+            ", style.width=" + arrImages[i].style.width +
+            "<\/li>";
+  }
+
+  strHtml += "<\/ul>";
+
+  objOutput.innerHTML = strHtml;
+}
+</script>
+</head>
+<body onload="init();">
+
+<p>Image 1: no height, width, or style
+  <img id="image1" src="http://www.mozilla.org/images/mozilla-banner.gif">
+</p>
+
+<p>Image 2: height="50", width="500", but no style
+  <img id="image2"
+       src="http://www.mozilla.org/images/mozilla-banner.gif"
+       height="50" width="500">
+</p>
+
+<p>Image 3: no height, width, but style="height: 50px; width: 500px;"
+  <img id="image3"
+       src="http://www.mozilla.org/images/mozilla-banner.gif"
+       style="height: 50px; width: 500px;">
+</p>
+
+<div id="output"> </div>
+</body>
+</html>
+ +

Exemple 2 : attributs d'image

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Modifying an image border</title>
+
+<script>
+function setBorderWidth(width) {
+  document.getElementById("img1").style.borderWidth = width + "px";
+}
+</script>
+</head>
+
+<body>
+<p>
+  <img id="img1"
+       src="image1.gif"
+       style="border: 5px solid green;"
+       width="100" height="100" alt="border test">
+</p>
+
+<form name="FormName">
+  <input type="button" value="Make border 20px-wide" onclick="setBorderWidth(20);" />
+  <input type="button" value="Make border 5px-wide"  onclick="setBorderWidth(5);" />
+</form>
+
+</body>
+</html>
+ +

Exemple 3 : manipulation de styles

+ +

Dans cet exemple simple, on accède à certaines propriétés basiques de style d'un élément de paragraphe HTML à l'aide de son objet style. L'objet style de l'élément et ses propriétés de style CSS peuvent être récupérés et définis depuis le DOM. Dans ce cas-ci, les styles individuels sont manipulés directement. Dans l'exemple suivant (l'exemple 4), on utilisera les feuilles de style et leurs règles pour changer les styles de documents entiers.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Changing color and font-size example</title>
+
+<script>
+function changeText() {
+  var p = document.getElementById("pid");
+
+  p.style.color = "blue"
+  p.style.fontSize = "18pt"
+}
+</script>
+</head>
+<body>
+
+<p id="pid" onclick="window.location.href = 'http://www.cnn.com/';">linker</p>
+
+<form>
+  <p><input value="rec" type="button" onclick="changeText();" /></p>
+</form>
+
+</body>
+</html>
+ +

Exemple 4 : utilisation de feuilles de style

+ +

La propriété styleSheets de l'objet document renvoie une liste des feuilles de style qui ont été chargées pour ce document. On peut accéder à ces feuilles de style et leurs règles individuelles à l'aide des objets stylesheet, style et CSSRule, comme montré dans cet exemple qui affiche tous les sélecteurs de règles de style dans la console.

+ +
var ss = document.styleSheets;
+
+for(var i = 0; i < ss.length; i++) {
+  for(var j = 0; j < ss[i].cssRules.length; j++) {
+    dump( ss[i].cssRules[j].selectorText + "\n" );
+  }
+}
+ +

Pour un document avec une seule feuille de style dans laquelle les trois règles suivantes sont définies :

+ +
BODY { background-color: darkblue; }
+P { font-face: Arial; font-size: 10pt; margin-left: .125in; }
+#lumpy { display: none; }
+
+ +

Ce script affiche les lignes suivantes :

+ +
BODY
+P
+#LUMPY
+
+ +

Exemple 5 : propagation d'évènements

+ +

Cet exemple montre comment les évènements se déclenchent et sont gérés dans le DOM d'une manière très simple. Lorsque l'élément BODY de ce document HTML est chargé, un écouteur d'évènement est enregistré sur la ligne supérieure de l'élément TABLE. Celui-ci gère l'évènement en exécutant la fonction stopEvent, qui modifie la valeur de la cellule inférieure du tableau.

+ +

Cependant, stopEvent appelle également une méthode d'objet event, {{domxref("event.stopPropagation")}} , qui empêche l'évènement de se propager (bubbling) plus haut dans le DOM. Notez que le tableau lui-même dispose d'un gestionnaire d'évènement {{domxref("element.onclick","onclick")}} qui devrait afficher un message lorsqu'on clique sur le tableau. Mais comme la méthode stopEvent a interrompu la propagation, après que les données du tableau aient été mises à jour, la phase évènementielle est effectivement arrêtée et un message d'alerte est affiché pour le confirmer.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>Event Propagation</title>
+
+<style>
+#t-daddy { border: 1px solid red }
+#c1 { background-color: pink; }
+</style>
+
+<script>
+function stopEvent(ev) {
+  c2 = document.getElementById("c2");
+  c2.innerHTML = "hello";
+
+  // cela devrait empêcher t-daddy d'obtenir le click.
+  ev.stopPropagation();
+  alert("event propagation halted.");
+}
+
+function load() {
+  elem = document.getElementById("tbl1");
+  elem.addEventListener("click", stopEvent, false);
+}
+</script>
+</head>
+
+<body onload="load();">
+
+<table id="t-daddy" onclick="alert('hi');">
+  <tr id="tbl1">
+    <td id="c1">one</td>
+  </tr>
+  <tr>
+    <td id="c2">two</td>
+  </tr>
+</table>
+
+</body>
+</html>
+ +

Exemple 6 : getComputedStyle

+ +

Cet exemple montre comment la méthode {{domxref("window.getComputedStyle")}} peut être utilisée pour obtenir les styles d'un élément qui ne sont pas définis dans l'attribut style ou à l'aide de JavaScript (c'est-à-dire, elem.style.backgroundColor="rgb(173, 216, 230)"). Ces derniers types de styles peuvent être récupérés avec la propriété plus directe {{domxref("element.style", "elt.style")}} , dont les propriétés sont listées dans la liste des propriétés DOM CSS.

+ +

getComputedStyle() renvoie un objet ComputedCSSStyleDeclaration, dont les propriétés de style individuelles peuvent être référencées à l'aide de sa méthode getPropertyValue() comme montré dans l'exemple suivant.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<title>getComputedStyle example</title>
+
+<script>
+function cStyles() {
+  var RefDiv = document.getElementById("d1");
+  var txtHeight = document.getElementById("t1");
+  var h_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height");
+
+  txtHeight.value = h_style;
+
+  var txtWidth = document.getElementById("t2");
+  var w_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("width");
+
+  txtWidth.value = w_style;
+
+  var txtBackgroundColor = document.getElementById("t3");
+  var b_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("background-color");
+
+  txtBackgroundColor.value = b_style;
+}
+</script>
+
+<style>
+#d1 {
+  margin-left: 10px;
+  background-color: rgb(173, 216, 230);
+  height: 20px;
+  max-width: 20px;
+}
+</style>
+
+</head>
+
+<body>
+
+<div id="d1">&nbsp;</div>
+
+<form action="">
+  <p>
+    <button type="button" onclick="cStyles();">getComputedStyle</button>
+    height<input id="t1" type="text" value="1" />
+    max-width<input id="t2" type="text" value="2" />
+    bg-color<input id="t3" type="text" value="3" />
+  </p>
+</form>
+
+</body>
+</html>
+ +

Exemple 7 : affichage des propriétés d'un objet event

+ +

Cet exemple utilise des méthodes DOM pour afficher les propriétés d'un objet {{domxref("window.onload")}} {{domxref("event")}}   et leurs valeurs dans un tableau. Il montre également une technique utile utilisant une boucle for..in pour parcourir les propriétés d'un objet et obtenir leurs valeurs.

+ +

Les propriétés des objets event diffèrent sensiblement entre les différents navigateurs, la spécification norme DOM liste les propriétés standard, mais beaucoup de navigateurs ont ajouté un bon nombre de propriétés supplémentaires.

+ +

Placez le code qui suit dans une fichier texte vide et chargez-le dans différents navigateurs, vous serez surpris des différences entre le nombre et le nom des propriétés. Vous pouvez également ajouter quelques éléments à la page et appeler cette fonction depuis d'autres gestionnaires d'évènements.

+ +
<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="utf-8"/>
+<title>Show Event properties</title>
+
+<style>
+table { border-collapse: collapse; }
+thead { font-weight: bold; }
+td { padding: 2px 10px 2px 10px; }
+
+.odd { background-color: #efdfef; }
+.even { background-color: #ffffff; }
+</style>
+
+<script>
+
+function showEventProperties(e) {
+  function addCell(row, text) {
+    var cell = row.insertCell(-1);
+    cell.appendChild(document.createTextNode(text));
+  }
+
+  var e = e || window.event;
+  document.getElementById('eventType').innerHTML = e.type;
+
+  var table = document.createElement('table');
+  var thead = table.createTHead();
+  var row = thead.insertRow(-1);
+  var lableList = ['#', 'Property', 'Value'];
+  var len = lableList.length;
+
+  for (var i=0; i<len; i++) {
+    addCell(row, lableList[i]);
+  }
+
+  var tbody = document.createElement('tbody');
+  table.appendChild(tbody);
+
+  for (var p in e) {
+    row = tbody.insertRow(-1);
+    row.className = (row.rowIndex % 2)? 'odd':'even';
+    addCell(row, row.rowIndex);
+    addCell(row, p);
+    addCell(row, e[p]);
+  }
+
+  document.body.appendChild(table);
+}
+
+window.onload = function(event){
+  showEventProperties(event);
+}
+</script>
+</head>
+
+<body>
+<h1>Properties of the DOM <span id="eventType"></span> Event Object</h1>
+</body>
+
+</html>
+ +

Exemple 8 : utilisation de l'interface DOM Table

+ +

L'interface DOM HTMLTableElement fournit certaines méthodes utilitaires permettant de créer et de manipuler des tableaux. Deux méthodes utilisées fréquemment sont {{domxref("HTMLTableElement.insertRow")}} et {{domxref("tableRow.insertCell")}}

+ +

Pour ajouter une ligne et quelques cellules à un tableau existant :

+ +
<table id="table0">
+ <tr>
+  <td>Row 0 Cell 0</td>
+  <td>Row 0 Cell 1</td>
+ </tr>
+</table>
+
+<script>
+var table = document.getElementById('table0');
+var row = table.insertRow(-1);
+var cell,
+    text;
+
+for (var i = 0; i < 2; i++) {
+  cell = row.insertCell(-1);
+  text = 'Row ' + row.rowIndex + ' Cell ' + i;
+  cell.appendChild(document.createTextNode(text));
+}
+</script>
+ +

Notes

+ + + + + + diff --git a/files/fr/web/api/document_object_model/exemples/index.html b/files/fr/web/api/document_object_model/exemples/index.html deleted file mode 100644 index 08bd432a1e..0000000000 --- a/files/fr/web/api/document_object_model/exemples/index.html +++ /dev/null @@ -1,369 +0,0 @@ ---- -title: Exemples -slug: Web/API/Document_Object_Model/Exemples -tags: - - DOM - - Exemples -translation_of: Web/API/Document_Object_Model/Examples ---- -

Cette page présente quelques exemples plus détaillés de développement Web et XML utilisant le DOM. Partout où c'est possible, les exemples utilisent des API courantes, des astuces et des modèles en JavaScript pour manipuler l'objet de document.

- -

Exemple 1 : height (hauteur) et width (largeur)

- -

L'exemple qui suit montre l'utilisation des propriétés height et width pour dimensionner des images de diverses tailles :

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<title>width/height example</title>
-<script>
-function init() {
-  var arrImages = new Array(3);
-
-  arrImages[0] = document.getElementById("image1");
-  arrImages[1] = document.getElementById("image2");
-  arrImages[2] = document.getElementById("image3");
-
-  var objOutput = document.getElementById("output");
-  var strHtml = "<ul>";
-
-  for (var i = 0; i < arrImages.length; i++) {
-    strHtml += "<li>image" + (i+1) +
-            ": height=" + arrImages[i].height +
-            ", width=" + arrImages[i].width +
-            ", style.height=" + arrImages[i].style.height +
-            ", style.width=" + arrImages[i].style.width +
-            "<\/li>";
-  }
-
-  strHtml += "<\/ul>";
-
-  objOutput.innerHTML = strHtml;
-}
-</script>
-</head>
-<body onload="init();">
-
-<p>Image 1: no height, width, or style
-  <img id="image1" src="http://www.mozilla.org/images/mozilla-banner.gif">
-</p>
-
-<p>Image 2: height="50", width="500", but no style
-  <img id="image2"
-       src="http://www.mozilla.org/images/mozilla-banner.gif"
-       height="50" width="500">
-</p>
-
-<p>Image 3: no height, width, but style="height: 50px; width: 500px;"
-  <img id="image3"
-       src="http://www.mozilla.org/images/mozilla-banner.gif"
-       style="height: 50px; width: 500px;">
-</p>
-
-<div id="output"> </div>
-</body>
-</html>
- -

Exemple 2 : attributs d'image

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<title>Modifying an image border</title>
-
-<script>
-function setBorderWidth(width) {
-  document.getElementById("img1").style.borderWidth = width + "px";
-}
-</script>
-</head>
-
-<body>
-<p>
-  <img id="img1"
-       src="image1.gif"
-       style="border: 5px solid green;"
-       width="100" height="100" alt="border test">
-</p>
-
-<form name="FormName">
-  <input type="button" value="Make border 20px-wide" onclick="setBorderWidth(20);" />
-  <input type="button" value="Make border 5px-wide"  onclick="setBorderWidth(5);" />
-</form>
-
-</body>
-</html>
- -

Exemple 3 : manipulation de styles

- -

Dans cet exemple simple, on accède à certaines propriétés basiques de style d'un élément de paragraphe HTML à l'aide de son objet style. L'objet style de l'élément et ses propriétés de style CSS peuvent être récupérés et définis depuis le DOM. Dans ce cas-ci, les styles individuels sont manipulés directement. Dans l'exemple suivant (l'exemple 4), on utilisera les feuilles de style et leurs règles pour changer les styles de documents entiers.

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<title>Changing color and font-size example</title>
-
-<script>
-function changeText() {
-  var p = document.getElementById("pid");
-
-  p.style.color = "blue"
-  p.style.fontSize = "18pt"
-}
-</script>
-</head>
-<body>
-
-<p id="pid" onclick="window.location.href = 'http://www.cnn.com/';">linker</p>
-
-<form>
-  <p><input value="rec" type="button" onclick="changeText();" /></p>
-</form>
-
-</body>
-</html>
- -

Exemple 4 : utilisation de feuilles de style

- -

La propriété styleSheets de l'objet document renvoie une liste des feuilles de style qui ont été chargées pour ce document. On peut accéder à ces feuilles de style et leurs règles individuelles à l'aide des objets stylesheet, style et CSSRule, comme montré dans cet exemple qui affiche tous les sélecteurs de règles de style dans la console.

- -
var ss = document.styleSheets;
-
-for(var i = 0; i < ss.length; i++) {
-  for(var j = 0; j < ss[i].cssRules.length; j++) {
-    dump( ss[i].cssRules[j].selectorText + "\n" );
-  }
-}
- -

Pour un document avec une seule feuille de style dans laquelle les trois règles suivantes sont définies :

- -
BODY { background-color: darkblue; }
-P { font-face: Arial; font-size: 10pt; margin-left: .125in; }
-#lumpy { display: none; }
-
- -

Ce script affiche les lignes suivantes :

- -
BODY
-P
-#LUMPY
-
- -

Exemple 5 : propagation d'évènements

- -

Cet exemple montre comment les évènements se déclenchent et sont gérés dans le DOM d'une manière très simple. Lorsque l'élément BODY de ce document HTML est chargé, un écouteur d'évènement est enregistré sur la ligne supérieure de l'élément TABLE. Celui-ci gère l'évènement en exécutant la fonction stopEvent, qui modifie la valeur de la cellule inférieure du tableau.

- -

Cependant, stopEvent appelle également une méthode d'objet event, {{domxref("event.stopPropagation")}} , qui empêche l'évènement de se propager (bubbling) plus haut dans le DOM. Notez que le tableau lui-même dispose d'un gestionnaire d'évènement {{domxref("element.onclick","onclick")}} qui devrait afficher un message lorsqu'on clique sur le tableau. Mais comme la méthode stopEvent a interrompu la propagation, après que les données du tableau aient été mises à jour, la phase évènementielle est effectivement arrêtée et un message d'alerte est affiché pour le confirmer.

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<title>Event Propagation</title>
-
-<style>
-#t-daddy { border: 1px solid red }
-#c1 { background-color: pink; }
-</style>
-
-<script>
-function stopEvent(ev) {
-  c2 = document.getElementById("c2");
-  c2.innerHTML = "hello";
-
-  // cela devrait empêcher t-daddy d'obtenir le click.
-  ev.stopPropagation();
-  alert("event propagation halted.");
-}
-
-function load() {
-  elem = document.getElementById("tbl1");
-  elem.addEventListener("click", stopEvent, false);
-}
-</script>
-</head>
-
-<body onload="load();">
-
-<table id="t-daddy" onclick="alert('hi');">
-  <tr id="tbl1">
-    <td id="c1">one</td>
-  </tr>
-  <tr>
-    <td id="c2">two</td>
-  </tr>
-</table>
-
-</body>
-</html>
- -

Exemple 6 : getComputedStyle

- -

Cet exemple montre comment la méthode {{domxref("window.getComputedStyle")}} peut être utilisée pour obtenir les styles d'un élément qui ne sont pas définis dans l'attribut style ou à l'aide de JavaScript (c'est-à-dire, elem.style.backgroundColor="rgb(173, 216, 230)"). Ces derniers types de styles peuvent être récupérés avec la propriété plus directe {{domxref("element.style", "elt.style")}} , dont les propriétés sont listées dans la liste des propriétés DOM CSS.

- -

getComputedStyle() renvoie un objet ComputedCSSStyleDeclaration, dont les propriétés de style individuelles peuvent être référencées à l'aide de sa méthode getPropertyValue() comme montré dans l'exemple suivant.

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-
-<title>getComputedStyle example</title>
-
-<script>
-function cStyles() {
-  var RefDiv = document.getElementById("d1");
-  var txtHeight = document.getElementById("t1");
-  var h_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("height");
-
-  txtHeight.value = h_style;
-
-  var txtWidth = document.getElementById("t2");
-  var w_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("width");
-
-  txtWidth.value = w_style;
-
-  var txtBackgroundColor = document.getElementById("t3");
-  var b_style = document.defaultView.getComputedStyle(RefDiv, null).getPropertyValue("background-color");
-
-  txtBackgroundColor.value = b_style;
-}
-</script>
-
-<style>
-#d1 {
-  margin-left: 10px;
-  background-color: rgb(173, 216, 230);
-  height: 20px;
-  max-width: 20px;
-}
-</style>
-
-</head>
-
-<body>
-
-<div id="d1">&nbsp;</div>
-
-<form action="">
-  <p>
-    <button type="button" onclick="cStyles();">getComputedStyle</button>
-    height<input id="t1" type="text" value="1" />
-    max-width<input id="t2" type="text" value="2" />
-    bg-color<input id="t3" type="text" value="3" />
-  </p>
-</form>
-
-</body>
-</html>
- -

Exemple 7 : affichage des propriétés d'un objet event

- -

Cet exemple utilise des méthodes DOM pour afficher les propriétés d'un objet {{domxref("window.onload")}} {{domxref("event")}}   et leurs valeurs dans un tableau. Il montre également une technique utile utilisant une boucle for..in pour parcourir les propriétés d'un objet et obtenir leurs valeurs.

- -

Les propriétés des objets event diffèrent sensiblement entre les différents navigateurs, la spécification norme DOM liste les propriétés standard, mais beaucoup de navigateurs ont ajouté un bon nombre de propriétés supplémentaires.

- -

Placez le code qui suit dans une fichier texte vide et chargez-le dans différents navigateurs, vous serez surpris des différences entre le nombre et le nom des propriétés. Vous pouvez également ajouter quelques éléments à la page et appeler cette fonction depuis d'autres gestionnaires d'évènements.

- -
<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta charset="utf-8"/>
-<title>Show Event properties</title>
-
-<style>
-table { border-collapse: collapse; }
-thead { font-weight: bold; }
-td { padding: 2px 10px 2px 10px; }
-
-.odd { background-color: #efdfef; }
-.even { background-color: #ffffff; }
-</style>
-
-<script>
-
-function showEventProperties(e) {
-  function addCell(row, text) {
-    var cell = row.insertCell(-1);
-    cell.appendChild(document.createTextNode(text));
-  }
-
-  var e = e || window.event;
-  document.getElementById('eventType').innerHTML = e.type;
-
-  var table = document.createElement('table');
-  var thead = table.createTHead();
-  var row = thead.insertRow(-1);
-  var lableList = ['#', 'Property', 'Value'];
-  var len = lableList.length;
-
-  for (var i=0; i<len; i++) {
-    addCell(row, lableList[i]);
-  }
-
-  var tbody = document.createElement('tbody');
-  table.appendChild(tbody);
-
-  for (var p in e) {
-    row = tbody.insertRow(-1);
-    row.className = (row.rowIndex % 2)? 'odd':'even';
-    addCell(row, row.rowIndex);
-    addCell(row, p);
-    addCell(row, e[p]);
-  }
-
-  document.body.appendChild(table);
-}
-
-window.onload = function(event){
-  showEventProperties(event);
-}
-</script>
-</head>
-
-<body>
-<h1>Properties of the DOM <span id="eventType"></span> Event Object</h1>
-</body>
-
-</html>
- -

Exemple 8 : utilisation de l'interface DOM Table

- -

L'interface DOM HTMLTableElement fournit certaines méthodes utilitaires permettant de créer et de manipuler des tableaux. Deux méthodes utilisées fréquemment sont {{domxref("HTMLTableElement.insertRow")}} et {{domxref("tableRow.insertCell")}}

- -

Pour ajouter une ligne et quelques cellules à un tableau existant :

- -
<table id="table0">
- <tr>
-  <td>Row 0 Cell 0</td>
-  <td>Row 0 Cell 1</td>
- </tr>
-</table>
-
-<script>
-var table = document.getElementById('table0');
-var row = table.insertRow(-1);
-var cell,
-    text;
-
-for (var i = 0; i < 2; i++) {
-  cell = row.insertCell(-1);
-  text = 'Row ' + row.rowIndex + ' Cell ' + i;
-  cell.appendChild(document.createTextNode(text));
-}
-</script>
- -

Notes

- - - - - - diff --git a/files/fr/web/api/document_object_model/how_to_create_a_dom_tree/index.html b/files/fr/web/api/document_object_model/how_to_create_a_dom_tree/index.html new file mode 100644 index 0000000000..9e74fa2870 --- /dev/null +++ b/files/fr/web/api/document_object_model/how_to_create_a_dom_tree/index.html @@ -0,0 +1,146 @@ +--- +title: Comment créer un arbre DOM +slug: Comment_créer_un_arbre_DOM +tags: + - AJAX + - DOM + - Extensions +translation_of: Web/API/Document_object_model/How_to_create_a_DOM_tree +--- +

 

+ +

Cet article décrit comment utiliser l'API DOM Core (en) en JavaScript pour créer et modifier des objets DOM. Il concerne toutes les applications basées sur Gecko (telles que Firefox) sur du code avec privilèges (par exemple les extensions) ou sans privilège (des pages Web).

+ +

Créer dynamiquement un arbre DOM

+ +

Considérons le document XML suivant :

+ +
<?xml version="1.0"?>
+<people>
+  <person first-name="eric" middle-initial="H" last-name="jung">
+    <address street="321 south st" city="denver" state="co" country="usa"/>
+    <address street="123 main st" city="arlington" state="ma" country="usa"/>
+  </person>
+
+  <person first-name="jed" last-name="brown">
+    <address street="321 north st" city="atlanta" state="ga" country="usa"/>
+    <address street="123 west st" city="seattle" state="wa" country="usa"/>
+    <address street="321 south avenue" city="denver" state="co" country="usa"/>
+  </person>
+</people>
+
+ +

L'API DOM du W3C, supportée par Mozilla, peut être utilisée pour créer une représentation en mémoire de ce document comme cela :

+ +
var doc = document.implementation.createDocument("", "", null);
+var peopleElem = doc.createElement("people");
+
+var personElem1 = doc.createElement("person");
+personElem1.setAttribute("first-name", "eric");
+personElem1.setAttribute("middle-initial", "h");
+personElem1.setAttribute("last-name", "jung");
+
+var addressElem1 = doc.createElement("address");
+addressElem1.setAttribute("street", "321 south st");
+addressElem1.setAttribute("city", "denver");
+addressElem1.setAttribute("state", "co");
+addressElem1.setAttribute("country", "usa");
+personElem1.appendChild(addressElem1);
+
+var addressElem2 = doc.createElement("address");
+addressElem2.setAttribute("street", "123 main st");
+addressElem2.setAttribute("city", "arlington");
+addressElem2.setAttribute("state", "ma");
+addressElem2.setAttribute("country", "usa");
+personElem1.appendChild(addressElem2);
+
+var personElem2 = doc.createElement("person");
+personElem2.setAttribute("first-name", "jed");
+personElem2.setAttribute("last-name", "brown");
+
+var addressElem3 = doc.createElement("address");
+addressElem3.setAttribute("street", "321 north st");
+addressElem3.setAttribute("city", "atlanta");
+addressElem3.setAttribute("state", "ga");
+addressElem3.setAttribute("country", "usa");
+personElem2.appendChild(addressElem3);
+
+var addressElem4 = doc.createElement("address");
+addressElem4.setAttribute("street", "123 west st");
+addressElem4.setAttribute("city", "seattle");
+addressElem4.setAttribute("state", "wa");
+addressElem4.setAttribute("country", "usa");
+personElem2.appendChild(addressElem4);
+
+var addressElem5 = doc.createElement("address");
+addressElem5.setAttribute("street", "321 south avenue");
+addressElem5.setAttribute("city", "denver");
+addressElem5.setAttribute("state", "co");
+addressElem5.setAttribute("country", "usa");
+personElem2.appendChild(addressElem5);
+
+peopleElem.appendChild(personElem1);
+peopleElem.appendChild(personElem2);
+doc.appendChild(peopleElem);
+
+ +

Voir également le chapitre DOM du tutoriel XUL

+ +

Vous pouvez automatiser la création de l'arbre DOM en utilisant un algorithme inversé JSON associé avec la représentation JSON suivante :

+ +
{
+  "people": {
+    "person": [{
+      "address": [{
+        "@street": "321 south st",
+        "@city": "denver",
+        "@state": "co",
+        "@country": "usa"
+      }, {
+        "@street": "123 main st",
+        "@city": "arlington",
+        "@state": "ma",
+        "@country": "usa"
+      }],
+      "@first-name": "eric",
+      "@middle-initial": "H",
+      "@last-name": "jung"
+    }, {
+      "address": [{
+        "@street": "321 north st",
+        "@city": "atlanta",
+        "@state": "ga",
+        "@country": "usa"
+      }, {
+        "@street": "123 west st",
+        "@city": "seattle",
+        "@state": "wa",
+        "@country": "usa"
+      }, {
+        "@street": "321 south avenue",
+        "@city": "denver",
+        "@state": "co",
+        "@country": "usa"
+      }],
+      "@first-name": "jed",
+      "@last-name": "brown"
+    }]
+  }
+}
+ +

Et après ?

+ +

Les arbres DOM peuvent être interrogés en utilisant des expressions XPath, convertis en chaîne de caractères ou écris dans un fichier local ou distant en utilisant XMLSerializer (sans avoir à le convertir en chaîne de caractères auparavant), envoyés à un serveur Web (via XMLHttpRequest), transformés en utilisant XSLT, XLink,  convertis en un objet JavaScript à travers un algorithme JXON, etc.

+ +

Vous pouvez utiliser des arbres DOM pour modéliser des données qui ne peuvent pas être traitées avec RDF (ou si vous n'aimez pas RDF). Un autre champ d'action est que, comme XUL est du XML, l'UI de votre application peut être manipulée dynamiquement, téléchargée, enregistrée, chargée, convertie ou transformée relativement facilement.

+ +

Voir aussi

+ + diff --git "a/files/fr/web/api/document_object_model/les_\303\251v\303\250nements_et_le_dom/index.html" "b/files/fr/web/api/document_object_model/les_\303\251v\303\250nements_et_le_dom/index.html" deleted file mode 100644 index cd96a7446c..0000000000 --- "a/files/fr/web/api/document_object_model/les_\303\251v\303\250nements_et_le_dom/index.html" +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Les évènements et le DOM -slug: Web/API/Document_Object_Model/Les_évènements_et_le_DOM -tags: - - API - - DOM - - Guide - - évènements -translation_of: Web/API/Document_Object_Model/Events ---- -

Introduction

- -

Ce chapitre décrit le modèle d'événement DOM. L'interface Event elle-même est décrite, ainsi que les interfaces pour l'enregistrement des évènements sur les noeuds dans le DOM, les écouteurs d'évènements et d'autres exemples montrant les relations des différentes interfaces d'évènements entre elles.

- -

Il existe un excellent diagramme qui explique clairement les trois phases du flux d'évènements à travers le DOM dans le document sur les évènements DOM Niveau 3.

- -

Voir aussi l'exemple 5 : Propagation des évènements dans le chapitre "Exemples" pour des exemples détaillés sur le déplacement des évènements à travers le DOM.

- -

Enregistrement des écouteurs d'évènements

- -

Il y a 3 moyens d'enregistrer les gestionnaires d'évènements pour un élément DOM.

- -

EventTarget.addEventListener

- -
// Supposons que myButton est un élément de bouton
-myButton.addEventListener('click', function(){alert('Hello world');}, false);
-
- -

C'est la méthode à utiliser dans les pages web modernes.

- -

Note : Internet Explorer 6-8 ne prend pas en charge cette méthode, il offre une API similaire {{domxref("EventTarget.attachEvent")}} à la place. Pour la compatibilité entre navigateurs, utilisez l'une des nombreuses bibliothèques JavaScript disponibles.

- -

Plus de détails peuvent être trouvés sur la page de référence {{domxref("EventTarget.addEventListener")}}.

- -

attribut HTML

- -
<button onclick="alert('Hello world!')">
-
- -

Le code JavaScript de l'attribut est passé à l'objet évènement par le paramètre event. La valeur renvoyée est traitée d'une façon spéciale décrite dans la spécification HTML.

- -

Ce moyen devrait être évité. Cela rend le balisage plus grand et moins lisible. Les aspects de contenu / structure et comportement ne sont pas bien séparés, rendant un bogue plus difficile à trouver.

- -

Propriétés d'un élément DOM

- -
// Supposons que myButton est un élément de bouton
-myButton.onclick = function(event){alert('Hello world');};
-
- -

La fonction peut être définie pour prendre un paramètre d'event. La valeur renvoyée est traitée de façon spéciale décrite dans la spécification HTML.

- -

Le problème avec cette méthode est qu'un seul gestionnaire peut être défini par élément et par évènement.

- -

Accès aux interfaces d'évènements

- -

Les gestionnaires d'évènements peuvent être attachés à divers objets y compris les éléments DOM, le document, l'objet fenêtre, etc. Lorsqu'un évènement se produit, un objet évènement est créé et passé séquentiellement aux écouteurs d'évènements.

- -

L'interface {{domxref("Event")}} est accessible à partir de la fonction gestionnaire, via l'objet événement passé en premier argument. L'exemple simple suivant montre comment un objet d'événement est transmis à la fonction de gestionnaire d'événements et peut être utilisé à partir d'une telle fonction.

- -
function foo(evt) {
-  // le paramètre evt est automatiquement assigné à l'objet évènement
-  alert(evt);
-}
-table_el.onclick = foo;
-
- - - - diff --git "a/files/fr/web/api/document_object_model/localisation_des_\303\251l\303\251ments_dom_avec_les_s\303\251lecteurs/index.html" "b/files/fr/web/api/document_object_model/localisation_des_\303\251l\303\251ments_dom_avec_les_s\303\251lecteurs/index.html" deleted file mode 100644 index aae8808be0..0000000000 --- "a/files/fr/web/api/document_object_model/localisation_des_\303\251l\303\251ments_dom_avec_les_s\303\251lecteurs/index.html" +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Localisation des éléments DOM avec les sélecteurs -slug: >- - Web/API/Document_Object_Model/Localisation_des_éléments_DOM_avec_les_sélecteurs -tags: - - API - - DOM - - Débutant - - Elements - - Sélecteurs -translation_of: Web/API/Document_object_model/Locating_DOM_elements_using_selectors ---- -
{{ gecko_minversion_header("1.9.1") }}
- -

L'API Selectors fournit des méthodes simples et rapides pour retrouver les noeuds Element du DOM par correspondance avec un jeu de sélecteurs. C'est beaucoup plus rapide que les techniques passées, pour lesquelles il était nécessaire, par exemple, d'utiliser une boucle en code JavaScript pour localiser l'élément spécifique que l'on devait trouver.

- -

L'interface NodeSelector

- -

Cette spécification ajoute deux nouvelles méthodes à tous les objets mettant en oeuvre les interfaces Document, DocumentFragment ou Element :

- -
-
querySelector
-
Renvoie le premier noeud Element correspondant dans la sous-arborescence du noeud. Si aucun noeud correspondant n'est trouvé, null est renvoyé.
-
querySelectorAll
-
Renvoie une NodeList (liste de noeuds) contenant tous les noeuds Element correspondants dans la sous-arborescence du noeud, ou une NodeList vide si aucune correspondance n'a été trouvée.
-
- -
Note : La NodeList retournée par querySelectorAll() n'est pas directe. À la différence des autres méthodes de requêtes DOM qui retournent une liste de noeuds directe.
- -

Vous pouvez trouver des exemples et des détails en lisant la documentation sur les méthodes querySelector() et querySelectorAll(), ainsi que dans l'article Extraits de code pour querySelector.

- -

Sélecteurs

- -

Les méthodes de Selector acceptent un ou plusieurs sélecteurs séparés par des virgules pour déterminer les éléments à renvoyer. Par exemple, pour sélectionner tous les éléments paragraphe (p) dans le document dont la classe CSS est soit warning soit note, vous pouvez utiliser ce qui suit :

- -
var special = document.querySelectorAll( "p.warning, p.note" );
- -

Vous pouvez aussi interroger par l'ID (identifiant). Par exemple :

- -
var el = document.querySelector( "#main, #basic, #exclamation" );
- -

Après l'exécution du code ci-dessus, el contient le premier élément dans le document dont l'ID est main, basic ou exclamation.

- -

Vous pouvez utiliser tous les sélecteurs CSS avec les méthodes querySelector() et querySelectorAll().

- -

Voir aussi

- - diff --git a/files/fr/web/api/document_object_model/locating_dom_elements_using_selectors/index.html b/files/fr/web/api/document_object_model/locating_dom_elements_using_selectors/index.html new file mode 100644 index 0000000000..aae8808be0 --- /dev/null +++ b/files/fr/web/api/document_object_model/locating_dom_elements_using_selectors/index.html @@ -0,0 +1,55 @@ +--- +title: Localisation des éléments DOM avec les sélecteurs +slug: >- + Web/API/Document_Object_Model/Localisation_des_éléments_DOM_avec_les_sélecteurs +tags: + - API + - DOM + - Débutant + - Elements + - Sélecteurs +translation_of: Web/API/Document_object_model/Locating_DOM_elements_using_selectors +--- +
{{ gecko_minversion_header("1.9.1") }}
+ +

L'API Selectors fournit des méthodes simples et rapides pour retrouver les noeuds Element du DOM par correspondance avec un jeu de sélecteurs. C'est beaucoup plus rapide que les techniques passées, pour lesquelles il était nécessaire, par exemple, d'utiliser une boucle en code JavaScript pour localiser l'élément spécifique que l'on devait trouver.

+ +

L'interface NodeSelector

+ +

Cette spécification ajoute deux nouvelles méthodes à tous les objets mettant en oeuvre les interfaces Document, DocumentFragment ou Element :

+ +
+
querySelector
+
Renvoie le premier noeud Element correspondant dans la sous-arborescence du noeud. Si aucun noeud correspondant n'est trouvé, null est renvoyé.
+
querySelectorAll
+
Renvoie une NodeList (liste de noeuds) contenant tous les noeuds Element correspondants dans la sous-arborescence du noeud, ou une NodeList vide si aucune correspondance n'a été trouvée.
+
+ +
Note : La NodeList retournée par querySelectorAll() n'est pas directe. À la différence des autres méthodes de requêtes DOM qui retournent une liste de noeuds directe.
+ +

Vous pouvez trouver des exemples et des détails en lisant la documentation sur les méthodes querySelector() et querySelectorAll(), ainsi que dans l'article Extraits de code pour querySelector.

+ +

Sélecteurs

+ +

Les méthodes de Selector acceptent un ou plusieurs sélecteurs séparés par des virgules pour déterminer les éléments à renvoyer. Par exemple, pour sélectionner tous les éléments paragraphe (p) dans le document dont la classe CSS est soit warning soit note, vous pouvez utiliser ce qui suit :

+ +
var special = document.querySelectorAll( "p.warning, p.note" );
+ +

Vous pouvez aussi interroger par l'ID (identifiant). Par exemple :

+ +
var el = document.querySelector( "#main, #basic, #exclamation" );
+ +

Après l'exécution du code ci-dessus, el contient le premier élément dans le document dont l'ID est main, basic ou exclamation.

+ +

Vous pouvez utiliser tous les sélecteurs CSS avec les méthodes querySelector() et querySelectorAll().

+ +

Voir aussi

+ + diff --git "a/files/fr/web/api/document_object_model/pr\303\251face/index.html" "b/files/fr/web/api/document_object_model/pr\303\251face/index.html" deleted file mode 100644 index 77c272f5b2..0000000000 --- "a/files/fr/web/api/document_object_model/pr\303\251face/index.html" +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Préface -slug: Web/API/Document_Object_Model/Préface -tags: - - Référence_du_DOM_Gecko -translation_of: Web/API/Document_Object_Model -translation_of_original: Web/API/Document_Object_Model/Preface ---- -

{{ ApiRef() }}

-

À propos de cette référence

-

Cette section décrit le guide lui-même : ceux à qui il est destiné, la manière dont sont présentées les informations, et d'utiliser les exemples de la référence dans vos propres développements avec DOM.

-

Notez que ce document est en cours de développement, et n'est pas actuellement une liste exhaustive de toutes les méthodes et propriétés DOM implémentées par Gecko. Chaque section individuelle du document (par exemple la référence de DOM document) est cependant complète pour les objets décrits. Lorsque des informations de référence pour les nombreux membres de cette énorme API deviennent disponibles, elles sont intégrées dans ce document.

-

À qui est destiné ce guide

-

Le lecteur de la Référence du DOM Gecko est un développeur Web ou utilisateur confirmé qui a une idée de la façon dont les pages Web sont construites. Cette référence évite de présumer des connaissances préalables du lecteur en ce qui concerne le DOM, XML, les serveurs et standards du Web, et même en ce qui concerne JavaScript, le langage dans lequel le DOM est rendu accessible. Cependant, il suppose que vous soyez familiers avec HTML, avec son balisage, avec la structure basique des pages Web, avec les navigateurs, et avec les feuilles de style.

-

Le contenu introductif présenté ici, avec ses nombreux exemples et ses explications détaillées, s'avèrera utile tant pour les développeurs débutants que pour les développeurs expérimentés dans le domaine du Web. Il n'est pas réservé aux « débutants » et l'on peut le considérer comme un manuel de référence évolutif de l'API.

-

Présentation de Gecko

-

Mozilla, Firefox, Netscape 6+, et les autres navigateurs basés sur Mozilla bénéficient de la même implémentation du DOM. En effet, ils utilisent tous la même technologie de base. naturally, it applies only to products based on the same version of Gecko, but it's tricky to explain

-

Gecko, le composant logiciel de ces navigateurs qui gère l'analyse du HTML, la mise en page, le modèle objet de document, et même le rendu de toute l'interface de l'application est un moteur rapide et respectant les standards. Il implémente les standards DOM du W3C et un modèle objet de navigateur similaire au DOM, mais non standardisé (par exemple window etc.) dans le contexte des pages Web et de l'interface applicative (ou - - chrome - ) du navigateur.

-

Bien que l'interface applicative et le contenu affichés par le navigateur diffèrent en de nombreux points, le DOM les expose uniformément sous la forme d'une hiérarchie de nœuds.

-

Syntaxe de l'API

-

Chaque description dans la référence de l'API comprend la syntaxe, les paramètres entrants et sortants (lorsque le type de retour est donné), un exemple, éventuellement quelques remarques supplémentaires, et un lien vers la spécification appropriée.

-

Typiquement, les propriétés en lecture seule ont une seule ligne de syntaxe, puisqu'on peut uniquement accéder à propriétés et non les modifier. Par exemple, la syntaxe de la propriété en lecture seule availHeight de l'objet screen est présentée de la manière suivante :

-
screenObj = window.screen.availHeight;
-
-

Cela signifie qu'il est seulement possible d'utiliser la propriété dans le membre de droite d'une opération. Dans le cas des propriétés modifiables, il est possible d'assigner une valeur à la propriété, et la syntaxe est présentée de la manière suivante :

-
chaine = window.status;
-window.status =chaine;
-
-

En général, l'objet dont le membre est décrit est donné dans la description de syntaxe avec un type simple, comme element pour tous les éléments, document pour l'objet de document racine, table pour un objet de tableau, etc. Consultez Types de données importants pour plus d'informations à propos des types de données.

-

Utilisation des exemples

-

Beaucoup des exemples dans cette référence sont des fichiers complets que vous pouvez exécuter en les copiant et collant vers un nouveau fichier, puis en les ouvrant dans votre navigateur. D'autres sont des petits bouts de code. Vous pouvez les exécuter en les plaçant dans des fonctions callback de JavaScript. Par exemple, la propriété window.document peut être testée au sein d'une fonction comme celle-ci, laquelle est appelée par le bouton assorti :

-
<html>
-
-<script>
-function testWinDoc() {
-
-  doc= window.document;
-
-  alert(doc.title);
-
-}
-</script>
-
-<button onclick="testWinDoc();">test de la propriété document</button>
-
-</html>
-
-

Des pages et fonctions similaires peuvent être créés pour tous les membres qui ne sont pas déjà décrits d'une façon prête à être utilisée. Consultez la section Test de l'API DOM de l'introduction pour un canevas de test que vous pourrez utiliser pour tester plusieurs API à la fois.

-
-  
-

{{ languages( { "en": "en/Gecko_DOM_Reference/Preface", "es": "es/Referencia_DOM_de_Gecko/Prefacio", "ja": "ja/Gecko_DOM_Reference/Preface", "ko": "ko/Gecko_DOM_Reference/Preface", "pl": "pl/Dokumentacja_Gecko_DOM/Przedmowa", "zh-cn": "cn/Gecko_DOM_\u53c2\u8003/Preface" } ) }}

diff --git a/files/fr/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html b/files/fr/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html new file mode 100644 index 0000000000..9e3407a0aa --- /dev/null +++ b/files/fr/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html @@ -0,0 +1,351 @@ +--- +title: Explorer un tableau HTML avec des interfaces DOM et JavaScript +slug: Explorer_un_tableau_HTML_avec_des_interfaces_DOM_et_JavaScript +tags: + - DOM + - Guide + - HTML + - JavaScript +translation_of: >- + Web/API/Document_Object_Model/Traversing_an_HTML_table_with_JavaScript_and_DOM_Interfaces +--- +

 

+ +

Introduction

+ +

Cet article propose une vue d'ensemble de certaines méthodes DOM Level 1 fondamentales et la façon de les utiliser depuis JavaScript. Vous y apprendrez à créer, accéder, contrôler et supprimer dynamiquement des éléments HTML. Les méthodes DOM décrites ne sont pas spécifiques au HTML et s'appliquent également au XML. Les exemples fonctionneront dans tous les navigateurs offrant le support complet du DOM niveau 1, ce qui est le cas de tous les navigateurs basés sur Mozilla comme Firefox ou Netscape. Les morceaux de code de ce document fonctionneront également dans Internet Explorer 5.

+ +
Les méthodes décrites ici font partie de la spécification Document Object Model level 1 (Core). DOM level 1 comprend des méthodes destinées à l'accès et à la manipulation des documents (DOM 1 core) ainsi que des méthodes spécifiques aux documents HTML (DOM 1 HTML).
+ +

Exemple: Création d'un tableau HTML dynamiquement (Sample1.html)

+ +

Contenu HTML

+ +
<input type="button" value="Generate a table." onclick="generate_table()">
+ +

Contenu JavaScript

+ +
function generate_table() {
+  // get the reference for the body
+  var body = document.getElementsByTagName("body")[0];
+
+  // creates a <table> element and a <tbody> element
+  var tbl = document.createElement("table");
+  var tblBody = document.createElement("tbody");
+
+  // creating all cells
+  for (var i = 0; i < 2; i++) {
+    // creates a table row
+    var row = document.createElement("tr");
+
+    for (var j = 0; j < 2; j++) {
+      // Create a <td> element and a text node, make the text
+      // node the contents of the <td>, and put the <td> at
+      // the end of the table row
+      var cell = document.createElement("td");
+      var cellText = document.createTextNode("cell in row "+i+", column "+j);
+      cell.appendChild(cellText);
+      row.appendChild(cell);
+    }
+
+    // add the row to the end of the table body
+    tblBody.appendChild(row);
+  }
+
+  // put the <tbody> in the <table>
+  tbl.appendChild(tblBody);
+  // appends <table> into <body>
+  body.appendChild(tbl);
+  // sets the border attribute of tbl to 2;
+  tbl.setAttribute("border", "2");
+}
+ +

{{ EmbedLiveSample('Overview_of_Sample1.html') }}

+ +

Remarquez l'ordre dans lequel les éléments et le nœud texte sont créés :

+ +
    +
  1. On crée d'abord l'élément <table>.
  2. +
  3. Ensuite, l'élément <tbody> qui est un enfant de l'élément <table>.
  4. +
  5. Puis, grâce à une boucle, on crée les éléments <tr>, qui sont des enfants de l'élément <tbody>.
  6. +
  7. Pour chaque élément <tr>, on emploie une boucle pour créer les éléments enfants <td>.
  8. +
  9. Enfin pour chaque élément <td>, on crée le nœud texte contenant le texte de la cellule du tableau.
  10. +
+ +

Après avoir créé les éléments <table>, <tbody>, <tr>, <td> et le nœud texte, on ajoute chaque objet à son parent dans l'ordre inverse :

+ +
    +
  1. On attache d'abord chaque nœud texte à son élément parent <td> en utilisant +
    cell.appendChild(texte);
    +
  2. +
  3. Ensuite, on lie chaque élément <td> à son élément <tr> parent avec +
    row.appendChild(cell);
    +
  4. +
  5. Puis chaque <tr> à son parent <tbody> avec +
    tablebody.appendChild(row);
    +
  6. +
  7. Puis l'élément <tbody> est attaché à son élément parent <table> grace à +
    table.appendChild(tablebody);
    +
  8. +
  9. Enfin, <table> est rattaché à <body> avec +
    body.appendChild(table);
    +
  10. +
+ +

Souvenez-vous de cette technique, vous l'utiliserez souvent en programmant pour le DOM W3C. On crée d'abord les éléments du haut vers le bas, puis on attache les enfants aux parents dans l'ordre inverse.

+ +

Voici l'HTML généré par ce code JavaScript :

+ +
...
+<table border="2">
+<tr><td>la cellule est ligne 0 colonne 0</td><td>la cellule est ligne 0 colonne 1</td></tr>
+<tr><td>la cellule est ligne 1 colonne 0</td><td>la cellule est ligne 1 colonne 1</td></tr>
+</table>
+...
+
+ +

Voici l'arborescence objet DOM créée par le code, pour l'élément TABLE et ses enfants :

+ +

Image:sample1-tabledom.jpg

+ +

Vous pouvez construire ce tableau ainsi que ses éléments enfants internes en utilisant juste quelques méthodes DOM. Conservez à l'esprit le modèle en arbre des structures que vous comptez créer, cela rendra plus facile l'écriture du code nécessaire. Dans l'arbre <table> de la figure 1, l'élément <table> a un enfant, l'élément <tbody>, qui lui-même a deux enfants <tr>, qui à leur tour ont chacun un enfant <td>. Enfin, chacun de ces éléments <td> a un enfant, un nœud texte.

+ +

Exemple : Définition de la couleur d'arrière-plan d'un paragraphe

+ +

getElementsByTagName est à la fois une méthode de l'interface Document et de l'interface Element. Lorsqu'il est appelé, il renvoie un tableau avec tous les descendants de l'élément correspondant au nom de l'étiquette. Le premier élément de la liste se trouve à la position [0] dans le tableau.

+ +

Contenu HTML

+ +
<body>
+  <input type="button" value="Set paragraph background color" onclick="set_background()">
+  <p>hi</p>
+  <p>hello</p>
+</body>
+ +

Contenu JavaScript

+ +
function set_background() {
+  // récupère une liste de tous les éléments body (il n'y en aura qu'un),
+  // et sélectionne le premier (indice 0) de ces éléments
+  myBody = document.getElementsByTagName("body")[0];
+
+  // à présent, trouve tous les éléments p enfants de cet élément body
+  myBodyElements = myBody.getElementsByTagName("p");
+
+  // récupère le second élément de cette liste d'éléments p
+  myP = myBodyElements[1];
+  myP.style.background = "rgb(255,0,0)";
+}
+ +

{{ EmbedLiveSample('Setting_background_of_a_paragraph') }}

+ +

Dans cet exemple, on assigne à la variable myP l'objet DOM du second élément p du corps (body).

+ +
    +
  1. On récupère d'abord une liste de tous les éléments body avec +
    myBody = document.getElementsByTagName("body")[0]
    + Puisqu'il n'existe qu'un seul élément body dans un document HTML valide, cette liste ne comporte qu'un élément, que l'on récupère en sélectionnant le premier élément de la liste grace à {{mediawiki.external(0)}}.
  2. +
  3. Ensuite, on récupère tous les éléments p qui sont des enfants de body en utilisant +
    myBodyElements = myBody.getElementsByTagName("p");
    +
  4. +
  5. Pour finir on prend le deuxième élément de la liste des éléments p avec +
    myP = myBodyElements[1];
    +
  6. +
+ +

Image:sample2a2.jpg

+ +

Une fois que vous avez l'objet DOM pour un élément HTML, vous pouvez modifier ses propriétés. Si par exemple vous voulez définir la propriété couleur d'arrière-plan du style, ajoutez simplement :

+ +
myP.style.background = "rgb(255,0,0)";
+// ajoute une propriété de style inline
+
+ +

Création de nœuds texte avec document.createTextNode("..")

+ +

Employez l'objet document pour appeler la méthode createTextNode et créer un nœud texte. Il suffit de lui communiquer le contenu texte, et la valeur renvoyée est un objet représentant le nœud texte.

+ +
myTextNode = document.createTextNode("world");
+ +

Ce morceau de code crée un nœud de type TEXT_NODE qui contient la donnée texte "world", et monNoeudTexte est la référence de l'objet nœud créé. Pour afficher ce texte sur votre page HTML, vous devez ensuite définir ce nœud texte comme l'enfant d'un autre élément nœud.

+ +

Insertion d'éléments avec appendChild(...)

+ +

En invoquant myP.appendChild ({{mediawiki.external('node_element')}}) , vous définissez element_nœud comme un nouvel enfant du second élément p (myP a été défini plus haut comme étant le second élément p).

+ +
myP.appendChild(noeudTexte);
+
+ +

En exécutant cet exemple, vous pouvez remarquer que les mots « hello » et « world » ne sont pas séparés : helloworld. Quand vous parcourez la page HTML les deux nœuds semblent donc n'en former qu'un seul, rappelez-vous cependant qu'ils sont bien distincts dans le modèle de document. Le second nœud est de type TEXT_NODE, et est le second enfant de la seconde balise <p>. Le schéma suivant situe ce nouvel objet dans l'arborescence du document :

+ +

Image:sample2b2.jpg

+ +
L'utilisation de createTextNode et de appendChild permet aisément d'ajouter un espace entre ces deux mots. Notez cependant que la méthode appendChild ajoute le nouvel enfant à la suite de ceux déjà présents, à la manière de « world » placé après « hello ». Pour ajouter un nœud texte entre « hello » et « world » (par exemple un espace), utilisez insertBefore à la place de appendChild.
+ +

Création de nouveaux éléments avec l'objet document et la méthode createElement(...)

+ +

Vous pouvez créer de nouveaux éléments, dont des éléments HTML, avec createElement. Pour créer un élément <p> enfant de l'élément <body>, vous pouvez vous servir de body défini dans l'exemple précédent et lui greffer un nouvel élément nœud. Pour ce faire, invoquez document.createElement("nombalise"). Voici un exemple :

+ +
nouveauNoeudBALISEP = document.createElement("p");
+body.appendChild(nouveauNoeudBALISEP);
+
+ +

Image:sample2c.jpg

+ +

Suppression de nœuds avec la méthode removeChild(...)

+ +

Tous les nœuds peuvent être supprimés. La ligne ci-dessous supprime de myP (deuxième élément <p>) le nœud texte contenant le mot « world » :

+ +
myP.removeChild(noeudTexte);
+
+ +

Vous pouvez ensuite ajouter monNoeudTexte (contenant "world") dans l'élément <p> récemment créé :

+ +
nouveauNoeudBALISEP.appendChild(noeudTexte);
+
+ +

L'arborescence des objets se présente désormais comme ceci :

+ +

Image:sample2d.jpg

+ +

Création dynamique d'un tableau (retour à Sample1.html)

+ +

Jusqu'à la fin de cet article, nous travaillons de nouveau sur Exemple1.html. Le schéma qui suit vous rappelle la structure de l'arbre des objets pour le tableau créé dans l'exemple.

+ +

Rappel de la structure arborescente d'un tableau HTML

+ +

Image:sample1-tabledom.jpg

+ +

Création et insertion des éléments dans l'arborescence

+ +

On peut décomposer la création du tableau de Exemple1.html en trois étapes :

+ + + +

Le code source qui suit est un exemple commenté qui crée le tableau de Exemple1.

+ +
Il y a une ligne de code supplémentaire à la fin de la fonction start(), qui définit la propriété bordure du tableau en employant la méthode setAttribute. setAttribute utilise deux arguments : le nom de l'attribut et sa valeur, et permet de définir n'importe quelle propriété de n'importe quel élément.
+ +
<head>
+<title>Code de démonstration - Explorer un tableau HTML avec des interfaces DOM et JavaScript</title>
+<script>
+    function start() {
+        // récupère une référence vers l'élément body
+        var body = document.getElementsByTagName("body")[0];
+
+        // création des éléments <table> et <tbody>
+        table     = document.createElement("table");
+        tablebody = document.createElement("tbody");
+
+        // création des cellules
+        for(var j = 0; j < 2; j++) {
+            // création d'un élément <tr>
+            row = document.createElement("tr");
+
+            for(var i = 0; i < 2; i++) {
+                // création d'un élément <td>
+                cell = document.createElement("td");
+                // création d'un nœud texte
+                texte = document.createTextNode("la cellule est ligne " + j + ", colonne " + i);
+                // ajoute le nœud texte créé à la cellule <td>
+                cell.appendChild(texte);
+                // ajoute la cellule <td> à la ligne <tr>
+                row.appendChild(cell);
+            }
+            // ajoute la ligne <tr> à l'élément <tbody>
+            tablebody.appendChild(row);
+        }
+
+        // ajoute <tbody> à l'élément <table>
+        table.appendChild(tablebody);
+        // ajoute <table> à l'élément <body>
+        body.appendChild(table);
+        // définit l'attribut border de table à 2;
+        table.setAttribute("border", "2");
+    }
+</script>
+</head>
+<body onload="start()">
+</body>
+</html>
+
+ +

Manipulation du tableau avec DOM et CSS

+ +

Récupérer un nœud texte dans le tableau

+ +

Cet exemple présente deux nouveaux attributs DOM. D'abord, l'attribut childNodes qui est utilisé pour récupérer la liste des nœuds enfants de cel. A la différence de getElementsByTagName, la liste renvoyée par childNodes comporte tous les enfants sans considération de type. Une fois la liste obtenue, la méthode {{ mediawiki.external('x') }} est employée pour sélectionner l'élément enfant désiré. Dans cet exemple, le nœud texte de la seconde cellule de la seconde ligne du tableau est enregistré dans celtext. Ensuite, un nouveau nœud texte contenant les données de celtext est greffé en tant qu'enfant sur l'élément <body>.

+ +
Si l'objet est un nœud texte, vous pouvez récupérer le texte qu'il contient en employant l'attribut data.
+ +
mybody = document.getElementsByTagName("body")[0];
+mytable = mybody.getElementsByTagName("table")[0];
+mytablebody = mytable.getElementsByTagName("tbody")[0];
+myrow = mytablebody.getElementsByTagName("tr")[1];
+mycel = myrow.getElementsByTagName("td")[1];
+
+// premier élément du noeud liste des enfants de mycel
+myceltext=mycel.childNodes[0];
+
+//  contenu de currenttext est le contenu des données de myceltext
+currenttext=document.createTextNode(myceltext.data);
+mybody.appendChild(currenttext);
+ +

Récupérer la valeur d'un attribut

+ +

A la fin d'Exemple1, l'appel à setAttribute sur l'objet table définit la propriété border du tableau. Si vous désirez simplement récupérez la valeur de cet attribut, vous pouvez employer la méthode getAttribute :

+ +
mytable.getAttribute("border");
+ +

Cacher une colonne en changeant les propriétés de style

+ +

Une fois que vous avez l'objet dans une variable JavaScript, vous pouvez définir les propriétés directement. Le code qui suit est une version modifiée de Exemple1.html où les cellules de la seconde colonne sont cachées, et le fond de celles de la première colonne est rouge. Remarquez que la propriété de style y est définie directement.

+ +
<html>
+<body onload="start()">
+</body>
+<script>
+    function start() {
+       var body  = document.getElementsByTagName("body")[0];
+       table     = document.createElement("table");
+       tablebody = document.createElement("tbody");
+
+       for(var j = 0; j < 2; j++) {
+           row = document.createElement("tr");
+           for(var i = 0; i < 2; i++) {
+               cell = document.createElement("td");
+               text = document.createTextNode("la cellule est :" + i + j);
+               cell.appendChild(text);
+               row.appendChild(cell);
+               // change la couleur de fond de la cellule
+               // si la colonne est 0. Si la colonne est 1, cache la cellule
+               if (i == 0) {
+                   cell.style.background = "rgb(255,0,0)";
+               } else {
+                   cell.style.display = "none";
+               }
+           }
+           tablebody.appendChild(row);
+       }
+       table.appendChild(tablebody);
+       body.appendChild(table);
+    }
+</script>
+</html>
+
+ +

Original Document Information

+ +
+
Author(s)
+
Marcio Galli
+
Migrated from
+
http://web.archive.org/web/20000815054125/http://mozilla.org/docs/dom/technote/tn-dom-table/
+
+ +


+ Interwik

diff --git a/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html b/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html new file mode 100644 index 0000000000..a9efdf8cdb --- /dev/null +++ b/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html @@ -0,0 +1,44 @@ +--- +title: Exemple +slug: Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple +tags: + - API + - DOM + - Débutant + - Exemples +translation_of: Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core/Example +--- +

 

+ +
 <html>
+ <head>
+   <title>Mon Document</title>
+   <script type="text/javascript">
+   function change() {
+     // document.getElementsByTagName("H1") renvoie une NodeList (liste de noeuds) de h1
+     // les éléments dans le document dont le premier a le numéro 0 :
+     var header = document.getElementsByTagName("H1").item(0);
+     // le firstChild (premier enfant) de l'en-tête est un noeud Texte :
+     header.firstChild.data = "Un document dynamique";
+     // maintenant l'en-tête est "Un document dynamique".
+     var para = document.getElementsByTagName("P").item(0);
+     para.firstChild.data = "C'est le premier paragraphe.";
+     // créer un nouveau noeud Texte pour le second paragraphe
+     var newText = document.createTextNode("Ceci est le second paragraphe.");
+     // créer un nouvel Element devant être le second paragraphe
+     var newElement = document.createElement("P");
+     // placer le texte dans le paragraphe
+     newElement.appendChild(newText);
+     // et placer le paragraphe à la fin du document par son ajout
+     // le BODY (corps) (qui est le parent de para)
+     para.parentNode.appendChild(newElement);
+   }
+   </script>
+ </head>
+ <body>
+   <input type="button" value="Modifier ce document." onclick="change()">
+   <h1>Header</h1>
+   <p>Paragraph</p>
+ </body>
+ </head>
+
diff --git a/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html b/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html new file mode 100644 index 0000000000..0f140378e6 --- /dev/null +++ b/files/fr/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html @@ -0,0 +1,92 @@ +--- +title: Utilisation du DOM Level 1 Core du W3C +slug: Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C +tags: + - Arbre + - DOM + - Noeud + - Texte +translation_of: Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core +--- +

Le DOM Level 1 Core du W3C est un modèle objet puissant permettant de modifier l'arbre de contenu de documents. Il est géré dans Mozilla (sur lequel Firefox et Netscape sont basés) et (pour la plus grande partie) dans Internet Explorer 5 pour Windows. Il s'agit d'une base essentielle du scripting sur le Web dans l'avenir.

+ +

Définition d'un arbre de contenu

+ +

Beaucoup d'auteurs HTML peuvent penser qu'HTML est quelque chose de plat — un gros amas de texte avec quelques balises au milieu. Cependant, c'est aussi beaucoup plus que ça. Tout document HTML (ou, par ailleurs, tout document SGML ou XML) forme une structure arborescente. Par exemple, le document et la structure arborescente qui suivent sont similaires (bien que non identiques — consultez les notes sur les espaces dans le DOM) :

+ +
<html>
+<head>
+  <title>Mon document</title>
+</head>
+<body>
+  <h1>Titre</h1>
+  <p>Paragraphe</p>
+</body>
+</html>
+
+ +

image:Using_the_W3C_DOM_Level_1_Core-doctree.jpg

+ +

Lorsque Mozilla examine un document, un arbre de contenu est construit et ensuite utilisé pour l'affichage.

+ +

Les termes utilisés pour décrire des arbres apparaissent souvent dans le DOM Level 1 Core. Chacune des boîtes dessinées dans l'arbre ci-dessus est un nœud dans l'arbre. La ligne au dessus d'un nœud représente une relation parent-enfant : le nœud supérieur est le parent, et le nœud inférieur est l'enfant. Deux enfants du même parent sont par conséquent des frères du même niveau. De même, on peut se référer à des ancêtres et des descendants. (Parler de cousins devient un peu compliqué par contre.)

+ +

Ce que permet le DOM Level 1 Core

+ +

Le DOM Level 1 permet de modifier l'arbre du contenuselon vos désirs. Il est suffisamment puissant pour construire n'importe quel document HTML depuis rien. Il permet aux auteurs de modifier quoi que ce soit dans le document, depuis un script, à n'importe quel moment. La manière la plus simple pour les auteurs de pages Web de modifier le DOM dynamiquement est d'utiliser JavaScript. En JavaScript, le document est accessible de la même manière qu'il l'était dans les navigateurs plus anciens : depuis la propriété document de l'objet global. Cet objet document implémente l'interface Document de la spécification DOM Level 1 du W3C.

+ +

Un exemple simple

+ +

Supposons que l'auteur désire prendre le document présenté plus haut et changer le contenu du titre, ainsi qu'écrire deux paragraphes plutôt qu'un seul. Le script suivant le permettrait :

+ +

Contenu HTML

+ +
<body>
+<input type="button" value="Change this document." onclick="change()">
+<h2>Header</h2>
+<p>Paragraph</p>
+</body>
+ +

Contenu JavaScript

+ +
  function change() {
+    // document.getElementsByTagName ("H2") renvoie un NodeList du <h2>
+    // éléments dans le document, et le premier est le nombre 0:
+
+    var header = document.getElementsByTagName("H2").item(0);
+    // le firstChild de l'en-tête est un noeud texte::
+    header.firstChild.data = "A dynamic document";
+    // maintenant l'en-tête est "Un document dynamique".
+
+    var para = document.getElementsByTagName("P").item(0);
+    para.firstChild.data = "This is the first paragraph.";
+
+    // crée un nouveau noeud texte pour le second paragraphe
+    var newText = document.createTextNode("This is the second paragraph.");
+    // crée un nouvel Element pour le second paragraphe
+    var newElement = document.createElement("P");
+    // pose le texte dans le paragraphe
+    newElement.appendChild(newText);
+    // et pose le paragraphe à la fin du document en l'ajoutant
+    // au BODY (qui est le parent de para)
+    para.parentNode.appendChild(newElement);
+  }
+ +

{{ EmbedLiveSample('A_simple_example', 800, 300) }}

+ +

Vous pouvez voir ce script dans un exemple complet.

+ +

Pour en apprendre plus

+ +

Maintenant que vous êtes familiarisé avec les concepts basiques du DOM, il existe un document expliquant les méthodes fondamentales de DOM Level 1. C'est la suite de ce document.

+ +

Consultez également la spécification DOM Level 1 Core du W3C (traduction en français non normative). C'est une spécification relativement claire, même si elle est un peu formelle. Ce qui est surtout intéressant pour les auteurs, c'est la description des différents objets DOM et de toutes leurs propriétés et méthodes. Voyez encore notre documentation complète sur le DOM.

+ +
+

Informations sur le document original

+ + +
diff --git a/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/exemple/index.html b/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/exemple/index.html deleted file mode 100644 index a9efdf8cdb..0000000000 --- a/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/exemple/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Exemple -slug: Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple -tags: - - API - - DOM - - Débutant - - Exemples -translation_of: Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core/Example ---- -

 

- -
 <html>
- <head>
-   <title>Mon Document</title>
-   <script type="text/javascript">
-   function change() {
-     // document.getElementsByTagName("H1") renvoie une NodeList (liste de noeuds) de h1
-     // les éléments dans le document dont le premier a le numéro 0 :
-     var header = document.getElementsByTagName("H1").item(0);
-     // le firstChild (premier enfant) de l'en-tête est un noeud Texte :
-     header.firstChild.data = "Un document dynamique";
-     // maintenant l'en-tête est "Un document dynamique".
-     var para = document.getElementsByTagName("P").item(0);
-     para.firstChild.data = "C'est le premier paragraphe.";
-     // créer un nouveau noeud Texte pour le second paragraphe
-     var newText = document.createTextNode("Ceci est le second paragraphe.");
-     // créer un nouvel Element devant être le second paragraphe
-     var newElement = document.createElement("P");
-     // placer le texte dans le paragraphe
-     newElement.appendChild(newText);
-     // et placer le paragraphe à la fin du document par son ajout
-     // le BODY (corps) (qui est le parent de para)
-     para.parentNode.appendChild(newElement);
-   }
-   </script>
- </head>
- <body>
-   <input type="button" value="Modifier ce document." onclick="change()">
-   <h1>Header</h1>
-   <p>Paragraph</p>
- </body>
- </head>
-
diff --git a/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/index.html b/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/index.html deleted file mode 100644 index 0f140378e6..0000000000 --- a/files/fr/web/api/document_object_model/utilisation_du_dom_level_1_core_du_w3c/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Utilisation du DOM Level 1 Core du W3C -slug: Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C -tags: - - Arbre - - DOM - - Noeud - - Texte -translation_of: Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core ---- -

Le DOM Level 1 Core du W3C est un modèle objet puissant permettant de modifier l'arbre de contenu de documents. Il est géré dans Mozilla (sur lequel Firefox et Netscape sont basés) et (pour la plus grande partie) dans Internet Explorer 5 pour Windows. Il s'agit d'une base essentielle du scripting sur le Web dans l'avenir.

- -

Définition d'un arbre de contenu

- -

Beaucoup d'auteurs HTML peuvent penser qu'HTML est quelque chose de plat — un gros amas de texte avec quelques balises au milieu. Cependant, c'est aussi beaucoup plus que ça. Tout document HTML (ou, par ailleurs, tout document SGML ou XML) forme une structure arborescente. Par exemple, le document et la structure arborescente qui suivent sont similaires (bien que non identiques — consultez les notes sur les espaces dans le DOM) :

- -
<html>
-<head>
-  <title>Mon document</title>
-</head>
-<body>
-  <h1>Titre</h1>
-  <p>Paragraphe</p>
-</body>
-</html>
-
- -

image:Using_the_W3C_DOM_Level_1_Core-doctree.jpg

- -

Lorsque Mozilla examine un document, un arbre de contenu est construit et ensuite utilisé pour l'affichage.

- -

Les termes utilisés pour décrire des arbres apparaissent souvent dans le DOM Level 1 Core. Chacune des boîtes dessinées dans l'arbre ci-dessus est un nœud dans l'arbre. La ligne au dessus d'un nœud représente une relation parent-enfant : le nœud supérieur est le parent, et le nœud inférieur est l'enfant. Deux enfants du même parent sont par conséquent des frères du même niveau. De même, on peut se référer à des ancêtres et des descendants. (Parler de cousins devient un peu compliqué par contre.)

- -

Ce que permet le DOM Level 1 Core

- -

Le DOM Level 1 permet de modifier l'arbre du contenuselon vos désirs. Il est suffisamment puissant pour construire n'importe quel document HTML depuis rien. Il permet aux auteurs de modifier quoi que ce soit dans le document, depuis un script, à n'importe quel moment. La manière la plus simple pour les auteurs de pages Web de modifier le DOM dynamiquement est d'utiliser JavaScript. En JavaScript, le document est accessible de la même manière qu'il l'était dans les navigateurs plus anciens : depuis la propriété document de l'objet global. Cet objet document implémente l'interface Document de la spécification DOM Level 1 du W3C.

- -

Un exemple simple

- -

Supposons que l'auteur désire prendre le document présenté plus haut et changer le contenu du titre, ainsi qu'écrire deux paragraphes plutôt qu'un seul. Le script suivant le permettrait :

- -

Contenu HTML

- -
<body>
-<input type="button" value="Change this document." onclick="change()">
-<h2>Header</h2>
-<p>Paragraph</p>
-</body>
- -

Contenu JavaScript

- -
  function change() {
-    // document.getElementsByTagName ("H2") renvoie un NodeList du <h2>
-    // éléments dans le document, et le premier est le nombre 0:
-
-    var header = document.getElementsByTagName("H2").item(0);
-    // le firstChild de l'en-tête est un noeud texte::
-    header.firstChild.data = "A dynamic document";
-    // maintenant l'en-tête est "Un document dynamique".
-
-    var para = document.getElementsByTagName("P").item(0);
-    para.firstChild.data = "This is the first paragraph.";
-
-    // crée un nouveau noeud texte pour le second paragraphe
-    var newText = document.createTextNode("This is the second paragraph.");
-    // crée un nouvel Element pour le second paragraphe
-    var newElement = document.createElement("P");
-    // pose le texte dans le paragraphe
-    newElement.appendChild(newText);
-    // et pose le paragraphe à la fin du document en l'ajoutant
-    // au BODY (qui est le parent de para)
-    para.parentNode.appendChild(newElement);
-  }
- -

{{ EmbedLiveSample('A_simple_example', 800, 300) }}

- -

Vous pouvez voir ce script dans un exemple complet.

- -

Pour en apprendre plus

- -

Maintenant que vous êtes familiarisé avec les concepts basiques du DOM, il existe un document expliquant les méthodes fondamentales de DOM Level 1. C'est la suite de ce document.

- -

Consultez également la spécification DOM Level 1 Core du W3C (traduction en français non normative). C'est une spécification relativement claire, même si elle est un peu formelle. Ce qui est surtout intéressant pour les auteurs, c'est la description des différents objets DOM et de toutes leurs propriétés et méthodes. Voyez encore notre documentation complète sur le DOM.

- -
-

Informations sur le document original

- - -
diff --git a/files/fr/web/api/documentorshadowroot/activeelement/index.html b/files/fr/web/api/documentorshadowroot/activeelement/index.html new file mode 100644 index 0000000000..5115a1135c --- /dev/null +++ b/files/fr/web/api/documentorshadowroot/activeelement/index.html @@ -0,0 +1,25 @@ +--- +title: document.activeElement +slug: Web/API/Document/activeElement +tags: + - Référence_du_DOM_Gecko +translation_of: Web/API/DocumentOrShadowRoot/activeElement +translation_of_original: Web/API/Document/activeElement +--- +

{{ ApiRef() }}

+

Résumé

+

Renvoie l'élément qui dispose actuellement du focus.

+

{{ Note("Cet attribut fait partie de la spécification HTML 5 encore en développement.") }}

+

Syntaxe

+
var elemCourant = document.activeElement;
+
+

Exemple

+

Spécification

+ +

 

+

 

+
+  
+

{{ languages( { "en": "en/DOM/document.activeElement", "es": "es/DOM/element.activeElement", "ja": "ja/DOM/document.activeElement", "pl": "pl/DOM/document.activeElement" } ) }}

diff --git a/files/fr/web/api/documentorshadowroot/elementfrompoint/index.html b/files/fr/web/api/documentorshadowroot/elementfrompoint/index.html new file mode 100644 index 0000000000..493d7a55a1 --- /dev/null +++ b/files/fr/web/api/documentorshadowroot/elementfrompoint/index.html @@ -0,0 +1,53 @@ +--- +title: document.elementFromPoint +slug: Web/API/Document/elementFromPoint +tags: + - Référence_du_DOM_Gecko +translation_of: Web/API/DocumentOrShadowRoot/elementFromPoint +translation_of_original: Web/API/Document/elementFromPoint +--- +

{{ ApiRef() }}

+

Résumé

+

Renvoie l'élément visible au point donné, spécifié relativement au point supérieur gauche visible dans le document.

+

Syntaxe

+
element = document.elementFromPoint(x,y);
+
+

where

+ +

Exemple

+
<html>
+<head>
+<title>Exemple d'utilisation d'elementFromPoint</title>
+
+<script type="text/javascript">
+
+function changeColor(newColor)
+{
+ elem = document.elementFromPoint(2, 2);
+ elem.style.color = newColor;
+}
+</script>
+</head>
+
+<body>
+<p id="para1">Un peu de texte ici</p>
+<button onclick="changeColor('blue');">bleu</button>
+<button onclick="changeColor('red');">rouge</button>
+</body>
+</html>
+
+

Notes

+

Si l'élément au point spécifié appartient à un autre document (par exemple, les sous-document d'un iframe), l'élément dans le DOM du document appelant (l'iframe lui-même) est renvoyé. Si l'élément au point donné est anonyme ou du contenu généré par XBL, comme la barre de défilement d'une boîte de texte, le premier élément parent non anonyme (par exemple, la boîte de texte) est renvoyé.

+

Si le point spécifié est en dehors de la portion visible du document ou que l'une ou l'autre des coordonnées est négative, le résultat est NULL.

+

{{ Note("Les appelants qui sont des documents XUL devraient attendre que l\'évènement onload se soit déclenché avant d\'appeler cette méthode.") }}

+

Spécification

+ +

 

+
+  
+

{{ languages( { "en": "en/DOM/document.elementFromPoint", "es": "es/DOM/document.elementFromPoint", "ja": "ja/DOM/document.elementFromPoint" } ) }}

diff --git a/files/fr/web/api/documentorshadowroot/getselection/index.html b/files/fr/web/api/documentorshadowroot/getselection/index.html new file mode 100644 index 0000000000..9352399ada --- /dev/null +++ b/files/fr/web/api/documentorshadowroot/getselection/index.html @@ -0,0 +1,15 @@ +--- +title: document.getSelection +slug: Web/API/Document/getSelection +tags: + - API + - DOM + - Méthodes + - Reference + - Selection +translation_of: Web/API/DocumentOrShadowRoot/getSelection +translation_of_original: Web/API/Document/getSelection +--- +

{{APIRef("DOM")}}

+ +

Cette méthode fonctionne de manière identique à la méthode {{domxref ("Window.getSelection()")}} ; elle renvoie un objet {{domxref ("Selection")}} représentant le texte actuellement sélectionné dans le document.

diff --git a/files/fr/web/api/documentorshadowroot/stylesheets/index.html b/files/fr/web/api/documentorshadowroot/stylesheets/index.html new file mode 100644 index 0000000000..0c607adc5f --- /dev/null +++ b/files/fr/web/api/documentorshadowroot/stylesheets/index.html @@ -0,0 +1,56 @@ +--- +title: Document.styleSheets +slug: Web/API/Document/styleSheets +translation_of: Web/API/DocumentOrShadowRoot/styleSheets +translation_of_original: Web/API/Document/styleSheets +--- +
{{APIRef}}
+ +
La propriété Document.styleSheets est en lecture seule et retourne une liste {{domxref("StyleSheetList")}} d'objets {{domxref("StyleSheet")}}, qui font référence à l'ensemble des feuilles de style contenues ou embarquées dans le document.
+ +
 
+ +

Syntaxe

+ +
var styleSheetList = document.styleSheets;
+
+ +

L'objet retourné est une liste {{domxref("StyleSheetList")}}.

+ +

Il s'agit d'une collection ordonnée d'objets {{domxref("StyleSheet")}}. styleSheetList.item(index) ou  styleSheetList{{ mediawiki.External('index') }} retourne un seul objet stylesheet par son index (index débute par 0).

+ +

Spécification

+ + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('CSSOM', '#dom-document-stylesheets', 'styleSheets')}}{{Spec2('CSSOM')}} 
{{SpecName('DOM2 Style', 'stylesheets.html#StyleSheets-DocumentStyle-styleSheets', 'styleSheets')}}{{Spec2('DOM2 Style')}} 
+ +

Voir aussi

+ + + + diff --git a/files/fr/web/api/dommatrix/index.html b/files/fr/web/api/dommatrix/index.html new file mode 100644 index 0000000000..2b5039986e --- /dev/null +++ b/files/fr/web/api/dommatrix/index.html @@ -0,0 +1,76 @@ +--- +title: CSSMatrix +slug: Web/API/CSSMatrix +tags: + - API + - Reference +translation_of: Web/API/DOMMatrix +translation_of_original: Web/API/CSSMatrix +--- +
+
{{APIRef("CSSOM")}}{{Non-standard_header}}
+ +

Une CSSMatrix représente une matrice homogène 4x4 dans laquelle il est possible d'appliquer des transformations 2D ou 3D. Cette classe faisait à un moment partie du module de transitions CSS (Level 3) mais elle n'a pas été propagée dans le brouillon de travail (Working Draft) actuel. Utilisez plutôt DOMMatrix.

+ +

Compatibilé des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support simple{{CompatUnknown}}{{CompatUnknown}}10[1]{{CompatUnknown}}{{CompatVersionUnknown}}[2]
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support simple{{CompatUnknown}}{{CompatUnknown}}11[1]{{CompatUnknown}}{{CompatVersionUnknown}}[2]
+
+ +

[1] Internet Explorer a  intégré cette API en tant que MSCSSMatrix. Dans la version 11 l'alias WebKitCSSMatrix a été ajouté.

+ +

[2] WebKit a intégré cette API en tant que WebKitCSSMatrix.

+ +

Voir aussi

+ + +
diff --git a/files/fr/web/api/effecttiming/delay/index.html b/files/fr/web/api/effecttiming/delay/index.html new file mode 100644 index 0000000000..bb8c8d9e56 --- /dev/null +++ b/files/fr/web/api/effecttiming/delay/index.html @@ -0,0 +1,140 @@ +--- +title: Delay +slug: Web/API/AnimationEffectTimingProperties/delay +tags: + - API + - Animation + - AnimationEffectTimingProperties + - Experimental + - Propriété + - Reference +translation_of: Web/API/EffectTiming/delay +--- +
{{SeeCompatTable}}{{APIRef("Web Animations")}}
+ +

La propriété delay est un dictionnaire pour {{domxref("AnimationEffectTimingProperties")}} qui représente le nombre de millisecondes à attendre avant de démarrer une animation.

+ +
+

Note : {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly", "KeyframeEffectReadOnly()")}} et {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} acceptent toutes un objet avec des propriétés de minutage, y compris delay. La valeur de delay correspond directement à {{domxref("AnimationEffectTimingReadOnly.delay")}} dans les objets  {{domxref("AnimationEffectReadOnly.timing")}} renvoyés par {{domxref("AnimationEffectReadOnly")}}, {{domxref("KeyframeEffectReadOnly")}} et {{domxref("KeyframeEffect")}}.

+
+ +

Syntaxe

+ +
var timingProperties = {
+  delay: delayInMilliseconds
+};
+
+timingProperties.delay = delayInMilliseconds;
+
+ +

Valeur

+ +

Un nombre qui indique la durée qui doit s'écouler entre le début du cycle de l'animation et le début de l'intervalle d'activité (c'est-à-dire le moment où l'animation commence réellement). La valeur par défaut est 0.

+ +

Exemples

+ +

Dans l'exemple Pool of Tears, chaque larme commence à un instant aléatoire grâce à l'objet de minutage :

+ +
// Générateur de valeurs plus
+// ou moins aléatoires
+var getRandomMsRange = function(min, max) {
+  return Math.random() * (max - min) + min;
+}
+
+// On parcourt l'ensemble des larmes
+tears.forEach(function(el) {
+
+  // On anime chacune des larmes
+  el.animate(
+    tearsFalling,
+    {
+      delay: getRandomMsRange(-1000, 1000), // aléatoire pour chaque larme
+      duration: getRandomMsRange(2000, 6000), // aléatoire pour chaque larme
+      iterations: Infinity,
+      easing: "cubic-bezier(0.6, 0.04, 0.98, 0.335)"
+    });
+});
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('Web Animations', '#start-delay', 'delay')}}{{Spec2('Web Animations')}}Brouillon d'édiiton.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support simple{{CompatVersionUnknown}}{{CompatGeckoDesktop(45)}}[1]{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidWebview AndroidChrome pour AndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Support simple{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(45)}}[1]{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] L'API Web Animations est uniquement activée par défaut pour les canaux Nightly et Developer Edition. Elle peut être activée dans les autres versions avec la préférence dom.animations-api.core.enabled.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/effecttiming/index.html b/files/fr/web/api/effecttiming/index.html new file mode 100644 index 0000000000..cc984622c9 --- /dev/null +++ b/files/fr/web/api/effecttiming/index.html @@ -0,0 +1,124 @@ +--- +title: Animation Effect Timing Properties +slug: Web/API/AnimationEffectTimingProperties +tags: + - API + - Animation + - AnimationEffectTimingProperties + - Dictionnaire + - Experimental + - Interface + - Reference +translation_of: Web/API/EffectTiming +--- +
{{SeeCompatTable}}{{APIRef("Web Animations")}}
+ +

Le dictionnaire AnimationEffectTimingProperties est utilisé par les méthodes {{domxref("Element.animate()")}}, {{domxref("KeyframeEffectReadOnly.KeyframeEffectReadOnly", "KeyframeEffectReadOnly()")}} et {{domxref("KeyframeEffect.KeyframeEffect", "KeyframeEffect()")}} afin de décrire les propriétés temporelles pour les effets d'animation. L'ensemble de ces propriétés sont optionnelles mais si duration n'est pas paramétrée, l'animation ne sera pas lancée.

+ +

Ces propriétés décrivent la façon dont l'agent utilisateur applique l'animation entre chaque étape (keyframe) et comment elle se comporte au début et à la fin.

+ +

Propriétés

+ +
+
{{domxref("AnimationEffectTimingProperties.delay", "delay")}} {{optional_inline}}
+
Le nombre de millisecondes à attendre avant de démarrer l'animation. La valeur par défaut est 0.
+
{{domxref("AnimationEffectTimingProperties.direction", "direction")}} {{optional_inline}}
+
Indique si l'animation se déroule dans le sens the animation runs forwards (normal), backwards (reverse), switches direction after each iteration (alternate), or runs backwards and switches direction after each iteration (alternate-reverse). Defaults to "normal".
+
{{domxref("AnimationEffectTimingProperties.duration", "duration")}} {{optional_inline}}
+
La durée d'une itération, exprimée en millisecondes. La valeur par défaut est 0. Bien que cette propriété soit optionnelle, il faut garder à l'esprit que l'animation ne sera pas lancée si la valeur est 0.
+
{{domxref("AnimationEffectTimingProperties.easing", "easing")}} {{optional_inline}}
+
La courbe de progression de l'animation au cours du temps. Cette propriété accepte des valeurs pré-paramétrées comme "linear", "ease", "ease-in", "ease-out" et "ease-in-out" ou une fonction "cubic-bezier" de la forme "cubic-bezier(0.42, 0, 0.58, 1)". La valeur par défaut est "linear".
+
{{domxref("AnimationEffectTimingProperties.endDelay", "endDelay")}} {{optional_inline}}
+
Le nombre de millisecondes à attendre après la fin de l'animation. Cette propriété est principalement utilisée lorsqu'on enchaîne une animation à la suite d'une autre. La valeur par défaut est 0.
+
{{domxref("AnimationEffectTimingProperties.fill", "fill")}} {{optional_inline}}
+
Indique si les effets de l'animation doivent s'appliqués sur l'élément avant d'être lancée ("backwards"), être conservés après la fin de l'animation ("forwards") ou les deux both. La valeur par défaut est "none".
+
{{domxref("AnimationEffectTimingProperties.iterationStart", "iterationStart")}} {{optional_inline}}
+
Décrit le point de départ de l'animation par rapport à une itération. Une valeur de 0.5 indique que l'animation démarre au milieu de la première animation (dans ce cas, après deux itérations, l'animation sera arrivée à la moitié de la troisième itération). La valeur par défaut est 0.0.
+
{{domxref("AnimationEffectTimingProperties.iterations", "iterations")}} {{optional_inline}}
+
Le nombre de fois que l'animation doit être répétée. La valeur par défaut est 1. Il est possible d'utiliser la valeur {{jsxref("Infinity")}} pour répéter l'animation aussi longtemps que l'élément existe.
+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('Web Animations', '#the-animationeffecttimingproperties-dictionary', 'AnimationEffectTimingProperties' )}}{{Spec2('Web Animations')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Microsoft EdgeInternet ExplorerOperaSafari (WebKit)
Support simple{{CompatUnknown}}{{CompatGeckoDesktop(45)}}[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidWebview AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari MobileChrome pour Android
Support simple{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(45)}}[1]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

[1] The Web Animations API is only enabled by default in Firefox Developer Edition and Nightly builds. You can enable it in beta and release builds by setting the preference dom.animations-api.core.enabled to true, and can disable it in any Firefox version by setting this preference to false.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/element.blur/index.html b/files/fr/web/api/element.blur/index.html deleted file mode 100644 index 6c5f12166c..0000000000 --- a/files/fr/web/api/element.blur/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: HTMLElement.blur() -slug: Web/API/Element.blur -tags: - - API - - DOM - - HTMLElement - - Method - - Reference -translation_of: Web/API/HTMLOrForeignElement/blur ---- -
-
{{ APIRef("HTML DOM") }}
-
- -

La méthode HTMLElement.blur() retire le focus de l'élément courant.

- -

Syntax

- -
elt.blur()
- -

Exemples

- -

Retirer le focus d'un champ texte

- -

HTML

- -
<input type="text" id="myText" value="Champ texte.">
-<p></p>
-<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus</button>
-<button type="button" onclick="blurMethod()">Cliquez-moi pour retirer le focus</button>
- -

JavaScript

- -
focusMethod = function getFocus() {
-  document.getElementById("myText").focus();
-}
-blurMethod = function getBlur() {
-  document.getElementById("myText").blur();
-}
- -

Résultat

- -

{{ EmbedLiveSample('Remove_focus_from_a_text_area') }}

- -

Spécification

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'editing.html#dom-blur', 'blur')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5.1', 'editing.html#blur()-0', 'blur')}}{{Spec2('HTML5.1')}}
{{SpecName('HTML5 W3C', 'editing.html#dom-blur', 'blur')}}{{Spec2('HTML5 W3C')}}
{{SpecName('DOM2 HTML', 'html.html#ID-28216144', 'blur')}}{{Spec2('DOM2 HTML')}}
- -

Compatibilité navigateur

- - -

{{Compat("api.HTMLElement.blur")}}

-

Dans IE9-10, il y a un bug où appeler blur() sur le {{HTMLElement("body")}} change la fenêtre active du navigateur vers une autre application.

- -

Voir aussi

- -

La méthode DOM {{domxref("HTMLElement.focus()")}}

diff --git a/files/fr/web/api/element/accesskey/index.html b/files/fr/web/api/element/accesskey/index.html deleted file mode 100644 index 2d84dd6dae..0000000000 --- a/files/fr/web/api/element/accesskey/index.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Element.accessKey -slug: Web/API/Element/accessKey -tags: - - API - - DOM - - Element - - Propriété - - Raccourcis clavier - - Reference -translation_of: Web/API/HTMLElement/accessKey -translation_of_original: Web/API/Element/accessKey ---- -
{{APIRef("DOM")}}
- -
 
- -

La propriété Element.accessKey définit la touche sur laquelle l'utilisateur doit appuyer pour accéder à l'élément.

- -
-

Note : La propriété Element.accessKey est rarement utilisée en raison de ses multiples conflits avec des raccourcis clavier déjà présents dans les navigateurs. Pour contourner ce problème, les navigateurs appliquent le comportement attendu de "accesskey" lorsqu'une autre touche est pressée simultanément (comme Alt + accesskey).

-
diff --git a/files/fr/web/api/element/compositionend_event/index.html b/files/fr/web/api/element/compositionend_event/index.html new file mode 100644 index 0000000000..8a15ab679a --- /dev/null +++ b/files/fr/web/api/element/compositionend_event/index.html @@ -0,0 +1,131 @@ +--- +title: compositionend +slug: Web/Events/compositionend +translation_of: Web/API/Element/compositionend_event +--- +

L'événement compositionend est déclenché lorsque la composition d'un texte via {{glossary("input method editor", "méthode de saisie")}} est terminée ou annulée (démarre avec des caractères spéciaux qui requièrent une séquence de touches et d'autres entrées telles que la reconnaissance vocale ou la suggestion de mot sur mobile).

+ +

Par exemple, cette événement pourrait être déclanché quand un utilisateur saisie un caractère chinois en utilisant la méthode de saisie Pinyin.

+ + + + + + + + + + + + + + + + + + + + +
Se propage/remonte dans le DOMOui
AnnulableOui
Interface{{domxref("CompositionEvent")}}
Propriété pour la gestion d'évènementAucune
+ +

Exemple

+ +

Html

+ +
<div class="control">
+  <label for="name">Sur macOS, cliquez sur la boîte de texte,<br> puis appuyez sur <kbd>option</kbd> + <kbd>`</kbd>, puis <kbd>a</kbd>:</label>
+  <input type="text" id="example" name="example">
+</div>
+
+<div class="event-log">
+  <label>Log d'événement:</label>
+  <textarea readonly class="event-log-contents" rows="8" cols="25"></textarea>
+  <button class="clear-log">Effacer</button>
+</div>
+ + + +

JS

+ +
const inputElement = document.querySelector('input[type="text"]');
+const log = document.querySelector('.event-log-contents');
+const clearLog = document.querySelector('.clear-log');
+
+clearLog.addEventListener('click', () => {
+    log.textContent = '';
+});
+
+function handleEvent(event) {
+    log.textContent = log.textContent + `${event.type}: ${event.data}\n`;
+}
+
+inputElement.addEventListener('compositionstart', handleEvent);
+inputElement.addEventListener('compositionupdate', handleEvent);
+inputElement.addEventListener('compositionend', handleEvent);
+ +

Resultat

+ +

{{ EmbedLiveSample('Exemple', '100%', '180px') }}

+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatus
{{SpecName('UI Events', '#event-type-compositionend')}}{{Spec2('UI Events')}}
+ +

Compatibilités navigateurs

+ +

{{Compat("api.Element.compositionend_event")}}

+ +

Evénements liés

+ + diff --git a/files/fr/web/api/element/compositionstart_event/index.html b/files/fr/web/api/element/compositionstart_event/index.html new file mode 100644 index 0000000000..8b72ed5d31 --- /dev/null +++ b/files/fr/web/api/element/compositionstart_event/index.html @@ -0,0 +1,146 @@ +--- +title: compositionstart +slug: Web/Events/compositionstart +translation_of: Web/API/Element/compositionstart_event +--- +

L'événement compositionstart est déclenché lorsque la composition d'un passage de texte est préparée (similaire à keydown pour une entrée clavier, mais démarre avec des caractères spéciaux qui nécessitent une sequence de touches et d'autres entrées telles que la reconnaissance vocale ou la suggestion de mots du mobile).

+ +

Informations générales

+ +
+
Interface
+
{{domxref("TouchEvent")}}
+
Propagation
+
Oui
+
Annulable
+
Oui
+
Cible
+
{{domxref("Element")}}
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}Elément ayant le focus qui traite la composition
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce qu'il se propage?
cancelable {{ReadOnlyInline}}booleanPeut-il être annulé?
view {{ReadOnlyInline}}{{domxref("WindowProxy")}}{{domxref("Document.defaultView")}} (fenêtre du document)
detail {{ReadOnlyInline}}long (float)0.
data {{ReadOnlyInline}}{{domxref("DOMString")}} (string) +

La chaîne de caractères originale éditée ou une chaîne vide.

+
locale {{ReadOnlyInline}}{{domxref("DOMString")}} (string)Le code de la langue pour l'événement de composition si disponible; Sinon une chaîne vide.
+ +

Compatibilités navigateur

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support basique{{CompatVersionUnknown}}[1]{{CompatGeckoDesktop("9.0")}}[2]{{CompatVersionUnknown}}[3]{{CompatNo}}{{CompatVersionUnknown}}[1]
+
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support basique{{CompatUnknown}}{{CompatGeckoMobile("9.0")}}[2]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

[1] La valeur de l'attribut data est fausse

+ +

[2] L'événement a été déclenché dans les versions de Gecko antérieures à la 9.0, mais n'avait pas les attributs et les méthodes DOM Level 3.

+ +

Gecko ne supporte pas l'attribut locale pour les événements approuvés pour l'instant. Cependant, cette valeur peut être définie via initCompositionEvent() à la création d'événements non-approuvés.

+ +

Selon la spécification DOM Level3, compositionstart est annulable; Cependant, Gecko ne vous laisse pas l' annuler.

+ +

Gecko déclenche l'événement lorsque IME commence la composition, et quelques plateformes n'ont pas d'API pour annuler la composition une fois commencée. De plus, Gecko ne peut pas savoir si un événement clavier va commencé la composition ou non jusqu'à ce que IME ne la commence réellement. A cause de celà, {{domxref("event.preventDefault()")}} ne fonctionne pas sur l'événement compositionstart avec Gecko.

+ +

Les éditeurs de Gecko (comme <input type="text"> <div contenteditable/> et designMode) commence la composition après la phase de propagation de compositionstart. Donc, au moment où votre gestionnaire de compositionstart est appelé, aucun contenu n'a été modifié.

+ +

[3] La valeur de data est toujours vide.

+ +

Evénements liés

+ + diff --git a/files/fr/web/api/element/compositionupdate_event/index.html b/files/fr/web/api/element/compositionupdate_event/index.html new file mode 100644 index 0000000000..ba22586181 --- /dev/null +++ b/files/fr/web/api/element/compositionupdate_event/index.html @@ -0,0 +1,137 @@ +--- +title: compositionupdate +slug: Web/Events/compositionupdate +translation_of: Web/API/Element/compositionupdate_event +--- +

L'événement compositionupdate est déclenché lorsqu'un caractère est ajouté à un passage de texte en train d'être composé (démarre avec des caractères spéciaux qui nécessitent une sequence de touches et d'autres entrées telles que la reconnaissance vocale ou la suggestion de mots du mobile).

+ +

Informations générales

+ +
+
Interface
+
{{domxref("TouchEvent")}}
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
{{domxref("Element")}}
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}Elément ayant le focus qui traite la composition. Nul si non-accessible.
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce qu'il se propage?
cancelable {{ReadOnlyInline}}booleanPeut-il être annulé?
view {{ReadOnlyInline}}{{domxref("WindowProxy")}}{{domxref("Document.defaultView")}} (fenêtre du document).
detail {{ReadOnlyInline}}long (float)0.
data {{ReadOnlyInline}}{{domxref("DOMString")}} (string)La chaîne de caractères originale éditée ou une chaîne vide.
locale {{ReadOnlyInline}}{{domxref("DOMString")}} (string)Le code de la langue pour l'événement de composition si disponible; Sinon une chaîne vide.
+ +

Compatibilités navigateur

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support basique{{CompatVersionUnknown}}[1]{{CompatGeckoDesktop("9.0")}}[2]{{CompatVersionUnknown}}{{CompatNo}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Suport basique{{CompatUnknown}}{{CompatGeckoMobile("9.0")}}[2]{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

[1] N'est pas distribué immédiatement après l'événement compositionstart.

+ +

[2] Les événements compositionupdate sont déclenchés avant avant que le contenu éditable ne soit réellement modifié; C'est-à-dire que la valeur d'un élément éditable n'a pas encore été modifiée lorsque les gestionnaires de compositionupdate sont appelés. A partir de Gecko 12.0 {{geckoRelease("12.0")}}, les événements input sont déclenchés durant l'édition, après que le contenu de l'élément a été modifié. Cela permet d'obtenir le contenu mis à jour pendant que l'édition est en cours.

+ +

Gecko ne supporte pas l'attribut locale pour les événements approuvés pour l'instant. Cependant, cette valeur peut être définie via initCompositionEvent() à la création d'événements non-approuvés.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/element/copy_event/index.html b/files/fr/web/api/element/copy_event/index.html new file mode 100644 index 0000000000..d3a9ee8224 --- /dev/null +++ b/files/fr/web/api/element/copy_event/index.html @@ -0,0 +1,148 @@ +--- +title: copy +slug: Web/Events/copy +translation_of: Web/API/Element/copy_event +--- +

L'événement copy est déclenché lorsque l'utilisateur initie une copie par le biais de l'interface du navigateur (par exemple, Ctrl/Cmd+C ou "copier" du menu contextuel) et en réponse d'un appel de {{domxref("Document.execCommand", "document.execCommand('copy')")}} autorisé.

+ +

Informations générales

+ +
+
Spécification
+
Clipboard
+
Interface
+
{{domxref("ClipboardEvent")}}
+
Propagation
+
Oui
+
Annulable
+
Oui
+
Cible
+
{{domxref("Element")}}: L'élément ayant le focus (pour les éléments {{domxref("HTMLElement.contentEditable", "contentEditable")}} - l'élément contenant le début de la sélection), ou l'élément {{HTMLElement("body")}}
+
Action par défaut
+
Voir ce-dessous
+
+ +

Un gestionnaire de cet événement peut modifier l'objet {{domxref("ClipboardEvent.clipboardData")}} en appellant {{domxref("DataTransfer.setData", "setData(format, data)")}}:

+ +
document.addEventListener('copy', function(e){
+    e.clipboardData.setData('text/plain', 'Hello, world!');
+    e.clipboardData.setData('text/html', '<b>Hello, world!</b>');
+    e.preventDefault(); // We want our data, not data from any selection, to be written to the clipboard
+});
+ +

Un gestionnaire de cet événement ne peut pas lire les données du presse-papiers en utilisant {{domxref("DataTransfer.getData", "clipboardData.getData()")}}.

+ +

L'action par défaut de l'événement dépend de la source de celui-ci et du comportement du gestionnaire:

+ + + +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
+ +

Compatibilités navigateur

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
clipboardData{{ CompatVersionUnknown() }}{{ CompatGeckoDesktop(22) }}{{ CompatNo() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Support basique{{ CompatUnknown() }}{{ CompatVersionUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
clipboardData{{ CompatUnknown() }}{{ CompatGeckoMobile(22) }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

Evénements liés

+ + diff --git a/files/fr/web/api/element/error_event/index.html b/files/fr/web/api/element/error_event/index.html new file mode 100644 index 0000000000..5ab9de5a8c --- /dev/null +++ b/files/fr/web/api/element/error_event/index.html @@ -0,0 +1,93 @@ +--- +title: error +slug: Web/Events/error +tags: + - DOM + - Erreurs + - Gestionnaire d'erreurs + - Interface + - évènements +translation_of: Web/API/Element/error_event +--- +

L'événement error (erreur) est déclenché lorsqu'une ressource n'a pas pu être chargée ; les circonstances exactes varient, ce nom étant utilisé par une grande variété d'API.

+ +

Informations générales

+ +
+
Spécification
+
DOM L3
+
Interface
+
{{domxref("UIEvent")}} si généré depuis l'interface utilisateur,
+ {{domxref("MediaRecorderErrorEvent")}} si généré par MediaStream Recording API  et
+ sinon {{domxref("Event")}}.
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
{{domxref("Element")}}
+
Action par défaut
+
Aucune
+
 
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}EventTargetThe event target (the topmost target in the DOM tree).
type {{readonlyInline}}DOMStringThe type of event.
bubbles {{readonlyInline}}BooleanWhether the event normally bubbles or not.
cancelable {{readonlyInline}}BooleanWhether the event is cancellable or not.
view {{readonlyInline}}WindowProxydocument.defaultView (window of the document)
detail {{readonlyInline}}long (float)0.
+ +

Pour des évènements MediaStream Recording

+ +

Ces évènements sont d'un type {{domxref("MediaRecorderErrorEvent")}}.

+ +

{{page("/en-US/docs/Web/API/MediaRecorderErrorEvent", "Properties")}}

+ +

Voir aussi

+ +
+
{{domxref("GlobalEventHandlers.onerror")}}
+
Évènements envoyés à {{domxref("Window.onerror")}} et à {{domxref("Element.onerror")}}
+
{{domxref("HTMLMediaElement.onerror")}}
+
Évènements envoyés à {{domxref("HTMLMediaElement")}} incluant {{HTMLElement("audio")}}   et {{HTMLElement("video")}} .
+
{{domxref("MediaRecorder.onerror")}}
+
Évènements envoyés à {{domxref("MediaRecorder.onerror")}} , d'un type {{domxref("MediaRecorderErrorEvent")}}
+
diff --git a/files/fr/web/api/element/focusin_event/index.html b/files/fr/web/api/element/focusin_event/index.html new file mode 100644 index 0000000000..79a9e2af63 --- /dev/null +++ b/files/fr/web/api/element/focusin_event/index.html @@ -0,0 +1,123 @@ +--- +title: focusin +slug: Web/Events/focusin +translation_of: Web/API/Element/focusin_event +--- +

L'événement focusin est déclenché lorsqu'un élément est sur le point de recevoir le focus. La principale différence avec focus est que focusin se propage.

+ +

Informations générales

+ +
+
Spécification
+
DOM L3
+
Interface
+
{{domxref("FocusEvent")}}
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
{{domxref("Element")}}
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}Event target losing focus.
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
relatedTarget {{readonlyInline}}{{domxref("EventTarget")}} (DOM element)Event target receiving focus.
+ +

Compatibilité navigateur

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support basique{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support basique{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+ +

[1] Cet événement n'est pas encore supporté par Firefox, voir {{Bug("687787")}}. Il est possible d'utiliser l'événement focus à la place, qui est aussi compatible avec la délégation d'événements.

+ +

Evénements liés

+ + diff --git a/files/fr/web/api/element/focusout_event/index.html b/files/fr/web/api/element/focusout_event/index.html new file mode 100644 index 0000000000..01ddab4738 --- /dev/null +++ b/files/fr/web/api/element/focusout_event/index.html @@ -0,0 +1,123 @@ +--- +title: focusout +slug: Web/Events/focusout +translation_of: Web/API/Element/focusout_event +--- +

L'évènement focusout est déclenché lorsqu'un élément du DOM est sur le point de perdre le focus. La différence principale entre cet événement et blur est que ce dernier ne se propage pas.

+ +

Informations générales

+ +
+
Spécification
+
DOM L3
+
Interface
+
{{domxref("FocusEvent")}}
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
{{domxref("Element")}}
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}Event target losing focus.
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
relatedTarget {{readonlyInline}}{{domxref("EventTarget")}} (DOM element)Event target receiving focus.
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support de base{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatVersionUnknown}}{{CompatNo}}[1]{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
+
+ +

[1] Cet évènement n'est pas encore supporté dans Firefox, voir {{Bug("687787")}}. Il est possible d'utiliser l'évènement blur à la place, qui est également compatible avec event delegation.

+ +

Evénements liés

+ + diff --git a/files/fr/web/api/element/innerhtml/index.html b/files/fr/web/api/element/innerhtml/index.html new file mode 100644 index 0000000000..6addb7d54e --- /dev/null +++ b/files/fr/web/api/element/innerhtml/index.html @@ -0,0 +1,203 @@ +--- +title: element.innerHTML +slug: Web/API/Element/innertHTML +tags: + - API + - DOM + - Elements + - HTML + - Propriétés +translation_of: Web/API/Element/innerHTML +--- +
{{APIRef("DOM")}}
+ +

La propriété Element.innerHTML de {{domxref("Element")}} récupère ou définit la syntaxe HTML décrivant les descendants de l'élément.

+ +
Note: Si un nœud {{HTMLElement("div")}}, {{HTMLElement("span")}}, ou {{HTMLElement("noembed")}} a un sous-nœud de type texte contenant les caractères (&), (<), ou (>), innerHTML renverra à la place les chaînes suivantes : "&amp;", "&lt;" et "&gt;" respectivement. Utilisez {{domxref("Node.textContent")}} pour obtenir une copie exacte du contenu de ces nœuds.
+ +

Pour insérer le HTML dans le document, plutôt que de remplacer le contenu d'un élément, utilisez la méthode {{domxref("Element.insertAdjacentHTML", "insertAdjacentHTML()")}}.

+ +

Syntaxe

+ +
const content = element.innerHTML;
+
+element.innerHTML = htmlString;
+
+ +

Valeur

+ +

Une  {{domxref("DOMString")}} contenant la sérialisation HTML des descendants de l'élément. Définir la valeur de innerHTML supprime tous les descendants et les remplace par les noeuds construits en analysant le HTML donné dans la chaîne htmlString.

+ +

Exceptions

+ +
+
SyntaxError
+
Une tentative a été faite de définir la valeur de innerHTML en utilisant une chaîne qui n'est pas correctement formée HTML.
+
NoModificationAllowedError
+
Une tentative a été faite d'insérer le code HTML dans un noeud dont le parent est un {{domxref("Document")}}.
+
+ +

Notes d'utilisation

+ +

La propriété innerHTML peut être utilisée pour examiner la source HTML actuelle de la page, y compris tous les changements réalisés depuis son chargement initial.

+ +

Lecture du contenu HTML d'un élément

+ +

La lecture de innerHTML amène l'agent utilisateur à sérialiser le fragment HTML ou XML composé des descendants de l'élément. La chaîne résultante est renvoyée.

+ +
let contents = myElement.innerHTML;
+ +

Cela vous permet de regarder le balisage HTML des nœuds de contenu de l'élément.

+ +
+

Note : Le fragment HTML ou XML renvoyé est généré en fonction du contenu actuel de l'élément. Il est donc probable que le balisage et la mise en forme du fragment renvoyé ne correspondent pas au balisage de la page d'origine.

+
+ +

Remplacement du contenu d'un élément

+ +

Définir la valeur de innerHTML vous permet de remplacer aisément le contenu existant d'un élément par un nouveau contenu.

+ +

Par exemple, vous pouvez effacer le contenu entier du document en effaçant le contenu de l'attribut {{domxref("Document.body", "body")}} du document.

+ +
document.body.innerHTML = "";
+ +

Cet exemple récupère le balisage HTML actuel du document et remplace les caractères "<" par l'entité HTML "& lt;", convertissant ainsi essentiellement le code HTML en texte brut. Ceci est ensuite inclus dans un élément {{HTMLElement ("pre")}}. Puis, la valeur de innerHTML est modifiée dans cette nouvelle chaîne. Par conséquent, le contenu du document est remplacé par un affichage du code source entier de la page.

+ +
document.documentElement.innerHTML = "<pre>" +
+         document.documentElement.innerHTML.replace(/</g,"&lt;") +
+            "</pre>";
+ +

Détails opérationnels

+ +

Qu'arrive-t-il exactement quand vous définissez la valeur de innerHTML ?  Cela entraîne l'agent utilisateur à suivre ces étapes :

+ +
    +
  1. La valeur spécifiée est analysée en HTML ou XML (en fonction du type de document), ce qui donne un objet {{domxref ("DocumentFragment")}} représentant le nouvel ensemble de nœuds DOM pour les nouveaux éléments.
  2. +
  3. Si l'élément dont le contenu est remplacé est un élément {{HTMLElement ("template")}}, l'attribut {{domxref ("HTMLTemplateElement.content", "content")}} de l'élément <template> est remplacé par le nouveau DocumentFragment créé à l'étape 1.
  4. +
  5. Pour tous les autres éléments, le contenu de l'élément est remplacé par les noeuds du nouveau DocumentFragment.
  6. +
+ +

Considérations de sécurité

+ +

Il n'est pas rare de voir innerHTML utilisé pour insérer du texte dans une page Web. Il est possible que ceci devienne un vecteur d'attaque sur un site, ce qui crée potentiellement un risque de sécurité.

+ +
const name = "John";
+// en supposant que 'el' est un élément de document HTML
+el.innerHTML = name; // inoffensif dans ce cas
+
+// ...
+
+name = "<script>alert('I am John in an annoying alert!')</script>";
+el.innerHTML = name; // inoffensif dans ce cas
+ +

Bien que cela puisse ressembler à une attaque {{interwiki ("wikipedia", "cross-site_scripting","cross-site scripting")}}, le résultat est inoffensif. HTML5 spécifie qu'une balise {{HTMLElement ("script")}} insérée avec innerHTML ne doit pas s'exécuter.

+ +

Cependant, il existe des moyens d'exécuter JavaScript sans utiliser les éléments {{HTMLElement ("script")}}, donc il existe toujours un risque de sécurité chaque fois que vous utilisez innerHTML pour définir des chaînes sur lesquelles vous n'avez aucun contrôle. Par exemple :

+ +
const name = "<img src='x' onerror='alert(1)'>";
+el.innerHTML = name; // affiche l'alerte
+ +

Pour cette raison, il est recommandé de ne pas utiliser innerHTML pour insérer du texte brut ; à la place, utilisez {{domxref("Node.textContent")}}. Cela n'analyse pas le contenu passé en HTML, mais l'insère à la place en tant que texte brut.

+ +
+

Attention : Si votre projet est soumis à une vérification de sécurité, l'utilisation de innerHTML entraînera probablement le rejet de votre code. Par exemple, si vous utilisez innerHTML dans une extension de navigateur et soumettez l'extension à addons.mozilla.org, elle ne passera pas le processus de révision automatique.

+
+ +

Exemple

+ +

Cet exemple utilise innerHTML pour créer un mécanisme pour consigner des messages dans une boîte sur une page Web.

+ +

JavaScript

+ +
function log(msg) {
+  var logElem = document.querySelector(".log");
+
+  var time = new Date();
+  var timeStr = time.toLocaleTimeString();
+  logElem.innerHTML += timeStr + ": " + msg + "<br/>";
+}
+
+log("Logging mouse events inside this container...");
+ +

La fonction log() crée la sortie du journal en récupérant l'heure actuelle à partir d'un objet {{jsxref ("Date")}} en utilisant {{jsxref ("Date.toLocaleTimeString", "toLocaleTimeString ()")}} et en créant une chaîne avec l'horodatage et le texte du message. Ensuite, le message est ajouté à la boîte avec la classe "log".

+ +

Nous ajoutons une seconde méthode qui enregistre des informations sur les événements basés sur {{domxref ("MouseEvent")}} (tels que {{event ("mousedown")}}, {{event ("click")}} et {{event ("mouseenter") }}) :

+ +
function logEvent(event) {
+  var msg = "Event <strong>" + event.type + "</strong> at <em>" +
+            event.clientX + ", " + event.clientY + "</em>";
+  log(msg);
+}
+ +

Alors, nous utilisons ceci comme un gestionnaire d'évènements pour un certain nombre d'évènements de souris sur la boîte qui contient notre journal.

+ +
var boxElem = document.querySelector(".box");
+
+boxElem.addEventListener("mousedown", logEvent);
+boxElem.addEventListener("mouseup", logEvent);
+boxElem.addEventListener("click", logEvent);
+boxElem.addEventListener("mouseenter", logEvent);
+boxElem.addEventListener("mouseleave", logEvent);
+ +

HTML

+ +

Le HTML est assez simple pour notre exemple.

+ +
<div class="box">
+  <div><strong>Log:</strong></div>
+  <div class="log"></div>
+</div>
+ +

Le {{HTMLElement ("div")}} avec la classe "box" est juste un conteneur pour la mise en page, présentant le contenu avec une boîte autour de lui. Le <div> dont la classe est "log" est le conteneur pour le texte du journal lui-même.

+ +

CSS

+ +

Les styles CSS suivants pour notre exemple de contenu.

+ +
.box {
+  width: 600px;
+  height: 300px;
+  border: 1px solid black;
+  padding: 2px 4px;
+  overflow-y: scroll;
+  overflow-x: auto;
+}
+
+.log {
+  margin-top: 8px;
+  font-family: monospace;
+}
+ +

Résultat

+ +

Le contenu résultant ressemble à ceci. Vous pouvez voir la sortie dans le journal en déplaçant la souris dans et hors de la boîte, en cliquant dedans, et ainsi de suite.

+ +

{{EmbedLiveSample("Exemple", 640, 350)}}

+ +

Spécification

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('DOM Parsing', '#innerhtml', 'Element.innerHTML')}}{{ Spec2('DOM Parsing') }}Définition initiale.
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/element/innerthtml/index.html b/files/fr/web/api/element/innerthtml/index.html deleted file mode 100644 index 6addb7d54e..0000000000 --- a/files/fr/web/api/element/innerthtml/index.html +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: element.innerHTML -slug: Web/API/Element/innertHTML -tags: - - API - - DOM - - Elements - - HTML - - Propriétés -translation_of: Web/API/Element/innerHTML ---- -
{{APIRef("DOM")}}
- -

La propriété Element.innerHTML de {{domxref("Element")}} récupère ou définit la syntaxe HTML décrivant les descendants de l'élément.

- -
Note: Si un nœud {{HTMLElement("div")}}, {{HTMLElement("span")}}, ou {{HTMLElement("noembed")}} a un sous-nœud de type texte contenant les caractères (&), (<), ou (>), innerHTML renverra à la place les chaînes suivantes : "&amp;", "&lt;" et "&gt;" respectivement. Utilisez {{domxref("Node.textContent")}} pour obtenir une copie exacte du contenu de ces nœuds.
- -

Pour insérer le HTML dans le document, plutôt que de remplacer le contenu d'un élément, utilisez la méthode {{domxref("Element.insertAdjacentHTML", "insertAdjacentHTML()")}}.

- -

Syntaxe

- -
const content = element.innerHTML;
-
-element.innerHTML = htmlString;
-
- -

Valeur

- -

Une  {{domxref("DOMString")}} contenant la sérialisation HTML des descendants de l'élément. Définir la valeur de innerHTML supprime tous les descendants et les remplace par les noeuds construits en analysant le HTML donné dans la chaîne htmlString.

- -

Exceptions

- -
-
SyntaxError
-
Une tentative a été faite de définir la valeur de innerHTML en utilisant une chaîne qui n'est pas correctement formée HTML.
-
NoModificationAllowedError
-
Une tentative a été faite d'insérer le code HTML dans un noeud dont le parent est un {{domxref("Document")}}.
-
- -

Notes d'utilisation

- -

La propriété innerHTML peut être utilisée pour examiner la source HTML actuelle de la page, y compris tous les changements réalisés depuis son chargement initial.

- -

Lecture du contenu HTML d'un élément

- -

La lecture de innerHTML amène l'agent utilisateur à sérialiser le fragment HTML ou XML composé des descendants de l'élément. La chaîne résultante est renvoyée.

- -
let contents = myElement.innerHTML;
- -

Cela vous permet de regarder le balisage HTML des nœuds de contenu de l'élément.

- -
-

Note : Le fragment HTML ou XML renvoyé est généré en fonction du contenu actuel de l'élément. Il est donc probable que le balisage et la mise en forme du fragment renvoyé ne correspondent pas au balisage de la page d'origine.

-
- -

Remplacement du contenu d'un élément

- -

Définir la valeur de innerHTML vous permet de remplacer aisément le contenu existant d'un élément par un nouveau contenu.

- -

Par exemple, vous pouvez effacer le contenu entier du document en effaçant le contenu de l'attribut {{domxref("Document.body", "body")}} du document.

- -
document.body.innerHTML = "";
- -

Cet exemple récupère le balisage HTML actuel du document et remplace les caractères "<" par l'entité HTML "& lt;", convertissant ainsi essentiellement le code HTML en texte brut. Ceci est ensuite inclus dans un élément {{HTMLElement ("pre")}}. Puis, la valeur de innerHTML est modifiée dans cette nouvelle chaîne. Par conséquent, le contenu du document est remplacé par un affichage du code source entier de la page.

- -
document.documentElement.innerHTML = "<pre>" +
-         document.documentElement.innerHTML.replace(/</g,"&lt;") +
-            "</pre>";
- -

Détails opérationnels

- -

Qu'arrive-t-il exactement quand vous définissez la valeur de innerHTML ?  Cela entraîne l'agent utilisateur à suivre ces étapes :

- -
    -
  1. La valeur spécifiée est analysée en HTML ou XML (en fonction du type de document), ce qui donne un objet {{domxref ("DocumentFragment")}} représentant le nouvel ensemble de nœuds DOM pour les nouveaux éléments.
  2. -
  3. Si l'élément dont le contenu est remplacé est un élément {{HTMLElement ("template")}}, l'attribut {{domxref ("HTMLTemplateElement.content", "content")}} de l'élément <template> est remplacé par le nouveau DocumentFragment créé à l'étape 1.
  4. -
  5. Pour tous les autres éléments, le contenu de l'élément est remplacé par les noeuds du nouveau DocumentFragment.
  6. -
- -

Considérations de sécurité

- -

Il n'est pas rare de voir innerHTML utilisé pour insérer du texte dans une page Web. Il est possible que ceci devienne un vecteur d'attaque sur un site, ce qui crée potentiellement un risque de sécurité.

- -
const name = "John";
-// en supposant que 'el' est un élément de document HTML
-el.innerHTML = name; // inoffensif dans ce cas
-
-// ...
-
-name = "<script>alert('I am John in an annoying alert!')</script>";
-el.innerHTML = name; // inoffensif dans ce cas
- -

Bien que cela puisse ressembler à une attaque {{interwiki ("wikipedia", "cross-site_scripting","cross-site scripting")}}, le résultat est inoffensif. HTML5 spécifie qu'une balise {{HTMLElement ("script")}} insérée avec innerHTML ne doit pas s'exécuter.

- -

Cependant, il existe des moyens d'exécuter JavaScript sans utiliser les éléments {{HTMLElement ("script")}}, donc il existe toujours un risque de sécurité chaque fois que vous utilisez innerHTML pour définir des chaînes sur lesquelles vous n'avez aucun contrôle. Par exemple :

- -
const name = "<img src='x' onerror='alert(1)'>";
-el.innerHTML = name; // affiche l'alerte
- -

Pour cette raison, il est recommandé de ne pas utiliser innerHTML pour insérer du texte brut ; à la place, utilisez {{domxref("Node.textContent")}}. Cela n'analyse pas le contenu passé en HTML, mais l'insère à la place en tant que texte brut.

- -
-

Attention : Si votre projet est soumis à une vérification de sécurité, l'utilisation de innerHTML entraînera probablement le rejet de votre code. Par exemple, si vous utilisez innerHTML dans une extension de navigateur et soumettez l'extension à addons.mozilla.org, elle ne passera pas le processus de révision automatique.

-
- -

Exemple

- -

Cet exemple utilise innerHTML pour créer un mécanisme pour consigner des messages dans une boîte sur une page Web.

- -

JavaScript

- -
function log(msg) {
-  var logElem = document.querySelector(".log");
-
-  var time = new Date();
-  var timeStr = time.toLocaleTimeString();
-  logElem.innerHTML += timeStr + ": " + msg + "<br/>";
-}
-
-log("Logging mouse events inside this container...");
- -

La fonction log() crée la sortie du journal en récupérant l'heure actuelle à partir d'un objet {{jsxref ("Date")}} en utilisant {{jsxref ("Date.toLocaleTimeString", "toLocaleTimeString ()")}} et en créant une chaîne avec l'horodatage et le texte du message. Ensuite, le message est ajouté à la boîte avec la classe "log".

- -

Nous ajoutons une seconde méthode qui enregistre des informations sur les événements basés sur {{domxref ("MouseEvent")}} (tels que {{event ("mousedown")}}, {{event ("click")}} et {{event ("mouseenter") }}) :

- -
function logEvent(event) {
-  var msg = "Event <strong>" + event.type + "</strong> at <em>" +
-            event.clientX + ", " + event.clientY + "</em>";
-  log(msg);
-}
- -

Alors, nous utilisons ceci comme un gestionnaire d'évènements pour un certain nombre d'évènements de souris sur la boîte qui contient notre journal.

- -
var boxElem = document.querySelector(".box");
-
-boxElem.addEventListener("mousedown", logEvent);
-boxElem.addEventListener("mouseup", logEvent);
-boxElem.addEventListener("click", logEvent);
-boxElem.addEventListener("mouseenter", logEvent);
-boxElem.addEventListener("mouseleave", logEvent);
- -

HTML

- -

Le HTML est assez simple pour notre exemple.

- -
<div class="box">
-  <div><strong>Log:</strong></div>
-  <div class="log"></div>
-</div>
- -

Le {{HTMLElement ("div")}} avec la classe "box" est juste un conteneur pour la mise en page, présentant le contenu avec une boîte autour de lui. Le <div> dont la classe est "log" est le conteneur pour le texte du journal lui-même.

- -

CSS

- -

Les styles CSS suivants pour notre exemple de contenu.

- -
.box {
-  width: 600px;
-  height: 300px;
-  border: 1px solid black;
-  padding: 2px 4px;
-  overflow-y: scroll;
-  overflow-x: auto;
-}
-
-.log {
-  margin-top: 8px;
-  font-family: monospace;
-}
- -

Résultat

- -

Le contenu résultant ressemble à ceci. Vous pouvez voir la sortie dans le journal en déplaçant la souris dans et hors de la boîte, en cliquant dedans, et ainsi de suite.

- -

{{EmbedLiveSample("Exemple", 640, 350)}}

- -

Spécification

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('DOM Parsing', '#innerhtml', 'Element.innerHTML')}}{{ Spec2('DOM Parsing') }}Définition initiale.
- -

Voir aussi

- - diff --git a/files/fr/web/api/element/name/index.html b/files/fr/web/api/element/name/index.html deleted file mode 100644 index a4f8a6ba0a..0000000000 --- a/files/fr/web/api/element/name/index.html +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: element.name -slug: Web/API/Element/name -tags: - - API - - DOM - - Element - - Nom - - Propriétés -translation_of: Web/API -translation_of_original: Web/API/Element/name ---- -

{{ APIRef("DOM") }}

- -

name obtient ou définit la propriété name (nom) d'un élément dans le DOM. Il s'applique uniquement aux éléments suivants : {{ HTMLelement("a") }}, {{ HTMLelement("applet") }}, {{ HTMLelement("button") }}, {{ HTMLelement("form") }}, {{ HTMLelement("frame") }}, {{ HTMLelement("iframe") }}, {{ HTMLelement("img") }}, {{ HTMLelement("input") }}, {{ HTMLelement("map") }}, {{ HTMLelement("meta") }}, {{ HTMLelement("object") }}, {{ HTMLelement("param") }}, {{ HTMLelement("select") }} et {{ HTMLelement("textarea") }}.

- -
-

Note : La propriété name n'existe pas pour d'autres éléments ; contrairement à tagName et nodeName, ce n'est pas une propriété des interfaces {{domxref("Node")}}, {{domxref("Element")}} ou {{domxref("HTMLElement")}}.

-
- -

Le name peut être utilisé avec la méthode {{ domxref("document.getElementsByName()") }}, dans un formulaire et dans la collection elements d'un formulaire. Lorsqu'il est utilisé avec un formulaire ou les collections d'éléments, il peut renvoyer un seul élément ou une collection d'éléments.

- -

Syntaxe

- -
HTMLElement.name = string;
-var elName = HTMLElement.name;
-
-var fControl = HTMLFormElement.elementName;
-var controlCollection = HTMLFormElement.elements.elementName;
-
- -

Exemple

- -
<form action="" name="formA">
-  <input type="text" value="foo">
-</form>
-
-<script type="text/javascript">
-
-  // Obtient une référence au premier élément du formulaire
-  var formElement = document.forms['formA'].elements[0];
-
-  // Lui donne un nom
-  formElement.name = 'inputA';
-
-  // Affiche la valeur du champ
-  alert(document.forms['formA'].elements['inputA'].value);
-
-</script>
-
- -

Notes

- -

Dans Internet Explorer, la propriété name des objets DOM créés à l'aide de createElement ne peut être définie ou modifiée.

- -

Spécification

- -

Spécification DOM 2 HTML du W3C :

- - - -

Les traductions ne sont pas normatives.

diff --git a/files/fr/web/api/element/onwheel/index.html b/files/fr/web/api/element/onwheel/index.html deleted file mode 100644 index 837fda2ba2..0000000000 --- a/files/fr/web/api/element/onwheel/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Element.onwheel -slug: Web/API/Element/onwheel -tags: - - API - - DOM - - Gestionnaires d'évènements - - Propriété - - évènements -translation_of: Web/API/GlobalEventHandlers/onwheel ---- -

{{ ApiRef("DOM") }}

- -

La propriété onwheel renvoie le code du gestionnaire d'évènements onwheel de l'élément courrant.

- -

Syntaxe

- -
element.onwheel = function() { .. }
- -

Spécification

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG','webappapis.html#handler-onwheel','onwheel')}}{{Spec2('HTML WHATWG')}} 
- -

Compatibilité des navigateurs

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(61)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatOpera(48)}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroid WebviewChrome for AndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Basic support{{CompatChrome(61)}}{{CompatChrome(61)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatOperaMobile(48)}}{{CompatVersionUnknown}}
-
- -

Notes

- -

L'évènement wheel est déclenché lorsque l'utilisateur fait défiler le contenu de l'élément.

diff --git a/files/fr/web/api/elementcssinlinestyle/style/index.html b/files/fr/web/api/elementcssinlinestyle/style/index.html new file mode 100644 index 0000000000..85a19bb89a --- /dev/null +++ b/files/fr/web/api/elementcssinlinestyle/style/index.html @@ -0,0 +1,57 @@ +--- +title: HTMLElement.style +slug: Web/API/HTMLElement/style +tags: + - DOM + - Style +translation_of: Web/API/ElementCSSInlineStyle/style +--- +

{{ APIRef("HTML DOM") }}

+ +

Résumé

+ +

Renvoie un objet représentant l'attribut style de l'élément.

+ +

Exemple

+ +
var div = document.getElementById("div1");
+div.style.marginTop = ".25cm";
+
+ +

Notes

+ +

Étant donné que la propriété style d'un élément représente sa déclaration de style en-ligne, qui se trouve dans son attribut style et qui a la priorité la plus haute dans la cascade CSS, elle est utile pour définir un style pour un élément particulier.

+ +

Cependant, elle n'est pas utile pour connaître le style de l'élément en général, puisqu'elle ne représente que les déclarations CSS définies dans l'attribut style de l'élément, et pas celles qui viennent d'autres règles de style, comme celles qui peuvent se trouver dans la section <head> ou des feuilles de style externes.

+ +

Pour obtenir les valeurs de toutes les propriétés CSS pour un élément, vous devriez plutôt utiliser window.getComputedStyle.

+ +

Consultez la liste des propriétés CSS DOM pour une liste des propriétés CSS accessibles depuis le DOM. Vous y trouverez quelques notes supplémentaires concernant l'utilisation de la propriété style pour styler des éléments dans le DOM.

+ +

Il est généralement préférable d'utiliser la propriété style plutôt que elt.setAttribute('style', '...') depuis un script, étant donné que l'utilisation de la propriété style n'écrasera pas les autres propriétés CSS qui peuvent avoir été spécifiées dans l'attribut style.

+ +

Spécification

+ + + +

Compatibilité des navigateurs

+ + + +

{{Compat("api.HTMLElement.style")}}

+ +

Voir aussi

+ + + +

Lien Externe

+ + + +

{{ languages( { "en": "en/DOM/element.style", "ja": "ja/DOM/element.style", "pl": "pl/DOM/element.style" } ) }}

diff --git a/files/fr/web/api/entity/index.html b/files/fr/web/api/entity/index.html deleted file mode 100644 index 2c160ead13..0000000000 --- a/files/fr/web/api/entity/index.html +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Entity -slug: Web/API/Entity -tags: - - API - - DOM - - Entités - - Interface - - Noeuds -translation_of: Web/API/Entity ---- -

{{APIRef("DOM")}}{{obsolete_header}}

- -

Référence en lecture seule à une entité DTD (définition de type de document). Hérite également des méthodes et propriétés de {{domxref("Node")}}.

- -

Propriétés

- -
-
{{domxref("Entity.publicId")}} {{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
{{domxref("Entity.systemId")}} {{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
{{domxref("Entity.notationName")}}{{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
{{domxref("Entity.inputEncoding")}}{{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
{{domxref("Entity.xmlEncoding")}}{{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
{{domxref("Entity.xmlVersion")}}{{ReadOnlyInline}}
-
est une {{domxref("DOMString")}} (chaîne de caractères).
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName("DOM3 Core", "core.html#ID-527DCFF2", "Entity")}}{{Spec2("DOM3 Core")}}Ajout de inputEncoding, xmlEncoding et xmlVersion.
{{SpecName("DOM2 Core", "core.html#ID-527DCFF2", "Entity")}}{{Spec2("DOM2 Core")}}Pas de changement.
{{SpecName('DOM1', 'level-one-core.html#ID-527DCFF2', 'Entity')}}{{Spec2('DOM1')}}Définition initiale.
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git a/files/fr/web/api/entityreference/index.html b/files/fr/web/api/entityreference/index.html deleted file mode 100644 index ee21b2b83f..0000000000 --- a/files/fr/web/api/entityreference/index.html +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: EntityReference -slug: Web/API/EntityReference -tags: - - API - - Arborescence - - DOM - - Entité - - Interface - - Noeuds - - Reference -translation_of: Web/API/EntityReference ---- -

{{APIRef("DOM")}}{{Obsolete_header}}

- -
-

NOTE : Ceci n'est pas implémenté dans Mozilla

-
- -

Référence en lecture seule à une référence d'entité dans l'arborescence DOM. N'a pas de propriétés ou méthodes propres mais hérite de {{domxref("Node")}}.

- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName("DOM3 Core", "core.html#ID-11C98490", "EntityReference")}}{{Spec2("DOM3 Core")}}Définition initiale
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
diff --git "a/files/fr/web/api/event/comparaison_des_cibles_d_\303\251v\303\250nements/index.html" "b/files/fr/web/api/event/comparaison_des_cibles_d_\303\251v\303\250nements/index.html" deleted file mode 100644 index f938d0cff5..0000000000 --- "a/files/fr/web/api/event/comparaison_des_cibles_d_\303\251v\303\250nements/index.html" +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: Comparaison des cibles d'évènements -slug: Web/API/Event/Comparaison_des_cibles_d_évènements -tags: - - Cibles - - DOM - - évènements -translation_of: Web/API/Event/Comparison_of_Event_Targets ---- -

{{ ApiRef() }}

- -

Cibles d'évènements

- -

Il est facile de s'interroger sur la cible à examiner lors de l'écriture d'un gestionnaire d'événements. Cet article devrait clarifier l'utilisation des propriétés de la cible.

- -

Il y a 5 cibles à considérer :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropriétéDéfinie dansObjectif
event.targetDOM Event Interface -

L'élément DOM sur le côté gauche de l'appel qui a déclenché cet événement, par exemple :

- -
-element.dispatchEvent(event)
-
-
event.currentTargetDOM Event InterfaceLa EventTarget (cible d'évènement) que les EventListeners traitent actuellement. Au fur et à mesure de la capture et de la diffusion des évènements, cette valeur change.
event.relatedTargetDOM MouseEvent InterfaceIdentifie une cible secondaire pour l'évènement.
event.explicitOriginalTarget{{ Source("/dom/public/idl/events/nsIDOMNSEvent.idl", "nsIDOMNSEvent.idl") }}{{ Non-standard_inline() }} Si l'évènement a été reciblé pour quelque raison autre que  un passage de limite anonyme, il sera défini sur la cible avant le reciblage. Par exemple, les évènements de souris sont reciblés vers leur noeud parent quand ils surviennent sur des noeuds de texte ({{ Bug("185889") }}), et, dans ce cas, .target affichera le parent .explicitOriginalTarget et le noeud de texte.
- Contrairement à .originalTarget, .explicitOriginalTarget n'aura jamais de contenu anonyme.
event.originalTarget{{ Source("/dom/public/idl/events/nsIDOMNSEvent.idl", "nsIDOMNSEvent.idl") }}{{ Non-standard_inline() }} La cible originale de l'évènement, avant tout reciblage. Voir Anonymous Content#Event_Flow_and_Targeting pour plus de détails.
- -

Utilisation de explicitOriginalTarget et originalTarget

- -

Problème : Seulement disponible dans un navigateur basé sur Mozilla ? Problème : Convient uniquement aux développeurs d'extensions ?

- -

Exemples

- -
<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <title>Comparison of Event Targets</title>
-    <style>
-        table {
-            border-collapse: collapse;
-            height: 150px;
-            width: 100%;
-        }
-        td {
-            border: 1px solid #ccc;
-            font-weight: bold;
-            padding: 5px;
-            min-height: 30px;
-        }
-        .standard {
-            background-color: #99ff99;
-        }
-        .non-standard {
-            background-color: #902D37;
-        }
-    </style>
-</head>
-<body>
-    <table>
-    <thead>
-        <tr>
-            <td class="standard">Original target dispatching the event <small>event.target</small></td>
-            <td class="standard">Target who's event listener is being processed <small>event.currentTarget</small></td>
-            <td class="standard">Identify other element (if any) involved in the event <small>event.relatedTarget</small></td>
-            <td class="non-standard">If there was a retargetting of the event for some reason <small> event.explicitOriginalTarget</small> contains the target before retargetting (never contains anonymous targets)</td>
-            <td class="non-standard">If there was a retargetting of the event for some reason <small> event.originalTarget</small> contains the target before retargetting (may contain anonymous targets)</td>
-        </tr>
-    </thead>
-    <tr>
-        <td id="target"></td>
-        <td id="currentTarget"></td>
-        <td id="relatedTarget"></td>
-        <td id="explicitOriginalTarget"></td>
-        <td id="originalTarget"></td>
-    </tr>
-</table>
-<p>Clicking on the text will show the difference between explicitOriginalTarget, originalTarget and target</p>
-<script>
-    function handleClicks(e) {
-        document.getElementById('target').innerHTML = e.target;
-        document.getElementById('currentTarget').innerHTML = e.currentTarget;
-        document.getElementById('relatedTarget').innerHTML = e.relatedTarget;
-        document.getElementById('explicitOriginalTarget').innerHTML = e.explicitOriginalTarget;
-        document.getElementById('originalTarget').innerHTML = e.originalTarget;
-    }
-
-    function handleMouseover(e) {
-        document.getElementById('target').innerHTML = e.target;
-        document.getElementById('relatedTarget').innerHTML = e.relatedTarget;
-    }
-
-    document.addEventListener('click', handleClicks, false);
-    document.addEventListener('mouseover', handleMouseover, false);
-</script>
-</body>
-</html>
- -

Utilisation de target et relatedTarget

- -

La propriété relatedTarget (cible associée) pour l'évènement mouseover  détient le noeud que la souris avait précédemment atteint. Pour l'évènement mouseout, il détient le noeud que la souris a déplacé à.

- - - - - - - - - - - - - - - - - - - -
Type d'évènementevent.targetevent.relatedTarget
mouseoverLa EventTarget (cible d'évènement) entré par le périphérique de pointage.La EventTarget (cible d'évènement) dont le périphérique de pointage est sorti.
mouseoutLa EventTarget (cible d'évènement) dont le périphérique de pointage est sorti.the EventTarget (cible d'évènement) entré par le périphérique de pointage.
- -

Problème : A également besoin de descriptions sur les évènements dragenter et dragexit.

- -

Exemple

- -
<hbox id="outer">
-  <hbox id="inner"
-        onmouseover="dump('mouseover ' + event.relatedTarget.id + ' > ' + event.target.id + '\n');"
-        onmouseout="dump('mouseout  ' + event.target.id + ' > ' + event.relatedTarget.id + '\n');"
-        style="margin: 100px; border: 10px solid black; width: 100px; height: 100px;" />
-</hbox>
-
- -

 

diff --git a/files/fr/web/api/event/comparison_of_event_targets/index.html b/files/fr/web/api/event/comparison_of_event_targets/index.html new file mode 100644 index 0000000000..f938d0cff5 --- /dev/null +++ b/files/fr/web/api/event/comparison_of_event_targets/index.html @@ -0,0 +1,168 @@ +--- +title: Comparaison des cibles d'évènements +slug: Web/API/Event/Comparaison_des_cibles_d_évènements +tags: + - Cibles + - DOM + - évènements +translation_of: Web/API/Event/Comparison_of_Event_Targets +--- +

{{ ApiRef() }}

+ +

Cibles d'évènements

+ +

Il est facile de s'interroger sur la cible à examiner lors de l'écriture d'un gestionnaire d'événements. Cet article devrait clarifier l'utilisation des propriétés de la cible.

+ +

Il y a 5 cibles à considérer :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéDéfinie dansObjectif
event.targetDOM Event Interface +

L'élément DOM sur le côté gauche de l'appel qui a déclenché cet événement, par exemple :

+ +
+element.dispatchEvent(event)
+
+
event.currentTargetDOM Event InterfaceLa EventTarget (cible d'évènement) que les EventListeners traitent actuellement. Au fur et à mesure de la capture et de la diffusion des évènements, cette valeur change.
event.relatedTargetDOM MouseEvent InterfaceIdentifie une cible secondaire pour l'évènement.
event.explicitOriginalTarget{{ Source("/dom/public/idl/events/nsIDOMNSEvent.idl", "nsIDOMNSEvent.idl") }}{{ Non-standard_inline() }} Si l'évènement a été reciblé pour quelque raison autre que  un passage de limite anonyme, il sera défini sur la cible avant le reciblage. Par exemple, les évènements de souris sont reciblés vers leur noeud parent quand ils surviennent sur des noeuds de texte ({{ Bug("185889") }}), et, dans ce cas, .target affichera le parent .explicitOriginalTarget et le noeud de texte.
+ Contrairement à .originalTarget, .explicitOriginalTarget n'aura jamais de contenu anonyme.
event.originalTarget{{ Source("/dom/public/idl/events/nsIDOMNSEvent.idl", "nsIDOMNSEvent.idl") }}{{ Non-standard_inline() }} La cible originale de l'évènement, avant tout reciblage. Voir Anonymous Content#Event_Flow_and_Targeting pour plus de détails.
+ +

Utilisation de explicitOriginalTarget et originalTarget

+ +

Problème : Seulement disponible dans un navigateur basé sur Mozilla ? Problème : Convient uniquement aux développeurs d'extensions ?

+ +

Exemples

+ +
<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <title>Comparison of Event Targets</title>
+    <style>
+        table {
+            border-collapse: collapse;
+            height: 150px;
+            width: 100%;
+        }
+        td {
+            border: 1px solid #ccc;
+            font-weight: bold;
+            padding: 5px;
+            min-height: 30px;
+        }
+        .standard {
+            background-color: #99ff99;
+        }
+        .non-standard {
+            background-color: #902D37;
+        }
+    </style>
+</head>
+<body>
+    <table>
+    <thead>
+        <tr>
+            <td class="standard">Original target dispatching the event <small>event.target</small></td>
+            <td class="standard">Target who's event listener is being processed <small>event.currentTarget</small></td>
+            <td class="standard">Identify other element (if any) involved in the event <small>event.relatedTarget</small></td>
+            <td class="non-standard">If there was a retargetting of the event for some reason <small> event.explicitOriginalTarget</small> contains the target before retargetting (never contains anonymous targets)</td>
+            <td class="non-standard">If there was a retargetting of the event for some reason <small> event.originalTarget</small> contains the target before retargetting (may contain anonymous targets)</td>
+        </tr>
+    </thead>
+    <tr>
+        <td id="target"></td>
+        <td id="currentTarget"></td>
+        <td id="relatedTarget"></td>
+        <td id="explicitOriginalTarget"></td>
+        <td id="originalTarget"></td>
+    </tr>
+</table>
+<p>Clicking on the text will show the difference between explicitOriginalTarget, originalTarget and target</p>
+<script>
+    function handleClicks(e) {
+        document.getElementById('target').innerHTML = e.target;
+        document.getElementById('currentTarget').innerHTML = e.currentTarget;
+        document.getElementById('relatedTarget').innerHTML = e.relatedTarget;
+        document.getElementById('explicitOriginalTarget').innerHTML = e.explicitOriginalTarget;
+        document.getElementById('originalTarget').innerHTML = e.originalTarget;
+    }
+
+    function handleMouseover(e) {
+        document.getElementById('target').innerHTML = e.target;
+        document.getElementById('relatedTarget').innerHTML = e.relatedTarget;
+    }
+
+    document.addEventListener('click', handleClicks, false);
+    document.addEventListener('mouseover', handleMouseover, false);
+</script>
+</body>
+</html>
+ +

Utilisation de target et relatedTarget

+ +

La propriété relatedTarget (cible associée) pour l'évènement mouseover  détient le noeud que la souris avait précédemment atteint. Pour l'évènement mouseout, il détient le noeud que la souris a déplacé à.

+ + + + + + + + + + + + + + + + + + + +
Type d'évènementevent.targetevent.relatedTarget
mouseoverLa EventTarget (cible d'évènement) entré par le périphérique de pointage.La EventTarget (cible d'évènement) dont le périphérique de pointage est sorti.
mouseoutLa EventTarget (cible d'évènement) dont le périphérique de pointage est sorti.the EventTarget (cible d'évènement) entré par le périphérique de pointage.
+ +

Problème : A également besoin de descriptions sur les évènements dragenter et dragexit.

+ +

Exemple

+ +
<hbox id="outer">
+  <hbox id="inner"
+        onmouseover="dump('mouseover ' + event.relatedTarget.id + ' > ' + event.target.id + '\n');"
+        onmouseout="dump('mouseout  ' + event.target.id + ' > ' + event.relatedTarget.id + '\n');"
+        style="margin: 100px; border: 10px solid black; width: 100px; height: 100px;" />
+</hbox>
+
+ +

 

diff --git a/files/fr/web/api/event/createevent/index.html b/files/fr/web/api/event/createevent/index.html deleted file mode 100644 index 5cfbb7f05f..0000000000 --- a/files/fr/web/api/event/createevent/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Event.createEvent() -slug: Web/API/Event/createEvent -tags: - - API - - DOM - - Evènement - - Méthodes -translation_of: Web/API/Document/createEvent -translation_of_original: Web/API/Event/createEvent ---- -

{{APIRef("DOM")}}

- -

Crée un nouvel évènement, qui doit alors être initialisé en appelant sa méthode initEvent() .

- -

Syntaxe

- -
document.createEvent(type) 
- -
-
type
-
Une chaîne de caractère indiquant le type de l'évènement à créer.
-
- -

Cette méthode renvoie un nouvel objet DOM {{ domxref("Event") }} du type spécifié, qui doit être initialisé avant utilisation.

- -

Exemple

- -
var newEvent = document.createEvent("UIEvents");
- -

Spécification

- - - -

Compatibilité des navigateurs

- - - -

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

diff --git a/files/fr/web/api/file_and_directory_entries_api/index.html b/files/fr/web/api/file_and_directory_entries_api/index.html new file mode 100644 index 0000000000..8cef71b2fa --- /dev/null +++ b/files/fr/web/api/file_and_directory_entries_api/index.html @@ -0,0 +1,114 @@ +--- +title: API fichier système +slug: Web/API/API_fichier_systeme +translation_of: Web/API/File_and_Directory_Entries_API +--- +

{{DefaultAPISidebar("API fichier système")}}{{Non-standard_header()}}

+ +

L'API fichier système simule un fichier système en local que les applications web peuvent utiliser. Vous pouvez développer des applications qui lisent, écrivent, et créent des fichiers et/ou des dossiers dans un espace virtuel.

+ +

Deux API très simulaires existent en fonction du comportement asynchrone ou synchrone souhaité. L'API synchrone est prévu pour être utilisée dans un {{domxref("Worker")}} et retournera les valeurs recherchées. The asynchronous API will not block and functions and the API will not return values; instead, you will need to supply a callback function to handle the response whenever it arrives.

+ +

API asynchrone

+ +

L'API asynchrone a les interfaces suivantes :

+ + + +

API synchrone

+ +

L'API synchrone est utile avec les WebWorkers. Contrairement à l'API asynchrone, l'API synchrone n'utilise pas les callbacks parce que les méthodes de l'API retournent des valeurs.

+ + + +

Compatibilité navigateur

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
API asynchrone13 {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
API synchrone13 {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
API asynchrone{{ CompatNo() }}{{ CompatVersionUnknown() }} {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
API synchrone{{ CompatNo() }}{{ CompatVersionUnknown() }} {{ property_prefix("webkit") }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/formdata/using_formdata_objects/index.html b/files/fr/web/api/formdata/using_formdata_objects/index.html new file mode 100644 index 0000000000..a64c8be0d0 --- /dev/null +++ b/files/fr/web/api/formdata/using_formdata_objects/index.html @@ -0,0 +1,145 @@ +--- +title: Utilisation des objets FormData +slug: Web/API/FormData/Utilisation_objets_FormData +tags: + - AJAX + - Blob + - File + - FormData + - Formulaires + - XHR + - XMLHttpRequest +translation_of: Web/API/FormData/Using_FormData_Objects +--- +

L’objet FormData vous permet de compiler un ensemble de paires clé/valeur à envoyer à l’aide de l’API XMLHttpRequest. Il est principalement destiné à l’envoi de données de formulaire, mais il peut également être utilisé indépendamment des formulaires pour transmettre des données indexées. Le format des données transmises est le même que celui qu’utiliserait la méthode {{domxref("HTMLFormElement.submit","submit()")}} du formulaire pour envoyer les données si l’encodage de ce dernier était défini sur multipart/form-data.

+ +

Création intégrale d’un objet FormData

+ +

Vous pouvez construire un objet FormData vous-même, en créer une instance, puis y ajouter des champs en appelant la méthode {{domxref("FormData.append","append()")}}, comme suit :

+ +
var formData = new FormData();
+
+formData.append("username", "Groucho");
+formData.append("accountnum", 123456); // le numéro 123456 est converti immédiatement en chaîne "123456"
+
+// fichier HTML choisi par l'utilisateur
+formData.append("userfile", fileInputElement.files[0]);
+
+// objet JavaScript de type fichier
+var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...
+var blob = new Blob([content], { type: "text/xml"});
+
+formData.append("webmasterfile", blob);
+
+var request = new XMLHttpRequest();
+request.open("POST", "http://foo.com/submitform.php");
+request.send(formData);
+
+ +
Remarque : les champs « userfile » et « webmasterfile » contiennent tous deux un fichier. Le numéro attribué au champ « accountnum » est immédiatement converti en chaîne par la méthode FormData.append() (la valeur du champ peut être un objet {{ domxref("Blob") }}, {{ domxref("File") }} ou une chaîne : s’il ne s’agit ni d’un objet Blob, ni d’un objet File, la valeur est convertie en chaîne).
+ +

Dans cet exemple, une instance FormData contenant les valeurs des champs « username », « accountnum », « userfile » et « webmasterfile » est créée, puis la méthode XMLHttpRequest send() est utilisée pour envoyer les données du formulaire. Le champ « webmasterfile » est un objet {{domxref("Blob")}}. Un objet Blob représente un objet-fichier de données brutes immuables. Les Blobs représentent des données qui ne sont pas nécessairement dans un format JavaScript natif. L’interface {{ domxref("File") }} se base sur l’objet Blob, elle en hérite les fonctionnalités et les étend pour prendre en charge les fichiers du système de l’utilisateur. Pour construire un Blob, vous pouvez invoquer le {{domxref("Blob.Blob","constructeur Blob()")}}.

+ +

Récupération d’un objet FormData dans un formulaire HTML

+ +

Pour construire un objet FormData contenant les données d’un élément HTML {{ HTMLElement("form") }} existant, spécifiez cet élément lors de la création de l’objet :

+ +
var formData = new FormData(someFormElement);
+
+ +

Par exemple :

+ +
var formElement = document.querySelector("form");
+var request = new XMLHttpRequest();
+request.open("POST", "submitform.php");
+request.send(new FormData(formElement));
+
+ +

Vous pouvez également ajouter des données supplémentaires à l’objet FormData entre sa récupération dans un formulaire et son envoi, comme suit :

+ +
var formElement = document.querySelector("form");
+var formData = new FormData(formElement);
+var request = new XMLHttpRequest();
+request.open("POST", "submitform.php");
+formData.append("serialnumber", serialNumber++);
+request.send(formData);
+ +

Vous pouvez ainsi ajouter des données au formulaire avant de l’envoyer, pour y inclure des informations supplémentaires que les utilisateurs ne peuvent pas nécessairement modifier.

+ +

Envoi de fichiers via un objet FormData

+ +

L’objet FormData vous permet également d’envoyer des fichiers. Il vous suffit d’inclure un élément HTML {{ HTMLElement("input") }} de type file dans votre élément {{htmlelement("form")}} :

+ +
<form enctype="multipart/form-data" method="post" name="fileinfo">
+  <label>Votre adresse électronique :</label>
+  <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br />
+  <label>Étiquette du fichier personnalisé :</label>
+  <input type="text" name="filelabel" size="12" maxlength="32" /><br />
+  <label>Fichier à mettre de côté :</label>
+  <input type="file" name="file" required />
+  <input type="submit" value="Mettez le fichier de côté." />
+</form>
+<div></div>
+
+ +

Vous pouvez ensuite l’envoyer à l’aide du code suivant :

+ +
var form = document.forms.namedItem("fileinfo");
+form.addEventListener('submit', function(ev) {
+
+  var oOutput = document.querySelector("div"),
+      oData = new FormData(form);
+
+  oData.append("CustomField", "Données supplémentaires");
+
+  var oReq = new XMLHttpRequest();
+  oReq.open("POST", "stash.php", true);
+  oReq.onload = function(oEvent) {
+    if (oReq.status == 200) {
+      oOutput.innerHTML = "Envoyé !";
+    } else {
+      oOutput.innerHTML = "Erreur " + oReq.status + " lors de la tentative d’envoi du fichier.<br \/>";
+    }
+  };
+
+  oReq.send(oData);
+  ev.preventDefault();
+}, false);
+
+ +
+

Remarque : si vous passez une référence dans le formulaire, la méthode spécifiée dans ce dernier sera utilisée au lieu de celle définie dans l’appel de la méthode open().

+
+ +

Vous pouvez également ajouter un objet {{ domxref("File") }} ou {{ domxref("Blob") }} directement dans l’objet {{ domxref("FormData") }} :

+ +
data.append("myfile", myBlob, "filename.txt");
+
+ +

Avec la méthode {{domxref("FormData.append","append()")}}, vous pouvez utiliser le troisième paramètre facultatif pour passer un nom de fichier dans l’en-tête Content-Disposition envoyé au serveur. Si aucun nom de fichier n’est spécifié (ou si le paramètre n’est pas pris en charge), le nom « blob » est utilisé.

+ +

Vous pouvez utiliser l’objet FormData avec jQuery si vous définissez les options appropriées :

+ +
var fd = new FormData(document.querySelector("form"));
+fd.append("CustomField", "Données supplémentaires");
+$.ajax({
+  url: "stash.php",
+  type: "POST",
+  data: fd,
+  processData: false,  // dire à jQuery de ne pas traiter les données
+  contentType: false   // dire à jQuery de ne pas définir le contentType
+});
+
+ +

Envoi de formulaires et de fichiers via AJAX sans objet FormData

+ +

Si vous voulez en savoir plus sur la sérialisation des données  et l’envoi d’un formulaire via AJAX sans utiliser d’objets FormData, consultez ce paragraphe.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/formdata/utilisation_objets_formdata/index.html b/files/fr/web/api/formdata/utilisation_objets_formdata/index.html deleted file mode 100644 index a64c8be0d0..0000000000 --- a/files/fr/web/api/formdata/utilisation_objets_formdata/index.html +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: Utilisation des objets FormData -slug: Web/API/FormData/Utilisation_objets_FormData -tags: - - AJAX - - Blob - - File - - FormData - - Formulaires - - XHR - - XMLHttpRequest -translation_of: Web/API/FormData/Using_FormData_Objects ---- -

L’objet FormData vous permet de compiler un ensemble de paires clé/valeur à envoyer à l’aide de l’API XMLHttpRequest. Il est principalement destiné à l’envoi de données de formulaire, mais il peut également être utilisé indépendamment des formulaires pour transmettre des données indexées. Le format des données transmises est le même que celui qu’utiliserait la méthode {{domxref("HTMLFormElement.submit","submit()")}} du formulaire pour envoyer les données si l’encodage de ce dernier était défini sur multipart/form-data.

- -

Création intégrale d’un objet FormData

- -

Vous pouvez construire un objet FormData vous-même, en créer une instance, puis y ajouter des champs en appelant la méthode {{domxref("FormData.append","append()")}}, comme suit :

- -
var formData = new FormData();
-
-formData.append("username", "Groucho");
-formData.append("accountnum", 123456); // le numéro 123456 est converti immédiatement en chaîne "123456"
-
-// fichier HTML choisi par l'utilisateur
-formData.append("userfile", fileInputElement.files[0]);
-
-// objet JavaScript de type fichier
-var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...
-var blob = new Blob([content], { type: "text/xml"});
-
-formData.append("webmasterfile", blob);
-
-var request = new XMLHttpRequest();
-request.open("POST", "http://foo.com/submitform.php");
-request.send(formData);
-
- -
Remarque : les champs « userfile » et « webmasterfile » contiennent tous deux un fichier. Le numéro attribué au champ « accountnum » est immédiatement converti en chaîne par la méthode FormData.append() (la valeur du champ peut être un objet {{ domxref("Blob") }}, {{ domxref("File") }} ou une chaîne : s’il ne s’agit ni d’un objet Blob, ni d’un objet File, la valeur est convertie en chaîne).
- -

Dans cet exemple, une instance FormData contenant les valeurs des champs « username », « accountnum », « userfile » et « webmasterfile » est créée, puis la méthode XMLHttpRequest send() est utilisée pour envoyer les données du formulaire. Le champ « webmasterfile » est un objet {{domxref("Blob")}}. Un objet Blob représente un objet-fichier de données brutes immuables. Les Blobs représentent des données qui ne sont pas nécessairement dans un format JavaScript natif. L’interface {{ domxref("File") }} se base sur l’objet Blob, elle en hérite les fonctionnalités et les étend pour prendre en charge les fichiers du système de l’utilisateur. Pour construire un Blob, vous pouvez invoquer le {{domxref("Blob.Blob","constructeur Blob()")}}.

- -

Récupération d’un objet FormData dans un formulaire HTML

- -

Pour construire un objet FormData contenant les données d’un élément HTML {{ HTMLElement("form") }} existant, spécifiez cet élément lors de la création de l’objet :

- -
var formData = new FormData(someFormElement);
-
- -

Par exemple :

- -
var formElement = document.querySelector("form");
-var request = new XMLHttpRequest();
-request.open("POST", "submitform.php");
-request.send(new FormData(formElement));
-
- -

Vous pouvez également ajouter des données supplémentaires à l’objet FormData entre sa récupération dans un formulaire et son envoi, comme suit :

- -
var formElement = document.querySelector("form");
-var formData = new FormData(formElement);
-var request = new XMLHttpRequest();
-request.open("POST", "submitform.php");
-formData.append("serialnumber", serialNumber++);
-request.send(formData);
- -

Vous pouvez ainsi ajouter des données au formulaire avant de l’envoyer, pour y inclure des informations supplémentaires que les utilisateurs ne peuvent pas nécessairement modifier.

- -

Envoi de fichiers via un objet FormData

- -

L’objet FormData vous permet également d’envoyer des fichiers. Il vous suffit d’inclure un élément HTML {{ HTMLElement("input") }} de type file dans votre élément {{htmlelement("form")}} :

- -
<form enctype="multipart/form-data" method="post" name="fileinfo">
-  <label>Votre adresse électronique :</label>
-  <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br />
-  <label>Étiquette du fichier personnalisé :</label>
-  <input type="text" name="filelabel" size="12" maxlength="32" /><br />
-  <label>Fichier à mettre de côté :</label>
-  <input type="file" name="file" required />
-  <input type="submit" value="Mettez le fichier de côté." />
-</form>
-<div></div>
-
- -

Vous pouvez ensuite l’envoyer à l’aide du code suivant :

- -
var form = document.forms.namedItem("fileinfo");
-form.addEventListener('submit', function(ev) {
-
-  var oOutput = document.querySelector("div"),
-      oData = new FormData(form);
-
-  oData.append("CustomField", "Données supplémentaires");
-
-  var oReq = new XMLHttpRequest();
-  oReq.open("POST", "stash.php", true);
-  oReq.onload = function(oEvent) {
-    if (oReq.status == 200) {
-      oOutput.innerHTML = "Envoyé !";
-    } else {
-      oOutput.innerHTML = "Erreur " + oReq.status + " lors de la tentative d’envoi du fichier.<br \/>";
-    }
-  };
-
-  oReq.send(oData);
-  ev.preventDefault();
-}, false);
-
- -
-

Remarque : si vous passez une référence dans le formulaire, la méthode spécifiée dans ce dernier sera utilisée au lieu de celle définie dans l’appel de la méthode open().

-
- -

Vous pouvez également ajouter un objet {{ domxref("File") }} ou {{ domxref("Blob") }} directement dans l’objet {{ domxref("FormData") }} :

- -
data.append("myfile", myBlob, "filename.txt");
-
- -

Avec la méthode {{domxref("FormData.append","append()")}}, vous pouvez utiliser le troisième paramètre facultatif pour passer un nom de fichier dans l’en-tête Content-Disposition envoyé au serveur. Si aucun nom de fichier n’est spécifié (ou si le paramètre n’est pas pris en charge), le nom « blob » est utilisé.

- -

Vous pouvez utiliser l’objet FormData avec jQuery si vous définissez les options appropriées :

- -
var fd = new FormData(document.querySelector("form"));
-fd.append("CustomField", "Données supplémentaires");
-$.ajax({
-  url: "stash.php",
-  type: "POST",
-  data: fd,
-  processData: false,  // dire à jQuery de ne pas traiter les données
-  contentType: false   // dire à jQuery de ne pas définir le contentType
-});
-
- -

Envoi de formulaires et de fichiers via AJAX sans objet FormData

- -

Si vous voulez en savoir plus sur la sérialisation des données  et l’envoi d’un formulaire via AJAX sans utiliser d’objets FormData, consultez ce paragraphe.

- -

Voir aussi

- - diff --git a/files/fr/web/api/fullscreen_api/index.html b/files/fr/web/api/fullscreen_api/index.html new file mode 100644 index 0000000000..76144c64f2 --- /dev/null +++ b/files/fr/web/api/fullscreen_api/index.html @@ -0,0 +1,301 @@ +--- +title: Utiliser le mode plein écran +slug: Web/Guide/DOM/Using_full_screen_mode +tags: + - API + - DOM + - Plein écran + - Tutoriel +translation_of: Web/API/Fullscreen_API +--- +

{{DefaultAPISidebar("Fullscreen API")}}

+ +

L'API Fullscreen (plein écran) fournit un moyen simple de présenter du contenu web en utilisant l'ensemble de l'écran de l'utilisateur. L'API vous permet de diriger facilement le navigateur pour faire en sorte qu'un élément et ses enfants, le cas échéant, occupent entièrement l'écran, éliminant toute l'interface utilisateur du navigateur et les autres applications de l'écran pendant ce temps.

+ +
Note : Pour le moment, tous les navigateurs n'utilisent pas la version non préfixée de cet API. Consultez le tableau récapitulant les préfixes et les différences de noms entre eux (vous pouvez également utiliser Fscreen pour l'accès du fournisseur à l'API).
+ +

Activation du mode plein écran

+ +

En partant d'un élément que vous aimeriez afficher en plein écran ({{ HTMLElement("video") }}, par exemple), vous pouvez le passer en mode plein écran simplement en appelant sa méthode {{ domxref("Element.requestFullscreen()") }} .

+ +

Prenons cet élément {{ HTMLElement("video") }} :

+ +
<video controls id="myvideo">
+  <source src="somevideo.webm"></source>
+  <source src="somevideo.mp4"></source>
+</video>
+
+ +

Nous pouvons mettre cet élément video en plein écran avec un script de cette façon :

+ +
var elem = document.getElementById("myvideo");
+if (elem.requestFullscreen) {
+  elem.requestFullscreen();
+}
+ +

Différences de présentation

+ +

Il est important de savoir qu'il y a une différence clef entre les implémentations de Gecko et WebKit : Gecko ajoute automatiquement des règles CSS à l'élément afin qu'il remplisse l'écran : "width: 100%; height: 100%". WebKit ne fait pas ça ; à la place, il centre l'élément sans le redimensionner au milieu d'un écran noir. Pour obtenir le même comportement que Gecko dans WebKit, vous devez ajouter votre propre règle "width: 100%; height: 100%;" à l'élément :

+ +
#myvideo:-webkit-full-screen  {
+  width: 100%;
+  height: 100%;
+}
+
+ +

Dans l'autre sens, si vous essayez d'émuler le comportement de WebKit sur Gecko, vous devez placer l'élément que vous souhaitez présenter dans un autre élément, que vous mettrez en plein écran, et utiliser des règles CSS pour ajuster l'apparence de l'élément interne.

+ +

Notification

+ +

Quand le mode plein écran est activé, le document qui contient l'élément reçoit un événement de type   {{ event("fullscreenchange") }} . Lors de la sortie du mode plein écran, le document reçoit à nouveau l'événement  {{ event("fullscreenchange") }} . Notez que l'événement  en lui-même {{ event("fullscreenchange") }} ne fournit aucune information si le document est en train d'entrer ou de sortir du mode plein écran, mais si le document a une valeur non nulle {{ domxref("document.fullscreenElement", "fullscreenElement") }} , vous savez que vous êtes en mode plein écran.

+ +

Lorsqu'une demande de plein écran échoue

+ +

Il n'est pas garanti que vous soyez capable de passer en mode plein écran. Par exemple, les élements {{ HTMLElement("iframe") }} possèdent l'attribut  {{ HTMLAttrXRef("allowfullscreen", "iframe") }} pour permettre à leur contenu d'être affiché en mode plein écran. Certains contenus comme les greffons fenêtrés ne peuvent être représentés en plein écran. Essayer de placer un élément qui ne peut être affiché en mode plein écran (ou le parent ou le descendant d'un tel élément) ne marchera pas. A la place, l'élément qui a demandé le mode plein écran recevra un événement  mozfullscreenerror . Quand une demande de plein écran échoue, Firefox écrit un message d'erreur dans la console Web expliquant pourquoi la demande n'a pas pu aboutir. Dans Chrome et les versions plus récentes d'Opera, aucun avertissement de ce type n'est généré.

+ +
+

Note : Les requêtes de Fullscreen doivent être appelées depuis un gestionnaire d'évènements ou sinon, elles seront refusées.

+
+ +

Sortie du mode plein écran

+ +

L'utilisateur peut toujours sortir du mode plein écran quand il le désire ; voir {{ anch("Choses que vos utilisateurs doivent savoir") }}. Vous pouvez également le faire en appelant la méthode  {{domxref("Document.exitFullscreen()")}} .

+ +

Autres informations

+ +

Le {{ domxref("document") }} fournit des informations supplémentaires pouvant être utiles lorsque vous développez des applications web en plein écran :

+ +
+
{{ domxref("document.fullscreenElement", "fullscreenElement") }}
+
L'attribut fullscreenElement vous indique l'{{ domxref("element") }} qui est actuellement affiché en plein écran. S'il est non nul, le document est en mode plein écran. S'il est nul, le document n'est pas en mode plein écran.
+
{{ domxref("document.fullscreenEnabled", "fullscreenEnabled") }}
+
L'attribut fullscreenEnabled vous indique si le document est actuellement dans un état qui permettrait d'activer le mode plein écran ou non.
+
+ +

Choses que vos utilisateurs doivent savoir

+ +

Vous voulez faire savoir à vos utilisateurs qu'il peuvent utiliser la touche ECHAP  (ou  F11) pour sortir du mode plein écran.

+ +

En même temps, naviguer sur une autre page, changer d'onglet, ou changer d'application (en utilisant, par exemple, Alt-Tab ) pendant le mode plein écran, implique la sortie du mode plein écran de toute façon.

+ +

Exemple

+ +

Dans cet exemple, une vidéo est affichée dans une page web. Taper sur l'une des touches  Retour  ou Entrée, permet à l'utilisateur de passer d'une présentation dans une fenêtre à une présentation en mode plein écran de la vidéo.

+ +

Voir l'exemple sur une page

+ +

Action sur la touche Entrée

+ +

Quand la page est chargée, ce code est exécuté pour mettre en place un évènement "listener" permettant de surveiller la moindre action sur la touche  Entrée .

+ +
document.addEventListener("keydown", function(e) {
+  if (e.keyCode == 13) {
+    toggleFullScreen();
+  }
+}, false);
+
+ +

Passer en mode plein écran

+ +

Ce code est appelé lorsque l'utilisateur appuie sur la touche Entrée, comme vu plus haut.

+ +
function toggleFullScreen() {
+  if (!document.fullscreenElement) {
+      document.documentElement.requestFullscreen();
+  } else {
+    if (document.exitFullscreen) {
+      document.exitFullscreen();
+    }
+  }
+}
+ +

 Dans un premier temps, la valeur de l'attribut fullscreenElement est analysée dans le {{ domxref("document") }} (en contrôlant s'il est préfixé par moz-, ms- ou webkit-). Si la valeur est nulle, le document est actuellement en mode normal, donc nous devons passer en mode plein écran. Le passage en mode plein écran est assuré en appelant {{ domxref("element.requestFullscreen()") }}.

+ +

Si le mode plein écran est déjà activé (fullscreenElement est non nul), nous appelons  {{ domxref("document.exitFullscreen()") }}.

+ +

Préfixes

+ +

Pour le moment, tous les navigateurs n'ont pas implémenté la version sans préfixe de l'API (pour l'accès du fournisseur de l'API, vous pouvez utiliser Fscreen) . Voici le tableau résumant les préfixes et les différences de noms entre eux :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StandardBlink (Chrome & Opera)Gecko (Firefox)Internet Explorer 11EdgeSafari (WebKit)
{{domxref("Document.fullscreen")}}webkitIsFullScreenmozFullScreen-webkitIsFullScreenwebkitIsFullScreen
{{domxref("Document.fullscreenEnabled")}}webkitFullscreenEnabledmozFullScreenEnabledmsFullscreenEnabledwebkitFullscreenEnabledwebkitFullscreenEnabled
{{domxref("Document.fullscreenElement")}}webkitFullscreenElementmozFullScreenElementmsFullscreenElementwebkitFullscreenElementwebkitFullscreenElement
{{domxref("Document.onfullscreenchange")}}onwebkitfullscreenchangeonmozfullscreenchangeMSFullscreenChangeonwebkitfullscreenchangeonwebkitfullscreenchange
{{domxref("Document.onfullscreenerror")}}onwebkitfullscreenerroronmozfullscreenerrorMSFullscreenErroronwebkitfullscreenerroronwebkitfullscreenerror
{{domxref("Document.exitFullscreen()")}}webkitExitFullscreen()mozCancelFullScreen()msExitFullscreen()webkitExitFullscreen()webkitExitFullscreen()
{{domxref("Element.requestFullscreen()")}}webkitRequestFullscreen()mozRequestFullScreen()msRequestFullscreen()webkitRequestFullscreen()webkitRequestFullscreen()
+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpecificationStatutCommentaire
{{SpecName("Fullscreen")}}{{Spec2("Fullscreen")}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

Tous les navigateurs implémentent cette API. Néanmoins certains l'implémentent avec des préfixes avec des noms légèrement différents ; par exemple, au lieu de requestFullscreen (), il y a MozRequestFullScreen ().

+ +

{{ CompatibilityTable() }} 

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support15 {{ property_prefix("-webkit") }}{{CompatVersionUnknown}}{{ CompatGeckoDesktop("9.0") }} {{ property_prefix("-moz") }}
+ {{CompatGeckoDesktop("47")}} (behind full-screen-api.unprefix.enabled)
11 {{ property_prefix("-ms") }}12.105.0 {{ property_prefix("-webkit") }}
fullscreenEnabled20 {{ property_prefix("-webkit") }}{{CompatVersionUnknown}}{{ CompatGeckoDesktop("10.0") }} {{ property_prefix("-moz") }}
+ {{CompatGeckoDesktop("47")}} (behind full-screen-api.unprefix.enabled)
11 {{ property_prefix("-ms") }}12.105.1 {{ property_prefix("-webkit") }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChromeEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatUnknown() }}28 {{ property_prefix("-webkit") }}{{CompatVersionUnknown}}{{ CompatGeckoMobile("9.0") }}{{ property_prefix("-moz") }}
+ {{CompatGeckoMobile("47")}} (behind full-screen-api.unprefix.enabled)
{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
fullscreenEnabled{{ CompatUnknown() }}28 {{ property_prefix("-webkit") }}{{CompatVersionUnknown}}{{ CompatGeckoMobile("10.0") }} {{ property_prefix("moz") }}
+ {{CompatGeckoMobile("47")}} (behind full-screen-api.unprefix.enabled)
{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/gamepad_api/using_the_gamepad_api/index.html b/files/fr/web/api/gamepad_api/using_the_gamepad_api/index.html new file mode 100644 index 0000000000..1cfa50fc2c --- /dev/null +++ b/files/fr/web/api/gamepad_api/using_the_gamepad_api/index.html @@ -0,0 +1,281 @@ +--- +title: Utiliser l'API Gamepad +slug: Web/Guide/API/Gamepad +translation_of: Web/API/Gamepad_API/Using_the_Gamepad_API +--- +

{{ SeeCompatTable() }}

+
+

HTML5 a introduit plusieurs des composants nécessaires pour le développement de jeux vidéos riches et interactifs. Des technologies comme <canvas>, WebGL, <audio>, et <video>, ainsi que les implémentations JavaScript, ont mûri au point de supporter plusieurs fonctions autrefois réservées aux applications natives. L'API Gamepad est une manière pour les développeurs et designers d'accéder aux contrôleurs de jeux.

+
+
+

Note: Dans Firefox 29 et plus, l'API Gamepad est activée par défaut, tout comme pour les versions Nightly et Aurora. Depuis Firefox 24, l'API Gamepad était déjà disponible derrière une option dans les préférences. Il est possible de l'activer dans ces versions en ouvrant about:config et en activant dom.gamepad.enabled.

+
+

L'API Gamepad introduit de nouveaux évènements à l'objet {{ domxref("Window") }} pour lire l'état des contrôleurs. En plus de ces événements, l'API ajoute aussi un objet {{ domxref("Gamepad") }} que vous pouvez utiliser pour récupérer l'état d'un contrôleur connecté, et une méthode {{ domxref("navigator.getGamepads") }} que vous pouvez utiliser pour obtenir la liste des contrôleurs connus par la page.

+

Connexion au contrôleur

+

Lorsqu'un nouveau contrôleur est connecté à l'ordinateur, la page active reçoit tout d'abord un événement {{ domxref("Window.gamepadconnected") }}. Si un contrôleur est déjà connecté lorsque la page termine de charger, l'événement {{ domxref("Window.gamepadconnected") }} est envoyé à la page active lorsque l'utilisateur appuie sur un bouton ou bouge un axe.

+
+

Dans Firefox, les contrôleurs ne sont rendus visibles à une page que lorsque l'utilisateur s'en sert alors que cette page est active. Cela permet d'éviter que les contrôleurs soient utilisés pour identifier l'utilisateur. Dès lors qu'un contrôleur a été utilisé, les autres contrôleurs connectés seront rendus visibles automatiquement.

+
+

Vous pouvez utiliser {{ domxref("Window.gamepadconnected") }} ainsi :

+
window.addEventListener("gamepadconnected", function(e) {
+  console.log("Contrôleur n°%d connecté : %s. %d boutons, %d axes.",
+  e.gamepad.index, e.gamepad.id,
+  e.gamepad.buttons.length, e.gamepad.axes.length);
+});
+
+

Chaque contrôleur est associé à un identifiant unique, qui est disponible dans la propriété gamepad de l'événement.

+
+

Note: À l'écriture de ces lignes, Chrome n'implémente pas les événements {{ domxref("Window.gamepadconnected") }} et {{ domxref("Window.gamepaddisconnected") }}. Vous devez utiliser {{ domxref("navigator.getGamepads") }} pour récupérer la liste des contrôleurs disponibles.

+
+

Déconnexion du contrôleur

+

Lorsqu'un contrôleur est déconnecté, et si la page avait déjà reçu des données de ce contrôleur auparavant (par exemple par l'événement {{ domxref("Window.gamepadconnected") }}), un second événement est envoyé à la fenêtre active :  {{ domxref("Window.gamepaddisconnected") }}.

+
window.addEventListener("gamepaddisconnected", function(e) {
+  console.log("Contrôleur n°%d déconnecté : %s",
+  e.gamepad.index, e.gamepad.id);
+});
+

La propriété index sera unique à chaque périphérique connecté au système, même si plusieurs contrôleurs du même type sont utilisés. La propriété correspond également à l'indice du tableau retourné par {{ domxref("navigator.getGamepads") }}.

+
var gamepads = {};
+
+function gamepadHandler(event, connecting) {
+  var gamepad = event.gamepad;
+  // Note :
+  // gamepad === navigator.getGamepads()[gamepad.index]
+
+  if (connecting) {
+    gamepads[gamepad.index] = gamepad;
+  } else {
+    delete gamepads[gamepad.index];
+  }
+}
+
+window.addEventListener("gamepadconnected", function(e) { gamepadHandler(e, true); }, false);
+window.addEventListener("gamepaddisconnected", function(e) { gamepadHandler(e, false); }, false);
+
+

Cet exemple montre également comment la propriété gamepad peut être conservée après que l'événement se soit terminé. Cette technique sera utilisée plus tard pour obtenir l'état du périphérique.

+
+ [PAGE NON TRADUITE DEPUIS ICI...]
+
+  
+

Querying the Gamepad object

+

As you can see, the gamepad events discussed above include a gamepad property on the event object, which returns a {{ domxref("Gamepad") }} object. We can use this in order to determine which gamepad (i.e., its ID) had caused the event, since multiple gamepads might be connected at once. We can do much more with the {{ domxref("Gamepad") }} object, including holding a reference to it and querying it to find out which buttons and axes are being pressed at any one time. Doing so is often desirable for games or other interactive web pages that need to know the state of a gamepad now vs. the next time an event fires.

+

Performing such checks tends to involve using the {{ domxref("Gamepad") }} object in conjunction with an animation loop (e.g., {{ domxref("requestAnimationFrame") }}), where developers want to make decisions for the current frame based on the state of the gamepad or gamepads.

+
+

Note: The Gamepad API also provides a function -- {{ domxref("Navigator.getGamepads") }}-- that returns a list of all devices currently visible to the webpage, an array of {{ domxref("Gamepad") }} objects. This can then be used to get the same information. For example, the first code example above you be rewritten as shown below:

+
+
window.addEventListener("gamepadconnected", function(e) {
+  var gp = navigator.getGamepads()[e.gamepad.index];
+  console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
+  gp.index, gp.id,
+  gp.buttons.length, gp.axes.length);
+});
+

The {{ domxref("Gamepad") }} object's properties are as follows:

+ +
+

Note: The Gamepad object is available on the {{ domxref("Window.gamepadconnected") }} event rather than the {{ domxref("Window") }} object itself, for security reasons. Once we have a reference to it, we can query its properties for information about the current state of the gamepad. Behind the scenes, this object will be updated every time the gamepad's state changes.

+
+

Using button information

+

Let's look at a simple example that displays connection information for one gamepad (it ignores subsequent gamepad connections) and allows you to move a ball around the screen using the four gamepad buttons on the right hand side of the gamepad. You can view the demo live, and find the source code on Github.

+

To start with, we declare some variables: The gamepadInfo paragraph that the connection info is written into, the ball that we want to move, the start variable that acts as the ID for requestAnimation Frame, the a and b variables that act as position modifiers for moving the ball, and the shorthand variables that will be used for the {{ domxref("requestAnimationFrame") }} and {{ domxref("cancelRequestAnimationFrame") }} cross browser forks.

+
var gamepadInfo = document.getElementById("gamepad-info");
+var ball = document.getElementById("ball");
+var start;
+var a = 0;
+var b = 0;
+
+var rAF = window.mozRequestAnimationFrame ||
+  window.webkitRequestAnimationFrame ||
+  window.requestAnimationFrame;
+
+var rAFStop = window.mozCancelRequestAnimationFrame ||
+  window.webkitCancelRequestAnimationFrame ||
+  window.cancelRequestAnimationFrame;
+

Next we use the {{ domxref("Window.gamepadconnected") }} event to check for a gamepad being connected. When one is connected, we grab the gamepad using {{ domxref("Navigator.getGamepads") }}[0], print information about the gamepad into our gamepad info div, and fire the gameLoop() function that starts the whole ball movement process up.

+
window.addEventListener("gamepadconnected", function(e) {
+  var gp = navigator.getGamepads()[e.gamepad.index];
+  gamepadInfo.innerHTML = "Gamepad connected at index " + gp.index + ": " + gp.id + ". It has " + gp.buttons.length + " buttons and " + gp.axes.length + " axes.";
+
+  gameLoop();
+});
+

Now we use the {{ domxref("Window.gamepaddisconnected") }} event to check if the gamepad is disconnected again. If so, we stop the {{ domxref("requestAnimationFrame") }} loop (see below) and revert the gamepad information back to what it was originally.

+
window.addEventListener("gamepaddisconnected", function(e) {
+  gamepadInfo.innerHTML = "Waiting for gamepad.";
+
+  rAFStop(start);
+});
+

Chrome does things differently here. Instead of constantly storing the gamepad's latest state in a variable it only stores a snapshot, so to do the same thing in Chrome you have to keep polling it and then only use the {{ domxref("Gamepad") }} object in code when it is available. We have done this below using {{ domxref("Window.setInterval") }}; once the object is available the gamepad info is outputted, the game loop is started, and the interval is cleared using {{ domxref("Window.clearInterval") }}. Note that in older versions of Chrome {{ domxref("Navigator.getGamepads") }} is implemented with a webkit prefix. We attempt to detect and handle both the prefixed version and the standard version of the function for backwards-compatibility.

+
if(!('GamepadEvent' in window)) {
+  // No gamepad events available, poll instead.
+  var interval = setInterval(pollGamepads, 500);
+}
+
+function pollGamepads() {
+  var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : []);
+  for (var i = 0; i < gamepads.length; i++) {
+    var gp = gamepads[i];
+    if(gp) {
+      gamepadInfo.innerHTML = "Gamepad connected at index " + gp.index + ": " + gp.id + ". It has " + gp.buttons.length + " buttons and " + gp.axes.length + " axes.";
+      gameLoop();
+      clearInterval(interval);
+    }
+  }
+}
+

Now on to the main game loop. In each execution of the loop we check if one of four buttons is being pressed; if so, we update the values of the a and b movement variables appropriately, then update the {{ cssxref("left") }} and {{ cssxref("top") }} properties, changing their values to the current values of a and b respectively. This has the effect of moving the ball around the screen.  In current versions of Chrome (version 34 as of this writing) the button values are stored as an array of double values, instead of {{ domxref("GamepadButton") }} objects. This is fixed in development versions.

+

After all this is done, we use our rAF variable to request the next animation frame, running gameLoop() again.

+
function buttonPressed(b) {
+  if (typeof(b) == "object") {
+    return b.pressed;
+  }
+  return b == 1.0;
+}
+
+function gameLoop() {
+  var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : []);
+  if (!gamepads)
+    return;
+
+  var gp = gamepads[0];
+  if (buttonPressed(gp.buttons[0])) {
+    b--;
+  } else if (buttonPressed(gp.buttons[2])) {
+    b++;
+  }
+  if(buttonPressed(gp.buttons[1])) {
+    a++;
+  } else if(buttonPressed(gp.buttons[3])) {
+    a--;
+  }
+
+  ball.style.left = a*2 + "px";
+  ball.style.top = b*2 + "px";
+
+  var start = rAF(gameLoop);
+};
+

Using axes information

+

TBD (basically the same, except using axes[i] rather than button[i].value for both Firefox and Chrome.)

+

Complete example: Displaying gamepad state

+

This example shows how to use the {{ domxref("Gamepad") }} object, as well as the {{ domxref("Window.gamepadconnected") }} and {{ domxref("Window.gamepaddisconnected") }} events in order to display the state of all gamepads connected to the system. You can find a working demo and look at the full source code on Github.

+
var haveEvents = 'GamepadEvent' in window;
+var controllers = {};
+var rAF = window.mozRequestAnimationFrame ||
+  window.webkitRequestAnimationFrame ||
+  window.requestAnimationFrame;
+
+function connecthandler(e) {
+  addgamepad(e.gamepad);
+}
+function addgamepad(gamepad) {
+  controllers[gamepad.index] = gamepad; var d = document.createElement("div");
+  d.setAttribute("id", "controller" + gamepad.index);
+  var t = document.createElement("h1");
+  t.appendChild(document.createTextNode("gamepad: " + gamepad.id));
+  d.appendChild(t);
+  var b = document.createElement("div");
+  b.className = "buttons";
+  for (var i=0; i<gamepad.buttons.length; i++) {
+    var e = document.createElement("span");
+    e.className = "button";
+    //e.id = "b" + i;
+    e.innerHTML = i;
+    b.appendChild(e);
+  }
+  d.appendChild(b);
+  var a = document.createElement("div");
+  a.className = "axes";
+  for (var i=0; i<gamepad.axes.length; i++) {
+    var e = document.createElement("progress");
+    e.className = "axis";
+    //e.id = "a" + i;
+    e.setAttribute("max", "2");
+    e.setAttribute("value", "1");
+    e.innerHTML = i;
+    a.appendChild(e);
+  }
+  d.appendChild(a);
+  document.getElementById("start").style.display = "none";
+  document.body.appendChild(d);
+  rAF(updateStatus);
+}
+
+function disconnecthandler(e) {
+  removegamepad(e.gamepad);
+}
+
+function removegamepad(gamepad) {
+  var d = document.getElementById("controller" + gamepad.index);
+  document.body.removeChild(d);
+  delete controllers[gamepad.index];
+}
+
+function updateStatus() {
+  if (!haveEvents) {
+    scangamepads();
+  }
+  for (j in controllers) {
+    var controller = controllers[j];
+    var d = document.getElementById("controller" + j);
+    var buttons = d.getElementsByClassName("button");
+    for (var i=0; i<controller.buttons.length; i++) {
+      var b = buttons[i];
+      var val = controller.buttons[i];
+      var pressed = val == 1.0;
+      if (typeof(val) == "object") {
+        pressed = val.pressed;
+        val = val.value;
+      }
+      var pct = Math.round(val * 100) + "%"
+      b.style.backgroundSize = pct + " " + pct;
+      if (pressed) {
+        b.className = "button pressed";
+      } else {
+        b.className = "button";
+      }
+    }
+
+    var axes = d.getElementsByClassName("axis");
+    for (var i=0; i<controller.axes.length; i++) {
+      var a = axes[i];
+      a.innerHTML = i + ": " + controller.axes[i].toFixed(4);
+      a.setAttribute("value", controller.axes[i] + 1);
+    }
+  }
+  rAF(updateStatus);
+}
+
+function scangamepads() {
+  var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);
+  for (var i = 0; i < gamepads.length; i++) {
+    if (gamepads[i]) {
+      if (!(gamepads[i].index in controllers)) {
+        addgamepad(gamepads[i]);
+      } else {
+        controllers[gamepads[i].index] = gamepads[i];
+      }
+    }
+  }
+}
+
+window.addEventListener("gamepadconnected", connecthandler);
+window.addEventListener("gamepaddisconnected", disconnecthandler);
+if (!haveEvents) {
+  setInterval(scangamepads, 500);
+}
+

Specifications

+

{{page("/en-US/docs/Gamepad","Specifications")}}

+

Browser compatibility

+

{{page("/en-US/docs/Gamepad","Browser_compatibility")}}

+

 

+

 

+

 

diff --git a/files/fr/web/api/globaleventhandlers/onwheel/index.html b/files/fr/web/api/globaleventhandlers/onwheel/index.html new file mode 100644 index 0000000000..837fda2ba2 --- /dev/null +++ b/files/fr/web/api/globaleventhandlers/onwheel/index.html @@ -0,0 +1,93 @@ +--- +title: Element.onwheel +slug: Web/API/Element/onwheel +tags: + - API + - DOM + - Gestionnaires d'évènements + - Propriété + - évènements +translation_of: Web/API/GlobalEventHandlers/onwheel +--- +

{{ ApiRef("DOM") }}

+ +

La propriété onwheel renvoie le code du gestionnaire d'évènements onwheel de l'élément courrant.

+ +

Syntaxe

+ +
element.onwheel = function() { .. }
+ +

Spécification

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG','webappapis.html#handler-onwheel','onwheel')}}{{Spec2('HTML WHATWG')}} 
+ +

Compatibilité des navigateurs

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(61)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatOpera(48)}}{{CompatVersionUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroid WebviewChrome for AndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari Mobile
Basic support{{CompatChrome(61)}}{{CompatChrome(61)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatOperaMobile(48)}}{{CompatVersionUnknown}}
+
+ +

Notes

+ +

L'évènement wheel est déclenché lorsque l'utilisateur fait défiler le contenu de l'élément.

diff --git a/files/fr/web/api/history_api/example/index.html b/files/fr/web/api/history_api/example/index.html new file mode 100644 index 0000000000..f19782d753 --- /dev/null +++ b/files/fr/web/api/history_api/example/index.html @@ -0,0 +1,392 @@ +--- +title: Exemple de navigation en Ajax +slug: Web/Guide/DOM/Manipuler_historique_du_navigateur/Example +translation_of: Web/API/History_API/Example +--- +

Voici un exemple de site web AJAX composé uniquement de trois pages (page_un.phppage_deux.php et page_trois.php). Pour tester cet exemple, merci de créer les fichiers suivants :

+

page_un.php:

+
+
<?php
+    $page_title = "Page un";
+
+    $as_json = false;
+    if (isset($_GET["view_as"]) && $_GET["view_as"] == "json") {
+        $as_json = true;
+        ob_start();
+    } else {
+?>
+<!doctype html>
+<html>
+<head>
+<?php
+        include "include/header.php";
+        echo "<title>" . $page_title . "</title>";
+?>
+</head>
+
+<body>
+
+<?php include "include/before_content.php"; ?>
+
+<p>This paragraph is shown only when the navigation starts from <strong>first_page.php</strong>.</p>
+
+<div id="ajax-content">
+<?php } ?>
+
+    <p>This is the content of <strong>first_page.php</strong>.</p>
+
+<?php
+    if ($as_json) {
+        echo json_encode(array("page" => $page_title, "content" => ob_get_clean()));
+    } else {
+?>
+</div>
+
+<p>This paragraph is shown only when the navigation starts from <strong>first_page.php</strong>.</p>
+
+<?php
+        include "include/after_content.php";
+        echo "</body>\n</html>";
+    }
+?>
+
+
+

page_deux.php:

+
+
<?php
+    $page_title = "Page deux";
+
+    $as_json = false;
+    if (isset($_GET["view_as"]) && $_GET["view_as"] == "json") {
+        $as_json = true;
+        ob_start();
+    } else {
+?>
+<!doctype html>
+<html>
+<head>
+<?php
+        include "include/header.php";
+        echo "<title>" . $page_title . "</title>";
+?>
+</head>
+
+<body>
+
+<?php include "include/before_content.php"; ?>
+
+<p>This paragraph is shown only when the navigation starts from <strong>second_page.php</strong>.</p>
+
+<div id="ajax-content">
+<?php } ?>
+
+    <p>This is the content of <strong>second_page.php</strong>.</p>
+
+<?php
+    if ($as_json) {
+        echo json_encode(array("page" => $page_title, "content" => ob_get_clean()));
+    } else {
+?>
+</div>
+
+<p>This paragraph is shown only when the navigation starts from <strong>second_page.php</strong>.</p>
+
+<?php
+        include "include/after_content.php";
+        echo "</body>\n</html>";
+    }
+?>
+
+
+

page_trois.php:

+
+
<?php
+    $page_title = "Page trois";
+    $page_content = "<p>Ceci est le contenu de la <strong>page_trois.php</strong>. Ce contenu est stocké dans une variable PHP.</p>";
+
+    if (isset($_GET["view_as"]) && $_GET["view_as"] == "json") {
+        echo json_encode(array("page" => $page_title, "content" => $page_content));
+    } else {
+?>
+<!doctype html>
+<html>
+<head>
+<?php
+        include "include/header.php";
+        echo "<title>" . $page_title . "</title>";
+?>
+</head>
+
+<body>
+
+<?php include "include/before_content.php"; ?>
+
+<p>This paragraph is shown only when the navigation starts from <strong>third_page.php</strong>.</p>
+
+<div id="ajax-content">
+<?php echo $page_content; ?>
+</div>
+
+<p>This paragraph is shown only when the navigation starts from <strong>third_page.php</strong>.</p>
+
+<?php
+        include "include/after_content.php";
+        echo "</body>\n</html>";
+    }
+?>
+
+
+

css/style.css:

+
#ajax-loader {
+    position: fixed;
+    display: table;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+}
+
+#ajax-loader > div {
+    display: table-cell;
+    width: 100%;
+    height: 100%;
+    vertical-align: middle;
+    text-align: center;
+    background-color: #000000;
+    opacity: 0.65;
+}
+
+

include/after_content.php:

+
<p>Ceci est le pied-de-page. Il est commun à toutes les pages ajax.</p>
+
+

include/before_content.php:

+
<p>
+[ <a class="ajax-nav" href="page_un.php">Premier exemple</a>
+| <a class="ajax-nav" href="page_deux.php">Second exemple</a>
+| <a class="ajax-nav" href="page_trois.php">Troisième exemple</a>
+| <a class="ajax-nav" href="inexistante.php">Page inexistante</a> ]
+</p>
+
+
+

include/header.php:

+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<script type="text/javascript" src="js/ajax_nav.js"></script>
+<link rel="stylesheet" href="css/style.css" />
+
+

js/ajax_nav.js:

+
+
"use strict";
+
+var ajaxRequest = new (function () {
+
+    function closeReq () {
+        oLoadingBox.parentNode && document.body.removeChild(oLoadingBox);
+        bIsLoading = false;
+    }
+
+    function abortReq () {
+        if (!bIsLoading) { return; }
+        oReq.abort();
+        closeReq();
+    }
+
+    function ajaxError () {
+        alert("Unknown error.");
+    }
+
+    function ajaxLoad () {
+        var vMsg, nStatus = this.status;
+        switch (nStatus) {
+            case 200:
+                vMsg = JSON.parse(this.responseText);
+                document.title = oPageInfo.title = vMsg.page;
+                document.getElementById(sTargetId).innerHTML = vMsg.content;
+                if (bUpdateURL) {
+                    history.pushState(oPageInfo, oPageInfo.title, oPageInfo.url);
+                    bUpdateURL = false;
+                }
+                break;
+            default:
+                vMsg = nStatus + ": " + (oHTTPStatus[nStatus] || "Unknown");
+                switch (Math.floor(nStatus / 100)) {
+                    /*
+                    case 1:
+                        // Informational 1xx
+                        console.log("Information code " + vMsg);
+                        break;
+                    case 2:
+                        // Successful 2xx
+                        console.log("Successful code " + vMsg);
+                        break;
+                    case 3:
+                        // Redirection 3xx
+                        console.log("Redirection code " + vMsg);
+                        break;
+                    */
+                    case 4:
+                        /* Client Error 4xx */
+                        alert("Client Error #" + vMsg);
+                        break;
+                    case 5:
+                        /* Server Error 5xx */
+                        alert("Server Error #" + vMsg);
+                        break;
+                    default:
+                        /* Unknown status */
+                        ajaxError();
+                }
+        }
+        closeReq();
+    }
+
+    function filterURL (sURL, sViewMode) {
+        return sURL.replace(rSearch, "") + ("?" + sURL.replace(rHost, "&").replace(rView, sViewMode ? "&" + sViewKey + "=" + sViewMode : "").slice(1)).replace(rEndQstMark, "");
+    }
+
+    function getPage (sPage) {
+        if (bIsLoading) { return; }
+        oReq = new XMLHttpRequest();
+        bIsLoading = true;
+        oReq.onload = ajaxLoad;
+        oReq.onerror = ajaxError;
+        if (sPage) { oPageInfo.url = filterURL(sPage, null); }
+        oReq.open("get", filterURL(oPageInfo.url, "json"), true);
+        oReq.send();
+        oLoadingBox.parentNode || document.body.appendChild(oLoadingBox);
+    }
+
+    function requestPage (sURL) {
+        if (history.pushState) {
+            bUpdateURL = true;
+            getPage(sURL);
+        } else {
+            /* Ajax navigation is not supported */
+            location.assign(sURL);
+        }
+    }
+
+    function processLink () {
+        if (this.className === sAjaxClass) {
+            requestPage(this.href);
+            return false;
+        }
+        return true;
+    }
+
+    function init () {
+        oPageInfo.title = document.title;
+        for (var oLink, nIdx = 0, nLen = document.links.length; nIdx < nLen; document.links[nIdx++].onclick = processLink);
+    }
+
+    const
+
+        /* customizable constants */
+        sTargetId = "ajax-content", sViewKey = "view_as", sAjaxClass = "ajax-nav",
+
+        /* not customizable constants */
+        rSearch = /\?.*$/, rHost = /^[^\?]*\?*&*/, rView = new RegExp("&" + sViewKey + "\\=[^&]*|&*$", "i"), rEndQstMark = /\?$/,
+        oLoadingBox = document.createElement("div"), oCover = document.createElement("div"), oLoadingImg = new Image(),
+        oPageInfo = {
+            title: null,
+            url: location.href
+        }, oHTTPStatus = /* http://www.iana.org/assignments/http-status-codes/http-status-codes.xml */ {
+            100: "Continue",
+            101: "Switching Protocols",
+            102: "Processing",
+            200: "OK",
+            201: "Created",
+            202: "Accepted",
+            203: "Non-Authoritative Information",
+            204: "No Content",
+            205: "Reset Content",
+            206: "Partial Content",
+            207: "Multi-Status",
+            208: "Already Reported",
+            226: "IM Used",
+            300: "Multiple Choices",
+            301: "Moved Permanently",
+            302: "Found",
+            303: "See Other",
+            304: "Not Modified",
+            305: "Use Proxy",
+            306: "Reserved",
+            307: "Temporary Redirect",
+            308: "Permanent Redirect",
+            400: "Bad Request",
+            401: "Unauthorized",
+            402: "Payment Required",
+            403: "Forbidden",
+            404: "Not Found",
+            405: "Method Not Allowed",
+            406: "Not Acceptable",
+            407: "Proxy Authentication Required",
+            408: "Request Timeout",
+            409: "Conflict",
+            410: "Gone",
+            411: "Length Required",
+            412: "Precondition Failed",
+            413: "Request Entity Too Large",
+            414: "Request-URI Too Long",
+            415: "Unsupported Media Type",
+            416: "Requested Range Not Satisfiable",
+            417: "Expectation Failed",
+            422: "Unprocessable Entity",
+            423: "Locked",
+            424: "Failed Dependency",
+            425: "Unassigned",
+            426: "Upgrade Required",
+            427: "Unassigned",
+            428: "Precondition Required",
+            429: "Too Many Requests",
+            430: "Unassigned",
+            431: "Request Header Fields Too Large",
+            500: "Internal Server Error",
+            501: "Not Implemented",
+            502: "Bad Gateway",
+            503: "Service Unavailable",
+            504: "Gateway Timeout",
+            505: "HTTP Version Not Supported",
+            506: "Variant Also Negotiates (Experimental)",
+            507: "Insufficient Storage",
+            508: "Loop Detected",
+            509: "Unassigned",
+            510: "Not Extended",
+            511: "Network Authentication Required"
+        };
+
+    var
+
+        oReq, bIsLoading = false, bUpdateURL = false;
+
+    oLoadingBox.id = "ajax-loader";
+    oCover.onclick = abortReq;
+    oLoadingImg.src = "data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==";
+    oCover.appendChild(oLoadingImg);
+    oLoadingBox.appendChild(oCover);
+
+    onpopstate = function (oEvent) {
+        bUpdateURL = false;
+        oPageInfo.title = oEvent.state.title;
+        oPageInfo.url = oEvent.state.url;
+        getPage();
+    };
+
+    window.addEventListener ? addEventListener("load", init, false) : window.attachEvent ? attachEvent("onload", init) : (onload = init);
+
+    // Public methods
+
+    this.open = requestPage;
+    this.stop = abortReq;
+    this.rebuildLinks = init;
+
+})();
+
+
+
+ Note: const (instruction de constante) ne fait pas partie de ECMAScript 5. Il est supporté dans Firefox et Chrome (V8) et partiellement supporté dans Opera 9+ et Safari. Il n'est pas supporté dans Internet Explorer 6-9, ou dans la version de prévisualisation de Internet Explorer 10const sera défini par ECMAScript 6, mais avec une sémantique différente. Proches des variables déclarées avec l'instruction let, les constantes déclarées avec const seront limitées en portée. Nous ne l'avons utilisé que pour des raisons pédagogiques, si vous souhaitez une compatibilité maximale de ce code, merci de remplacer les références à const par des instructions var.
+

Pour plus d'informations, voyez : Manipuler l'historique du navigateur.

+

Lire également

+ diff --git a/files/fr/web/api/history_api/index.html b/files/fr/web/api/history_api/index.html new file mode 100644 index 0000000000..5e199dd521 --- /dev/null +++ b/files/fr/web/api/history_api/index.html @@ -0,0 +1,245 @@ +--- +title: Manipuler l'historique du navigateur +slug: Web/Guide/DOM/Manipuler_historique_du_navigateur +tags: + - API + - DOM + - Historique +translation_of: Web/API/History_API +--- +

L'objet DOM {{ domxref("window") }} fournit un accès à l'historique du navigateur via l'objet {{ domxref("window.history", "history") }}. Il expose un ensemble de méthodes et de propriétés qui permettent d'avancer et de reculer dans l'historique de l'utilisateur ainsi que -- à partir d'HTML5 -- manipuler le contenu de l'ensemble de l'historique.

+ +

Se déplacer dans l'historique

+ +

Avancer ou reculer dans l'historique de l'utilisateur est possible en utilisant les méthodes back(), forward() et go().

+ +

Avancer et reculer

+ +

Pour reculer dans l'historique, il vous suffit de faire :

+ +
window.history.back();
+
+ +

Cela agira exactement comme si l'utilisateur cliquait sur le bouton Retour de la barre d'outils de son navigateur.

+ +

De la même manière, il est possible d'avancer (comme si l'utilisateur cliquait sur le bouton Avancer) :

+ +
window.history.forward();
+
+ +

Se déplacer à un élément précis de l'historique

+ +

Vous pouvez utiliser la méthode go() pour charger une page spécifique de l'historique de la session, identifiée par sa position relative par rapport à la page en cours (la page courante étant, évidemment, d'index 0).

+ +

Pour reculer d'une page (l'équivalent d'un appel à back()):

+ +
window.history.go(-1);
+
+ +

Pour avancer d'une page, comme en appelant forward():

+ +
window.history.go(1);
+
+ +

De la même manière, vous pouvez avancer de 2 pages en passant la valeur 2, et ainsi de suite.

+ +

Vous pouvez déterminer le nombre de pages de l'historique en accédant à la valeur de la propriété length (longeur) :

+ +
var numberOfEntries = window.history.length;
+
+ +
Note: Internet Explorer supporte le passage d'une URL sous forme de chaîne de caractères comme paramètre de la méthode go(); ce comportement est non standard et non supporté par Gecko.
+ +

Ajouter et modifier des entrées de l'historique

+ +

{{ gecko_minversion_header("2") }}

+ +

HTML5 a introduit les méthodes history.pushState() et history.replaceState(), qui permettent, respectivement, d'ajouter et de modifier des entrées de l'historique. Ces méthodes fonctionnent conjointement avec l'événement onpopstate.

+ +

L'utilisation de history.pushState() change le référent créé habituellement dans l'en-tête HTTP pour les objets XMLHttpRequest, chaque fois que son état a été changé. Le référent sera l'URL de la page dont l'objet window est this au moment de la création de l'objet XMLHttpRequest.

+ +

Exemple de la méthode pushState()

+ +

Supposons que http://mozilla.org/foo.html exécute la séquence JavaScript suivante :

+ +
var stateObj = { foo: "bar" };
+history.pushState(stateObj, "page 2", "bar.html");
+
+ +

Cela va provoquer l'apparition dans la barre de navigation de http://mozilla.org/bar.html, mais ne provoquera pas le chargement effectif de bar.html ni même le test d'existence de bar.html.

+ +

Supposons à présent que l'utilisateur accède à la page http://google.com, puis clique sur l'icône "Recul". La barre de navigation va alors afficher http://mozilla.org/bar.html, et si vous lisez l'history.state, vous obtiendrez le stateObj.  L'événement popstate ne sera pas lancé car la page a été rechargée. La page elle-même ressemblera à bar.html.

+ +

Si on clique à nouveau sur Recul, l'URL de la barre de navigation va se changer en http://mozilla.org/foo.html et le document va recevoir un autre événement popstate, qui comportera, cette fois, un état null. Dans ce cas aussi, revenir en arrière ne modifie pas le contenu du document par rapport à ce qu'il était à l'étape précédente, cela bien qu'il ait pu être mis à jour manuellement sur réception de l'événement popstate.

+ +

La méthode pushState()

+ +

La méthode pushState() utilise trois paramètres : un objet état, un titre (qui est pour l'instant ignoré) et, éventuellement, une URL. Examinons chacun de ces paramètres en détail :

+ + + +
Note : Dans Gecko 2.0 {{ geckoRelease("2.0") }} jusqu'à Gecko 5.0 {{ geckoRelease("5.0") }}, l'objet fourni est sérialisé en utilisant JSON. À partir de  Gecko 6.0 {{ geckoRelease("6.0") }}, l'objet est sérialisé à l'aide de "structured clone algorithm" qui autorise, en particulier, la sérialisation d'arbres récursifs cycliques. Cela permet de passer de façon sûre une plus grande diversité d'objets.
+ +

On peut assimiler l'appel à pushState() à l'affectation window.location = "#foo", en cela que l'un comme l'autre auront pour effet de créer et déclencher une autre entrée de l'historique associée au document courant. Mais pushState() a quelques avantages :

+ + + +

Notez que pushState() n'entraîne jamais le déclenchement d'un événement hashchange, même si la nouvelle URL diffère de l'ancienne seulement par son hash.

+ +

Dans un document XUL elle crée l'élément XUL spécifié.

+ +

Dans d'autres documents, elle crée un élément avec l'URI d'espace de nom null

+ +

La méthode replaceState()

+ +

history.replaceState() fonctionne exactement comme history.pushState() hormis le fait que replaceState() modifie l'entrée courante de l'historique au lieu d'en créer une nouvelle. À noter que ceci n'empêche pas la création d'une nouvelle entrée dans l'historique global du navigateur.

+ +

replaceState() est particulièrement utile si vous désirez mettre à jour l'objet état ou l'URL de l'entrée courante de l'historique en réponse à une action de l'utilisateur.

+ +
Note : Dans Gecko 2.0 {{ geckoRelease("2.0") }} jusqu'à Gecko 5.0 {{ geckoRelease("5.0") }}, l'objet transmis est sérialisé avec JSON. À partir de  Gecko 6.0 {{ geckoRelease("6.0") }}, l'objet est sérialisé à l'aide de "structured clone algorithm" qui autorise, en particulier, la sérialisation d'arbres récursifs cycliques. Cela permet de passer de façon sûre une plus grande diversité d'objets.
+ +

Exemple de la méthode replaceState()

+ +

Supposons que http://mozilla.org/foo.html exécute le code JavaScript suivant :

+ +
var stateObj = { foo: "bar" };
+history.pushState(stateObj, "page 2", "bar.html");
+ +

L'explication des deux lignes ci-dessus peut être trouvée dans la section "Exemple de la méthode pushState()". Supposons ensuite que http://mozilla.org/bar.html exécute le code JavaScript suivant :

+ +
history.replaceState(stateObj, "page 3", "bar2.html");
+ +

Cela entraînera l'affichage de la barre d'URL http://mozilla.org/bar2.html, mais le navigateur ne chargera pas bar2.html ou même vérifiera que bar2.html existe.

+ +

Supposons maintenant que l'utilisateur accède à http://www.microsoft.com, puis clique sur le bouton Précédent. À ce stade, la barre d'URL affichera http://mozilla.org/bar2.html. Si l'utilisateur clique à nouveau sur Retour, la barre d'URL affichera http://mozilla.org/foo.html et contournera totalement bar.html.

+ +

L'événement popstate

+ +

Un événement popstate est envoyé à la fenêtre chaque fois que l'entrée active de l'historique change. Si l'entrée de l'historique activée a été créée par un appel à replaceState, la propriété state de l'événement popstate contient une copie de l'objet état  de l'entrée de l'historique.

+ +

Voir {{ domxref("window.onpopstate") }} pour un exemple d'utilisation.

+ +

Lire l'état courant

+ +

Quand votre page est chargée, il se pourrait qu'elle ait un objet état non nul. Cela peut se produire, par exemple, si la page fixe un objet état (avec  pushState() ou replaceState()) et qu'ensuite l'utilisateur redémarre le navigateur.  Quand votre page sera rechargée, elle recevra l'événement  onload , mais pas l'événement popstate.  Néanmoins, si vous lisez la propriété history.state, vous récupèrerez l'objet état que vous auriez obtenu si un événement popstate avait été déclenché.

+ +

Vous pouvez lire l'état de l'entrée courante de l'historique sans devoir attendre un événement popstate en utilisant la propriété history.state comme ceci :

+ +
var currentState = history.state;
+
+ +

Exemples

+ +

Pour un exemple comple de site web AJAX, vous pouvez voir : Exemple de navigation en Ajax.

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', "browsers.html#history", "History")}}{{Spec2('HTML WHATWG')}}Pas de changement de {{SpecName("HTML5 W3C")}}.
{{SpecName('HTML5 W3C', "browsers.html#history", "History")}}{{Spec2('HTML5 W3C')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
replaceState, pushState5{{ CompatGeckoDesktop("2.0") }}1011.505.0
history.state18{{ CompatGeckoDesktop("2.0") }}1011.50{{ CompatNo() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
replaceState, pushState{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
history.state{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}{{ CompatUnknown() }}
+
+ +

Vous pouvez utiliser History.js pour contourner les problèmes de compatibilité entre navigateurs.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/html_drag_and_drop_api/drag_operations/index.html b/files/fr/web/api/html_drag_and_drop_api/drag_operations/index.html new file mode 100644 index 0000000000..0ddaad6583 --- /dev/null +++ b/files/fr/web/api/html_drag_and_drop_api/drag_operations/index.html @@ -0,0 +1,294 @@ +--- +title: Opérations de glissement +slug: Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement +translation_of: Web/API/HTML_Drag_and_Drop_API/Drag_operations +--- +

Ce qui suit décrit les étapes qui se déroulent lors d'un Glisser Déposer.

+ +

Les opérations de glisser décrits dans ce document utilisent l'interface {{domxref("DataTransfer")}}. Ce document n'utilise pas l'interface {{domxref("DataTransferItem")}} ni l'interface {{domxref("DataTransferItemList")}}.

+ +

L'attribut draggable

+ +

Dans une page Web, certains cas nécessitent l'usage du Glisser Déposer. Il peut servir pour des sélections de texte, d'images ou de liens. Lorsqu'une image ou un lien sont glissés, l'URL de l'image ou du lien est défini comme données du glissement, et le Glisser commence. Pour d'autres éléments, il peut s'agir d'une sélection effectuée qui servira au glissement. Pour voir cet effet, sélectionnez une zone dans une page Web, puis cliquez dedans en maintenant le bouton de la souris et glissez la sélection. Un rendu translucide de la sélection apparaitra en suivant le pointeur de la souris. Il s'agit toutefois du comportement par défaut du glissement si aucun scrutateur n'a été défini pour traiter les données.

+ +

En HTML, excepté le comportement par défaut des images, des liens et des sélections, aucun autre élément ne peut être glissé. Tous les éléments XUL peuvent être glissés.

+ +

Pour rendre un autre élément HTML glissable, deux choses doivent être faites :

+ + + +

Voici un exemple qui permet à une section de contenu d'être glissée :

+ +
<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'Ce texte peut être glissé')">
+  Ce texte <strong>peut</strong> être glissé.
+</div>
+
+ +

L'attribut {{htmlattrxref("draggable")}} est défini à true, ce qui rend l'élément glissant. Si cet attribut est omis ou défini à false, l'élément ne serait pas glissant et le texte serait alors simplement sélectionné. Cet attribut peut être placé sur n'importe quel élément, y compris des images et des liens. Toutefois, pour les deux derniers, la valeur par défaut est true, donc vous n'utiliserez l'attribut {{htmlattrxref("draggable")}} que pour le définir à false pour interdire le glissement de ces éléments.

+ +

Notez que lorsqu'un élément est rendu glissable, le texte ou les autres éléments qu'il contient ne peuvent plus être sélectionné de manière classique en cliquant et déplaçant la souris. Au lieu de cela, l'utilisateur doit maintenir la touche Alt appuyée pour sélectionner le texte avec la souris, ou bien utilisez le clavier.

+ +

Pour des éléments XUL, il n'est pas nécessaire d'utiliser l'attribut {{htmlattrxref("draggable")}}, car tous les éléments XUL sont glissables.

+ +
<button label="Glisse moi" ondragstart="event.dataTransfer.setData('text/plain', 'Bouton à glisser');">
+
+ +

 

+ +

Démarrer une opération de glissement

+ +

Dans cet exemple, un scrutateur est ajouté à l'événement dragstart en utilisant l'attribut ondragstart.

+ +
<div draggable="true" ondragstart="event.dataTransfer.setData('text/plain', 'Ce texte peut être glissé')">
+  Ce texte <strong>peut</strong> être glissé.
+</div>
+
+ +

Lorsqu'un utilisateur commence un glissement, l'événement dragstart est déclenché. Dans cet exemple, le scrutateur dragstart a été ajouté à l'élément à déplacer lui-même. Vous pouvez toutefois mettre le scrutateur sur un ancètre plus élevé car l'événement drag diffuse comme le font les autres événements. À l'intérieur de l'événement dragstart, vous devez spécifier la donnée de glissement, l'image filligrane et les effets du glissement tels que décrits ci-dessous. Cependant, seule la donnée de glissement est nécessaire ; l'image et les effets du glissement par défaut sont suffisants pour la majorité des cas.

+ +

Donnée de glissement

+ +

Tous les événements de glissement ont une propriété appelée dataTransfer utilisée pour contenir la donnée de glissement.

+ +

Lorsqu'un glissement a lieu, une donnée doit être associée au glissement pour identifier ce qui est en train de glisser. Par exemple, lors du glissement d'un texte sélectionné dans un champs de texte, la donnée associée au glissement est le texte lui-même. De même, lors du glissement d'un lien, la donnée associée est l'URL du lien.

+ +

La donnée de glissement contient deux informations : son type ou format et sa valeur. Le format est une chaîne de caractère (telle que text/plain pour un texte), et la valeur est un texte. Lorsqu'un glissement démarre, vous devez lui ajouter en fournissant un type et la donnée. Dans les scrutateurs des événements dragenter et dragover au cours d'un glissement, vous pouvez vérifier les types de données et indiquer si un dépôt est permis ou non. Par exemple, une cible de dépôt qui accepte que des liens testera les types lien text/uri-list. Pendant un évément de dépôt, un scrutateur récupèrera la donnée glissée et l'insèrera dans la zone de dépôt.

+ +

Les types MIME habituels sont text/plain ou image/jpeg, mais vous pouvez créer vos propres types. La liste des types les plus utilisés est disponible sur cette page.

+ +

Un glissement peut fournir une donnée dans différents types. Ceci permet à une donnée d'être disponible dans des types spécifiques, souvent personnalisés, toujours en fournissant un format pour les cibles ne supportant pas ces types spécifiques. Habituellement, il s'agit toujours d'une version textuelle de type text/plain. La donnée n'en sera qu'une représentation sous la forme d'un texte.

+ +

Pour définir une donnée dans un dataTransfer, utilisez la méthode setData. Elle prend deux arguments qui sont le type de la donnée et sa valeur. Par exemple :

+ +
event.dataTransfer.setData("text/plain", "Texte à glisser");
+
+ +

Dans ce cas, la valeur de la donnée est "Texte à glisser" et son format est text/plain.

+ +

Vous pouvez fournir une donnée dans de multiples formats. Il suffit d'appeler la méthode setData plusieurs fois avec chacun des formats. Vous devez l'appeler dans l'ordre du format le plus spécifique au moins spécifique.

+ +
var dt = event.dataTransfer;
+dt.setData("application/x-bookmark", bookmarkString);
+dt.setData("text/uri-list", "http://www.mozilla.org");
+dt.setData("text/plain", "http://www.mozilla.org");
+
+ +

Ici, une donnée est ajoutée avec trois types différents. Le premier type 'application/x-bookmark' est un type personnalisé. Toutes les applications ne vont pas supporter ce type, mais vous pouvez l'utiliser pour le glissement entre des zones d'une même application ou d'un même site. En fournissant la donnée avec d'autres types, vous la rendez disponible à moindre échelle pour d'autres applications. Le type 'application/x-bookmark' fournira ainsi plus de détail à l'application qu'avec les autres types qui ne seraient que de simples liens ou textes.

+ +

Notez que cet exemple, text/uri-list et text/plain contiennent la même donnée. C'est souvent le cas, mais pas forcément nécessaire.

+ +

Si vous essayez d'ajouter une donnée deux fois avec le même format, alors la nouvelle donnée remplacera l'ancienne, mais à la même position que l'ancienne dans la liste.

+ +

Vous pouvez effacer la donnée en utilisant la méthode clearData, avec un seul argument qui est le type de la donnée à effacer.

+ +
event.dataTransfer.clearData("text/uri-list");
+
+ +

L'argument de type de la méthode clearData est optionnel. S'il n'est pas précisé, la donnée associée à tous les types est effacée. Et si aucune donnée à glisser n'est ajoutée, alors l'opération de glissement ne s'effectue pas.

+ +

Définir l'image filigrane d'un glissement

+ +

Lorsqu'un glissement a lieu, une image translucide est générée à partir de l'origine du glissement (l'élément d'origine ayant déclenché l'événement), et cette image suit le déplacement de la souris. Elle est créée automatiquement donc vous n'avez pas à le faire vous même. Toutefois, vous pouvez personnaliser cette image filigrane grâce à setDragImage.

+ +
event.dataTransfer.setDragImage(image, xOffset, yOffset);
+
+ +

Trois arguments sont nécessaires. Le premier est la référence à une image. Cette référence pointera en gérénal vers un élément image, mais elle peut pointer aussi vers un canvas ou vers tous autres éléments. L'image filigrane sera simplement générée telle qu'elle ressemble à l'écran, et dessinée à sa taille d'origine. Il est également possible d'utiliser des images et des canvas qui ne sont pas dans un document, comme le montre cet exemple :

+ +
function dragWithCustomImage(event)
+{
+  var canvas = document.createElement("canvas");
+  canvas.width = canvas.height = 50;
+
+  var ctx = canvas.getContext("2d");
+  ctx.lineWidth = 4;
+  ctx.moveTo(0, 0);
+  ctx.lineTo(50, 50);
+  ctx.moveTo(0, 50);
+  ctx.lineTo(50, 0);
+  ctx.stroke();
+
+  var dt = event.dataTransfer;
+  dt.setData('text/plain', 'Data to Drag');
+  dt.setDragImage(canvas, 25, 25);
+}
+
+ +

Cette technique est utile pour dessiner des images filigranes personnalisées en utilisant l'élément canvas.

+ +

Les deuxième et troisième arguments de la méthode setDragImage sont les décalages de l'image par rapport au pointeur de la souris. Dans cet exemple, comme le canvas fait 50 pixels de large et 50 pixels de haut, nous utilisons son centre (soit 25 et 25) pour que l'image soit centrée sur le pointeur de la souris.

+ +

Effets du glissement

+ +

Lors d'un glisser/déposer, plusieur opérations se déroulent. L'opération copy indique que la donnée glissée sera copiée de son emplacement d'origine au lieu de dépot. L'opération move indique que la donnée glissée sera déplacée, et l'opération link indique une forme de relation ou de connexion entre l'origine et le lieu de dépot.

+ +

Vous pouvez spécifier laquelle de ces trois opérations sera autorisée au niveau de l'origine du glissement, en définissant la propriété effectAllowed dans un scrutateur d'événement dragstart.

+ +
event.dataTransfer.effectAllowed = "copy";
+
+ +

Dans cet exemple, seule une copie n'est autorisée. Vous pouvez combiner les valeurs de plusieurs façons :

+ +
+
none
+
Aucune opération permise
+
copy
+
Copie uniquement
+
move
+
Déplacement uniquement
+
link
+
Lien uniquement
+
copyMove
+
Copie ou déplacement uniquement
+
copyLink
+
Copie ou lien uniquement
+
linkMove
+
Lien ou déplacement uniquement
+
all
+
Copie, déplacement ou lien
+
+ +

Notez que ces valeurs doivent être écrites exactement comme cela. Si vous ne modifiez pas la propriété effectAllowed, alors tous les opérations seront permises comme pour la valeur 'all'. L'usage de cette propriété intervient seulement si vous souhaitez exclure des types spécifiques.

+ +

Pendant une opération de glissement, un scrutateur pour les événements dragenter ou dragover peut tester la propriété effectAllowed afin de voir quelles opérations sont autorisées. La propriété associée dropEffect doit être définie dans un de ces événements pour spécifier ce que chaque opération aura à faire. Les valeurs valides pour dropEffect sont none, copy, move ou link. Il n'y a pas de combinaison pour cette propriété.

+ +

Pour les événements dragenter et dragover, la propriété dropEffect est initialisée avec l'effet attendu par l'utilisateur. L'utilisateur peut modifier l'effet désiré en appuyant sur une touche de modification. Bien que les touches varient selon la plateforme, habituellement, il s'agit d'une combinaison des touches Maj et Control qui permettent de copier, déplacer et créer un raccourci. Le pointeur de la souris change de forme pour montrer l'opération souhaitée, par exemple un signe + à côté de la souris pour une copie.

+ +

Vous pouvez modifier les propriétés effectAllowed et dropEffect pendant les événements dragenter ou dragover, si par exemple une cible ne supporte qu'un seul type d'opération. La modification de la propriété effectAllowed vous permet de spécifier les opérations autorisées sur une cible donnée. Par exemple, mettre une propriété copyMove permet des opération de copie ou de déplacement, mais pas de créer un lien raccourci.

+ +

Vous pouvez modifier la propriété dropEffect en remplaçant l'effet de l'utilisateur, et forcer à obtenir une opération spécifique. Notez que cet effet doit être un de ceux listé dans la propriété effectAllowed, sinon une valeur alternative sera attribuée.

+ +
event.dataTransfer.effectAllowed = "copyMove";
+event.dataTransfer.dropEffect = "copy";
+
+ +

Dans cet exemple, la copie est l'effet proposé qui est inclus dans la liste des effets autorisés.

+ +

Vous pouvez utiliser la valeur none pour interdir tout dépôt à cet emplacement.

+ +

Spécifier les cibles de dépôt

+ +

Un scrutateur pour les événements dragenter et dragover est utilisé pour indiquer des cibles de dépôt valides, c'est-à-dire là où les items pourront être déposés. La plupart des zones d'une page Web ne sont pas des endroits valides pour déposer des données. Ainsi, le comportement par défaut pour ces événements ne permet pas un dépôt.

+ +

Si vous voulez autoriser un dépôt, vous devez empêcher le comportement par défaut en annulant l'événement. Il suffit soit de retourner false à partir d'un scrutateur d'événement, ou par l'appel de la méthode événementielle event.preventDefault. Cette dernière solution est plus faisable avec une fonction définie dans un script séparé.

+ +
<div ondragover="return false">
+<div ondragover="event.preventDefault()">
+
+ +

L'appel de la méthode event.preventDefault pendant les événements dragenter et dragover indiquera qu'un dépôt est permis à cet endroit. Toutefois, il est fréquent d'appeler la méthode event.preventDefault seulement dans certaines situations, par exemple si un lien est en train d'être glissé. Pour cela, appelez une fonction qui testera une condition et annulera l'événement seulement si cette condition est rencontrée. Dans le cas contraire, il suffit de ne pas annuler l'événement et aucun dépôt ne se réalisera si l'utilisateur lache le bouton de la souris.

+ +

Il est plus fréquent d'accepter ou non un dépôt en fonction du type de la donnée glissée. Par exemple, permettre les images ou les liens, ou bien les deux. Pour cela, testez les types de l'objet dataTransfer. Les types sont sous la forme d'une liste de chaînes de caractères ajoutées au début du glissement, du plus signifiant au moins signifiant.

+ +
function doDragOver(event)
+{
+  var isLink = event.dataTransfer.types.contains("text/uri-list");
+  if (isLink)
+    event.preventDefault();
+}
+
+ +

Dans cet exemple, la méthode contains est utilisée pour vérifier si le type text/uri-list est présent dans la liste des types. S'il l'est, l'événement est annulé, ce qui autorise un dépôt. Si la donnée ne contient pas un lien, l'événement ne sera pas annulé et le dépôt ne sera pas autorisé à cet endroit.

+ +

Vous pouvez également définir une propriété effectAllowed ou dropEffect ou les deux à la fois si vous souhaitez être plus précis sur le type d'opération autorisé. Naturellement, le changement de propriété n'aura aucun effet si vous n'avez pas annulé l'événement.

+ +

Retour d'information du dépôt

+ +

Il y a de nombreuses manières d'indiquer à l'utilisateur que le dépot est autorisé dans une certaine zone. Le pointeur de la souris va être mis à jour en fonction de la valeur de la propriété dropEffect. L'apparence exacte dépend de la plateforme de l'utilisateur, généralement il s'agit d'un icone représentant un signe plus qui apparaît pour une copie par exemple, et un 'impossible de déposer ici' peut apparaître quand le dépôt n'est pas autorisé. Cette information contextuelle est suffisante dans la plupart des cas.

+ +

De plus, vous pouvez aussi mettre à jour l'interface utilisateur en surlignant au besoin. Pour un simple surlignage, vous pouvez utiliser la pseudo-classe -moz-drag-oversur la cible du dépôt.

+ +
.droparea:-moz-drag-over {
+  border: 1px solid black;
+}
+
+ +

Dans cet example, l'élement comportant la classe droparea va recevoir un bord noir de un pixel tant que la cible sera valide, ce qui est le cas, si la méthode event.preventDefault est appelé durant l'évenement dragenter. Il est à noter que vous devez annuler l'évenement dragenter de cette pseudo-classe tant que l'état n'est pas verifié par l'évenement dragover.

+ +

For more complex visual effects, you can also perform other operations during the dragenter event, for example, by inserting an element at the location where the drop will occur. For example, this might be an insertion marker or an element that represents the dragged element in its new location. To do this, you could create an image or separator element for example, and simply insert it into the document during the dragenter event.

+ +

The dragover event will fire at the element the mouse is pointing at. Naturally, you may need to move the insertion marker around a dragover event as well. You can use the event's clientX and clientY properties as with other mouse events to determine the location of the mouse pointer.

+ +

Finally, the dragleave event will fire at an element when the drag leaves the element. This is the time when you should remove any insertion markers or highlighting. You do not need to cancel this event. Any highlighting or other visual effects specified using the -moz-drag-over pseudoclass will be removed automatically. The dragleave event will always fire, even if the drag is cancelled, so you can always ensure that any insertion point cleanup can be done during this event.

+ +

Performing a Drop

+ +

When the user releases the mouse, the drag and drop operation ends. If the mouse was released over an element that is a valid drop target, that is, one that cancelled the last dragenter or dragover event, then the drop will be successful, and a drop event will fire at the target. Otherwise, the drag operation is cancelled and no drop event is fired.

+ +

During the drop event, you should retrieve that data that was dropped from the event and insert it at the drop location. You can use the dropEffect property to determine which drag operation was desired.

+ +

As with all drag related events, the event's dataTransfer property will hold the data that is being dragged. The getData method may be used to retrieve the data again.

+ +
function onDrop(event)
+{
+  var data = event.dataTransfer.getData("text/plain");
+  event.target.textContent = data;
+  event.preventDefault();
+}
+
+ +

The getData method takes one argument, the type of data to retrieve. It will return the string value that was set when the setData was called at the beginning of the drag operation. An empty string will be returned if data of that type does not exist. Naturally though, you would likely know that the right type of data was available, as it was previously checked during a dragover event.

+ +

In the example here, once we have retrieved the data, we insert the string as the textual content of the target. This has the effect of inserting the dragged text where it was dropped, assuming that the drop target is an area of text such as a p or div element.

+ +

In a web page, you should call the preventDefault method of the event if you have accepted the drop so that the default browser handling does not handle the droppped data as well. For example, when a link is dragged to a web page, Firefox will open the link. By cancelling the event, this behaviour will be prevented.

+ +

You can retrieve other types of data as well. If the data is a link, it should have the type text/uri-list. You could then insert a link into the content.

+ +
function doDrop(event)
+{
+  var links = event.dataTransfer.getData("text/uri-list").split("\n");
+  for each (var link in links) {
+    if (link.indexOf("#") == 0)
+      continue;
+
+    var newlink = document.createElement("a");
+    newlink.href = link;
+    newlink.textContent = link;
+    event.target.appendChild(newlink);
+  }
+  event.preventDefault();
+}
+
+ +

This example inserts a link from the dragged data. As you might be able to guess from the name, the text/uri-list type actually may contain a list of URLs, each on a separate line. In this code, we use the split to split the string into lines, then iterate over the list of lines, inserting each as a link into the document. Note also that we skip links starting with a number sign (#) as these are comments.

+ +

For simple cases, you can use the special type URL to just retrieve the first valid URL in the list. For example:

+ +
var link = event.dataTransfer.getData("URL");
+
+ +

This eliminates the need to check for comments or iterate through lines yourself, however it is limited to only the first URL in the list.

+ +

The URL type is a special type used only as a shorthand, and it does not appear within the list of types specified in the types property.

+ +

Sometimes you may support a number of different formats, and you want to retrieve the data that is most specific that is supported. In this example, three formats are support by a drop target.

+ +

The following example returns the data associated with the best supported format:

+ +
function doDrop(event)
+{
+  var types = event.dataTransfer.types;
+  var supportedTypes = ["application/x-moz-file", "text/uri-list", "text/plain"];
+  types = supportedTypes.filter(function (value) types.contains(value));
+  if (types.length)
+    var data = event.dataTransfer.getData(types[0]);
+  event.preventDefault();
+}
+
+ +

This method relies on JavaScript functionality available in Firefox 3. However the code could be adjusted to support other platforms.

+ +

Finishing a Drag

+ +

Once the drag is complete, a dragend is fired at the source of the drag (the same element that received the dragstart event). This event will fire if the drag was successful or if it was cancelled. However, you can use the dropEffect to determine what drop operation occurred.

+ +

If the dropEffect property has the value none during a dragend, then the drag was cancelled. Otherwise, the effect specifies which operation was performed. The source can use this information after a move operation to remove the dragged item from the old location. The mozUserCancelled property will be set to true if the user cancelled the drag (by pressing Escape), and false if the drag was cancelled for other reasons such as an invalid drop target, or if was successful.

+ +

A drop can occur inside the same window or over another application. The dragend event will always fire regardless. The event's screenX and screenY properties will be set to the screen coordinate where the drop occurred.

+ +

After the dragend event has finished propagating, the drag and drop operation is complete.

diff --git a/files/fr/web/api/html_drag_and_drop_api/index.html b/files/fr/web/api/html_drag_and_drop_api/index.html new file mode 100644 index 0000000000..fd73e301f8 --- /dev/null +++ b/files/fr/web/api/html_drag_and_drop_api/index.html @@ -0,0 +1,268 @@ +--- +title: Glisser et déposer +slug: Web/API/API_HTML_Drag_and_Drop +tags: + - Avancé + - Glisser-deposer + - Guide + - HTML + - drag and drop +translation_of: Web/API/HTML_Drag_and_Drop_API +--- +

{{DefaultAPISidebar("HTML Drag and Drop API")}}

+ +

L'interface HTML Drag and Drop (pour glisser-déposer) permet à des applications d'utiliser des fonctionnalités de glisser-déposer dans le navigateur. L'utilisateur pourra sélectionner des éléments déplaçables à la souris et les déplacer vers un élément où on peut déposer en relâchant le bouton de la souris. Une représentation translucide de l'élément déplacé suit le pointeur lors de l'opération.

+ +

Pour les sites web et les extensions, on peut personnaliser les éléments qui peuvent être déplacés, la façon dont ceux-ci sont signalés et les éléments qui peuvent servir de destination.

+ +

L'aperçu de cette API inclut une description des interfaces, les étapes à suivre pour prendre en charge ces fonctionnalités dans une application et un aperçu de l'interopérabilité de ces interfaces.

+ +

Évènements de déplacement

+ +

L'API HTML Drag and Drop utilise le modèle d'évènements du DOM ({{domxref("Event")}}) ainsi que les éléments de déplacements ({{domxref("DragEvent")}}) hérités des évènements liés à la souris ({{domxref("MouseEvent")}}). Une opération de déplacement commence généralement lorsqu'un utilisateur sélectionne un élément déplaçable puis qu'il le déplace sur un élément de destination avant de relâcher l'élément déplacé.

+ +

Lors des opérations de déplacement, plusieurs évènements sont déclenchés (dont certains qui sont déclenchés à plusieurs reprises comme {{event("drag")}} et {{event("dragover")}}).

+ +

Chaque type d'évènement de déplacement possède un gestionnaire d'évènement global (une méthode on...) :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ÉvènementGestionnaire d'évènement globalDéclenchement
{{event('drag')}}{{domxref('GlobalEventHandlers.ondrag','ondrag')}}…un objet déplaçable (que ce soit un élément ou une sélection de texte) est déplacée.
{{event('dragend')}}{{domxref('GlobalEventHandlers.ondragend','ondragend')}}…une opération de déplacement se termine (en relâchant le bouton de la souris ou en utilisant la touche Echap, voir Terminer un déplacement)
{{event('dragenter')}}{{domxref('GlobalEventHandlers.ondragenter','ondragenter')}}…un élément en cours de déplacement arrive sur une zone de dépôt valide (voir indiquer une cible de destination).
{{event('dragexit')}}{{domxref('GlobalEventHandlers.ondragexit','ondragexit')}}…un élément n'est plus la sélection immédiate du déplacement.
{{event('dragleave')}}{{domxref('GlobalEventHandlers.ondragleave','ondragleave')}}…un élément en cours de déplacement quitte une zone de dépôt valide.
{{event('dragover')}}{{domxref('GlobalEventHandlers.ondragover','ondragover')}}…un élément en cours de déplacement est en cours de survol d'une zone de dépôt valide (cet évènement est déclenché toutes les quelques centaines de millisecondes).
{{event('dragstart')}}{{domxref('GlobalEventHandlers.ondragstart','ondragstart')}}…l'utilisateur commence à déplacer un élément (voir démarrer une opération de glissement).
{{event('drop')}}{{domxref('GlobalEventHandlers.ondrop','ondrop')}}…un élément est déposé sur une cible valide (voir déposer un élément).
+ +

Note : Les évènements dragstart et dragend ne sont pas déclenchés lors qu'on glisse-dépose un fichier de l'appareil dans le navigateur.

+ +

Interfaces

+ +

Les interfaces fournies par cette API sont

+ + + +

L'interface {{domxref("DragEvent")}} possède un constructeur et une propriété {{domxref("DragEvent.dataTransfer","dataTransfer")}} qui est un objet {{domxref("DataTransfer")}}.

+ +

Les objets {{domxref("DataTransfer")}} incluent l'état du glisser-déposer, le type de déplacement (copy ou move), les données déplacées (un ou plusieurs objets) et le type MIME de chaque objet déplacé. Les objets {{domxref("DataTransfer")}} possèdent également des méthodes permettant d'ajouter ou de retirer des objets aux données déplacées.

+ +

Les interfaces {{domxref("DragEvent")}} et {{domxref("DataTransfer")}} sont standard et suffisent à apporter des fonctionnalités de glisser/déposer. Toutefois, Firefox prend en charge quelques extensions spécifiques à Gecko (cf. ci-après) pour l'objet {{domxref("DataTransfer")}} (bien entendu, ces extensions ne fonctionneront que dans Firefox et pas dans les autres navigateurs).

+ +

Chaque objet {{domxref("DataTransfer")}} possède une propriété  {{domxref("DataTransfer.items","items")}} qui est une liste ({{domxref("DataTransferItemList","list")}}) d'objets {{domxref("DataTransferItem")}}. Un objet {{domxref("DataTransferItem")}} représente un seul objet déplacé, avec une propriété {{domxref("DataTransferItem.kind","kind")}} qui indique s'il s'agit d'un texte (string) ou d'un fichier (file) et une propriété {{domxref("DataTransferItem.type","type")}} qui correspond au type MIME de la donnée déplacée. L'objet {{domxref("DataTransferItem")}} possède également des méthodes pour consulter les données de l'objet déplacé.

+ +

L'objet {{domxref("DataTransferItemList")}} est une liste d'objets {{domxref("DataTransferItem")}}. La liste possède des méthodes pour ajouter un objet en déplacement à la liste, pour retirer un objet de la liste ou pour vider la liste de tout ses objets.

+ +

La différence principale entre {{domxref("DataTransfer")}} et {{domxref("DataTransferItem")}} est l'utilisation de la méthode synchrone {{domxref("DataTransfer.getData","getData()")}} pour la première et de la méthode asynchrone {{domxref("DataTransferItem.getAsString","getAsString()")}} pour la deuxième.

+ +

Note : {{domxref("DragEvent")}} et {{domxref("DataTransfer")}} sont largement prises en charge par les navigateurs de bureau tandis que {{domxref("DataTransferItem")}} et {{domxref("DataTransferItemList")}} ont une compatibilité plus restreinte. Voir la section ci-après sur l'interopérabilité.

+ +

Interfaces spécifiques à Gecko

+ +

Mozilla / Firefox prend en charge certaines fonctionnalités qui ne font pas partie du modèle standard. Ce sont des fonctions utilitaires pour aider au déplacement de plusieurs objets ou de données qui ne sont pas du texte (des fichiers par exemple). Pour plus d'informations, voir Glisser-déposer plusieurs objets. Voir aussi la page de référence de {{domxref("DataTransfer")}} pour la liste de l'ensemble des propriétés spécifique à Gecko et des méthodes spécifiques à Gecko.

+ +

Bases

+ +

Dans cette section, nous allons voir les premières étapes nécessaires aux fonctionnalités de glisser-déposer dans une application.

+ +

Identifier ce qui peut être déplacé

+ +

Pour qu'un élément puisse être déplacé, il faut lui ajouter l'attribut {{htmlattrxref("draggable")}} ainsi que le gestionnaire d'évènement global {{domxref("GlobalEventHandlers.ondragstart","ondragstart")}} :

+ +
<script>
+function dragstart_handler(ev) {
+ // On ajoute l'identifiant de l'élément cible à l'objet de transfert
+ ev.dataTransfer.setData("text/plain", ev.target.innerText);
+}
+</script>
+
+<p id="p1" draggable="true" ondragstart="dragstart_handler(event)">Cet élément est déplaçable.</p>
+
+ +

Voir la page de référence sur l'attribut draggable et le guide sur les opérations de déplacement pour plus d'informations.

+ +

Définir les données déplacées

+ +

Une application peut inclure plusieurs objets dans une opération de glisser/déposer. Chaque objet est une chaîne de caractères ({{domxref("DOMString")}}) ayant un type MIME particulier (indiqué par son attribut type) tel que text/html.

+ +

Chaque {{domxref("DragEvent")}} possède une propriété  {{domxref("DragEvent.dataTransfer","dataTransfer")}} contenant les données transportées. Cette propriété (un objet {{domxref("DataTransfer")}}) possède des méthodes pour gérer les données transportées. La méthode {{domxref("DataTransfer.setData","setData()")}} permet d'ajouter un objet aux données transportées :

+ +
function dragstart_handler(ev) {
+  // On ajoute différents types de données transportées
+  ev.dataTransfer.setData("text/plain", ev.target.innerText);
+  ev.dataTransfer.setData("text/html", ev.target.outerHTML);
+  ev.dataTransfer.setData("text/uri-list", ev.target.ownerDocument.location.href);
+}
+
+ +

Pour connaître la liste des types de donnée communément utilisées lors d'un glisser/déposer (texte, HTML, liens, fichiers, etc.), voir les types recommandés. Pour plus d'informations sur les informations transportées, voir Drag Data.

+ +

Définir l'image pour le déplacement

+ +

Par défaut, le navigateur fournit une image qui apparaît à côté du pointeur lors de l'opération de déplacement. Toutefois, une application peut définir une image personnalisée grâce à la méthode {{domxref("DataTransfer.setDragImage","setDragImage()")}} :

+ +
function dragstart_handler(ev) {
+  // On crée une image qu'on utilise pour le déplacement
+  // Note : on changera "example.gif" vers une vraie image
+  // (sinon l'image par défaut sera utilisée)
+  var img = new Image();
+  img.src = 'example.gif';
+  ev.dataTransfer.setDragImage(img, 10, 10);
+}
+
+ +

Pour en savoir plus, voir Définir l'image de feedback pour le glisser-déposer.

+ +

Définir l'effet de déplacement

+ +

La propriété {{domxref("DataTransfer.dropEffect","dropEffect")}} est utilisée pour fournir un retour à l'utilisateur qui effectue l'opération de glisser/déposer. Généralement, cela se traduit par la modification du curseur affiché par le navigateur lors du déplacement.

+ +

Il est possible de définir trois effets :

+ + + +

Lors de l'opération de déplacement, les effets peuvent être modifiés afin d'indiquer que certains effets sont autorisés à certains emplacements.

+ +

Voici un exemple illustrant l'utilisation de cette propriété.

+ +
function dragstart_handler(ev) {
+  ev.dataTransfer.dropEffect = "copy";
+}
+
+ +

See Drag Effects for more details.

+ +

Définir la zone où déposer l'élément déplacé

+ +

Par défaut, le navigateur empêche de déposer quoi que ce soit sur la plupart des éléments HTML. Pour modifier ce comportement, il faut qu'un élément devienne une zone cible ou qu'il soit identifié comme "droppable". L'élément doit avoir les deux gestionnaires d'évènements {{domxref("GlobalEventHandlers.ondragover","ondragover")}} et {{domxref("GlobalEventHandlers.ondrop","ondrop")}} comme attributs. Dans l'exemple suivant, on montre comment utiliser ces attributs et on fournit des gestionnaires d'évènements simples associés :

+ +
<script>
+function dragover_handler(ev) {
+ ev.preventDefault();
+ ev.dataTransfer.dropEffect = "move";
+}
+function drop_handler(ev) {
+ ev.preventDefault();
+ // On récupère l'identifiant de la cible et on ajoute l'élément déplacé au DOM de la cible
+ var data = ev.dataTransfer.getData("text/plain");
+ ev.target.appendChild(document.getElementById(data));
+}
+</script>
+
+<p id="target" ondrop="drop_handler(event)" ondragover="dragover_handler(event)">Zone pour déposer</p>
+
+ +

On voit ici que chaque gestionnaire invoque {{domxref("Event.preventDefault","preventDefault()")}} afin d'éviter toute gestion d'évènement ultérieure (comme les évènements tactiles ou les évènements de pointeur).

+ +

Pour plus d'information, voir Indiquer une cible pour un glisser-déposer.

+ +

Gérer le dépôt de l'objet

+ +

Le gestionnaire de l'évènement {{event("drop")}} permet de gérer les données déposées avec la logique de l'application. Généralement, une application utilisera {{domxref("DataTransfer.getData","getData()")}} afin de récupérer les données déplacées et les traitera. L'application peut choisir d'avoir un comportement différent selon la valeur de {{domxref("DataTransfer.dropEffect","dropEffect")}} et/ou celles des autres propriétés.

+ +

Dans l'exemple suivant, on montre un gestionnaire pour le dépot de l'objet : on récupère l'identifiant (id) de l'élément déplacé puis on utilise celui-ci afin de le déplacer depuis la source vers la cible :

+ +
<script>
+function dragstart_handler(ev) {
+ // On ajoute l'identifiant de l'élément cible à l'objet de transfert
+ ev.dataTransfer.setData("application/my-app", ev.target.id);
+ ev.dataTransfer.dropEffect = "move";
+}
+function dragover_handler(ev) {
+ ev.preventDefault();
+ ev.dataTransfer.dropEffect = "move"
+}
+function drop_handler(ev) {
+ ev.preventDefault();
+ // On obtient l'identifiant de la cible et on ajoute l'élément déplacé
+ // au DOM de la cible
+ var data = ev.dataTransfer.getData("application/my-app");
+ ev.target.appendChild(document.getElementById(data));
+}
+</script>
+
+<p id="p1" draggable="true" ondragstart="dragstart_handler(event)">Cet élément peut être déplacé.</p>
+<div id="target" ondrop="drop_handler(event)" ondragover="dragover_handler(event)">Zone pour le dépôt</div>
+
+ +

Pour plus d'information, voir Gérer le dépôt lors d'une opération de glisser-déposer.

+ +

Terminer l'opération de glisser/déposer

+ +

À la fin de l'opération, c'est l'évènement {{event("dragend")}} qui est déclenché sur l'élément source (celui qui a été "saisi" au début). Cet évènement est déclenché lorsque l'opération est terminée ou qu'elle a été annulée. Le gestionnaire d'évènement pour {{event("dragend")}} peut vérifier la valeur de la propriété {{domxref("DataTransfer.dropEffect","dropEffect")}} afin de déterminer si l'opération a réussi ou non.

+ +

Pour plus d'informations sur la gestion de la fin d'une opération de glisser-déposer, voir Terminer un glisser-déposer.

+ +

Interopérabilité

+ +

Comme on peut le voir dans le tableau de compatibilité pour l'interface DataTransferItem, la prise en charge du drag-and-drop est assez répandue parmi les navigateurs de bureau à l'exception des interfaces {{domxref("DataTransferItem")}} et {{domxref("DataTransferItemList")}}. Ce tableau montre également que la prise en charge sur mobile est assez faible.

+ +

Exemples et démos

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlelement/accesskey/index.html b/files/fr/web/api/htmlelement/accesskey/index.html new file mode 100644 index 0000000000..2d84dd6dae --- /dev/null +++ b/files/fr/web/api/htmlelement/accesskey/index.html @@ -0,0 +1,22 @@ +--- +title: Element.accessKey +slug: Web/API/Element/accessKey +tags: + - API + - DOM + - Element + - Propriété + - Raccourcis clavier + - Reference +translation_of: Web/API/HTMLElement/accessKey +translation_of_original: Web/API/Element/accessKey +--- +
{{APIRef("DOM")}}
+ +
 
+ +

La propriété Element.accessKey définit la touche sur laquelle l'utilisateur doit appuyer pour accéder à l'élément.

+ +
+

Note : La propriété Element.accessKey est rarement utilisée en raison de ses multiples conflits avec des raccourcis clavier déjà présents dans les navigateurs. Pour contourner ce problème, les navigateurs appliquent le comportement attendu de "accesskey" lorsqu'une autre touche est pressée simultanément (comme Alt + accesskey).

+
diff --git a/files/fr/web/api/htmlelement/animationend_event/index.html b/files/fr/web/api/htmlelement/animationend_event/index.html new file mode 100644 index 0000000000..1fdeba6e63 --- /dev/null +++ b/files/fr/web/api/htmlelement/animationend_event/index.html @@ -0,0 +1,81 @@ +--- +title: animationend +slug: Web/Events/animationend +translation_of: Web/API/HTMLElement/animationend_event +--- +

L'événement animationend est déclenché quand une animation CSS est terminée.

+ +

Informations générales

+ +
+
Spécification
+
CSS Animations
+
Interface
+
AnimationEvent
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
Document, Element, Window
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce que l'événement se propage?
cancelable {{ReadOnlyInline}}booleanEst-il possible d'annuler l'événement?
animationName {{ReadOnlyInline}}{{domxref("DOMString")}}Le nom de la propriété CSS associéee à la transition.
elapsedTime {{ReadOnlyInline}}FloatLe temps durant lequel l'animation a durée, en secondes, quand l'événement est déclenché, excepté le temps lorsque l'animation était en pause. Pour un événement animationstart, elapsedTime vaut zéro à moins que animation-delay ne soit négatif, et dans ce cas, l'événement sera déclenché avec un elapsedTime de (-1 * delay).
+ +

Evénements liés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlelement/animationiteration_event/index.html b/files/fr/web/api/htmlelement/animationiteration_event/index.html new file mode 100644 index 0000000000..df8e3d89be --- /dev/null +++ b/files/fr/web/api/htmlelement/animationiteration_event/index.html @@ -0,0 +1,83 @@ +--- +title: animationiteration +slug: Web/Events/animationiteration +translation_of: Web/API/HTMLElement/animationiteration_event +--- +

L'événement animationiteration est déclenché lorsqu'une itération d'une animation se termine. Cet événement ne se produit pas pour les animations avec animation-iteration-count valant 1.

+ +

informations générales

+ +
+
Spécification
+
CSS Animations
+
Interface
+
AnimationEvent
+
Synchronisme
+
synchronous
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
Document, Element
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce que l'événement se propage?
cancelable {{ReadOnlyInline}}booleanEst-il possible d'annuler l'événement?
animationName {{ReadOnlyInline}}{{domxref("DOMString")}}Le nom de la propriété CSS associéee à la transition.
elapsedTime {{ReadOnlyInline}}FloatLe temps durant lequel l'animation a durée, en secondes, quand l'événement est déclenché, excepté le temps lorsque l'animation était en pause. Pour un événement animationstart, elapsedTime vaut zéro à moins que animation-delay ne soit négatif, et dans ce cas, l'événement sera déclenché avec un elapsedTime de (-1 * delay).
+ +

Evénements liés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlelement/animationstart_event/index.html b/files/fr/web/api/htmlelement/animationstart_event/index.html new file mode 100644 index 0000000000..407bcb6dea --- /dev/null +++ b/files/fr/web/api/htmlelement/animationstart_event/index.html @@ -0,0 +1,81 @@ +--- +title: animationstart +slug: Web/Events/animationstart +translation_of: Web/API/HTMLElement/animationstart_event +--- +

L'événement animationstart est déclenché quand une animation CSS a commencé. Si animation-delay est défini alors le déclenchement se fera une fois le delai expiré. Un délai négatif causera un déclenchement de l'événement avec un elapsedTime équivalent à la valeur absolue du délai.

+ +

Informations générales

+ +
+
Spécification
+
CSS Animations
+
Interface
+
AnimationEvent
+
Propagation
+
Oui
+
Annulable
+
Non
+
Cible
+
Document, Element
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce que l'événement se propage?
cancelable {{ReadOnlyInline}}booleanEst-il possible d'annuler l'événement?
animationName {{ReadOnlyInline}}{{domxref("DOMString")}}Le nom de la propriété CSS associéee à la transition.
elapsedTime {{ReadOnlyInline}}FloatLe temps durant lequel l'animation a durée, en secondes, quand l'événement est déclenché, excepté le temps lorsque l'animation était en pause. Pour un événement animationstart, elapsedTime vaut zéro à moins que animation-delay ne soit négatif, et dans ce cas, l'événement sera déclenché avec un elapsedTime de (-1 * delay).
+ +

Evénements liés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlelement/dataset/index.html b/files/fr/web/api/htmlelement/dataset/index.html deleted file mode 100644 index fa7ece8acc..0000000000 --- a/files/fr/web/api/htmlelement/dataset/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: HTMLElement.dataset -slug: Web/API/HTMLElement/dataset -tags: - - API - - HTML DOM - - HTMLElement - - Propriété - - Référence(2) - - dataset -translation_of: Web/API/HTMLOrForeignElement/dataset ---- -

{{ APIRef }}

- -

La propriété HTMLElement.dataset fournit un accès en mode lecture et écriture, à tous les attributs de données sur mesure (data-*) définis sur l'élément. C'est un tableau associatif de DOMString, qui associe à chaque nom d'attribut de données sur mesure la valeur qu'il contient.

- -

Le nom d'un attribut de données sur mesure commence par data-. Il ne doit contenir que des lettres, des nombres et les caractères suivants : tiret (-), point (.), deux-points (:), tiret bas (_). De plus, il ne doit pas contenir des lettres majuscules ASCII (A à Z).

- -

Un nom d'attribut de données sur mesure est transformé en clef pour l'entrée de la {{ domxref("DOMStringMap") }} avec les règles suivantes :

- - - -

La transformation opposée, qui associe un nom d'attribut à une clef, utilise les règles suivantes :

- - - -

La restriction dans les règles ci-dessus garantit que les deux transformations sont bien l'inverse l'une de l'autre.

- -

Par exemple, l'attribut nommé data-abc-def correspond à la clef abcDef.

- -

Syntaxe

- -
chaîne = element.dataset.nomEnCamelCase;
-element.dataset.nomEnCamelCase = chaîne;
- -

Exemples

- -
<div id="utilisateur" data-id="1234567890" data-utilisateur="Monsieur Tartempion" data-date-de-naissance>Monsieur Tartempion
-</div>
-
-var el = document.querySelector('#utilisateur');
-
-// el.id == 'utilisateur'
-// el.dataset.id === '1234567890'
-// el.dataset.utilisateur === 'Monsieur Tartempion'
-// el.dataset.dateDeNaissance === ''
-
-el.dataset.dateDeNaissance = '1960-10-03'; // renseigne la date de naissance.
-
-// 'unAttributDeDonnees' in el.dataset === false
-
-el.dataset.unAttributDeDonnees = 'mes données';
-// 'unAttributDeDonnees' in el.dataset === true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}Pas de changement depuis le dernier instantané (snapshot), {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Instantané de {{SpecName('HTML WHATWG')}}, pas de changement depuis {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName('HTML WHATWG')}}, définition initiale.
- -

Compatibilité des navigateurs

- - - -

{{Compat("api.HTMLElement.dataset")}}

- -

Voir aussi

- - diff --git a/files/fr/web/api/htmlelement/focus/index.html b/files/fr/web/api/htmlelement/focus/index.html deleted file mode 100644 index 3659a5a75b..0000000000 --- a/files/fr/web/api/htmlelement/focus/index.html +++ /dev/null @@ -1,223 +0,0 @@ ---- -title: HTMLElement.focus() -slug: Web/API/HTMLElement/focus -tags: - - API - - HTML DOM - - HTMLElement -translation_of: Web/API/HTMLOrForeignElement/focus ---- -
{{ APIRef("HTML DOM") }}
- -

La méthode HTMLElement.focus() donne le focus à l'élément spécifié, s'il peut prendre le focus.

- -

Syntaxe

- -
element.focus();
-element.focus(focusOption); // Paramètre objet
- -

Paramètres

- -
-
focusOptions {{optional_inline}} {{experimental_inline}}
-
Est un objet ayant les propriétés suivantes:
-
-
-
preventScroll {{optional_inline}}
-
Est une valeur Boolean: -
    -
  • Si false, la méthode fera défiler la page pour que l'élément soit visible à l'écran.
  • -
  • Si true,  la méthode ne fera PAS défiler la page pour que l'élément soit visible à l'écran.
  • -
-
-
-
-
- -

Exemples

- -

Donner le focus à un champ texte

- -

JavaScript

- -
focusMethod = function getFocus() {
-  document.getElementById("myTextField").focus();
-}
- -

HTML

- -
<input type="text" id="myTextField" value="Champ texte.">
-<p></p>
-<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus au champ texte!</button>
- -

Résultat

- -

{{ EmbedLiveSample('Focus_on_a_text_field') }}

- -

Donner le focus à un bouton

- -

JavaScript

- -
focusMethod = function getFocus() {
-  document.getElementById("myButton").focus();
-}
- -

HTML

- -
<button type="button" id="myButton">Cliquez!</button>
-<p></p>
-<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus au bouton!</button>
- -

Résultat

- -

{{ EmbedLiveSample('Focus_on_a_button') }}

- -

Focus avec option

- -

JavaScript

- -
focusScrollMethod = function getFocus() {
-  document.getElementById("myButton").focus({preventScroll:false});
-}
-focusNoScrollMethod = function getFocusWithoutScrolling() {
-  document.getElementById("myButton").focus({preventScroll:true});
-}
- -

HTML

- -
<button type="button" onclick="focusScrollMethod()">Cliquez-moi pour donner le focus au bouton!</button>
-<button type="button" onclick="focusNoScrollMethod()">Cliquez-moi pour donner le focus au bouton sans défilement!</button>
-
-<div id="container" style="height: 1000px; width: 1000px;">
-<button type="button" id="myButton" style="margin-top: 500px;">Cliquez!</button>
-</div>
- -

Résultat

- -

{{ EmbedLiveSample('Focus_prevent_scroll') }}

- -

Spécification

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'editing.html#dom-focus', 'focus')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5.1', 'editing.html#focus()-0', 'focus')}}{{Spec2('HTML5.1')}}
{{SpecName('HTML5 W3C', 'editing.html#dom-focus', 'focus')}}{{Spec2('HTML5 W3C')}}
{{SpecName('DOM2 HTML', 'html.html#ID-32130014', 'focus')}}{{Spec2('DOM2 HTML')}}
{{SpecName('DOM1', 'level-one-html.html#method-focus', 'focus')}}{{Spec2('DOM1')}}
- -

Notes

- -

Si vous appelez HTMLElement.focus() à partir d'un gestionnaire d'événement mousedown, vous devez appeler event.preventDefault() pour empêcher le focus de quitter l'HTMLElement.

- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefoxEdgeInternet ExplorerOperaSafari (WebKit)
Support basique{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
focusOptions{{CompatChrome(64)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatOperaMobile(51)}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroid WebviewChrome for AndroidFirefox MobileEdge mobileIE mobileOpera AndroidSafari iOS
Support basique{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
focusOptions{{CompatChrome(64)}}{{CompatChrome(64)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatOperaMobile(51)}}{{CompatNo}}
-
- -

Voir aussi

- - diff --git a/files/fr/web/api/htmlelement/innertext/index.html b/files/fr/web/api/htmlelement/innertext/index.html new file mode 100644 index 0000000000..6b9d530411 --- /dev/null +++ b/files/fr/web/api/htmlelement/innertext/index.html @@ -0,0 +1,42 @@ +--- +title: Node.innerText +slug: Web/API/Node/innerText +translation_of: Web/API/HTMLElement/innerText +--- +
{{APIRef("DOM")}}
+ +

Sommaire

+ +

Node.innerText est une propriété représentant le contenu textuel « visuellement rendu » d’un nœud. Utilisé en lecture, il renvoie une approximation du texte que l’utilisateur ou utilisatrice obtiendrait s’il ou elle sélectionnnait le contenu d’un élément avec le curseur, et le copiait dans le presse-papier.

+ +

{{domxref("Node.textContent")}} est une alternative similaire, bien qu’il y ait d’importantes différences entre les deux.

+ +

Spécification

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'dom.html#the-innertext-idl-attribute', 'innerText')}}{{Spec2('HTML WHATWG')}}Introduction basée sur le brouillon de spécification de innerText. Voir whatwg/html#465 et whatwg/compat#5 pour l’histoire.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.Node.innerText")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlelement/style/index.html b/files/fr/web/api/htmlelement/style/index.html deleted file mode 100644 index 85a19bb89a..0000000000 --- a/files/fr/web/api/htmlelement/style/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: HTMLElement.style -slug: Web/API/HTMLElement/style -tags: - - DOM - - Style -translation_of: Web/API/ElementCSSInlineStyle/style ---- -

{{ APIRef("HTML DOM") }}

- -

Résumé

- -

Renvoie un objet représentant l'attribut style de l'élément.

- -

Exemple

- -
var div = document.getElementById("div1");
-div.style.marginTop = ".25cm";
-
- -

Notes

- -

Étant donné que la propriété style d'un élément représente sa déclaration de style en-ligne, qui se trouve dans son attribut style et qui a la priorité la plus haute dans la cascade CSS, elle est utile pour définir un style pour un élément particulier.

- -

Cependant, elle n'est pas utile pour connaître le style de l'élément en général, puisqu'elle ne représente que les déclarations CSS définies dans l'attribut style de l'élément, et pas celles qui viennent d'autres règles de style, comme celles qui peuvent se trouver dans la section <head> ou des feuilles de style externes.

- -

Pour obtenir les valeurs de toutes les propriétés CSS pour un élément, vous devriez plutôt utiliser window.getComputedStyle.

- -

Consultez la liste des propriétés CSS DOM pour une liste des propriétés CSS accessibles depuis le DOM. Vous y trouverez quelques notes supplémentaires concernant l'utilisation de la propriété style pour styler des éléments dans le DOM.

- -

Il est généralement préférable d'utiliser la propriété style plutôt que elt.setAttribute('style', '...') depuis un script, étant donné que l'utilisation de la propriété style n'écrasera pas les autres propriétés CSS qui peuvent avoir été spécifiées dans l'attribut style.

- -

Spécification

- - - -

Compatibilité des navigateurs

- - - -

{{Compat("api.HTMLElement.style")}}

- -

Voir aussi

- - - -

Lien Externe

- - - -

{{ languages( { "en": "en/DOM/element.style", "ja": "ja/DOM/element.style", "pl": "pl/DOM/element.style" } ) }}

diff --git a/files/fr/web/api/htmlelement/tabindex/index.html b/files/fr/web/api/htmlelement/tabindex/index.html deleted file mode 100644 index b2dd8ca956..0000000000 --- a/files/fr/web/api/htmlelement/tabindex/index.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: element.tabIndex -slug: Web/API/HTMLElement/tabIndex -tags: - - Référence_du_DOM_Gecko -translation_of: Web/API/HTMLOrForeignElement/tabIndex ---- -

{{ ApiRef() }}

-

Résumé

-

Obtient ou définit l'ordre de tabulation de l'élément courant.

-

Syntaxe

-
element.tabIndex = iIndex;
-
-

Paramètres

- -

Exemple

-
b1 = document.getElementById("button1");
-b1.tabIndex = 1;
-
-

Spécification

- diff --git a/files/fr/web/api/htmlelement/transitionend_event/index.html b/files/fr/web/api/htmlelement/transitionend_event/index.html new file mode 100644 index 0000000000..0c45cd871c --- /dev/null +++ b/files/fr/web/api/htmlelement/transitionend_event/index.html @@ -0,0 +1,192 @@ +--- +title: transitionend +slug: Web/Events/transitionend +tags: + - DOM + - Event + - TransitionEvent + - Transitions CSS + - Transitions CSS3 + - transitionend +translation_of: Web/API/HTMLElement/transitionend_event +--- +
{{APIRef}}
+ +

L'événement transitionend est déclenché lorsqu'une transition CSS est terminée. Dans le cas où une transition est supprimée avant la fin, par exemple si {{cssxref ("transition-property")}} est supprimé ou {{cssxref ("display")}} est défini sur none, alors l'événement ne pourra pas être généré.

+ + + + + + + + + + + + + + + + + + + + +
BullesOui
AnnulableOui
Interface{{domxref("TransitionEvent")}}
Propriété de gestionnaire d'événements{{domxref("GlobalEventHandlers/ontransitionend", "ontransitionend")}}
+ +

L'événement transitionend est déclenché dans les deux sens - à la fin de la transition vers l'état de transition et lorsqu'il revient complètement à l'état par défaut ou sans transition. S'il n'y a pas de délai ou de durée de transition, si les deux sont 0 ou qu'aucun n'est déclaré, il n'y a pas de transition et aucun des événements de transition n'est déclenché.  Si l'événement transitioncancel est déclenché, l'événement transitionend ne se déclenchera pas.

+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétésTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
propertyName {{readonlyInline}}{{domxref("DOMString")}}The name of the CSS property associated with the transition.
elapsedTime {{readonlyInline}}FloatThe amount of time the transition has been running, in seconds, as of the time the event was generated. This value is not affected by the value of transition-delay.
pseudoElement {{readonlyInline}}{{domxref("DOMString")}}The name (beginning with two colons) of the CSS pseudo-element on which the transition occured (in which case the target of the event is that pseudo-element's corresponding element), or the empty string if the transition occurred on an element (which means the target of the event is that element).
+ +

Examples

+ +

This code gets an element that has a transition defined and adds a listener to the transitionend event:

+ +
const transition = document.querySelector('.transition');
+
+transition.addEventListener('transitionend', () => {
+  console.log('Transition ended');
+});
+ +

The same, but using the {{domxref("GlobalEventHandlers/ontransitionend", "ontransitionend")}}:

+ +
const transition = document.querySelector('.transition');
+
+transition.ontransitionend = () => {
+  console.log('Transition ended');
+};
+ +

Live example

+ +

In the following example, we have a simple {{htmlelement("div")}} element, styled with a transition that includes a delay:

+ +
<div class="transition">Hover over me</div>
+<div class="message"></div>
+ +
.transition {
+  width: 100px;
+  height: 100px;
+  background: rgba(255,0,0,1);
+  transition-property: transform background;
+  transition-duration: 2s;
+  transition-delay: 1s;
+}
+
+.transition:hover {
+  transform: rotate(90deg);
+  background: rgba(255,0,0,0);
+}
+ +

To this, we'll add some JavaScript to indicate that the transitionstart, transitionrun, transitioncancel and transitionend events fire. In this example, to cancel the transition, stop hovering over the transitioning box before the transition ends. For the transition end event to fire, stay hovered over the transition until the transition ends.

+ +
const message = document.querySelector('.message');
+const el = document.querySelector('.transition');
+
+el.addEventListener('transitionrun', function() {
+  message.textContent = 'transitionrun fired';
+});
+
+el.addEventListener('transitionstart', function() {
+  message.textContent = 'transitionstart fired';
+});
+
+el.addEventListener('transitioncancel', function() {
+  message.textContent = 'transitioncancel fired';
+});
+
+el.addEventListener('transitionend', function() {
+  message.textContent = 'transitionend fired';
+});
+
+ +

{{ EmbedLiveSample('Live_example', '100%', '150px') }}

+ +

The transitionend event is fired in both directions: when the box finishes turning and the opacity hits 0 or 1, depending on the direction.

+ +

If there is no transition delay or duration, if both are 0s or neither is declared, there is no transition, and none of the transition events are fired.

+ +

If the transitioncancel event is fired, the transitionend event will not fire.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName("CSS3 Transitions", "#transitionend", "transitionend")}}{{Spec2('CSS3 Transitions')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.HTMLElement.transitionend_event")}}

+ +

Voir également

+ + diff --git a/files/fr/web/api/htmlformelement/submit_event/index.html b/files/fr/web/api/htmlformelement/submit_event/index.html new file mode 100644 index 0000000000..135058c596 --- /dev/null +++ b/files/fr/web/api/htmlformelement/submit_event/index.html @@ -0,0 +1,59 @@ +--- +title: submit +slug: Web/API/HTMLFormElement/submit_event_ +translation_of: Web/API/HTMLFormElement/submit_event +--- +

L’événement submit est émis lorsqu’un formulaire est soumis au serveur.

+ +

Notez que l’événement submit se déclenche uniquement sur l’élement form, et pas sur les éléments button ou input submit. (Les formulaires sont soumis, pas les boutons.)

+ +

Informations générales

+ +
+
Spécification
+
HTML5
+
Interface
+
{{domxref("Event")}}
+
Bouillonne
+
Oui (bien que spécifié comme un événement simple qui ne bouillonne pas)
+
Annulable
+
Oui
+
Cible
+
Élément
+
Action par défaut
+
Variable (envoie le contenu du formulaire au serveur)
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}La cible de l’évènement (la cible la plus haute dans l’arbre DOM).
type {{readonlyInline}}{{domxref("DOMString")}}Le type de l’évènement.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement bouillonne normalement ou non.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement est annulable ou non.
diff --git a/files/fr/web/api/htmlformelement/submit_event_/index.html b/files/fr/web/api/htmlformelement/submit_event_/index.html deleted file mode 100644 index 135058c596..0000000000 --- a/files/fr/web/api/htmlformelement/submit_event_/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: submit -slug: Web/API/HTMLFormElement/submit_event_ -translation_of: Web/API/HTMLFormElement/submit_event ---- -

L’événement submit est émis lorsqu’un formulaire est soumis au serveur.

- -

Notez que l’événement submit se déclenche uniquement sur l’élement form, et pas sur les éléments button ou input submit. (Les formulaires sont soumis, pas les boutons.)

- -

Informations générales

- -
-
Spécification
-
HTML5
-
Interface
-
{{domxref("Event")}}
-
Bouillonne
-
Oui (bien que spécifié comme un événement simple qui ne bouillonne pas)
-
Annulable
-
Oui
-
Cible
-
Élément
-
Action par défaut
-
Variable (envoie le contenu du formulaire au serveur)
-
- -

Propriétés

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropriétéTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}La cible de l’évènement (la cible la plus haute dans l’arbre DOM).
type {{readonlyInline}}{{domxref("DOMString")}}Le type de l’évènement.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement bouillonne normalement ou non.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement est annulable ou non.
diff --git a/files/fr/web/api/htmlhyperlinkelementutils/index.html b/files/fr/web/api/htmlhyperlinkelementutils/index.html new file mode 100644 index 0000000000..7bbe88b470 --- /dev/null +++ b/files/fr/web/api/htmlhyperlinkelementutils/index.html @@ -0,0 +1,213 @@ +--- +title: URLUtils +slug: Web/API/URLUtils +tags: + - API + - Experimental + - JavaScript + - Reference + - URL +translation_of: Web/API/HTMLHyperlinkElementUtils +--- +

{{APIRef}}{{SeeCompatTable}}

+

L'interface URLUtils définit des méthodes utilitaires pour travailler avec les URL.

+

il n'y a pas d'objets de ce type, mais quelques objets l'implémentent, comme {{domxref("Location")}}, {{domxref("URL")}}, {{domxref("HTMLAnchorElement")}}, et {{domxref("HTMLAreaElement")}}.

+

Propriétés

+

Cette interface n'hérite d'aucune propriété.

+
+
+ {{domxref("URLUtils.href")}}
+
+ Une {{domxref("DOMString")}} contenant l'URL entière.
+
+ {{domxref("URLUtils.protocol")}}
+
+ Une {{domxref("DOMString")}} contenant le schéma de protocole de l'URL, incluant le ':' final.
+
+ {{domxref("URLUtils.host")}}
+
+ Une {{domxref("DOMString")}} contenant l'hôte, c'est-à-dire le domaine, et, si le port de l'URL n'est pas vide (ce qui peut arriver s'il n'a pas été spécifié ou si la valeur spécifiée est celle du port par défaut du schéma de l'URL), un ':', et le port de l'URL.
+
+ {{domxref("URLUtils.hostname")}}
+
+ Une {{domxref("DOMString")}} contenant le domaine de l'URL.
+
+ {{domxref("URLUtils.port")}}
+
+ Une {{domxref("DOMString")}} contenant le numéro de port de l'URL.
+
+ {{domxref("URLUtils.pathname")}}
+
+ Une {{domxref("DOMString")}} contenant un '/' initial suivi du chemin de l'URL.
+
+ {{domxref("URLUtils.search")}}
+
+ Une {{domxref("DOMString")}} contenant un '?' suivi des paramètres de l'URL.
+
+ {{domxref("URLUtils.hash")}}
+
+ Une {{domxref("DOMString")}} contenant un '#' suivi de l'identifiant de fragment de l'URL.
+
+ {{domxref("URLUtils.username")}}
+
+ Une {{domxref("DOMString")}} contenant le nom d'utilisateur spécifié devant le nom de domaine.
+
+ {{domxref("URLUtils.password")}}
+
+ Une {{domxref("DOMString")}} contenant le mot de passe spécifié devant le nom de domaine.
+
+ {{domxref("URLUtils.origin")}} {{readonlyInline}}
+
+ Retourne une {{domxref("DOMString")}} contenant l'origine de l'URL, c'est-à-dire son schéma, son domaine et son port.
+
+ {{domxref("URLUtils.searchParams")}}
+
+ Retourne un objet {{domxref("URLSearchParams")}} permettant d'accéder aux arguments de requête GET contenus dans l'URL.
+
+

Méthodes

+

Cette interface n'hérite d'aucune méthode.

+
+
+ {{domxref("URLUtils.toString()")}}
+
+ Retourne une {{domxref("DOMString")}} contenant l'URL entière. C'est un synonyme de {{domxref("URLUtils.href")}}, sauf qu'il ne peut être utilisé pour modifier la valeur.
+
+

Spécifications

+ + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('URL', '#urlutils', 'URLUtils')}}{{Spec2('URL')}}Définition initiale
+

Compatibilité

+

{{ CompatibilityTable() }}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support de base{{CompatNo}} [1]{{CompatGeckoDesktop("22")}} [1]{{CompatNo}} [1]{{CompatNo}} [1]{{CompatNo}} [1]
searchParams{{CompatUnknown}}{{CompatGeckoDesktop("29")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
username et password{{CompatUnknown}}{{CompatGeckoDesktop("26")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
origin{{CompatUnknown}}{{CompatGeckoDesktop("26")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
origin sur Window.location{{CompatUnknown}}{{CompatGeckoDesktop("21")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatNo}} [1]{{CompatNo}} [1]{{CompatGeckoMobile("22")}} [1]{{CompatNo}} [1]{{CompatNo}} [1]{{CompatNo}} [1]
searchParams{{CompatUnknown}}{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
username et password{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("26")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
origin{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("26")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
origin sur Window.location{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("21")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+

[1] Bien qu'elles ne soient pas groupées dans une seule interface abstraite, ces méthodes sont directement disponibles sur les interfaces qui les implémentent, si cette interface est supportée.

+

Voir aussi

+ diff --git a/files/fr/web/api/htmlorforeignelement/blur/index.html b/files/fr/web/api/htmlorforeignelement/blur/index.html new file mode 100644 index 0000000000..6c5f12166c --- /dev/null +++ b/files/fr/web/api/htmlorforeignelement/blur/index.html @@ -0,0 +1,88 @@ +--- +title: HTMLElement.blur() +slug: Web/API/Element.blur +tags: + - API + - DOM + - HTMLElement + - Method + - Reference +translation_of: Web/API/HTMLOrForeignElement/blur +--- +
+
{{ APIRef("HTML DOM") }}
+
+ +

La méthode HTMLElement.blur() retire le focus de l'élément courant.

+ +

Syntax

+ +
elt.blur()
+ +

Exemples

+ +

Retirer le focus d'un champ texte

+ +

HTML

+ +
<input type="text" id="myText" value="Champ texte.">
+<p></p>
+<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus</button>
+<button type="button" onclick="blurMethod()">Cliquez-moi pour retirer le focus</button>
+ +

JavaScript

+ +
focusMethod = function getFocus() {
+  document.getElementById("myText").focus();
+}
+blurMethod = function getBlur() {
+  document.getElementById("myText").blur();
+}
+ +

Résultat

+ +

{{ EmbedLiveSample('Remove_focus_from_a_text_area') }}

+ +

Spécification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'editing.html#dom-blur', 'blur')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5.1', 'editing.html#blur()-0', 'blur')}}{{Spec2('HTML5.1')}}
{{SpecName('HTML5 W3C', 'editing.html#dom-blur', 'blur')}}{{Spec2('HTML5 W3C')}}
{{SpecName('DOM2 HTML', 'html.html#ID-28216144', 'blur')}}{{Spec2('DOM2 HTML')}}
+ +

Compatibilité navigateur

+ + +

{{Compat("api.HTMLElement.blur")}}

+

Dans IE9-10, il y a un bug où appeler blur() sur le {{HTMLElement("body")}} change la fenêtre active du navigateur vers une autre application.

+ +

Voir aussi

+ +

La méthode DOM {{domxref("HTMLElement.focus()")}}

diff --git a/files/fr/web/api/htmlorforeignelement/dataset/index.html b/files/fr/web/api/htmlorforeignelement/dataset/index.html new file mode 100644 index 0000000000..fa7ece8acc --- /dev/null +++ b/files/fr/web/api/htmlorforeignelement/dataset/index.html @@ -0,0 +1,102 @@ +--- +title: HTMLElement.dataset +slug: Web/API/HTMLElement/dataset +tags: + - API + - HTML DOM + - HTMLElement + - Propriété + - Référence(2) + - dataset +translation_of: Web/API/HTMLOrForeignElement/dataset +--- +

{{ APIRef }}

+ +

La propriété HTMLElement.dataset fournit un accès en mode lecture et écriture, à tous les attributs de données sur mesure (data-*) définis sur l'élément. C'est un tableau associatif de DOMString, qui associe à chaque nom d'attribut de données sur mesure la valeur qu'il contient.

+ +

Le nom d'un attribut de données sur mesure commence par data-. Il ne doit contenir que des lettres, des nombres et les caractères suivants : tiret (-), point (.), deux-points (:), tiret bas (_). De plus, il ne doit pas contenir des lettres majuscules ASCII (A à Z).

+ +

Un nom d'attribut de données sur mesure est transformé en clef pour l'entrée de la {{ domxref("DOMStringMap") }} avec les règles suivantes :

+ + + +

La transformation opposée, qui associe un nom d'attribut à une clef, utilise les règles suivantes :

+ + + +

La restriction dans les règles ci-dessus garantit que les deux transformations sont bien l'inverse l'une de l'autre.

+ +

Par exemple, l'attribut nommé data-abc-def correspond à la clef abcDef.

+ +

Syntaxe

+ +
chaîne = element.dataset.nomEnCamelCase;
+element.dataset.nomEnCamelCase = chaîne;
+ +

Exemples

+ +
<div id="utilisateur" data-id="1234567890" data-utilisateur="Monsieur Tartempion" data-date-de-naissance>Monsieur Tartempion
+</div>
+
+var el = document.querySelector('#utilisateur');
+
+// el.id == 'utilisateur'
+// el.dataset.id === '1234567890'
+// el.dataset.utilisateur === 'Monsieur Tartempion'
+// el.dataset.dateDeNaissance === ''
+
+el.dataset.dateDeNaissance = '1960-10-03'; // renseigne la date de naissance.
+
+// 'unAttributDeDonnees' in el.dataset === false
+
+el.dataset.unAttributDeDonnees = 'mes données';
+// 'unAttributDeDonnees' in el.dataset === true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML WHATWG')}}Pas de changement depuis le dernier instantané (snapshot), {{SpecName('HTML5.1')}}
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5.1')}}Instantané de {{SpecName('HTML WHATWG')}}, pas de changement depuis {{SpecName('HTML5 W3C')}}
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName('HTML WHATWG')}}, définition initiale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.HTMLElement.dataset")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlorforeignelement/focus/index.html b/files/fr/web/api/htmlorforeignelement/focus/index.html new file mode 100644 index 0000000000..3659a5a75b --- /dev/null +++ b/files/fr/web/api/htmlorforeignelement/focus/index.html @@ -0,0 +1,223 @@ +--- +title: HTMLElement.focus() +slug: Web/API/HTMLElement/focus +tags: + - API + - HTML DOM + - HTMLElement +translation_of: Web/API/HTMLOrForeignElement/focus +--- +
{{ APIRef("HTML DOM") }}
+ +

La méthode HTMLElement.focus() donne le focus à l'élément spécifié, s'il peut prendre le focus.

+ +

Syntaxe

+ +
element.focus();
+element.focus(focusOption); // Paramètre objet
+ +

Paramètres

+ +
+
focusOptions {{optional_inline}} {{experimental_inline}}
+
Est un objet ayant les propriétés suivantes:
+
+
+
preventScroll {{optional_inline}}
+
Est une valeur Boolean: +
    +
  • Si false, la méthode fera défiler la page pour que l'élément soit visible à l'écran.
  • +
  • Si true,  la méthode ne fera PAS défiler la page pour que l'élément soit visible à l'écran.
  • +
+
+
+
+
+ +

Exemples

+ +

Donner le focus à un champ texte

+ +

JavaScript

+ +
focusMethod = function getFocus() {
+  document.getElementById("myTextField").focus();
+}
+ +

HTML

+ +
<input type="text" id="myTextField" value="Champ texte.">
+<p></p>
+<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus au champ texte!</button>
+ +

Résultat

+ +

{{ EmbedLiveSample('Focus_on_a_text_field') }}

+ +

Donner le focus à un bouton

+ +

JavaScript

+ +
focusMethod = function getFocus() {
+  document.getElementById("myButton").focus();
+}
+ +

HTML

+ +
<button type="button" id="myButton">Cliquez!</button>
+<p></p>
+<button type="button" onclick="focusMethod()">Cliquez-moi pour donner le focus au bouton!</button>
+ +

Résultat

+ +

{{ EmbedLiveSample('Focus_on_a_button') }}

+ +

Focus avec option

+ +

JavaScript

+ +
focusScrollMethod = function getFocus() {
+  document.getElementById("myButton").focus({preventScroll:false});
+}
+focusNoScrollMethod = function getFocusWithoutScrolling() {
+  document.getElementById("myButton").focus({preventScroll:true});
+}
+ +

HTML

+ +
<button type="button" onclick="focusScrollMethod()">Cliquez-moi pour donner le focus au bouton!</button>
+<button type="button" onclick="focusNoScrollMethod()">Cliquez-moi pour donner le focus au bouton sans défilement!</button>
+
+<div id="container" style="height: 1000px; width: 1000px;">
+<button type="button" id="myButton" style="margin-top: 500px;">Cliquez!</button>
+</div>
+ +

Résultat

+ +

{{ EmbedLiveSample('Focus_prevent_scroll') }}

+ +

Spécification

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', 'editing.html#dom-focus', 'focus')}}{{Spec2('HTML WHATWG')}}
{{SpecName('HTML5.1', 'editing.html#focus()-0', 'focus')}}{{Spec2('HTML5.1')}}
{{SpecName('HTML5 W3C', 'editing.html#dom-focus', 'focus')}}{{Spec2('HTML5 W3C')}}
{{SpecName('DOM2 HTML', 'html.html#ID-32130014', 'focus')}}{{Spec2('DOM2 HTML')}}
{{SpecName('DOM1', 'level-one-html.html#method-focus', 'focus')}}{{Spec2('DOM1')}}
+ +

Notes

+ +

Si vous appelez HTMLElement.focus() à partir d'un gestionnaire d'événement mousedown, vous devez appeler event.preventDefault() pour empêcher le focus de quitter l'HTMLElement.

+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefoxEdgeInternet ExplorerOperaSafari (WebKit)
Support basique{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
focusOptions{{CompatChrome(64)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatOperaMobile(51)}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroid WebviewChrome for AndroidFirefox MobileEdge mobileIE mobileOpera AndroidSafari iOS
Support basique{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
focusOptions{{CompatChrome(64)}}{{CompatChrome(64)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatOperaMobile(51)}}{{CompatNo}}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/htmlorforeignelement/tabindex/index.html b/files/fr/web/api/htmlorforeignelement/tabindex/index.html new file mode 100644 index 0000000000..b2dd8ca956 --- /dev/null +++ b/files/fr/web/api/htmlorforeignelement/tabindex/index.html @@ -0,0 +1,25 @@ +--- +title: element.tabIndex +slug: Web/API/HTMLElement/tabIndex +tags: + - Référence_du_DOM_Gecko +translation_of: Web/API/HTMLOrForeignElement/tabIndex +--- +

{{ ApiRef() }}

+

Résumé

+

Obtient ou définit l'ordre de tabulation de l'élément courant.

+

Syntaxe

+
element.tabIndex = iIndex;
+
+

Paramètres

+ +

Exemple

+
b1 = document.getElementById("button1");
+b1.tabIndex = 1;
+
+

Spécification

+ diff --git a/files/fr/web/api/idbopendbrequest/blocked_event/index.html b/files/fr/web/api/idbopendbrequest/blocked_event/index.html new file mode 100644 index 0000000000..e3fdfdfb83 --- /dev/null +++ b/files/fr/web/api/idbopendbrequest/blocked_event/index.html @@ -0,0 +1,102 @@ +--- +title: blocked +slug: Web/API/IDBRequest/blocked_event +translation_of: Web/API/IDBOpenDBRequest/blocked_event +--- +

Le handler blocked est exécuté lorsque l'ouverture d'une connexion à une base de données bloque une transaction versionchange sur celle-ci.

+ +

Informations générales

+ +
+
Spécification
+
IndexedDB
+
Interface
+
IDBVersionChangeEvent
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
IDBRequest
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The request concerned by this event.
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
newVersion {{readonlyInline}}unsigned long (int)The new version of the database.
oldVersion {{readonlyInline}}unsigned long (int)The old version of the database.
+ +

Exemple

+ +
var req1 = indexedDB.open("addressbook", 3);
+
+req1.onsuccess = function( event ) {
+  var addressbookDB = event.target.result;
+
+  // Essayons d'ouvrir la même base de données avec une version de révision plus élevée
+  var req2 = indexedDB.open("addressbook", 4);
+
+  // Dans ce cas, le handler onblocked sera exécuté
+  req2.onblocked = function( e ) {
+    console.log(e)
+  };
+
+};
+ +

Evénements liés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/idbrequest/blocked_event/index.html b/files/fr/web/api/idbrequest/blocked_event/index.html deleted file mode 100644 index e3fdfdfb83..0000000000 --- a/files/fr/web/api/idbrequest/blocked_event/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: blocked -slug: Web/API/IDBRequest/blocked_event -translation_of: Web/API/IDBOpenDBRequest/blocked_event ---- -

Le handler blocked est exécuté lorsque l'ouverture d'une connexion à une base de données bloque une transaction versionchange sur celle-ci.

- -

Informations générales

- -
-
Spécification
-
IndexedDB
-
Interface
-
IDBVersionChangeEvent
-
Propagation
-
Non
-
Annulable
-
Non
-
Cible
-
IDBRequest
-
Action par défaut
-
Aucune
-
- -

Propriétés

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The request concerned by this event.
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
newVersion {{readonlyInline}}unsigned long (int)The new version of the database.
oldVersion {{readonlyInline}}unsigned long (int)The old version of the database.
- -

Exemple

- -
var req1 = indexedDB.open("addressbook", 3);
-
-req1.onsuccess = function( event ) {
-  var addressbookDB = event.target.result;
-
-  // Essayons d'ouvrir la même base de données avec une version de révision plus élevée
-  var req2 = indexedDB.open("addressbook", 4);
-
-  // Dans ce cas, le handler onblocked sera exécuté
-  req2.onblocked = function( e ) {
-    console.log(e)
-  };
-
-};
- -

Evénements liés

- - - -

Voir aussi

- - diff --git a/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html b/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html new file mode 100644 index 0000000000..cb05bef3fe --- /dev/null +++ b/files/fr/web/api/indexeddb_api/basic_concepts_behind_indexeddb/index.html @@ -0,0 +1,209 @@ +--- +title: Les concepts basiques d'IndexedDB +slug: Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB +tags: + - Avancé + - IndexedDB + - concepts +translation_of: Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +--- +

{{DefaultAPISidebar("IndexedDB")}}

+ +

IndexedDB est un moyen pour permettre le stockage de données dans le navigateur d'un utilisateur, de manière persistante. Ses fonctions de recherche avancées permettent de créer des applications qui fonctionnent tant connectées que déconnectées. IndexedDB est utile pour créer des applications qui stockent une grande quantité de données (par exemple : un catalogue de DVDs dans une bibliothèque) et des applications qui n'ont pas forcément besoin d'une connectivité Internet continue (par exemple : des clients de messagerie électronique, des listes de tâches, des bloc-notes).

+ +

À propos de ce document

+ +

Ce document introduit les concepts et les termes essentiels d'IndexedDB. Vous aurez une vue d'ensemble et vous comprendrez les concepts-clés.

+ +

Vous pourrez trouver ici :

+ + + +

Vue d'ensemble d'IndexedDB

+ +

IndexedDB vous permet de stocker et récupérer des objets qui sont indexés avec une "clé". Tous les changements que vous faites dans la base de données sont forcément transactionnels. Comme la plupart des solutions de stockage du web, IndexedDB respecte la politique de sécurité utilisant l'origne (same-origin policy). Ainsi, vous pouvez accéder aux données stockées d'un domaine, alors que vous ne pouvez pas accéder aux données de domaines différents.

+ +

IndexedDB est une API asynchrone qui peut être utilisée dans la plupart des contextes, Web Workers inclus. Elle comportait également une version synchrone prévue pour être utilisée dans des Web Workers. mais cette option a été retirée de la spécification en raison du manque d'intérêt de la communauté Web.

+ +

IndexedDB est une alternative à l'API WebSQL Database, qui a été dépréciée par le W3C le 18 novembre 2010. Alors que ces APIs sont toutes deux des solutions de stockage, elles n'offrent pas les mêmes fonctionnalités. WebSQL Database est un système d'accès à une base de données relationnelle alors qu'IndexedDB est un système de table indexée. 

+ +

Les grands concepts

+ +

Si vous avez l'habitude de travailler avec d'autres types de bases de données, vous pourrez être désorienté par l'utlisation d'IndexedDB. Mais il suffit de garder les concepts importants suivants en tête :

+ + + +

Définitions

+ +

Cette section définit et explique les termes utilisés dans l'API IndexedDB.

+ +

Database (base de données)

+ +
+
database (base de données)
+
Un référentiel d'informations, comprenant généralement un ou plusieurs objets de stockage. Chaque base de données doit avoir les éléments suivants : +
    +
  • Name . (nom) Il identifie la base de données dans une origine spécifique et reste constant tout au long de la durée de sa vie. Le nom peut être n'importe quelle valeur de chaîne de caractères (y compris une chaîne vide).
  • +
  • Current version (version actuelle). Lors de la création de la base de données, sa version est le nombre entier 1. Chaque base de données ne peut avoir qu'une seule version à un moment donné .
  • +
+
+
durable
+
Dans Firefox, IndexedDB était durable, ce qui signifie que dans une transaction readwrite (lecture/écriture) {{domxref ("IDBTransaction.on complet")}} était déclenché uniquement lorsque toutes les données étaient garanties, avant d'être écrites sur le disque.
+
À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées pour augmenter les performances (voir {{Bug ("1112702")}}) ; comportement identique à celui des autres navigateurs qui mettent en oeuvre IndexedDB. Dans ce cas, l'événement {{Event ("complete")}} est déclenché après la réception par le système d'exploitation de la commande d'écriture, mais potentiellement avant l'écriture effective de ces données sur le disque. L'événement peut donc être livré plus rapidement qu'avant, mais il existe un petit risque que la transaction entière soit perdue si le système d'exploitation l'écrase ou s'il y a une perte de puissance du système avant l'écriture sur le disque. Étant donné que ces événements catastrophiques sont rares, la plupart des consommateurs ne devraient pas nécessairement s'en préoccuper davantage.
+
+ +
+

Note : Dans Firefox, si vous souhaitez être sûr de la durabilité pour une raison ou une autre (par exemple, vous stockez des données critiques qui ne peuvent pas être recalculées plus tard), vous pouvez forcer une transaction d'écriture sur le disque avant la délivrance de l'évènement complete  par la création d'une transaction utilisant le mode expérimental (non standard) readwriteflush  (voir {{domxref("IDBDatabase.transaction")}}).  Ceci est actuellement expérimental et ne peut être utilisé que si la préférence dom.indexedDB.experimental est renseignée avec " true " (vrai) dans about:config.

+
+ +
+
+
object store (objet de stockage)
+
+

Le mécanisme avec lequel les données sont stockées dans la base de données. L'objet de stockage maintient constamment ses enregistrements, lesquels sont des paires  "key-value" (clé-valeur). Les enregistrements dans l'objet de stockage sont triés dans l'ordre ascendant des "keys" (clés).

+ +

Chaque objet de stockage doit avoir un nom qui est unique dans la base de données. Il peut éventuellement avoir un key generator (générateur de clé) et un key path (chemin de clé). S'il a un "key path", il utilise in-line keys (clés en ligne) ; sinon, il utilise out-of-line keys (clé hors ligne).

+ +

Pour la documentation de référence sur les objets de stockage, voir IDBObjectStore ou IDBObjectStoreSync.

+
+
version
+
À la première création de la base de données, sa version est le nombre entier 1. Chaque base de données possède une seule version à un moment donné ; il ne peut pas exister plusieurs versions dans le même temps. La seule façon de changer la version est de l'ouvrir avec une version plus haute. Ceci démarre une transaction VERSION_CHANGE et lance un évènement upgradeneeded. Le seul endroit où le schéma de la base de données peut être mis à jour est à l'intérieur du gestionnaire de cet événement.
+
Note : Cette définition décrit les spécifications les plus récentes, qui ne sont implémentées que dans des navigateurs à jour. Les anciens navigateurs ont implémenté la méthode IDBDatabase.setVersion() maintenant obsolète et supprimée.
+
database connection (connexion de la base de données)
+
Une opération créée en ouvrant une database (base de données). Une base de données peut avoir plusieurs connexions en même temps.
+
transaction
+
+

Un ensemble atomique d'accès aux données et d'opérations de modification des données sur une base de données particulière. C'est la façon dont vous interagissez avec les données dans une base. En fait, toute lecture ou changement dans la base de données doit se produire dans une transaction.

+ +

Une connexion à la base de données peut avoir plusieurs transactions actives associées à la fois, pourvu que les transactions d'écriture n'aient pas de chevauchement scopes. La portée (scope) des transactions, qui est définie lors de la création, détermine l'objet avec lequel la transaction peut interagir, et reste constante pour la durée de vie de la transaction. Ainsi, par exemple, si une connexion à la base de données a déjà une transaction d'écriture avec une portée qui couvre simplement l'objet de stockage flyingMonkey , vous pouvez commencer une seconde transaction avec une portée sur les objets de stockage unicornCentaur et unicornPegasus. En ce qui concerne les transactions de lecture, vous pouvez en avoir plusieurs - même avec chevauchements.

+ +

Les transactions doivent être de courte durée, pour que le navigateur puisse mettre fin à une transaction trop longue, afin de libérer des ressources de stockage verrouillées par cette dernière. Vous pouvez annuler la transaction, ce qui modifie les changements apportés à la base de données dans la transaction. Et vous n'avez même pas à attendre que la transaction commence ou soit active pour l'annuler.

+ +

Les trois modes de transaction sont : " readwrite " (lecture/écriture), " readonly " (lecture seule), et " versionchange " (changement de version). La seule manière de créer et supprimer les objets de stockage et les index est d'utiliser une transaction versionchange . Pour en apprendre plus sur les types de transactions, voir l'article de référence pour IndexedDB.

+ +

Parce que tout se passe au sein d'une transaction, c'est un concept très important dans IndexedDB. Pour en savoir plus sur les transactions, en particulier sur la façon dont elles se rapportent aux versions, voir IDBTransaction, qui a également une documentation de référence . Pour la documentation sur l'API synchrone, voir IDBTransactionSync.

+
+
request (requêtes)
+
L'opération par laquelle la lecture et l'écriture sur une base de données est effectuée. Chaque requête représente une opération de lecture ou d'écriture.
+
index
+
+

Un index est un objet de stockage spécialisé pour rechercher des enregistrements dans un autre objet de stockage appelé " referenced object store"  (objet de stockage référencé). L'index est un stockage persistant de key-value (clé-valeur)  dans lequel la partie "value" des enregistrements contient la partie "key" d'un enregistrement de l'objet de stockage référencé. Les enregistrements dans un index sont automatiquement remplis chaque fois que ceux de l'objet référencé sont insérés, mis à jour ou supprimés. Chaque enregistrement d'un index ne peut indiquer qu'un seul enregistrement dans son objet référencé, mais plusieurs index peuvent référencer le même objet. Lorsque l'objet référencé change, tous les index qui s'y réfèrent sont mis à jour automatiquement.

+ +

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant la clé.

+ +

Pour en apprendre plus sur l'utilisation des index, voir Using IndexedDB. Pour la documentation de référence sur l'index, voir IDBKeyRange.

+
+
+ +

Key and value (clé et valeur)

+ +
+
key (clé)
+
+

Une valeur de données par laquelle les valeurs stockées sont organisées et récupérées dans l'objet de stockage . Celui-ci peut obtenir la clé de l'une des trois sources : un générateur de clés, un chemin de clé et une valeur explicitement spécifiée. La clé doit être d'un type de données qui a un nombre supérieur au précédent. Chaque enregistrement doit avoir une clé unique dans l'objet de stockage, de sorte que celui-ci ne peut comporter plusieurs enregistrements avec la même clé.

+ +

Une clé peut être de l'un des types suivants : string (chaîne de caractères), date, float (flottante), binary blob (blob binaire) et array (tableau). Pour les tableaux, la valeur de la clé peut être comprise entre vide et l'infini. Et vous pouvez inclure un tableau dans un tableau.

+ +

Vous pouvez également rechercher des enregistrements dans un objet de stockage en utilisant l'index.

+
+
key generator (générateur de clé)
+
Un mécanisme pour produire de nouvelles clés dans une séquence ordonnée. Si un objet de stockage n'a pas de générateur de clé, l'application doit fournir les clés des enregistrements stockés. Les générateurs ne sont pas partagés entre les objets de stockage. Il s'agit d'un détail concernant les navigateurs, car dans le développement web, vous ne créez pas réellement ou ne gérez pas les accès aux générateurs de clés.
+
in-line key (clé en ligne)
+
Une clé qui est stockée comme partie d'une valeur de stockage. Elle est trouvée en utilisant "key path" (chemin de clé). Une clé en ligne peut être créée par un générateur. Une fois la clé générée, elle peut être stockée dans la valeur utilisant le "key path" ou être utilisée comme clé.
+
out-of-line key (clé hors ligne)
+
Une clé stockée séparément de la valeur stockée.
+
key path (chemin de clé)
+
Définit où le navigateur doit extraire la clé d'une valeur dans l'objet de stockage ou l'index. Un chemin de clé valide peut inclure l'un des éléments suivants : une chaîne vide, un identifiant JavaScript ou plusieurs identifiants JavaScript séparés par des périodes, ou un tableau contenant ces éléments. Il ne peut pas inclure d'espaces.
+
value (valeur)
+
+

Chaque enregistrement a une valeur, qui peut inclure tout ce qui peut être exprimé en JavaScript, y compris : boolean (bouléen), number (nombre), string (chaîne de caractères), date, object (objet), array (tableau), regexp, undefined (indéfini), and null (nul).

+ +

Quand un objet ou un tableau est stocké, les propriétés et valeurs dans cet objet ou ce tableau peuvent aussi être toute valeur valide.

+ +

Blobs et fichiers peuvent être stockés, voir specification {{ fx_minversion_inline("11") }}.

+
+
+ +

Intervalle et portée

+ +
+
scope (portée ou étendue)
+
L'ensemble des objets de stockage et index auxquels s'applique une transaction. Les portées des transactions en lecture seule peuvent se chevaucher et s'exécuter en même temps. Par contre, les portées des transactions d'écriture ne peuvent pas se chevaucher. Vous pouvez toujours démarrer plusieurs transactions avec la même portée en même temps, mais elles entrent dans une file d'attente et s'exécutent l'une après l'autre.
+
cursor (curseur)
+
Un mécanisme pour l'itération de plusieurs enregistrements avec une "key range" (intervalle de clés). Le curseur possède une source qui indique quel index ou objet stocké est itéré. Il a une position dans l'intervalle et se déplace dans une direction qui augmente ou diminue dans l'ordre des clés d'enregistrement. Pour la documentation de référence sur les curseurs, voir IDBCursor ou IDBCursorSync.
+
key range (intervalle de clés)
+
+

Un intervalle continu sur un type de données utilisé pour les clés. Les enregistrements peuvent être récupérés à partir des objets de stockage et des index à l'aide de touches ou d'un intervalle de clés. Vous pouvez limiter ou filtrer l'intervalle en utilisant les limites inférieures et supérieures. Par exemple, vous pouvez itérer sur toutes les valeurs d'une clé entre x et y.

+ +

Pour la documentation de référence sur "key range", voir IDBKeyRange.

+
+
+ +

Limitations

+ +

IndexedDB est conçu pour couvrir la plupart des cas qui nécessitent un stockage côté client. Cependant, il n'est pas adapté pour quelques cas comme les suivants :

+ + + +

En outre, sachez que les navigateurs peuvent effacer la base de données, comme dans les conditions suivantes :

+ + + +

Les circonstances exactes et les capacités du navigateur changent au fil du temps, mais la philosophie générale des fournisseurs de navigateurs est de faire les efforts nécessaires pour conserver les données lorsque c'est possible.

+ +

Étape suivante

+ +

Avec ces grands concepts dans nos poches, nous pouvons obtenir des choses plus concrètes. Pour un tutoriel sur l'utilisation de l'API, voir Using IndexedDB.

+ +

Voir aussi

+ +

Spécification

+ + + +

Référence

+ + + +

Tutoriels

+ + + +

Article connexe

+ + diff --git a/files/fr/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html b/files/fr/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html new file mode 100644 index 0000000000..bfa95657cc --- /dev/null +++ b/files/fr/web/api/indexeddb_api/browser_storage_limits_and_eviction_criteria/index.html @@ -0,0 +1,139 @@ +--- +title: Limites de stockage du navigateur et critères d'éviction +slug: Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria +tags: + - Base de données + - IndexedDB + - LRU + - Limites + - Stockage + - eviction +translation_of: Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria +--- +
{{DefaultAPISidebar("IndexedDB")}}
+ +
+

Il existe un certain nombre de technologies Web qui stockent des données d'un type ou d'un autre du côté client (c'est-à-dire sur le disque local). Le processus par lequel le navigateur calcule l'espace alloué au stockage de données Web et les données à supprimer quand la limite est atteinte n'est pas simple et diffère d'un navigateur à l'autre. Cet article tente d'expliquer comment tout cela fonctionne.

+
+ +
+

Note : Les informations ci-dessous devraient être assez précises pour la plupart des navigateurs modernes, mais les spécificités du navigateur sont évoquées quand elles sont connues. Opera et Chrome devraient se comporter de la même manière dans tous les cas. Mais Opera Mini (encore basé sur presto du côté serveur) ne stocke aucune donnée sur le client.

+
+ +

Les différents types de stockage des données

+ +

Même dans le même navigateur, en utilisant la même méthode de stockage, il existe différentes classes de stockage de données à comprendre. Cette section traite des différents types que vous pouvez trouver dans différents navigateurs.

+ +

Généralement, les deux principaux types de stockage sont les suivants :

+ + + +

Par défaut, le stockage temporaire sera utilisé dans la plupart des contextes d'utilisation (par exemple, des applications Web standard) et le persistant pour les applications installées (par exemple, les applications Firefox installées sur le système d'exploitation Firefox OS / Firefox de bureau, les applications Chrome).

+ +

Spécificités de Firefox

+ +

Dans Firefox, vous pouvez choisir le type de stockage que vous souhaitez utiliser en incluant une option propriétaire — storage — lorsque vous créez une base de données IndexedDB en utilisant {{domxref ("IDBFactory.open ()", "open ()")}} :

+ + + +

Dans Firefox, quand le stockage persistant est choisi, l'utilisateur reçoit une fenêtre de dialogue d'interface utilisateur pour l'avertir que ces données persisteront et lui demander s'il en est satisfait.

+ +

Les données de stockage temporaire ne provoquent aucune fenêtre de dialogue vers l'utilisateur, mais il y a des {{anch("Limites de stockage")}}.

+ +

"Default storage" dans Firefox (stockage par défaut)

+ +

C'est le troisième type de stockage à envisager dans Firefox — "Default storage" (stockage par défaut).  C'est une option par défaut, utilisée quand vous ne spécifiez pas le paramètre storage  vu ci-dessus. Les données du stockage par défaut se comportent différemment selon les circonstances : assimilées aux données d'un stockage persistant pour les applications installées de Firefox OS, ou d'un stockage temporaire pour tout autre type d'utilisation.

+ +

Où sont stockées les données ?

+ +

Chaque type de stockage représente un référentiel distinct, voici la cartographie réelle des répertoires sous le profil Firefox d'un utilisateur (d'autres navigateurs peuvent différer légèrement) :

+ + + +
+

Note :  Depuis l'introduction de l' API Storage , le dossier "permanent" peut être considéré comme obsolète, il n'est plus utilisé que pour les bases de données de type persistant IndexedDB. Peu importe le mode, "best-effort" (meilleur effort) ou "persistant", les données sont stockées sous <profile>/storage/default.

+
+ +
+

Note: Dans Firefox, vous pouvez trouver votre dossier profil en entrant : support dans la barre d'URL et en appuyant sur le bouton Show in... (Afficher dans ...) (par exemple, "Show in Finder" sur Mac OS X) à côté du titre "Profile Folder" (dossier de profil) .

+
+ +
+

Note: Si vous regardez dans votre profil les répertoires de données stockées, vous pouvez voir un quatrième dossier : persistent . À la base, le dossier persistent a été renommé permanent, il y a quelques temps, pour faciliter les mises à niveau / migrations.

+
+ +
+

Note: Les utilisateurs ne doivent pas ajouter leurs propres répertoires ou fichiers sous <profile>/storage . Cela entraînerait l'échec de l'initialisation du stockage ; par exemple {{domxref ("IDBFactory.open ()", "open ()")}} déclencherait un événement d'erreur.

+
+ +

Limites de stockage

+ +

L'espace de stockage maximal du navigateur est dynamique  — il est basé sur la taille de votre disque dur. La limite globale est calculée sur la base de 50% de l'espace disque libre. Dans Firefox, un outil interne du navigateur appelé " Quota Manager " (gestionnaire de quotas) surveille la quantité d'espace disque utilisée par chaque origine et supprime les données si nécessaire.

+ +

Donc, si votre disque dur est de 500 Go, le stockage total d'un navigateur est de 250 Go. S'il est dépassé, une procédure appelée "origin eviction" (éviction d'origine) entre en jeu, en supprimant la valeur totale de l'origine jusqu'à ramener le niveau de stockage en-dessous de la limite. La suppression d'une base de données d'origine peut entraîner des problèmes d'incohérence.

+ +

Il y a aussi une autre limite appelée group limit — ceci est défini comme 20% de la limite globale. Chaque origine fait partie d'un groupe (groupe d'origines). Il existe un groupe pour chaque domaine eTLD + 1.

+ +

Par exemple :

+ + + +

Ces groupes, mozilla.org, www.mozilla.org, et joe.blogs.mozilla.org peuvent utiliser globalement un maximum de 20% de la limite globale. firefox.com a un maximum distinct de 20%.

+ +

Les deux limites reagissent différemment quand la limite est atteinte :

+ + + +
+

Note: Si la limite de groupe est dépassée, ou si l'éviction d'origine ne crée pas assez d'espace libre, le navigateur lance  QuotaExceededError.

+
+ +

Politique LRU

+ +

Lorsque l'espace disque disponible est rempli, le gestionnaire de quotas commence à effacer les données sur la base de la politique LRU — l'origine la moins utilisée sera d'abord supprimée, puis la suivante, jusqu'à ce que le navigateur ne dépasse plus la limite.

+ +

Nous traçons le "dernier temps d'accès" pour chaque origine utilisant le stockage temporaire. Une fois que la limite globale du stockage temporaire est atteinte, nous essayons de trouver toutes les origines actuellement inutilisées (c'est-à-dire, sans onglets ou applications ouverts qui conservent des bases de données ouvertes). Celles-ci sont ensuite triées sur le dernier accès. Les origines les moins récemment utilisées sont ensuite supprimées jusqu'à ce qu'il y ait suffisamment d'espace pour répondre à la demande qui a déclenché cette éviction d'origine.

+ +

Quelles technologies utilisent le stockage de données du navigateur ?

+ +

Dans Firefox, les technologies suivantes utilisent le stockage de données du navigateur pour stocker des données au besoin. Nous les qualifions de "quota clients" dans ce contexte :

+ + + +

Le «dernier temps d'accès» des origines est mis à jour lorsque l'un de ces éléments est activé / désactivé. L'éviction d'origine supprimera les données pour tous ces "quota clients".

+ +

Dans Chrome / Opera, l'API " Quota Management" gère les quotas pour AppCache, IndexedDB, WebSQL et File System API.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/indexeddb_api/index.html b/files/fr/web/api/indexeddb_api/index.html new file mode 100644 index 0000000000..682043df0e --- /dev/null +++ b/files/fr/web/api/indexeddb_api/index.html @@ -0,0 +1,322 @@ +--- +title: IndexedDB +slug: Web/API/API_IndexedDB +tags: + - API + - Avancé + - Bases de données + - IndexedDB + - Stockage +translation_of: Web/API/IndexedDB_API +--- +

{{DefaultAPISidebar("IndexedDB")}}

+ +

IndexedDB est une API de bas niveau qui permet le stockage côté client de quantités importantes de données structurées, incluant des fichiers/blobs. Cette API utilise des index afin de permettre des recherches performantes sur ces données. Alors que Web Storage est utile pour stocker de petites quantités de données, il est moins utile pour stocker de grandes quantités de données structurées. IndexedDB fournit une solution. Cette page est le point d'entrée pour tout ce qui concerne IndexedDB sur MDN - vous y trouverez les liens vers la référence complète de l'API et les guides d'utilisation, le support par les navigateurs, et quelques explications des concepts clés.

+ +

{{AvailableInWorkers}}

+ +
+

Note: l'API IndexedDB est puissante, mais elle peut sembler trop compliquée dans les cas simples. Si vous préferez une API plus simple, essayez des librairies comme localForage, dexie.js, ZangoDB, PouchDB, idb, idb-keyval, JsStore et lovefield qui offrent de nombreux avantages aux développeurs de IndexedDB.

+
+ +

Concepts clés et utilisation

+ +

IndexedDB est un système de gestion de base de données transactionnel, similaire à un SGBD relationnel basé sur SQL. Cependant contrairement aux SGBD relationnels, qui utilisent des tables avec des colonnes fixes, IndexedDB est une base de données orientée objet basée sur JavaScript. IndexedDB vous permet de stocker et de récupérer des objets qui sont indexés avec une clef; tout objet supporté par l'algorithme de clônage structuré peut être stocké. Vous devez spécifier le schéma de la base de données, ouvrir une connexion à votre base de données, puis récupérer et mettre à jour des données dans une série de transactions.

+ + + +
+

Note: Comme la plupart des solutions de stockage en ligne, IndexedDB suit la politique same-origin policy. Alors même que vous pouvez accèder à des données stockées au sein d'un domaine, vous ne pouvez pas accéder à des données sur plusieurs domaines.

+
+ +

Synchrone et asynchrone

+ +

Les opérations effectuées par IndexedDB sont réalisées de manière asynchrone, afin de ne pas bloquer l'application. IndexedDB comprend à la fois une API asynchrone et une API synchrone. L'API synchrone était à l'origine uniquement destinée pour un usage avec les Web workers, mais elle a été retirée de la spécification parce qu'il était difficile de savoir si elle était nécessaire. Cependant l'API synchrone pourrait être ré-integrée si il y a une demande suffisante de la part des développeurs web.

+ +

Limites de stockage et critères d'éviction

+ +

Il y a un certain nombre de technologies web pour stocker différents types de données côté client (par exemple sur votre disque local). IndexedDB est la plus couramment citée. Le processus par lequel le navigateur calcule combien d'espace il doit allouer aux données web, et ce qu'il doit supprimer quand la limite est atteinte, n'est pas simple et varie entre les différents navigateurs. L'article "limites de stockage des navigateurs et critères d'éviction" tente d'expliquer ce fonctionnement, au moins pour le cas de Firefox.

+ +

Interfaces

+ +

Pour accèder à une base de données, il faut apeller open() sur l'attribut indexedDB d'un objet window. Cette méthode retourne un objet {{domxref("IDBRequest")}}; Les opérations asynchrones communiquent avec l'application appelante en déclenchant des évènements sur les objets {{domxref("IDBRequest")}}.

+ +

Se connecter à la base de données

+ +
+
{{domxref("IDBEnvironment")}}
+
Fournit un accès aux fonctionnalités d'IndexedDB. Implémenté par les objets {{domxref("window")}} et {{domxref("worker")}}.
+
{{domxref("IDBFactory")}}
+
Fournit un accès à la base de données.C'est l'interface implémentée par l'objet global indexedDB et c'est donc le point d'entrée de l'API.
+
{{domxref("IDBOpenDBRequest")}}
+
Représente une requête d'ouverture de la base de données.
+
{{domxref("IDBDatabase")}}
+
Représente une connexion à la base de données. C'est le seul moyen d'obtenir une transaction sur la base de données.
+
+

Récupérer et modifier les données

+
+
+ +
+
{{domxref("IDBTransaction")}}
+
Représente une transaction. Vous créez une transaction sur la base de données, spécifiez la portée (comme à quel magasin d'objets vous souhaitez accèder), et déterminez le type d'accès désiré (lecture seule ou lecture et écriture).
+
{{domxref("IDBRequest")}}
+
Interface générique qui récupère les requêtes à la base de données et fournit un accès aux résultats.
+
{{domxref("IDBObjectStore")}}
+
Représente un magasin d'objets qui permet l'accès à un ensemble de données d'une base de données IndexedDB, recherché par clé primaire.
+
{{domxref("IDBIndex")}}
+
Permet aussi d'accèder à un sous-ensemble de données d'une base IndexedDB mais utilise un index pour récupérer les enregistrements, au lieu d'une clé primaire. C'est parfois plus rapide qu'un usage de {{domxref("IDBObjectStore")}}.
+
{{domxref("IDBCursor")}}
+
Itérateur sur les magasins d'objets et les index.
+
{{domxref("IDBCursorWithValue")}}
+
Itérateur sur les magasins d'objets et les index et retourne la valeur courante du curseur.
+
{{domxref("IDBKeyRange")}}
+
Définit une portée de valeurs qui peut être utilisée pour récupérer des données de la base de données dans une certaine portée.
+
{{domxref("IDBLocaleAwareKeyRange")}} {{Non-standard_inline}}
+
Définit une portée de valeurs qui peut être utilisée pour récupérer des données de la base de données dans une certaine portée, triées en fonction des règles de la localisation spécifiée pour un certain index (voir createIndex()'s optionalParameters).
+
+ +

Interfaces d'événements personnalisés

+ +

Cette spécification provoque des évènements avec les interfaces personnalisées suivantes:

+ +
+
{{domxref("IDBVersionChangeEvent")}}
+
L'interface IDBVersionChangeEvent indique que la version de la base de données à changé, résultat de la fonction de saisie d'un évènement  {{domxref("IDBOpenDBRequest.onupgradeneeded")}}.
+
+ +

Interfaces obsolètes

+ +

Une précedente version des spécifications a défini ces interfaces, désormais supprimées. Elles sont toujours documentées dans le cas où vous avez besoin de mettre à jour du code déja écrit :

+ +
+
{{domxref("IDBVersionChangeRequest")}} {{obsolete_inline}}
+
Représente une requête de changement de version de la base de données. Le moyen pour changer de version de la base de données a désormais changé (avec un appel de {{domxref("IDBFactory.open")}} sans aussi appeler {{domxref("IDBDatabase.setVersion")}}), et l'interface  {{domxref("IDBOpenDBRequest")}} a désormais la fonction de l'ancienne (supprimée) {{domxref("IDBVersionChangeRequest")}}.
+
{{domxref("IDBDatabaseException")}}  {{obsolete_inline}}
+
Représente une exception (erreur) qui peut survenir durant les opérations sur la base de données.
+
{{domxref("IDBTransactionSync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBTransaction")}}.
+
{{domxref("IDBObjectStoreSync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBObjectStore")}}.
+
{{domxref("IDBIndexSync")}} {{obsolete_inline}}
+
Version synchrone de  {{domxref("IDBIndex")}}.
+
{{domxref("IDBFactorySync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBFactory")}}.
+
{{domxref("IDBEnvironmentSync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBEnvironment")}}.
+
{{domxref("IDBDatabaseSync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBDatabase")}}.
+
{{domxref("IDBCursorSync")}} {{obsolete_inline}}
+
Version synchrone de {{domxref("IDBCursor")}}.
+
+ +

Exemples

+ + + +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('IndexedDB')}}{{Spec2('IndexedDB')}}Définition initiale
{{SpecName("IndexedDB 2")}}{{Spec2("IndexedDB 2")}}
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(23)}}{{property_prefix("webkit")}}
+ {{CompatChrome(24)}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoDesktop("10.0")}} {{property_prefix("moz")}}
+ {{CompatGeckoDesktop("16.0")}}
1015 +

7.1, partial
+ 10

+
Available in workers{{CompatVersionUnknown}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoDesktop("37.0")}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}10
Available in privacy mode[3]{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
IDBLocaleAwareKeyRange{{CompatNo}}{{CompatNo}}{{CompatGeckoDesktop("43.0")}}[2]{{CompatNo}}{{CompatNo}}{{CompatNo}}
Indexed Database 2.0{{CompatChrome(58)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatOpera(45)}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)Firefox OSIE/Edge PhoneOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoMobile("22.0")}}1.0.110{{CompatOpera(22)}}8, partial
+ 10
Available in workers{{CompatVersionUnknown}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}} (unprefixed)
+ {{CompatChrome(38)}} (prefixes deprecated)
+ {{CompatChrome(57)}} (prefixes removed)
{{CompatVersionUnknown}}{{CompatGeckoMobile("37.0")}}[1]{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}10
Available in privacy mode[3]{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
IDBLocaleAwareKeyRange{{CompatNo}}{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("43.0")}}[2]2.5[2]{{CompatNo}}{{CompatNo}}{{CompatNo}}
Indexed Database 2.0{{CompatChrome(58)}}{{CompatChrome(58)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatOpera(45)}}{{CompatUnknown}}
+
+
+
+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/indexeddb_api/using_indexeddb/index.html b/files/fr/web/api/indexeddb_api/using_indexeddb/index.html new file mode 100644 index 0000000000..a8df123888 --- /dev/null +++ b/files/fr/web/api/indexeddb_api/using_indexeddb/index.html @@ -0,0 +1,1337 @@ +--- +title: Utiliser IndexedDB +slug: Web/API/API_IndexedDB/Using_IndexedDB +tags: + - Avancé + - Base de données + - Guide + - IndexedDB + - Stockage + - Tutoriel +translation_of: Web/API/IndexedDB_API/Using_IndexedDB +--- +

IndexedDB est un moyen de stocker des données de manière persistante dans un navigateur. Cela vous laisse créer des applications web avec de riches possibilités de requêtes indépendamment de la disponibilité du réseau puisque vos applications peuvent fonctionner en ligne ou hors-ligne. 

+ +

À propos de ce document

+ +

Ce tutoriel vous guide à travers l'utilisation de l'API asynchrone de IndexedDB. Si vous n'êtes pas familier avec le principe de IndexedDB, vous devriez d'abord lire les concepts basiques d'IndexedDB.

+ +

Pour la documentation de référence sur l'API d'IndexedDB, voyez l'article IndexedDB et ses sous-parties, qui détaille les types d'objets utilisés par IndexedDB, ainsi que les méthodes sur l'API asynchrone (l'API synchrone a été retirée de la spécification).

+ +

Modèle de base

+ +

Le modèle de base qu'IndexedDB utilise est le suivant :

+ +
    +
  1. Ouvrir une base de données.
  2. +
  3. Créer un objet de stockage dans la base de données. 
  4. +
  5. Démarrer une transaction, et faire des requêtes pour faire quelques opérations sur des bases de données, comme ajouter, ou récupérer des données.
  6. +
  7. +
    Attendre que l'exécution soit terminée, en écoutant le bon type d'événement DOM.
    +
  8. +
  9. +
    Faire quelque chose avec les résultats (qui peuvent être trouvés dans l'objet de la requête).
    +
  10. +
+ +

Maintenant que nous avons ces grands concepts en poche, nous pouvons voir des choses plus concrètes.

+ +

Créer et structurer l'objet de stockage

+ +

Étant donné que la spécification évolue encore, les implémentations actuelles de IndexedDB se cachent sous les préfixes du navigateur. Les fournisseurs de navigateurs peuvent avoir des implémentations différentes de l'API IndexedDB standard jusqu'à ce que la spécification se soit solidifiée. Mais une fois qu'un consensus est atteint sur la norme, les fournisseurs l'implémentent sans les balises de préfixe. Actuellement, certaines implémentations ont supprimé le préfixe : Internet Explorer 10, Firefox 16, Chrome 24. Lorsqu'ils utilisent un préfixe, les navigateurs basés sur Gecko utilisent le préfixe moz, tandis que les navigateurs WebKit utilisent le préfixe webkit.

+ +

Utiliser une version expérimentale d'IndexedDB

+ +

Au cas où vous souhaiteriez tester votre code dans des navigateurs qui utilisent toujours un préfixe, vous pouvez utiliser le code suivant :  

+ +
// Sur la ligne suivante, vous devez inclure les préfixes des implémentations que vous souhaitez tester.
+window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
+// N'UTILISEZ PAS "var indexedDB = ..." si vous n'êtes pas dans une fonction.
+// De plus, vous pourriez avoir besoin de réferences à des objets window.IDB*:
+window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
+window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange
+// (Mozilla n'a jamais préfixé ces objets, donc nous n'avons pas besoin de window.mozIDB*)
+ +

Faites attention aux implémentations qui utilisent un préfixe ; elles peuvent être boguées, incomplètes, voire suivre une ancienne version de la spécification. Il n'est donc pas recommandé d'utiliser en production. Il serait préférable de ne pas supporter ces navigateurs :

+ +
if (!window.indexedDB) {
+    window.alert("Votre navigateur ne supporte pas une version stable d'IndexedDB. Quelques fonctionnalités ne seront pas disponibles.")
+}
+
+ +

Ouvrir une base de données

+ +

On commence l'ensemble du processus comme ceci :

+ +
// Ouvrons notre première base
+var request = window.indexedDB.open("MyTestDatabase", 3);
+
+ +

Vous avez vu ? Ouvrir une base de données est comme n'importe quelle autre opération — vous avez juste à le "demander".

+ +

La requête "open" n'ouvre pas la base de données ni ne démarre une transaction aussitôt. L'appel de la fonction open() retourne un objet IDBOpenDBRequest avec un résultat  (success) ou une valeur d'erreur qui permet de la gérer comme un évènement. La plupart des autres fonctions asynchrones dans IndexedDB fonctionnent de la même façon ; Elles retournent un objet IDBRequest avec le résultat ou une erreur. Le résultat de la fonction "open" est une instance de IDBDatabase.

+ +

Le second paramètre de la méthode open est la version de la base de données. La version de la base détermine le schéma de celle-ci — Les objets stockés dans la base de données et leur structure. Si la base de données n'existe pas déjà, elle est créée via l'opération open(), puis, un événement onupgradeneeded est déclenché et vous créez le schéma de la base dans le gestionnaire pour cet événement. Si la base de données existe, mais que vous spécifiez un numéro de version plus élevé, un événement onupgradeneeded est déclenché  immédiatement, vous permettant de mettre à jour le schéma dans son gestionnaire – plus d'informations dans Updating the version of the database plus bas et la page référence {{ domxref("IDBFactory.open") }}.

+ +
+

Important: Le numéro de version est un nombre "unsigned long long" ce qui signifie qu'il peut s'agir d'un entier très grand. Cela veut également dire que vous ne pouvez pas utiliser de réél, sinon, il sera converti au nombre entier le plus proche (inférieur) et la transaction peut ne pas démarrer ou ne pas déclencher l'événement upgradeneeded. Par exemple, n'utilisez pas 2.4 comme un numéro de version :
+ var request = indexedDB.open("MyTestDatabase", 2.4); // Ne faites pas ça, même si la version sera arrondie à 2

+
+ +

Générer des gestionnaires

+ +

La première chose que vous ferez avec la plupart des requêtes que vous générerez sera d'ajouter des gestionnaires de succès ou d'erreurs :

+ +
request.onerror = function(event) {
+  // Faire quelque chose avec request.errorCode !
+};
+request.onsuccess = function(event) {
+  // Faire quelque chose avec request.result !
+};
+ +

Laquelle de ces deux fonctions, onsuccess() or onerror(), sera appelée ? Si tout se passe bien, un évènement success (qui est un évènement DOM dont la propriété type est à "success") est déclenché avec request comme cible. Une fois déclenché, la fonction onsuccess() de request est lancée avec l'évènement success comme argument. S’il y avait un quelconque problème, un évènement erreur (qui est un évènement DOM dont la propriété type est définie à "error") est lancée dans request. Cela déclenche la fonction onerror() avec l'évènement d'erreur comme argument.

+ +

L'API IndexedDB est conçue pour minimiser le recours à la gestion des erreurs, donc vous ne serez pas amené à voir beaucoup d'évènements erreurs (du moins, pas tant que vous utilisez l'API !). Cependant, dans le cas d'une ouverture de base de données, il y a quelques conditions qui génèrent des évènements d'erreurs. Le problème le plus courant est que l'utilisateur a décidé d'interdire l'accès à la création de base de données. Un des principaux objectifs d’IndexedDB est de permettre un stockage important de données pour l'utilisation hors-ligne. (Pour en savoir plus sur la capacité de stockage de chaque navigateur, voyez Storage limits).

+ +

Évidemment, les navigateurs ne peuvent permettre qu'une publicité en ligne ou un site malicieux pollue votre ordinateur, donc ils informent l’utilisateur la première fois qu'une application web tente d'ouvrir un espace de stockage IndexedDB. L'utilisateur peut choisir de permettre ou refuser l'accès. En ce qui concerne l’utilisation d’IndexedDB en mode privé, les données restent en mémoire jusqu’à ce que la session privée soit close (Navigation privée pour Firefox et mode Incognito pour Chrome, mais dans Firefox, cela n'est pas encore implémenté depuis novembre 2015, aussi vous ne pouvez pas utiliser IndexedDB dans le mode privé de Firefo du tout).

+ +

Maintenant, en admettant qu’un utilisateur ait accepté la création d'une base, et que vous receviez un évènement "success" qui déclenche le callback (rappel) "success" ; que se passe-il après ? La requête a génèré un appel à indexedDB.open(), donc request.result est une instance de IDBDatabase, et vous voulez garder en mémoire cela pour plus tard. Votre code devrait ressembler à ceci :

+ +
var db;
+var request = indexedDB.open("MyTestDatabase");
+request.onerror = function(event) {
+  alert("Pourquoi ne permettez-vous pas à ma web app d'utiliser IndexedDB?!");
+};
+request.onsuccess = function(event) {
+  db = event.target.result;
+};
+
+ +

Gérer les erreurs

+ +

Comme mentionné ci-dessus, les évènements d’erreur génèrent des info-bulles. Ils  sont rattachés à la requête qui a généré l’erreur, puis la bulle de l'évènement est transmis à la transaction, et enfin à l'objet de la base de données. Si vous souhaitez éviter d'ajouter un gestionnaire d'erreurs à chaque requête, vous pouvez en ajouter un unique à l'objet de la base de donnée, de cette manière :

+ +
db.onerror = function(event) {
+  // Gestionnaire d'erreur générique pour toutes les erreurs de requêtes de cette base
+  alert("Database error: " + event.target.errorCode);
+};
+
+ +

Une des erreurs courantes possibles lorsqu'on ouvre une base de données, c'est VER_ERR. Celle-ci indique que la version de la base de données stockée sur le disque est supérieure à la version que vous êtes en train d'essayer d'ouvrir. C'est un cas qui doit toujours être pris en considération par le gestionnaire d'erreurs.

+ +

Créer ou mettre à jour une version de base de données

+ +

Lorsque vous créez une nouvelle base de données, ou que vous augmentez le numéro de version d'une base existante (en spécifiant un numéro de version supérieur à celui que vous aviez auparavant, lors de {{ anch("Ouvrir une base de données") }}), l'évènement onupgradeneeded sera déclenché et un objet IDBVersionChangeEvent sera passé à un évènement onversionchange dans request.result (la variable db dans l'exemple). Dans le gestionnaire d’évènement upgradeneeded, vous devez créer les objets de stockage requis pour cette version de base :

+ +
// Cet évènement est seulement implémenté dans des navigateurs récents
+request.onupgradeneeded = function(event) {
+  var db = event.target.result;
+
+  // Crée un objet de stockage pour cette base de données
+  var objectStore = db.createObjectStore("name", { keyPath: "myKey" });
+};
+ +

Dans ce cas, la base de données disposera aussitôt des objets de stockage de la version précédente de la base, donc vous n’aurez pas à créer de nouveau ces objets de stockage. Vous aurez seulement besoin de créer de nouveaux objets de stockage, ou d'en supprimer de la version précédente si vous n'en avez plus besoin. Si vous avez besoin de changer un objet de stockage existant  (par exemple, pour changer la keyPath), alors vous devez supprimer l’ancien objet de stockage et le créer à nouveau avec les nouveaux paramètres. Notez que ceci supprimera les informations dans l'objet de stockage ! Si vous avez besoin de sauvegarder ces informations, vous devez les lire et les sauvegarder quelque part avant de mettre à jour la base de données.

+ +

Essayer de créer un objet de stockage avec un nom déjà existant (ou essayer de supprimer un objet de stockage avec un nom qui n'existe pas encore) renverra une erreur. 

+ +

Si l'évènement onupgradeneeded quitte avec succès, le gestionnaire onsuccess de la requête d'ouverture de la base de données sera déclenché. 

+ +

Blink/Webkit supporte la version courante de la spécification, telle que livrée dans Chrome 23+ et Opera 17+ ; IE10+ également. Les autres implémentations plus anciennes ne prennent pas en charge indexedDB.open(name, version).onupgradeneeded. Pour plus d'informations sur la mise à jour de version de base de données sur les anciens Webkit/Blink, référez vous à IDBDatabase reference article.

+ +

Structurer la base de données

+ +

Maintenant, structurons la base de données. IndexedDB utilise des objets de stockage plutôt que des tableaux, et une seule base de données peut contenir un nombre quelconque d'objets de stockage. Chaque fois qu'une valeur est stockée dans un objet de stockage, elle est associée à une clé. Il y a différentes manières pour une clé d'être définie, selon que l'objet de stockage utilise un key path (chemin de clé) ou un key generator (générateur de clé).

+ +

Le tableau suivant montre les différentes manières d'attribuer des clés.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key Path chemin de clé (keyPath)Key Generator générateur de clé (autoIncrement)Description
NonNonL'objet de stockage peut contenir n'importe quel type de valeur, même des valeurs primitives comme des nombres ou des chaînes de caractères. Vous devez fournir un argument clé séparé chaque fois que vous souhaitez ajouter une nouvelle valeur.
OuiNonL'objet de stockage peut contenir des objets JavaScript. Les objets doivent avoir une propriété qui a le même nom que le key path.
NonOuiL'objet de stockage peut contenir n'importe quel type de valeur. La clé est générée pour vous automatiquement, ou vous pouvez fournir un argument  clé séparé si vous voulez utiliser une clé spécifique.
OuiOuiL'objet de stockage peut contenir des objets JavaScript. Normalement, une clé est générée, et sa valeur est stockée dans l'objet dans une propriété avec le même nom que le key path. Cependant, si une telle propriété existe, sa valeur est utilisée en tant que clé, plutôt que la génération d'une nouvelle clé.
+ +

Vous pouvez aussi créer des index sur un objet de stockage, à condition que l'objet de stockage contienne des objets, et non des primitives. Un index vous permet de consulter les valeurs stockées dans un objet de stockage en utilisant la valeur d'une propriété de l'objet stocké, plutôt que la clé de l'objet.

+ +

En outre, les index ont la capacité d'appliquer des contraintes simples sur les données stockées. En paramétrant l'option unique lorsque l'on crée un index, ce dernier fait que deux objets ne peuvent être enregistrés en ayant la même valeur pour le chemin de clé de l'index. Par exemple, si vous avez un objet de stockage qui contient un ensemble de personnes, et que vous voulez vous assurer que deux personnes n’aient pas la même adresse de courriel, vous pouvez utiliser un index avec le paramètre unique à true.

+ +

Cela peut sembler confus, mais ce simple exemple devrait illustrer ces concepts. D'abord, nous définissons quelques données client à utiliser dans notre exemple :

+ +
// Voici à quoi ressemblent nos données client.
+const customerData = [
+  { ssn: "444-44-4444", name: "Bill", age: 35, email: "bill@company.com" },
+  { ssn: "555-55-5555", name: "Donna", age: 32, email: "donna@home.org" }
+];
+ +

Bien sûr, vous n'utiliseriez pas le numéro de sécurité sociale comme clé primaire dans une table clients parce que tout le monde n'a pas de numéro de sécurité sociale, et vous pourriez stocker leur date de naissance au lieu de leur âge, mais laissons ces choix non pertinents pour des raisons de commodité et continuons.

+ +

Maintenant, voyons la création d'une base de données pour stocker ces données :

+ +
const dbName = "the_name";
+
+var request = indexedDB.open(dbName, 2);
+
+request.onerror = function(event) {
+  // Gestion des erreurs.
+};
+request.onupgradeneeded = function(event) {
+  var db = event.target.result;
+
+  // Créer un objet de stockage qui contient les informations de nos clients.
+  // Nous allons utiliser "ssn" en tant que clé parce qu'il est garanti d'être
+  // unique - du moins, c'est ce qu'on en disait au lancement.
+  var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });
+
+  // Créer un index pour rechercher les clients par leur nom. Nous pourrions
+  // avoir des doublons (homonymes), alors on n'utilise pas d'index unique.
+  objectStore.createIndex("name", "name", { unique: false });
+
+  // Créer un index pour rechercher les clients par leur adresse courriel. Nous voulons nous
+  // assurer que deux clients n'auront pas la même, donc nous utilisons un index unique.
+  objectStore.createIndex("email", "email", { unique: true });
+
+  // Utiliser la transaction "oncomplete" pour être sûr que la création de l'objet de stockage
+  // est terminée avant d'ajouter des données dedans.
+  objectStore.transaction.oncomplete = function(event) {
+    // Stocker les valeurs dans le nouvel objet de stockage.
+    var customerObjectStore = db.transaction("customers", "readwrite").objectStore("customers");
+    for (var i in customerData) {
+      customerObjectStore.add(customerData[i]);
+    }
+  }
+};
+ +
Comme indiqué précédemment, onupgradeneeded est le seul endroit où vous pouvez modifier la structure de la base de données. Dans cette méthode, vous pouvez créer et supprimer des objets de stockage, construire et supprimer des index.
+ +
+ +

Les objets de stockage sont créés avec un simple appel à createObjectStore(). La méthode prend le nom du stockage et un paramètre de type objet. Même si les paramètres sont optionnels, ils vous laissent définir d'importantes propriétés et redéfinir le type d'un objet de stockage que vous voulez créer. Dans notre cas, nous avons demandé un objet de stockage nommé "customers" et défini un keyPath, qui est la propriété rendant unique un objet individuel dans le stockage. Cette propriété dans l'exemple est "ssn" puisqu'un numéro de sécurité sociale est garanti unique. "ssn" doit être présent sur chaque objet stocké dans objectStore.

+ +

Nous avons aussi demandé un index nommé "name" qui examine la propriété name dans les objets stockés. Comme avec createObjectStore(), createIndex() prend un paramètre de type objet facultatif (options) qui définit le type d’index à créer. Ajouter des objets qui n’auront pas de propriété name fonctionnera, mais ces objets n'apparaîtront pas dans l'index "name".

+ +

Nous pouvons récupérer les objets client stockés, en utilisant directement leur ssn dans l'objet de stockage, ou en utilisant leur nom via l’index name. Pour en savoir plus sur ce fonctionnement, se référer à la section utiliser un index.

+ +

Utiliser le générateur de clés

+ +

Paramétrer un marqueur autoIncrement lorsque l'on crée un objet de stockage activera le générateur de clés pour cet objet de stockage. Par défault, ce marqueur n'est pas défini.

+ +

Avec la générateur de clés, une clé sera générée automatiquement lorsque vous ajoutez une valeur dans un objet de stockage. Le compteur initial pour la génération de clés est toujours défini à 1 lorsque l'objet de stockage est créé pour la première fois. Fondamentalement, une nouvelle clé auto-générée sera incrémentée de 1 par rapport à la précédente. Le nombre courant d'un générateur de clé ne décroit jamais, à moins qu'un résultat d'opération sur la base soit annulé, par exemple, l'abandon d'une transaction sur la base. En conséquence, supprimer un enregistrement, voire l'ensemble des enregistrements d'un objet de stockage n'affecte jamais le générateur de clés d'un objet de stockage.

+ +

Nous pouvons créer un autre objet de stockage avec un générateur de clés comme ci-dessous :

+ +
// Ouverture d'indexedDB.
+var request = indexedDB.open(dbName, 3);
+
+request.onupgradeneeded = function (event) {
+
+    var db = event.target.result;
+
+    // Création d'un autre objet appelé "names" avec l'option autoIncrement définie à true.
+    var objStore = db.createObjectStore("names", { autoIncrement : true });
+
+    // Puisque l'objet "names" a un générateur de clés, la clé pour la valeur name est générée automatiquement.
+    // Les enregistrements ajoutés ressembleront à ceci :
+    // key : 1 => value : "Bill"
+    // key : 2 => value : "Donna"
+    for (var i in customerData) {
+        objStore.add(customerData[i].name);
+    }
+}
+ +

Pour plus de détails sur le générateur de clés, voyez "W3C Key Generators".

+ +

Ajouter, récupérer et supprimer des données

+ +

Avant de faire quoi que ce soit avec votre nouvelle base de données, vous aurez besoin de démarrer une transaction. Les transactions viennent de l'objet base de données, et vous devez spécifier sur quel objet vous souhaitez faire pointer la transaction. Une fois dans la transaction, vous pouvez accéder à l'objet de stockage qui contient vos données et faire vos requêtes. Puis, vous devez décider si vous allez appliquer des changements à la base de données, ou si vous avez juste besoin de la lire. Les transactions disposent de trois modes disponibles: readonly (lecture seule), readwrite (lecture/écriture), et versionchange (changement de version).

+ +

Pour changer le "schéma" ou la structure de la base de données — qui implique de créer ou supprimer des objets de stockage ou des index — la transaction doit être en mode versionchange. Cette transaction est ouverte en appelant la méthode {{domxref("IDBFactory.open")}}  avec une version spécifiée. (Dans les navigateurs WebKit, qui n'ont pas implémenté la dernière spécification, la méthode {{domxref("IDBFactory.open")}} prend seulement un paramètre, le nom de la base de données ; Vous devez donc appeler {{domxref("IDBVersionChangeRequest.setVersion")}} pour établir la transaction versionchange.)

+ +

Pour lire les enregistrements d'un objet de stockage existant, la transaction peut être en mode readonlyou readwrite. Pour appliquer des changements à un objet de stockage existant, la transaction doit être en mode readwrite. Vous démarrez ces transactions avec {{domxref("IDBDatabase.transaction")}}. La méthode accepte deux paramètres : les storeNames (la portée, définie comme un tableau des objets de stockage auxquels vous souhaitez accéder) et le mode (readonly ou readwrite) pour la transaction. La méthode retourne un objet de transaction contenant la méthode {{domxref("IDBIndex.objectStore")}}, que vous utilisez pour accéder à votre objet de stockage. Par défaut, lorsqu'aucun mode n'est spécifié, les transactions démarrent en mode readonly.

+ +
+

Note: À partir de Firefox 40, les transactions IndexedDB ont des garanties de durabilité relachées afin d'augmenter les performances (voir {{Bug("1112702")}}.) Auparavant, lors d'une transaction readwrite {{domxref("IDBTransaction.oncomplete")}} était déclenché seulement lorsque les données étaient garanties pour une écriture sur le disque. Dans Firefox 40+ l'évènement complete est déclenché une fois que l'OS a autorisé l'écriture de données, mais potentiellement avant que les données soient réellement écrites sur le disque. L'évènement complete peut ainsi être livré plus vite qu'avant, cependant, il existe un petit risque que l'ensemble de la transaction soit perdu si l'OS s'effondre ou si un problème électrique survient avant que les données soient écrites. Comme de tels évènements catastrophiques sont rares, la plupart des utilisateurs n'ont pas à s'en soucier. Si vous devez vous assurer de la durabilité pour quelconque raison que ce soit (par exemple, vous stockez des données critiques qui ne peuvent être recalculées plus tard) vous pouvez forcer une transaction à écrire sur le disque avant que l'évènement complete ne soit délivré en créant une transaction utilisant un mode expérimental (non-standard) readwriteflush  (se référer à {{domxref("IDBDatabase.transaction")}}.

+
+ +

Vous pouvez accélérer l'accès à vos données en utilisant le bon mode et la bonne portée dans la transaction. Voici deux astuces :

+ + + +

Ajouter des données dans la base de données

+ +

Si vous venez juste de créer une base de données, alors vous souhaitez probablement écrire dedans. Voici comment ça se passe :

+ +
var transaction = db.transaction(["customers"], "readwrite");
+// Note: Les anciennes implémentations utilisent la constante dépréciée IDBTransaction.READ_WRITE au lieu de "readwrite".
+// Au cas où vous souhaitiez mettre en oeuvre ces implémentations, vous pouvez écrire :
+// var transaction = db.transaction(["customers"], IDBTransaction.READ_WRITE);
+ +

La fonction transaction() prend deux arguments (bien que l'un d'eux soit facultatif) et retourne un objet transaction. Le premier argument est une liste d'objets de stockage que la transaction va traiter. Vous pouvez passer un tableau vide si vous voulez que la transaction traite l'ensemble des objets de stockage, mais ne le faites pas, parce que la spécification indique qu'un tableau vide devrait générer une InvalidAccessError. Si vous ne spécifiez rien pour le deuxième argument, vous démarrerez une transaction "read-only" (lecture seule) . Si vous souhaitez aussi écrire, vous devrez passer l'option "readwrite" (lecture/écriture).

+ +

Maintenant que vous avez une transaction, vous devez comprendre sa durée de vie. Les transactions sont étroitement liées à la boucle de l'évènement. Si vous établissez une transaction et si vous sortez de la boucle d'évènements sans l'utiliser, alors la transaction deviendra inactive. La seule manière de garder la transaction active est d'y insérer une requête. Lorsque la requête est terminée, vous obtenez un évènement DOM, et en supposant que la requête ait réussi, vous avez une autre opportunité d'étendre la transaction durant ce "callback" (rappel). Si vous sortez de la boucle d'évènements sans étendre la transaction, alors elle devient inactive, etc… Tant qu'il reste des demandes en attente, la transaction reste active. La durée de vie des transactions est vraiment très simple, mais cela peut prendre un peu de temps de la maîtriser. Quelques exemples supplémentaires aideront. Si vous commencez à voir des codes d'erreur TRANSACTION_INACTIVE_ERR, alors vous avez raté quelque chose.

+ +

Les transactions peuvent recevoir des évènements DOM de trois types : error (erreur), abort (abandonnée) et complete (terminée). Nous avons déjà parlé du fait que les error créent des bulles, ainsi une transaction peut recevoir des évènements d'erreur venant de n'importe quelle requête l'ayant généré. Un point plus subtil ici, c'est que le comportement par défaut d'une erreur est d'abandonner la transaction là où elle a eu lieu. A moins que vous gériez l’erreur en appelant d'abord stopPropagation() sur l’évènement erreur, puis que vous fassiez quelque chose d'autre, la transaction complète sera annulée. Cette conception vous oblige à réfléchir et gérer les erreurs, mais vous pouvez toujours ajouter un gestionnaire d'erreurs "fourre-tout" à la base de données si la gestion d'erreurs fines est trop lourde. Si vous ne gérez pas un évènement d'erreur, ou si vous appelez abort() sur la transaction, alors la transaction est annulée et un évènement abort est lancé sur la transaction. Sinon, une fois que toutes les demandes en instance sont terminées, vous recevez un évènement complete. Si vous faites beaucoup d'opérations sur les bases de données, alors suivre la transaction plutôt que les requêtes individuelles, peut certainement vous aider.

+ +

Maintenant que vous avons une transaction, nous avons besoin de récupérer l'objet de stockage de celle-ci. Les transactions vous permettent seulement d'avoir l'objet de stockage que vous avez spécifié lors de la création de la transaction. Puis, vous pouvez ajouter toutes les données dont vous avez besoin.

+ +
// Faire quelque chose lorsque toutes les données sont ajoutées à la base de données.
+transaction.oncomplete = function(event) {
+  alert("All done!");
+};
+
+transaction.onerror = function(event) {
+  // N'oubliez pas de gérer les erreurs !
+};
+
+var objectStore = transaction.objectStore("customers");
+for (var i in customerData) {
+  var request = objectStore.add(customerData[i]);
+  request.onsuccess = function(event) {
+    // event.target.result == customerData[i].ssn;
+  };
+}
+ +
La méthode result d’une requête venant d'un appel à add() est la clé de la valeur qui vient d'être ajoutée. Dans ce cas, ce devrait être équivalent à la propriété ssn de l'objet qui vient d'être ajouté, puisque l'objet de stockage utilise la propriété ssn pour le key path. Notez que la fonction add() requiert qu'aucun objet déjà présent dans la base ait la même clé. Si vous essayez de modifier une entrée existante, ou si vous ne vous en occupez pas, vous pouvez utiliser la fonction put(), comme montré plus loin dans la section {{ anch("Updating an entry in the database") }}.
+ +
+ +

Supprimer des données dans la base de données

+ +

Supprimer des données est très similaire :

+ +
var request = db.transaction(["customers"], "readwrite")
+                .objectStore("customers")
+                .delete("444-44-4444");
+request.onsuccess = function(event) {
+  // c'est supprimé !
+};
+ +

Récupérer des données de la base de données

+ +

Maintenant que la base de données dispose de quelques informations, vous pouvez les récupérer de plusieurs façons. D'abord, la plus simple get(). Vous devez fournir une clé pour récupérer la valeur, comme ceci :

+ +
var transaction = db.transaction(["customers"]);
+var objectStore = transaction.objectStore("customers");
+var request = objectStore.get("444-44-4444");
+request.onerror = function(event) {
+  // gestion des erreurs!
+};
+request.onsuccess = function(event) {
+  // Faire quelque chose avec request.result !
+  alert("Name for SSN 444-44-4444 is " + request.result.name);
+};
+ +

Ça fait beaucoup de code pour une "simple" récupération. Voici comment le raccourcir un peu, en supposant que vous gériez les erreurs au niveau de la base de données :

+ +
db.transaction("customers").objectStore("customers").get("444-44-4444").onsuccess = function(event) {
+  alert("Name for SSN 444-44-4444 is " + event.target.result.name);
+};
+ +
Vous voyez comment ça fonctionne ? Comme il n'y a qu'un seul objet de stockage, vous pouvez éviter de passer une liste d'objets dont vous avez besoin dans votre transaction, et juste passer le nom comme une chaîne de caractères. Aussi, nous faisons seulement une lecture de la base, donc nous n'avons pas besoin d'une transaction "readwrite". Appeler une transaction() sans spécifier de mode nous donne une transaction "readonly". Une autre subtilité ici est que nous n'enregistrons pas l'objet de notre requête dans une variable. Comme l’évènement DOM a la requête comme cible, vous pouvez utiliser l'évènement pour récupérer la propriété result.
+ +
+ +

Vous pouvez accélérer l’accès à vos données  en limitant la portée et le mode de la transaction. Voici deux astuces :

+ + + +

Mettre à jour une entrée dans la base de données

+ +

Maintenant que nous avons récupéréré quelques données, les mettre à jour et en insérer est assez simple. Mettons à jour l’exemple précédent :

+ +
var objectStore = db.transaction(["customers"], "readwrite").objectStore("customers");
+var request = objectStore.get("444-44-4444");
+request.onerror = function(event) {
+  // Gestion des erreurs!
+};
+request.onsuccess = function(event) {
+  // On récupère l'ancienne valeur que nous souhaitons mettre à jour
+  var data = request.result;
+
+  // On met à jour ce(s) valeur(s) dans l'objet
+  data.age = 42;
+
+  // Et on remet cet objet à jour dans la base
+  var requestUpdate = objectStore.put(data);
+   requestUpdate.onerror = function(event) {
+     // Faire quelque chose avec l’erreur
+   };
+   requestUpdate.onsuccess = function(event) {
+     // Succès - la donnée est mise à jour !
+   };
+};
+ +
Ici, nous avons créé une variable objectStore et nous avons recherché un enregistrement d’un client, identifié par la valeur ssn (444-44-4444). Nous avons ensuite mis le résultat dans une variable (data), mis à jour la propriété age de cet objet, puis créé une deuxième requête (requestUpdate) pour mettre l'enregistrement du client dans l'objectStore, en écrasant la valeur précédente.
+ +
+

Note: dans ce cas, nous avons eu à spécifier une transaction readwrite puisque nous voulions écrire dans la base, et pas seulement la lire.

+
+ +

Utiliser un curseur

+ +

Utiliser get() nécessite de connaître la clé que vous souhaitez récupérer. Si vous voulez parcourir toutes les valeurs de l’objet de stockage, alors vous devez utiliser un curseur. Voici comment ça marche :

+ +
var objectStore = db.transaction("customers").objectStore("customers");
+
+objectStore.openCursor().onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    alert("Name for SSN " + cursor.key + " is " + cursor.value.name);
+    cursor.continue();
+  }
+  else {
+    alert("No more entries!");
+  }
+};
+ +

La fonction openCursor() prend en compte plusieurs arguments. En premier, vous pouvez spécifier une plage de résultats à récupérer en utilisant un objet  "key range" que nous allons voir dans une minute. En deuxième, vous pouvez spécifier la direction vers laquelle vous souhaitez itérer. Dans l’exemple ci-dessus, nous avons itéré tous les objets dans l’ordre ascendant. Le "callback" (rappel) de réussite pour les curseurs est un peu spécial. L'objet cursor lui-même est le result (résutat) de la requête (au-dessus, nous utilisons le raccourci event.target.result). Puis la clé et valeur courante peuvent être trouvées dans les propriétés key(clé)  et value (valeur) de l’objet cursor. Si vous souhaitez continuer, vous devez appeler continue() sur le curseur. Lorsque vous avez atteint la fin des données (ou s’il n’y a plus d’entrées qui correspondent à votre requête openCursor() ) , vous aurez toujours votre callback  success, mais la propriété result sera undefined.

+ +

Une utilisation classique avec les curseurs est de récupérer tous les objets dans un objet de stockage et de les mettre dans un tableau, comme ceci :

+ +
var customers = [];
+
+objectStore.openCursor().onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    customers.push(cursor.value);
+    cursor.continue();
+  }
+  else {
+    alert("Got all customers: " + customers);
+  }
+};
+ +
+

Note: Mozilla a aussi implémenté getAll() pour gérer ce cas (et getAllKeys(), qui est actuellement caché derrière la préférence dom.indexedDB.experimental  dans about:config) . ceux-ci ne font pas partie d' IndexedDB standard, et peuvent disparaître dans le futur. Nous les avons inclus partceque nous pensons qu'ils sont utiles. Le code suivant fait exactement la même chose que ci-dessus :

+ +
objectStore.getAll().onsuccess = function(event) {
+  alert("Got all customers: " + event.target.result);
+};
+ +

Il y a un coût de performance associé avec la recherche de la propriété value du curseur, parce que l'objet est créé paresseusement. Quand vous utilisez getAll() par exemple, Gecko doit créer tous les objets à la fois. Si vous êtes seulement intéressé par la lecture de chaque clé, pour l'instance, il est beaucoup plus efficace d'utiliser un curseur que getAll(). Si vous essayez d'obtenir un tableau de tous les objets d'un objet de stockage, utilisez getAll().

+
+ +

Utiliser un index

+ +

Le stockage des données des clients utilisant le SSN comme clé est logique puisque le SSN identifie un individu unique. (Que ce soit une bonne idée pour la vie privée est une question différente, et en dehors du champ de cet article). Si vous devez rechercher un client par son nom, vous devrez toutefois faire itérer sur toutes les clés SSN dans la base de données jusqu'à ce que vous trouviez la bonne. La recherche de cette manière serait très lente, alors, vous pouvez utiliser un index.

+ +
// D'abord, assurez-vous de créer un index dans request.onupgradeneeded:
+// objectStore.createIndex("name", "name");
+// Autrement, vous obtiendrez une DOMException.
+
+var index = objectStore.index("name");
+
+index.get("Donna").onsuccess = function(event) {
+  alert("Donna's SSN is " + event.target.result.ssn);
+};
+ +

Le "name" du curseur n'est pas unique, donc il pourrait y avoir plus d'une entrée avec le name attribué à  "Donna". Dans ce cas, vous obtenez toujours celui qui a la valeur clé la plus basse .

+ +

Si vous avez besoin d'accèder à toutes les entrées avec un name donné, vous pouvez utiliser un curseur. Vous pouvez ouvrir deux types différents de curseurs sur les index. Un curseur normal situe la propriété index de l'objet dans l'objet de stockage. Un curseur de clés situe la propriété index des clés utilisées pour stocker l'objet dans l'objet de stockage. Les différences sont illustrées ici :

+ +
// Utilisation d'un curseur normal pour saisir tous les enregistrements des objets client
+index.openCursor().onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // cursor.key est un nom, comme "Bill", et cursor.value est l'objet entier.
+    alert("Name: " + cursor.key + ", SSN: " + cursor.value.ssn + ", email: " + cursor.value.email);
+    cursor.continue();
+  }
+};
+
+// Utilisation d'un curseur de clés pour saisir les clés des enregistrements des objets client
+index.openKeyCursor().onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // cursor.key est un nom, comme "Bill", et cursor.value est le SSN.
+    // Pas moyen d'obtenir directement le reste de l'objet stocké .
+    alert("Name: " + cursor.key + ", SSN: " + cursor.value);
+    cursor.continue();
+  }
+};
+ +

Spécifier l'intervalle et la direction du curseur

+ +

Si vous souhaitez limiter l'intervalle de valeurs que vous voyez dans un curseur, vous pouvez utiliser un objet IDBKeyRange et le donner comme premier argument à openCursor() ou openKeyCursor() . Vous pouvez créer un intervalle de clés qui n'autorise qu'une seule clé, ou qui a des limites inférieure et supérieure, ou qui a des bornes inférieure et supérieure. La limite peut être "closed" (fermée) (c'est-à-dire que l'intervalle de clés comprend les valeurs données) ou "open" (ouverte) (c'est-à-dire que la plage de clés n'inclut pas les valeurs données. Voici comment cela fonctionne :

+ +
// Correspond seulement à "Donna"
+var singleKeyRange = IDBKeyRange.only("Donna");
+
+// Correspond à n'importe quoi contenant "Bill", y compris "Bill"
+var lowerBoundKeyRange = IDBKeyRange.lowerBound("Bill");
+
+// Correspond à n'importe quoi contenant "Bill", mais pas "Bill"
+var lowerBoundOpenKeyRange = IDBKeyRange.lowerBound("Bill", true);
+
+// Correspond à n'importe quoi, mais  "Donna" exclus.
+var upperBoundOpenKeyRange = IDBKeyRange.upperBound("Donna", true);
+
+// Correspond à n'importe quoi compris entre "Bill" et "Donna", mais "Donna" exclus.
+var boundKeyRange = IDBKeyRange.bound("Bill", "Donna", false, true);
+
+// Pour utiliser un des intervalles de clés, placez le en premier argument de openCursor()/openKeyCursor()
+index.openCursor(boundKeyRange).onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // Faire quelque chose avec la sélection.
+    cursor.continue();
+  }
+};
+ +

Parfois, vous voudrez peut-être itérer dans l'ordre décroissant plutôt que dans l'ordre croissant (la direction par défaut pour tous les curseurs). Le changement de direction est réalisé en passant prev à la fonction openCursor() antérieure comme second argument :

+ +
objectStore.openCursor(boundKeyRange, "prev").onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // Faire quelque chose avec les entrées.
+    cursor.continue();
+  }
+};
+ +

Si vous souhaitez simplement spécifier un changement de direction, mais ne pas limiter les résultats, vous pouvez simplement passer "null" comme premier argument :

+ +
objectStore.openCursor(null, "prev").onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // Faire quelque chose avec les entrées.
+    cursor.continue();
+  }
+};
+ +

Étant donné que l'index "name" n'est pas unique, il peut y avoir plusieurs entrées où le name est le même. Notez qu'une telle situation ne peut pas se produire avec les objets stockés car la clé doit toujours être unique. Si vous souhaitez filtrer les doublons pendant l'itération du curseur sur les index, vous pouvez passer nextunique (ou prevunique si vous revenez en arrière) comme paramètre de direction. Lorsque nextunique ou prevunique sont utilisés, l'entrée avec la clé la plus basse est toujours celle retournée.

+ +
index.openKeyCursor(null, "nextunique").onsuccess = function(event) {
+  var cursor = event.target.result;
+  if (cursor) {
+    // Faire quelque chose avec les entrées.
+    cursor.continue();
+  }
+};
+ +

Voyez "IDBCursor Constants" pour les arguments de direction valides.

+ +

La version change alors qu'une application Web est ouverte dans un autre onglet

+ +

Lorsque votre application Web change de telle sorte qu'une modification de version est nécessaire pour votre base de données, vous devez considérer ce qui se passe si l'utilisateur a l'ancienne version de votre application ouverte dans un onglet, puis charge la nouvelle version de votre application dans une autre . Lorsque vous appelez open() avec une version plus grande que la version actuelle de la base de données, toutes les autres bases de données ouvertes doivent reconnaître explicitement la demande avant de commencer à modifier la base de données (un événement onblocked  (bloqué) est déclenché jusqu'à ce qu'elles soient fermées ou rechargées). Voici comment cela fonctionne :

+ +
var openReq = mozIndexedDB.open("MyTestDatabase", 2);
+
+openReq.onblocked = function(event) {
+  //  Si un autre onglet est chargé avec la base de données, il doit être fermé 
+  // avant que nous puissions continuer.
+  alert("Veuillez fermer tous les ongles ouverts sur ce site!");
+};
+
+openReq.onupgradeneeded = function(event) {
+  // Toutes les autres bases de données ont été fermées. Tout régler.
+  db.createObjectStore(/* ... */);
+  useDatabase(db);
+}
+
+openReq.onsuccess = function(event) {
+  var db = event.target.result;
+  useDatabase(db);
+  return;
+}
+
+function useDatabase(db) {
+  // Assurez-vous d'ajouter un gestionnaire pour être averti si une autre page demande 
+  // un changement de version. Nous devons fermer la base de données. 
+  // Cela permet à l'autre page de mettre à niveau la base de données. 
+  //  Si vous ne le faites pas, la mise à niveau ne se produira que lorsque l'utilisateur fermera l'onglet .
+  db.onversionchange = function(event) {
+    db.close();
+    alert("A new version of this page is ready. Please reload!");
+  };
+
+  //  Faire quelque chose avec la base de données .
+}
+ +

Vous devriez également écouter les erreurs VersionError pour gérer le cas où les applications déjà ouvertes déclencheraient un code conduisant à une nouvelle tentative d'ouverture de la base de données, mais en utilisant une version désuète.

+ +

Sécurité

+ +

IndexedDB utilise le principe " same-origin " (même origine), ce qui signifie qu'il relie le stockage à l'origine du site qui le crée (généralement, c'est le domaine ou le sous-domaine du site), de sorte qu'il ne peut être consulté par aucune autre origine.

+ +

Le contenu de la fenêtre de tiers (par exemple le contenu de {{htmlelement("iframe")}}) peut accèder à IndexedDB pour l'origine dans laquelle il est intégré, à moins que le navigateur ne soit configuré pour ne jamais accepter de cookies tiers (voir le {{bug("1147821")}}).

+ +

Avertissement concernant l'arrêt du navigateur

+ +

Lorsque le navigateur s'arrête (parce que l'utilisateur a choisi l'option Quit ou Exit), le disque contenant la base de données est supprimé de manière inattendue ou les permissions sont perdues dans le magasin de base de données, les choses suivantes se produisent :

+ +
    +
  1. Chaque transaction sur chaque base de données affectée (ou toutes les bases de données ouvertes, dans le cas de l'arrêt du navigateur) est interrompue avec un AbortError. L'effet est le même que si {{domxref("IDBTransaction.abort()")}} est appelé sur chaque transaction.
  2. +
  3. Une fois toutes les transactions terminées, la connexion à la base de données est fermée .
  4. +
  5. Enfin, l'objet {{domxref("IDBDatabase")}} représentant la connexion à la base de données reçoit un évènement {{event("close")}} . Vous pouvez utiliser un gestionnaire d'évènements  {{domxref("IDBDatabase.onclose")}} pour écouter ces évènements, afin de savoir quand une base de données est fermée de façon inattendue .
  6. +
+ +

Le comportement décrit ci-dessus est nouveau et n'est disponible que pour les versions de navigateur suivantes : Firefox 50, Google Chrome 31 (approximativement).

+ +

Avant ces versions de navigateurs, les transactions étaient interrompues silencieusement et aucun événement {{event ("close")}} n'était déclenché, donc il n'y avait aucun moyen de détecter une fermeture de base de données inattendue.

+ +

Étant donné que l'utilisateur peut quitter le navigateur à tout moment, cela signifie que vous ne pouvez pas compter sur une transaction particulière à compléter, et sur les navigateurs plus anciens, vous n'êtes même pas informé quand elles ne sont pas terminées. Il y a plusieurs conséquences à ce comportement.

+ +

Tout d'abord, vous devez vous occuper de toujours laisser votre base de données dans un état cohérent à la fin de chaque transaction. Par exemple, supposons que vous utilisiez IndexedDB pour stocker une liste d'éléments que l'utilisateur est autorisé à éditer. Vous enregistrez la liste après l'édition en effaçant l'objet de stockage puis en écrivant la nouvelle liste. Si vous effacez l'objet de stockage dans une transaction et que vous écrivez la nouvelle liste dans une autre transaction, il existe un danger : si le navigateur se ferme après l'effacement mais avant l'écriture, votre base de données est  vide. Pour éviter cela, vous devez combiner l'effacement et l'écriture en une seule transaction.

+ +

Ensuite, vous ne devez jamais lier les transactions de base de données pour les événements unload (déchargement). Si l'événement unload est déclenché par la fermeture du navigateur, toutes les transactions créées dans le gestionnaire d'événements unload ne seront jamais terminées. Une approche intuitive, pour le maintien de certaines informations dans les sessions du navigateur, est de le lire à partir de la base de données, lorsque le navigateur (ou une page particulière) est ouvert, le mettre à jour à mesure que l'utilisateur interagit avec le navigateur, puis l'enregistrer dans la base de données lorsque le navigateur ( ou page) se ferme. Cependant, cela ne fonctionne pas. Les transactions de la base de données sont créées dans le gestionnaire d'événements unload, mais comme elles sont asynchrones, elles sont interrompues avant qu'elles puissent s'exécuter.

+ +

En fait, il n'y a aucun moyen de garantir que les transactions IndexedDB seront terminées, même avec un arrêt normal du navigateur. Voir {{bug (870645)}}. Comme solution de rechange pour cette notification d'arrêt normal, vous pouvez suivre vos transactions et ajouter un événement beforeunload pour avertir l'utilisateur si des transactions ne sont pas encore terminées au moment du déchargement.

+ +

Au-moins, avec l'ajout des notifications d'annulation et {{domxref ("IDBDatabase.onclose")}}, vous pouvez savoir quand cela s'est produit.

+ +

Le tri et les langues

+ +

Mozilla a implémenté la capacité d'effectuer un tri des données IndexedDB localisées sur Firefox 43+. Par défaut, IndexedDB n'a pas pris en charge l'internationalisation des chaînes de tri, et était trié comme s'il s'agissait d'un texte anglais. Par exemple, "b", "á", "z", "a" devaient être triés comme suit :

+ + + +

ce qui n'est évidemment pas la façon dont les utilisateurs souhaitent que leurs données soient triées - Aaron et Áaron, par exemple, doivent aller l'un à côté de l'autre dans une liste de contacts. L'obtention d'un tri international approprié exige donc que l'ensemble des données soit appelé dans la mémoire et que le tri soit exécuté par le JavaScript côté client, ce qui n'est pas très efficace.

+ +

Cette nouvelle fonctionnalité permet aux développeurs de spécifier une "locale" (langue) lors de la création d'un index en utilisant {{domxref("IDBObjectStore.createIndex()")}} (vérifiez ses paramètres). Dans ce cas, lorsqu'un curseur est utilisé pour itérer sur l'ensemble de données , et si vous souhaitez spécifier un tri local, vous pouvez utiliser un {{domxref ("IDBLocaleAwareKeyRange")}}.

+ +

{{domxref("IDBIndex")}} a également eu de nouvelles propriétés qui lui ont été ajoutées pour spécifier la langue : locale (retourne la langue si elle est spécifiée, ou null sinon) et isAutoLocale (retourne true (vrai) si l'index a été créé avec une "locale auto", ce qui signifie que la langue par défaut de la plate-forme est utilisée, sinon false).

+ +
+

Note : Cette fonctionnalité est couramment cachée derrière une marque (flag) — pour l'activer et l'expérimenter, aller à about:config et activez dom.indexedDB.experimental.

+
+ +

Exemple complet d'IndexedDB

+ +

HTML Content

+ +
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+
+    <h1>IndexedDB Demo: storing blobs, e-publication example</h1>
+    <div class="note">
+      <p>
+        Works and tested with:
+      </p>
+      <div id="compat">
+      </div>
+    </div>
+
+    <div id="msg">
+    </div>
+
+    <form id="register-form">
+      <table>
+        <tbody>
+          <tr>
+            <td>
+              <label for="pub-title" class="required">
+                Title:
+              </label>
+            </td>
+            <td>
+              <input type="text" id="pub-title" name="pub-title" />
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <label for="pub-biblioid" class="required">
+                Bibliographic ID:<br/>
+                <span class="note">(ISBN, ISSN, etc.)</span>
+              </label>
+            </td>
+            <td>
+              <input type="text" id="pub-biblioid" name="pub-biblioid"/>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <label for="pub-year">
+                Year:
+              </label>
+            </td>
+            <td>
+              <input type="number" id="pub-year" name="pub-year" />
+            </td>
+          </tr>
+        </tbody>
+        <tbody>
+          <tr>
+            <td>
+              <label for="pub-file">
+                File image:
+              </label>
+            </td>
+            <td>
+              <input type="file" id="pub-file"/>
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <label for="pub-file-url">
+                Online-file image URL:<br/>
+                <span class="note">(same origin URL)</span>
+              </label>
+            </td>
+            <td>
+              <input type="text" id="pub-file-url" name="pub-file-url"/>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+
+      <div class="button-pane">
+        <input type="button" id="add-button" value="Add Publication" />
+        <input type="reset" id="register-form-reset"/>
+      </div>
+    </form>
+
+    <form id="delete-form">
+      <table>
+        <tbody>
+          <tr>
+            <td>
+              <label for="pub-biblioid-to-delete">
+                Bibliographic ID:<br/>
+                <span class="note">(ISBN, ISSN, etc.)</span>
+              </label>
+            </td>
+            <td>
+              <input type="text" id="pub-biblioid-to-delete"
+                     name="pub-biblioid-to-delete" />
+            </td>
+          </tr>
+          <tr>
+            <td>
+              <label for="key-to-delete">
+                Key:<br/>
+                <span class="note">(for example 1, 2, 3, etc.)</span>
+              </label>
+            </td>
+            <td>
+              <input type="text" id="key-to-delete"
+                     name="key-to-delete" />
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div class="button-pane">
+        <input type="button" id="delete-button" value="Delete Publication" />
+        <input type="button" id="clear-store-button"
+               value="Clear the whole store" class="destructive" />
+      </div>
+    </form>
+
+    <form id="search-form">
+      <div class="button-pane">
+        <input type="button" id="search-list-button"
+               value="List database content" />
+      </div>
+    </form>
+
+    <div>
+      <div id="pub-msg">
+      </div>
+      <div id="pub-viewer">
+      </div>
+      <ul id="pub-list">
+      </ul>
+    </div>
+ +

CSS Content

+ +
body {
+  font-size: 0.8em;
+  font-family: Sans-Serif;
+}
+
+form {
+  background-color: #cccccc;
+  border-radius: 0.3em;
+  display: inline-block;
+  margin-bottom: 0.5em;
+  padding: 1em;
+}
+
+table {
+  border-collapse: collapse;
+}
+
+input {
+  padding: 0.3em;
+  border-color: #cccccc;
+  border-radius: 0.3em;
+}
+
+.required:after {
+  content: "*";
+  color: red;
+}
+
+.button-pane {
+  margin-top: 1em;
+}
+
+#pub-viewer {
+  float: right;
+  width: 48%;
+  height: 20em;
+  border: solid #d092ff 0.1em;
+}
+#pub-viewer iframe {
+  width: 100%;
+  height: 100%;
+}
+
+#pub-list {
+  width: 46%;
+  background-color: #eeeeee;
+  border-radius: 0.3em;
+}
+#pub-list li {
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+  padding-right: 0.5em;
+}
+
+#msg {
+  margin-bottom: 1em;
+}
+
+.action-success {
+  padding: 0.5em;
+  color: #00d21e;
+  background-color: #eeeeee;
+  border-radius: 0.2em;
+}
+
+.action-failure {
+  padding: 0.5em;
+  color: #ff1408;
+  background-color: #eeeeee;
+  border-radius: 0.2em;
+}
+
+.note {
+  font-size: smaller;
+}
+
+.destructive {
+  background-color: orange;
+}
+.destructive:hover {
+  background-color: #ff8000;
+}
+.destructive:active {
+  background-color: red;
+}
+ +

JavaScript Content

+ +
(function () {
+  var COMPAT_ENVS = [
+    ['Firefox', ">= 16.0"],
+    ['Google Chrome',
+     ">= 24.0 (you may need to get Google Chrome Canary), NO Blob storage support"]
+  ];
+  var compat = $('#compat');
+  compat.empty();
+  compat.append('<ul id="compat-list"></ul>');
+  COMPAT_ENVS.forEach(function(val, idx, array) {
+    $('#compat-list').append('<li>' + val[0] + ': ' + val[1] + '</li>');
+  });
+
+  const DB_NAME = 'mdn-demo-indexeddb-epublications';
+  const DB_VERSION = 1; //  Utilisez un "long long" pour cette valeur (ne pas utiliser un flottant (float)) 
+  const DB_STORE_NAME = 'publications';
+
+  var db;
+
+  //  Utilisé pour garder une trace de la vue affichée pour éviter de la recharger inutilement
+  var current_view_pub_key;
+
+  function openDb() {
+    console.log("openDb ...");
+    var req = indexedDB.open(DB_NAME, DB_VERSION);
+    req.onsuccess = function (evt) {
+      //  Le mieux utiliser "this" que "req" pour obtenir le résultat et éviter  
+      // les problèmes avec "garbage collection".
+      // db = req.result;
+      db = this.result;
+      console.log("openDb DONE");
+    };
+    req.onerror = function (evt) {
+      console.error("openDb:", evt.target.errorCode);
+    };
+
+    req.onupgradeneeded = function (evt) {
+      console.log("openDb.onupgradeneeded");
+      var store = evt.currentTarget.result.createObjectStore(
+        DB_STORE_NAME, { keyPath: 'id', autoIncrement: true });
+
+      store.createIndex('biblioid', 'biblioid', { unique: true });
+      store.createIndex('title', 'title', { unique: false });
+      store.createIndex('year', 'year', { unique: false });
+    };
+  }
+
+  /**
+   * @paramètre {string}(chaîne de caractères) store_name
+   * @paramètre {string}(chaîne de caractères) mode either "readonly" ou "readwrite"
+   */
+  function getObjectStore(store_name, mode) {
+    var tx = db.transaction(store_name, mode);
+    return tx.objectStore(store_name);
+  }
+
+  function clearObjectStore(store_name) {
+    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
+    var req = store.clear();
+    req.onsuccess = function(evt) {
+      displayActionSuccess("Store cleared");
+      displayPubList(store);
+    };
+    req.onerror = function (evt) {
+      console.error("clearObjectStore:", evt.target.errorCode);
+      displayActionFailure(this.error);
+    };
+  }
+
+  function getBlob(key, store, success_callback) {
+    var req = store.get(key);
+    req.onsuccess = function(evt) {
+      var value = evt.target.result;
+      if (value)
+        success_callback(value.blob);
+    };
+  }
+
+  /**
+   * @paramètre objet de stockage {IDBObjectStore=}
+   */
+  function displayPubList(store) {
+    console.log("displayPubList");
+
+    if (typeof store == 'undefined')
+      store = getObjectStore(DB_STORE_NAME, 'readonly');
+
+    var pub_msg = $('#pub-msg');
+    pub_msg.empty();
+    var pub_list = $('#pub-list');
+    pub_list.empty();
+    //  Réinitialisation de l'iframe afin qu'il n'indique pas le contenu précédent 
+    newViewerFrame();
+
+    var req;
+    req = store.count();
+    // Les requêtes sont exécutées dans l'ordre où elles ont été faites en-dehors de la 
+    // transaction,  et leurs résultats sont retournés dans le même ordre. 
+    // Ainsi, le texte du compteur ci-dessous sera affiché avant la liste de pub actuelle 
+    // (ce n'est pas algorithmiquement important dans ce cas) .
+    req.onsuccess = function(evt) {
+      pub_msg.append('<p>There are <strong>' + evt.target.result +
+                     '</strong> record(s) in the object store.</p>');
+    };
+    req.onerror = function(evt) {
+      console.error("add error", this.error);
+      displayActionFailure(this.error);
+    };
+
+    var i = 0;
+    req = store.openCursor();
+    req.onsuccess = function(evt) {
+      var cursor = evt.target.result;
+
+      //  Si le curseur pointe vers quelque chose, demandez les données 
+      if (cursor) {
+        console.log("displayPubList cursor:", cursor);
+        req = store.get(cursor.key);
+        req.onsuccess = function (evt) {
+          var value = evt.target.result;
+          var list_item = $('<li>' +
+                            '[' + cursor.key + '] ' +
+                            '(biblioid: ' + value.biblioid + ') ' +
+                            value.title +
+                            '</li>');
+          if (value.year != null)
+            list_item.append(' - ' + value.year);
+
+          if (value.hasOwnProperty('blob') &&
+              typeof value.blob != 'undefined') {
+            var link = $('<a href="' + cursor.key + '">File</a>');
+            link.on('click', function() { return false; });
+            link.on('mouseenter', function(evt) {
+                      setInViewer(evt.target.getAttribute('href')); });
+            list_item.append(' / ');
+            list_item.append(link);
+          } else {
+            list_item.append(" / No attached file");
+          }
+          pub_list.append(list_item);
+        };
+
+        //  Passer à l'objet de stockage suivant
+        cursor.continue();
+
+        // Ce compteur sert seulement à créer des identifiants distincts
+        i++;
+      } else {
+        console.log("No more entries");
+      }
+    };
+  }
+
+  function newViewerFrame() {
+    var viewer = $('#pub-viewer');
+    viewer.empty();
+    var iframe = $('<iframe />');
+    viewer.append(iframe);
+    return iframe;
+  }
+
+  function setInViewer(key) {
+    console.log("setInViewer:", arguments);
+    key = Number(key);
+    if (key == current_view_pub_key)
+      return;
+
+    current_view_pub_key = key;
+
+    var store = getObjectStore(DB_STORE_NAME, 'readonly');
+    getBlob(key, store, function(blob) {
+      console.log("setInViewer blob:", blob);
+      var iframe = newViewerFrame();
+
+      // Il n'est pas possible de définir un lien direct vers 
+      // le blob pour fournir un moyen de le télécharger directement. 
+      if (blob.type == 'text/html') {
+        var reader = new FileReader();
+        reader.onload = (function(evt) {
+          var html = evt.target.result;
+          iframe.load(function() {
+            $(this).contents().find('html').html(html);
+          });
+        });
+        reader.readAsText(blob);
+      } else if (blob.type.indexOf('image/') == 0) {
+        iframe.load(function() {
+          var img_id = 'image-' + key;
+          var img = $('<img id="' + img_id + '"/>');
+          $(this).contents().find('body').html(img);
+          var obj_url = window.URL.createObjectURL(blob);
+          $(this).contents().find('#' + img_id).attr('src', obj_url);
+          window.URL.revokeObjectURL(obj_url);
+        });
+      } else if (blob.type == 'application/pdf') {
+        $('*').css('cursor', 'wait');
+        var obj_url = window.URL.createObjectURL(blob);
+        iframe.load(function() {
+          $('*').css('cursor', 'auto');
+        });
+        iframe.attr('src', obj_url);
+        window.URL.revokeObjectURL(obj_url);
+      } else {
+        iframe.load(function() {
+          $(this).contents().find('body').html("No view available");
+        });
+      }
+
+    });
+  }
+
+  /**
+   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
+   * @paramètre {string} (chaîne de caractères) title (titre)
+   * @paramètre {number} (nombre) year (année)
+   * @paramètre {string} (chaîne de caractères) url : l'URL de l'image à télécharger et stocker sur le pc
+   *   IndexedDB database. La ressource derrière cette URL assujettie à
+   *   "Same origin policy", donc pour que cette méthode fonctionne, l'URL doit venir de
+   *   la même origine que le site web/l'application sur lequel le code est déployé.
+   */
+  function addPublicationFromUrl(biblioid, title, year, url) {
+    console.log("addPublicationFromUrl:", arguments);
+
+    var xhr = new XMLHttpRequest();
+    xhr.open('GET', url, true);
+    //  Définir le type de réponse recherché à "blob" 
+    // http://www.w3.org/TR/XMLHttpRequest2/#the-response-attribute
+    xhr.responseType = 'blob';
+    xhr.onload = function (evt) {
+                           if (xhr.status == 200) {
+                             console.log("Blob retrieved");
+                             var blob = xhr.response;
+                             console.log("Blob:", blob);
+                             addPublication(biblioid, title, year, blob);
+                           } else {
+                             console.error("addPublicationFromUrl error:",
+                                           xhr.responseText, xhr.status);
+                           }
+                         };
+    xhr.send();
+
+    // Nous ne pouvons pas utiliser jQuery ici car, à partir de jQuery 1.8.3, 
+    // le nouveau "blob" responseType n'est pas géré.
+    // http://bugs.jquery.com/ticket/11461
+    // http://bugs.jquery.com/ticket/7248
+    // $.ajax({
+    //   url: url,
+    //   type: 'GET',
+    //   xhrFields: { responseType: 'blob' },
+    //   success: function(data, textStatus, jqXHR) {
+    //     console.log("Blob retrieved");
+    //     console.log("Blob:", data);
+    //     // addPublication(biblioid, title, year, data);
+    //   },
+    //   error: function(jqXHR, textStatus, errorThrown) {
+    //     console.error(errorThrown);
+    //     displayActionFailure("Error during blob retrieval");
+    //   }
+    // });
+  }
+
+  /**
+   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
+   * @paramètre {string} (chaîne de caractères) title (titre)
+   * @paramètre {number} (nombre) year (année)
+   * @paramètre {Blob=} blob
+   */
+  function addPublication(biblioid, title, year, blob) {
+    console.log("addPublication arguments:", arguments);
+    var obj = { biblioid: biblioid, title: title, year: year };
+    if (typeof blob != 'undefined')
+      obj.blob = blob;
+
+    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
+    var req;
+    try {
+      req = store.add(obj);
+    } catch (e) {
+      if (e.name == 'DataCloneError')
+        displayActionFailure("This engine doesn't know how to clone a Blob, " +
+                             "use Firefox");
+      throw e;
+    }
+    req.onsuccess = function (evt) {
+      console.log("Insertion in DB successful");
+      displayActionSuccess();
+      displayPubList(store);
+    };
+    req.onerror = function() {
+      console.error("addPublication error", this.error);
+      displayActionFailure(this.error);
+    };
+  }
+
+  /**
+   * @paramètre {string} (chaîne de caractères) biblioid (identifiant bibliothèque)
+   */
+  function deletePublicationFromBib(biblioid) {
+    console.log("deletePublication:", arguments);
+    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
+    var req = store.index('biblioid');
+    req.get(biblioid).onsuccess = function(evt) {
+      if (typeof evt.target.result == 'undefined') {
+        displayActionFailure("No matching record found");
+        return;
+      }
+      deletePublication(evt.target.result.id, store);
+    };
+    req.onerror = function (evt) {
+      console.error("deletePublicationFromBib:", evt.target.errorCode);
+    };
+  }
+
+  /**
+   * @paramètre {number} (nombre) key (clé)
+   * @paramètre {IDBObjectStore=} store (objet de stockage)
+   */
+  function deletePublication(key, store) {
+    console.log("deletePublication:", arguments);
+
+    if (typeof store == 'undefined')
+      store = getObjectStore(DB_STORE_NAME, 'readwrite');
+
+    // Selon les spécifications http://www.w3.org/TR/IndexedDB/#object-store-deletion-operation
+    // le résultat de l'objet de stockage, l'algorithme de l'opération de suppression est
+    // "undefined" (indéfini), donc il n'est pas possible de savoir si certains enregistrements
+    // ont été effectivement supprimés en lisant le résultat de la requête.
+    var req = store.get(key);
+    req.onsuccess = function(evt) {
+      var record = evt.target.result;
+      console.log("record:", record);
+      if (typeof record == 'undefined') {
+        displayActionFailure("No matching record found");
+        return;
+      }
+      // Attention:  La même clé utilisée pour la création doit être transmise pour 
+      // la suppression.  Si la clé était un nombre pour la création, elle doit
+      // être un nombre pour la suppression.
+      req = store.delete(key);
+      req.onsuccess = function(evt) {
+        console.log("evt:", evt);
+        console.log("evt.target:", evt.target);
+        console.log("evt.target.result:", evt.target.result);
+        console.log("delete successful");
+        displayActionSuccess("Deletion successful");
+        displayPubList(store);
+      };
+      req.onerror = function (evt) {
+        console.error("deletePublication:", evt.target.errorCode);
+      };
+    };
+    req.onerror = function (evt) {
+      console.error("deletePublication:", evt.target.errorCode);
+      };
+  }
+
+  function displayActionSuccess(msg) {
+    msg = typeof msg != 'undefined' ? "Success: " + msg : "Success";
+    $('#msg').html('<span class="action-success">' + msg + '</span>');
+  }
+  function displayActionFailure(msg) {
+    msg = typeof msg != 'undefined' ? "Failure: " + msg : "Failure";
+    $('#msg').html('<span class="action-failure">' + msg + '</span>');
+  }
+  function resetActionStatus() {
+    console.log("resetActionStatus ...");
+    $('#msg').empty();
+    console.log("resetActionStatus DONE");
+  }
+
+  function addEventListeners() {
+    console.log("addEventListeners");
+
+    $('#register-form-reset').click(function(evt) {
+      resetActionStatus();
+    });
+
+    $('#add-button').click(function(evt) {
+      console.log("add ...");
+      var title = $('#pub-title').val();
+      var biblioid = $('#pub-biblioid').val();
+      if (!title || !biblioid) {
+        displayActionFailure("Required field(s) missing");
+        return;
+      }
+      var year = $('#pub-year').val();
+      if (year != '') {
+        // Le mieux est d'utiliser Number.isInteger si le moteur a EcmaScript 6
+        if (isNaN(year))  {
+          displayActionFailure("Invalid year");
+          return;
+        }
+        year = Number(year);
+      } else {
+        year = null;
+      }
+
+      var file_input = $('#pub-file');
+      var selected_file = file_input.get(0).files[0];
+      console.log("selected_file:", selected_file);
+      // Garder une référence sur la façon de réinitialiser l'entrée du fichier dans l'interface
+      // utilisateur une fois que nous avons sa valeur, mais au lieu de faire cela nous utiliserons
+      // plutôt un type "reset" entré dans le formulaire HTML .
+      // file_input.val(null);
+      var file_url = $('#pub-file-url').val();
+      if (selected_file) {
+        addPublication(biblioid, title, year, selected_file);
+      } else if (file_url) {
+        addPublicationFromUrl(biblioid, title, year, file_url);
+      } else {
+        addPublication(biblioid, title, year);
+      }
+
+    });
+
+    $('#delete-button').click(function(evt) {
+      console.log("delete ...");
+      var biblioid = $('#pub-biblioid-to-delete').val();
+      var key = $('#key-to-delete').val();
+
+      if (biblioid != '') {
+        deletePublicationFromBib(biblioid);
+      } else if (key != '') {
+        // Le mieux est d'utiliser Number.isInteger si le moteur a EcmaScript 6
+        if (key == '' || isNaN(key))  {
+          displayActionFailure("Invalid key");
+          return;
+        }
+        key = Number(key);
+        deletePublication(key);
+      }
+    });
+
+    $('#clear-store-button').click(function(evt) {
+      clearObjectStore();
+    });
+
+    var search_button = $('#search-list-button');
+    search_button.click(function(evt) {
+      displayPubList();
+    });
+
+  }
+
+  openDb();
+  addEventListeners();
+
+})(); // Immediately-Invoked Function Expression (IIFE)
+ +

{{ LiveSampleLink('Full_IndexedDB_example', "Test the online live demo") }}

+ +

Voir aussi

+ +

Référence :

+ + + +

Tutoriels :

+ + + +

Bibliothèques :

+ + diff --git a/files/fr/web/api/media_streams_api/index.html b/files/fr/web/api/media_streams_api/index.html new file mode 100644 index 0000000000..6722bc8885 --- /dev/null +++ b/files/fr/web/api/media_streams_api/index.html @@ -0,0 +1,85 @@ +--- +title: API MediaStream +slug: WebRTC/MediaStream_API +tags: + - API + - Audio + - Media + - Overview +translation_of: Web/API/Media_Streams_API +--- +
{{DefaultAPISidebar("Media Capture and Streams")}}
+ +

L'API Processing MediaStream, souvent appelée Media Stream API ou Stream API, est la partie de WebRTC décrivant un flux de données audio ou vidéo, les méthodes pour les manipuler, les contraintes associées au type de données, les erreurs et succès des callbacks avec les données asynchrones, et les évènements déclenchés durant le processus.

+ +

Concepts de base

+ +

L'API est basée sur la manipulation de l'objet {{domxref("MediaStream")}} représentant un flux de données audio ou vidéo. Typiquement, un {{domxref("MediaStream")}} est une simple chaine URL qui peut être utilisée pour référencer une donnée stockée dans un {{domxref("File")}} DOM, ou un objet {{domxref("Blob")}} crée avec {{domxref("window.URL.createObjectURL()")}}, tel que décrit dans cette vidéo.

+ +

Un {{domxref("MediaStream")}} consiste en zéro ou plus objets {{domxref("MediaStreamTrack")}}, représentant différentes pistes audio ou vidéos. Chaque {{domxref("MediaStreamTrack")}} peut avoir un ou plusieurs canal. Le canal représente la plus petite unité d'un flux média, tel un signal audio d'un haut-parleur, séparé en gauche et droite sur une piste audio en stéréo.

+ +

Les objets {{domxref("MediaStream")}} ont une seule entrée et une seule sortie. Un objet {{domxref("MediaStream")}} généré par getUserMedia() est dit local, et sa source d'entrée provient de l'une des caméra ou microphone de l'utilisateur. Un objet {{domxref("MediaStream")}} non local peut représenter un média tel que {{HTMLElement("video")}} ou {{HTMLElement("audio")}}, un flux provenant du réseau et obtenu via l'API WebRTC PeerConnection, ou un flux créé en utilisant l'API Web Audio {{domxref("MediaStreamAudioSourceNode")}}. La sortie d'un objet {{domxref("MediaStream")}} est liée à un consommateur. Elle peut-être un élément média tel que {{HTMLElement("audio")}} ou {{HTMLElement("video")}}, l'API WebRTC PeerConnection ou l'API Web Audio {{domxref("MediaStreamAudioDestinationNode")}}.

+ +

Interfaces

+ +

Dans ces articles de référence, on trouvera les informations fondamentales sur les différentes interfaces qui composent l'API Media Capture and Streams API.

+ +
+ +
+ +

Les premières versions de la spécification pour Media Capture and Streams API incluaient des interfaces séparées AudioStreamTrack et VideoStreamTrack, chacunes basées sur {{domxref("MediaStreamTrack")}} et qui représentaient des types de flux différents. Celles-ci n'existent plus et il faut utiliser MediaStreamTrack directement à la place.

+ +

Évènements

+ +
+ +
+ +

Guides et tutorials

+ +

Les articles qui suivent fournissent des manuels et guides pour utiliser cette API et réaliser des certaines tâches avec elle.

+ +

{{LandingPageListSubpages}}

+ +

Compatibilité des navigateurs

+ + + +

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

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/namelist/index.html b/files/fr/web/api/namelist/index.html deleted file mode 100644 index 9003767ee3..0000000000 --- a/files/fr/web/api/namelist/index.html +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: NameList -slug: Web/API/NameList -tags: - - API - - DOM - - Obsolete -translation_of: Web/API/NameList ---- -
{{APIRef("DOM")}} {{ obsolete_header("10.0") }}
- -
-

Note: Bien que cette interface ait été précédemment implémentée dans Gecko, il n'y avait aucun moyen d'en créer une. NameList a été supprimé, en vigueur avec {{ Gecko("10.0") }}

-
- -

L'interface NameList fournit une abstraction pour une collection ordonnée de paires de valeurs de nom et d'espace de noms. Les éléments sont accessibles par un index basé sur 0. La spécification DOM ne spécifie pas comment la collection doit être implémentée.

- -

Propriétés

- -
-
{{domxref("NameList.length")}} {{readonlyInline}}
-
- -

Méthodes

- -
-
{{domxref("NameList.contains()")}}
-
Renvoie un {{jsxref("Boolean")}}.
-
{{domxref("NameList.containsNS()")}}
-
Renvoie un {{jsxref("Boolean")}}.
-
{{domxref("NameList.getName()")}}
-
Renvoie un {{domxref("DOMString")}}.
-
{{domxref("NameList.getNamespaceURI()")}}
-
Renvoie un {{domxref("DOMString")}}.
-
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName("DOM3 Core", "core.html#NameList", "NameList")}}{{Spec2("DOM3 Core")}}Définition initiale.
diff --git a/files/fr/web/api/navigator/getusermedia/index.html b/files/fr/web/api/navigator/getusermedia/index.html new file mode 100644 index 0000000000..44921a5d48 --- /dev/null +++ b/files/fr/web/api/navigator/getusermedia/index.html @@ -0,0 +1,194 @@ +--- +title: NavigatorUserMedia.getUserMedia() +slug: NavigatorUserMedia.getUserMedia +tags: + - API + - Deprecated + - Media + - WebRTC + - getusermedia +translation_of: Web/API/Navigator/getUserMedia +--- +
{{APIRef("Media Capture and Streams")}}{{deprecated_header}}
+ +

La fonction obsolète Navigator.getUserMedia() demande à l'utilisateur la permission d'utiliser une entrée vidéo (ex: une webcam ou un écran partagé) ou audio (ex: un microphone) de l'utilisateur.

+ +

Si ce dernier l'autorise, un {{domxref("MediaStream")}} est transmis au callback spécifié, il contient les pistes audio et/ou vidéo des entrées autorisées. Si l'utilisateur refuse l'accès, que le périphérique n'existe pas, ou qu'une erreur quelconque se produit, le callback d'erreur est alors exécuté avec comme paramètre un objet {{domxref("MediaStreamError")}}, il décrit l'erreur qui vient de se produire. Si l'utilisateur ne fait aucun choix, aucun callback n'est exécuté.

+ +
+

Il s'agit d'une ancienne méthode, veuillez utiliser la méthode {{domxref("MediaDevices.getUserMedia", "navigator.mediaDevices.getUserMedia()")}} à la place. Bien qu'elle ne soit pas techniquement obsolète, l'utilisation de callbacks l'est, les spécifications encouragent fortamment l'utilisation de la nouvelle version avec {{jsxref("promise", "promesses")}}.

+
+ +

Syntaxe

+ +
navigator.getUserMedia(constraints, successCallback, errorCallback);
+ +

Paramètres

+ +
+
constraints
+
Un objet {{domxref("MediaStreamConstraints")}} spécifiant les types de médias que vous souhaitez recevoir, ainsi que les contraintes pour chaque type de média. Pour plus de détails, voir la section constraints de la méthode {{domxref("MediaDevices.getUserMedia()")}}, ainsi que l'article Capacités, constraintes, et configurations.
+
successCallback
+
Une fonction qui est invoquée lorsque la demande d'accès aux entrées média est acceptée. Cette fonction est appellée avec un paramètre: l'objet {{domxref("MediaStream")}} qui contient les flux de médias. Votre callback peut assigner le stream l'objet que vous désirez (ex: un élément {{HTMLElement("audio")}} ou {{HTMLElement("video")}}), comme dans l'exemple suivant: +
function(stream) {
+   var video = document.querySelector('video');
+   video.src = window.URL.createObjectURL(stream);
+   video.onloadedmetadata = function(e) {
+      // Do something with the video here.
+   };
+}
+
+
+
errorCallback
+
Lorsque l'appel échoue, la fonction spécifiée dans errorCallback est appelée avec comme seul argument l'objet {{domxref("MediaStreamError")}}. Cet objet ressemble à {{domxref("DOMException")}}. Voir {anch("Erreurs")}} plus bas sur cette page pour voir quelle erreur peut arriver.
+
+ +

Valeur de retour

+ +

{{domxref("undefined")}}.

+ +

Erreurs

+ +

{{page("/fr/docs/Web/API/MediaDevices/getUserMedia", "Errors")}}

+ +

Exemples

+ +

Largeur et hauteur

+ +

Voici un exemple de l'utilisation de getUserMedia(), avec les différentes mises en oeuvres pour couvrir les préfixes navigateurs. Remarquez que ceci est la façon dépréciée de procéder. Regardez les exemples sous la section {{domxref("MediaDevices.getUserMedia()")}} pour les exemples modernes.

+ +
navigator.getUserMedia = navigator.getUserMedia ||
+                         navigator.webkitGetUserMedia ||
+                         navigator.mozGetUserMedia;
+
+if (navigator.getUserMedia) {
+   navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
+      function(stream) {
+         var video = document.querySelector('video');
+         video.src = window.URL.createObjectURL(stream);
+         video.onloadedmetadata = function(e) {
+           video.play();
+         };
+      },
+      function(err) {
+         console.log("The following error occurred: " + err.name);
+      }
+   );
+} else {
+   console.log("getUserMedia not supported");
+}
+ +

Permissions

+ +

Pour utiliser getUserMedia() dans une application installable (par exemple une application Firefox OS), vous devez spécifier un ou plusieurs des champs suivants dans le fichier de manifest.

+ +
"permissions": {
+  "audio-capture": {
+    "description": "Required to capture audio using getUserMedia()"
+  },
+  "video-capture": {
+    "description": "Required to capture video using getUserMedia()"
+  }
+}
+
+ +

See permission: audio-capture and permission: video-capture for more information.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationsStatutCommentaire
{{SpecName('Media Capture', '#navigatorusermedia-interface-extensions', 'navigator.getUserMedia')}}{{Spec2('Media Capture')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ +
+

New code should use {{domxref("Navigator.mediaDevices.getUserMedia()")}} instead.

+
+ +
+

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Microsoft EdgeInternet ExplorerOperaSafari (WebKit)
Basic support21{{property_prefix("webkit")}} [1]17{{property_prefix("moz")}} [3]{{CompatVersionUnknown}}{{CompatNo}}12 [2]
+ 18{{property_prefix("webkit")}}
{{CompatNo}}
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewEdgeFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari MobileChrome for Android
Basic Support{{CompatUnknown}}{{CompatChrome(40.0)}}{{property_prefix("webkit")}} [2]{{CompatVersionUnknown}}24{{property_prefix("moz")}} [3]1.2{{property_prefix("moz")}} [4]
+ 1.4{{property_prefix("moz")}}
{{CompatNo}}
+
+ +

[1] Les versions suivantes de Chrome supportent {{domxref("MediaDevices.getUserMedia()")}} sans préfixe qui remplace cette méthode dépréciée.

+ +

[2] Chrome et Opera utilisent toujours une ancienne syntaxe de contraintes mais la syntaxe décrite ici est disponible via le polyfill adapter.js.

+ +

[3] La syntaxe de la contrainte décrite ici est disponible depuis Firefox 38. Les versions précédentes utilisent une ancienne syntaxe de contraintes, mais la syntaxe décrite ici est disponible via le polyfill adapter.js.

+ +

[4] Dans Firefox OS 1.2 seul audio était supporté, 1.4 ajoute le support de video.

+ +

Pour le moment, utiliser WebRTC pour accéder à la caméra est supporté par Chrome, Opera, et Firefox 20.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/navigatoronline/online_and_offline_events/index.html b/files/fr/web/api/navigatoronline/online_and_offline_events/index.html new file mode 100644 index 0000000000..4ba6a2d717 --- /dev/null +++ b/files/fr/web/api/navigatoronline/online_and_offline_events/index.html @@ -0,0 +1,99 @@ +--- +title: Évènements online et offline +slug: Web/API/NavigatorOnLine/Évènements_online_et_offline +tags: + - AJAX + - Applications_web_hors_ligne + - DOM + - Développement_Web +translation_of: Web/API/NavigatorOnLine/Online_and_offline_events +--- +

{{ Fx_minversion_header(3) }} Firefox 3 implémente les évènements online et offline de la spécification Web Applications 1.0 du WHATWG.

+ +

Aperçu

+ +

Afin de construire une bonne application Web capable de fonctionner hors ligne, il est nécessaire de savoir quand votre application est hors ligne. De même, vous devrez également savoir quand votre application est de nouveau en ligne. Concrètement, ce qui est nécessaire se résume à :

+ +
    +
  1. Savoir quand l'utilisateur est de nouveau en ligne, afin de se resynchroniser avec le serveur.
  2. +
  3. Savoir quand l'utilisateur est hors ligne, afin de s'assurer que les requêtes à faire vers le serveur soient bien enregistrées localement.
  4. +
+ +

C'est ce processus que les évènements online et offline rendent presque trivial.

+ +

Votre application web peut également vouloir indiquer que certains documents doivent être maintenus dans le cache des ressources hors ligne. Pour en savoir plus sur la manière de préciser cette indication, consultez l'article Ressources hors ligne dans Firefox.

+ +

API

+ + + +

navigator.onLine est une propriété qui maintient une valeur true/false (true pour online, false pour offline). Cette propriété est mise à jour chaque fois que l'utilisateur passe en mode « Hors ligne » en sélectionnant l'entrée de menu correspondante (Fichier → Travailler hors connexion dans Firefox).

+ +

De plus, cette propriété doit être mise à jour dès que le navigateur n'arrive plus à se connecter au réseau. D'après la spécification :

+ +
L'attribut navigator.onLine doit renvoyer false si l'agent utilisateur ne va pas contacter le réseau lorsque l'utilisateur suit un lien ou lorsqu'un script demande une page distante (ou sait qu'une telle tentative échouerait)…
+ +

Firefox 2 met à jour cette propriété lors du passage en mode hors connexion du navigateur, et lors de la perte ou de la récupération de la connectivité réseau sous Windows et Linux.

+ +

Cette propriété existait dans de versions plus anciennes de Firefox et Internet Explorer (la spécification se base sur ces implémentations précédentes), vous pouvez donc immédiatement commencer à l'utiliser. La détection de l'état du réseau a été ajoutée dans Firefox 2.

+ +

Les évènements « online » et « offline »

+ +

Firefox 3 introduit deux nouveaux évènements : « online » et « offline ». Ces deux évènements sont déclenchés sur l'élément <body> de chaque page lorsque le navigateur passe d'un mode à l'autre. De plus, les évènements se propagent depuis document.body, vers document, puis vers window. Aucun de ces deux évènements n'est annulable (il n'est pas possible d'empêcher l'utilisateur de passer en ligne ou hors ligne).

+ +

Vous pouvez ajouter des gestionnaires pour ces évènements selon les manières habituelles :

+ + + +

Exemple

+ +

Un cas de test simple peut être exécuté pour vérifier que les évènements fonctionnent. XXX When mochitests for this are created, point to those instead and update this example -nickolay

+ +
 <!doctype html>
+ <html>
+ <head>
+   <script>
+     function updateOnlineStatus(msg) {
+       var status = document.getElementById("status");
+       var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
+       status.setAttribute("class", condition);
+       var state = document.getElementById("state");
+       state.innerHTML = condition;
+       var log = document.getElementById("log");
+       log.appendChild(document.createTextNode("Évènement : " + msg + " ; état=" + condition + "\n"));
+     }
+     function loaded() {
+       updateOnlineStatus("load");
+       document.body.addEventListener("offline", function () {
+         updateOnlineStatus("offline")
+       }, false);
+       document.body.addEventListener("online", function () {
+         updateOnlineStatus("online")
+       }, false);
+     }
+   </script>
+   <style>...</style>
+ </head>
+ <body onload="loaded()">
+   <div id="status"><p id="state"></p></div>
+   <div id="log"></div>
+ </body>
+ </html>
+
+ +

Références

+ + + +
 
+ +

{{ languages( { "en": "en/Online_and_offline_events", "es": "es/Eventos_online_y_offline", "ja": "ja/Online_and_offline_events", "pl": "pl/Zdarzenia_online_i_offline", "pt": "pt/Eventos_online_e_offline" } ) }}

diff --git "a/files/fr/web/api/navigatoronline/\303\251v\303\250nements_online_et_offline/index.html" "b/files/fr/web/api/navigatoronline/\303\251v\303\250nements_online_et_offline/index.html" deleted file mode 100644 index 4ba6a2d717..0000000000 --- "a/files/fr/web/api/navigatoronline/\303\251v\303\250nements_online_et_offline/index.html" +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Évènements online et offline -slug: Web/API/NavigatorOnLine/Évènements_online_et_offline -tags: - - AJAX - - Applications_web_hors_ligne - - DOM - - Développement_Web -translation_of: Web/API/NavigatorOnLine/Online_and_offline_events ---- -

{{ Fx_minversion_header(3) }} Firefox 3 implémente les évènements online et offline de la spécification Web Applications 1.0 du WHATWG.

- -

Aperçu

- -

Afin de construire une bonne application Web capable de fonctionner hors ligne, il est nécessaire de savoir quand votre application est hors ligne. De même, vous devrez également savoir quand votre application est de nouveau en ligne. Concrètement, ce qui est nécessaire se résume à :

- -
    -
  1. Savoir quand l'utilisateur est de nouveau en ligne, afin de se resynchroniser avec le serveur.
  2. -
  3. Savoir quand l'utilisateur est hors ligne, afin de s'assurer que les requêtes à faire vers le serveur soient bien enregistrées localement.
  4. -
- -

C'est ce processus que les évènements online et offline rendent presque trivial.

- -

Votre application web peut également vouloir indiquer que certains documents doivent être maintenus dans le cache des ressources hors ligne. Pour en savoir plus sur la manière de préciser cette indication, consultez l'article Ressources hors ligne dans Firefox.

- -

API

- - - -

navigator.onLine est une propriété qui maintient une valeur true/false (true pour online, false pour offline). Cette propriété est mise à jour chaque fois que l'utilisateur passe en mode « Hors ligne » en sélectionnant l'entrée de menu correspondante (Fichier → Travailler hors connexion dans Firefox).

- -

De plus, cette propriété doit être mise à jour dès que le navigateur n'arrive plus à se connecter au réseau. D'après la spécification :

- -
L'attribut navigator.onLine doit renvoyer false si l'agent utilisateur ne va pas contacter le réseau lorsque l'utilisateur suit un lien ou lorsqu'un script demande une page distante (ou sait qu'une telle tentative échouerait)…
- -

Firefox 2 met à jour cette propriété lors du passage en mode hors connexion du navigateur, et lors de la perte ou de la récupération de la connectivité réseau sous Windows et Linux.

- -

Cette propriété existait dans de versions plus anciennes de Firefox et Internet Explorer (la spécification se base sur ces implémentations précédentes), vous pouvez donc immédiatement commencer à l'utiliser. La détection de l'état du réseau a été ajoutée dans Firefox 2.

- -

Les évènements « online » et « offline »

- -

Firefox 3 introduit deux nouveaux évènements : « online » et « offline ». Ces deux évènements sont déclenchés sur l'élément <body> de chaque page lorsque le navigateur passe d'un mode à l'autre. De plus, les évènements se propagent depuis document.body, vers document, puis vers window. Aucun de ces deux évènements n'est annulable (il n'est pas possible d'empêcher l'utilisateur de passer en ligne ou hors ligne).

- -

Vous pouvez ajouter des gestionnaires pour ces évènements selon les manières habituelles :

- - - -

Exemple

- -

Un cas de test simple peut être exécuté pour vérifier que les évènements fonctionnent. XXX When mochitests for this are created, point to those instead and update this example -nickolay

- -
 <!doctype html>
- <html>
- <head>
-   <script>
-     function updateOnlineStatus(msg) {
-       var status = document.getElementById("status");
-       var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
-       status.setAttribute("class", condition);
-       var state = document.getElementById("state");
-       state.innerHTML = condition;
-       var log = document.getElementById("log");
-       log.appendChild(document.createTextNode("Évènement : " + msg + " ; état=" + condition + "\n"));
-     }
-     function loaded() {
-       updateOnlineStatus("load");
-       document.body.addEventListener("offline", function () {
-         updateOnlineStatus("offline")
-       }, false);
-       document.body.addEventListener("online", function () {
-         updateOnlineStatus("online")
-       }, false);
-     }
-   </script>
-   <style>...</style>
- </head>
- <body onload="loaded()">
-   <div id="status"><p id="state"></p></div>
-   <div id="log"></div>
- </body>
- </html>
-
- -

Références

- - - -
 
- -

{{ languages( { "en": "en/Online_and_offline_events", "es": "es/Eventos_online_y_offline", "ja": "ja/Online_and_offline_events", "pl": "pl/Zdarzenia_online_i_offline", "pt": "pt/Eventos_online_e_offline" } ) }}

diff --git a/files/fr/web/api/network_information_api/index.html b/files/fr/web/api/network_information_api/index.html new file mode 100644 index 0000000000..076718cbcc --- /dev/null +++ b/files/fr/web/api/network_information_api/index.html @@ -0,0 +1,89 @@ +--- +title: Network Information API +slug: WebAPI/Network_Information +tags: + - WebAPI +translation_of: Web/API/Network_Information_API +--- +

{{ SeeCompatTable() }}

+ +

L'API Network Information (Informations réseau) fournit des informations sur la connexion de l'appareil : la bande-passante, si la connexion est mesurée ou non. Elle peut être utilisée pour choisir entre du contenu en haute définition ou en basse définition selon la connexion de l'utilisateur. L'API ne représente qu'un seul objet, ajouté au DOM : {{domxref("window.navigator.connection")}}.

+ +

Exemples

+ +

Détecter les changements de connexion

+ +

Cet exemple permet de connaître les changements liés à la connexion d'un utilisateur. Cela ressemble notamment à la façon dont une application saura si l'utilisateur passe d'une connexion coûteuse à une autre connexion moins chère et pourra réduire la demande de bande passante afin de réduire les coûts pour l'utilisateur.

+ +
var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
+
+function updateConnectionStatus() {
+  alert("Bande passante de la connexion : " + connection.bandwidth + " MB/s");
+  if (connection.metered) {
+    alert("La connexion est mesurée !");
+  }
+}
+
+connection.addEventListener("change", updateConnectionStatus);
+updateConnectionStatus();
+
+ +

Préchargement de ressources gourmandes

+ +

L'objet connexion est pratique pour décider de précharger des ressources nécessitant une grosse quantité de bande passante ou de mémoire. Cet exemple devra être appelé après que la page ait été chargé. Il détermine si précharger la vidéo est judicieux selon le type de la connexion. Si une connexion cellulaire est trouvée, alors preloadVideo est réglé à faux. Ici pour faire simple, on ne teste qu'un type de connexion; dans un cas réel on aurait plutôt utilisé une structure de contrôle switch ou une autre méthode pour avoir tout les cas possibles de {{domxref("NetworkInformation.type")}}. Malgré la valeur type, on peut avoir une estimation de la vitesse de la connexion à travers la propriété {{domxref("NetworkInformation.effectiveType")}}.

+ +
let preloadVideo = true;
+var connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
+if (connection) {
+  if (connection.effectiveType === 'cellular') {
+    preloadVideo = false;
+  }
+}
+ +

Interfaces

+ +
+
{{domxref("NetworkInformation")}}
+
Fournit des informations sur la connexion de l'appareil et fournit la possibilité aux scriptes d'être informé en cas de changement. L'interface NetworkInformation ne peut pas être instanciée; à la place on y accède à travers l'interface {{domxref("Navigator")}}.
+
+ +

Spécification

+ + + + + + + + + + + + + + + + +
SpécificationStatusCommentaire
{{SpecName('Network Information', '', 'Network Information API')}}{{Spec2('Network Information')}}Spécification initiale
+ +

Compatibilité des navigateurs

+ +

NetworkInformation

+ + + +

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

+ + + + + +

{{Compat("api.Navigator.connection")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/node/baseuriobject/index.html b/files/fr/web/api/node/baseuriobject/index.html deleted file mode 100644 index 617ed79d8e..0000000000 --- a/files/fr/web/api/node/baseuriobject/index.html +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Node.baseURIObject -slug: Web/API/Node/baseURIObject -tags: - - API - - DOM - - Noeuds - - Propriétés - - URI - - URL -translation_of: Web/API/Node -translation_of_original: Web/API/Node/baseURIObject ---- -
{{APIRef("DOM")}} {{Non-standard_header}}
- -

La propriété Node.baseURIObject renvoie le {{Interface("nsIURI")}} représentant l'URL de base du noeud (un document ou un élément). Elle est similaire à {{domxref("Node.baseURI")}}, à ceci près qu'elle renvoie une "nsIURI" à la place d'une "string" (chaîne de caractères).

- -

Cette propriété existe sur tous les noeuds (HTML, XUL, SVG, MathML, etc.), mais est utilisable par le script seulement s'il a des privilèges UniversalXPConnect.

- -

Voir {{domxref("Node.baseURI")}} pour plus de détails sur ce qu'est une URL de base.

- -

Syntaxe

- -
uriObj = node.baseURIObject
-
- -

Notes

- -

Cette propriété est en lecture seule ; tenter d'y écrire lancera une exception. En outre, on ne peut y accèder qu'à partir du code privilégié.

- -

Spécification

- -

N'existe dans aucune spécification.

- -

Compatibilité des navigateurs

- - - -

{{Compat("api.Node.baseURIObject")}}

diff --git a/files/fr/web/api/node/innertext/index.html b/files/fr/web/api/node/innertext/index.html deleted file mode 100644 index 6b9d530411..0000000000 --- a/files/fr/web/api/node/innertext/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Node.innerText -slug: Web/API/Node/innerText -translation_of: Web/API/HTMLElement/innerText ---- -
{{APIRef("DOM")}}
- -

Sommaire

- -

Node.innerText est une propriété représentant le contenu textuel « visuellement rendu » d’un nœud. Utilisé en lecture, il renvoie une approximation du texte que l’utilisateur ou utilisatrice obtiendrait s’il ou elle sélectionnnait le contenu d’un élément avec le curseur, et le copiait dans le presse-papier.

- -

{{domxref("Node.textContent")}} est une alternative similaire, bien qu’il y ait d’importantes différences entre les deux.

- -

Spécification

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'dom.html#the-innertext-idl-attribute', 'innerText')}}{{Spec2('HTML WHATWG')}}Introduction basée sur le brouillon de spécification de innerText. Voir whatwg/html#465 et whatwg/compat#5 pour l’histoire.
- -

Compatibilité des navigateurs

- - - -

{{Compat("api.Node.innerText")}}

- -

Voir aussi

- - diff --git a/files/fr/web/api/node/nodeprincipal/index.html b/files/fr/web/api/node/nodeprincipal/index.html deleted file mode 100644 index 33144eae42..0000000000 --- a/files/fr/web/api/node/nodeprincipal/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Node.nodePrincipal -slug: Web/API/Node/nodePrincipal -tags: - - API - - DOM - - Noeuds - - Principal - - Propriétés -translation_of: Web/API/Node -translation_of_original: Web/API/Node/nodePrincipal ---- -
{{APIRef("DOM")}} {{Non-standard_header}}
- -

La propriété en lecture seule Node.nodePrincipal renvoie l'objet {{Interface("nsIPrincipal")}} représentant le contexte de sécurité actuel du noeud.

- -

{{Note("Cette propriété existe sur tous les nœuds (HTML, XUL, SVG, MathML, etc.), mais n'est accessible par le script que s'il possède des privilèges de chrome.")}}

- -

Syntaxe

- -
principalObj = Node.nodePrincipal
-
- -

Valeur

- -

Un objet nsIPrincipal représentant le contexte de sécurité du noeud.

- -

Notes

- -

Cette propriété est en lecture seule ; tenter d'y écrire lancera une exception. En outre, cette propriété est accessible seulement par le code privilégié.

- -

Spécifications

- -

N'existe dans aucune spécification. C'est une propriété propre à Firefox.

- -

Compatibilité des navigateurs

- - - -

{{Compat("api.Node.nodePrincipal")}}

diff --git a/files/fr/web/api/node/rootnode/index.html b/files/fr/web/api/node/rootnode/index.html deleted file mode 100644 index 7ee512dd8f..0000000000 --- a/files/fr/web/api/node/rootnode/index.html +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Node.rootNode -slug: Web/API/Node/rootNode -tags: - - API - - Arborescence - - DOM - - Noeuds - - Propriétés - - Racine -translation_of: Web/API/Node/getRootNode -translation_of_original: Web/API/Node/rootNode ---- -

{{deprecated_header}}{{APIRef("DOM")}}{{SeeCompatTable}}

- -

La propriété en lecture seule Node.rootNode renvoie un objet {{domxref("Node")}} représentant le noeud du plus haut niveau de l'arbre, ou le noeud actuel s'il est le noeud du plus haut niveau de l'arbre. Il est trouvé par rétro-navigation à travers les noeuds parents {{domxref("Node.parentNode")}} jusqu'à l'arrivée au sommet.

- -
-

Important : Pour des raisons de compatibilité, cette propriété a été remplacée par la méthode {{domxref("Node.getRootNode()")}}.

-
- -

Syntaxe

- -
rootNode = node.rootNode;
-
- -

Valeur

- -

Un objet {{domxref("Node")}} représentant le noeud du plus haut niveau de l'arbre.

- -

Exemple

- -

L'exécution de la ligne suivante dans les navigateurs de support doit renvoyer une référence au noeud HTML / document :

- -
console.log(document.body.rootNode);
- -

Notes

- -

Les navigateurs basés sur Gecko insèrent des nœuds texte dans un document pour représenter des espaces - vides dans le balisage source. Par conséquent, un nœud obtenu par exemple via Node.firstChild ou - Node.previousSibling peut faire référence à un nœud texte contenant des espaces plutôt qu'au véritable élément - que l'auteur comptait obtenir.

- -

Consultez Gestion des espaces dans le DOM - et Why are some Text nodes empty? - dans la FAQ DOM 3 du W3C pour plus d'informations.

- -

Compatibilité des navigateurs

- - - -

{{Compat("api.Node.rootNode")}}

- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('DOM WHATWG', '#dom-node-rootnode', 'Node.rootNode')}}{{Spec2('DOM WHATWG')}}Définition initiale.
diff --git a/files/fr/web/api/notification/using_web_notifications/index.html b/files/fr/web/api/notification/using_web_notifications/index.html deleted file mode 100644 index 796e7d152a..0000000000 --- a/files/fr/web/api/notification/using_web_notifications/index.html +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: Utilisation des Notifications Web -slug: Web/API/notification/Using_Web_Notifications -tags: - - Avancé - - DOM - - Firefox OS - - Guide - - Notifications -translation_of: Web/API/Notifications_API/Using_the_Notifications_API ---- -

{{SeeCompatTable}}

- -

En bref

- -

L'API de Notifications Web permet à une page Web d'envoyer des notifications qui s'affichent hors de la page au niveau du système. Cela permet aux applications web d'envoyer des informations à un utilisateur, même si l'application est inactive. Un des principaux cas d'utilisation évidente est une application de messagerie Web qui informe l'utilisateur à chaque fois qu'un nouvel e-mail est reçu, même si l'utilisateur fait autre chose avec une autre application.

- -

Pour afficher des notifications, il faut commencer par demander la permission appropriée et d'instancier un objet {{domxref("Notification")}} :

- -
Notification.requestPermission( function(status) {
-  console.log(status); // les notifications ne seront affichées que si "autorisées"
-  var n = new Notification("title", {body: "notification body"}); // this also shows the notification
-});
-
- -

Obtenir l'autorisation

- -

Avant qu'une application ne soit capable d'envoyer une notification, l'utilisateur doit donner son accord. C'est une exigence commune quand une API tente d'interagir avec quoi que ce soit en dehors d'une page Web. Cela permet d'éviter les notifications "spam" pour le bien-être de l'utilisateur.

- -

Vérifier l'état de la permission

- -

Une application qui a besoin d'envoyer une notification peut vérifier l'état d'autorisation actuel grâce à la propriété non modifiable {{domxref("Notification.permission")}} . Il peut avoir l'une des trois valeurs possibles :

- - - -
-

Note: Safari et Chrome antérieurs à v32 n'appliquent pas encore la propriété  permission .

-
- -

Recevoir la permission

- -

Si l'autorisation n'est pas accordée, l'application doit utiliser la méthode {{domxref("Notification.requestPermission()")}} pour permettre à l'utilisateur de faire un choix. Cette méthode accepte une fonction de rappel qui reçoit la permission choisie par l'utilisateur pour réagir.

- -

C'est une pratique usuelle de demander l'autorisation à l'initialisation de l'application:

- -
window.addEventListener('load', function () {
-  Notification.requestPermission(function (status) {
-    // Cela permet d'utiliser Notification.permission avec Chrome/Safari
-    if (Notification.permission !== status) {
-      Notification.permission = status;
-    }
-  });
-});
- -
-

Note: Chrome ne permettait pas l'appel à {{domxref("Notification.requestPermission()")}} dans l'event load jusqu'à sa version 37 (voir issue 274284).

-
- -

Manifeste des permissions pour l'API de Notification

- -

Notez que tant que que l'API de Notification API n'est pas privileged ou certifiée, il vous faudra toujours ajouter une entrée dans votre ficher manifest.webapp pour l'inclure dans une application web ouverte:

- -
"permissions": {
-  "desktop-notification": {
-    "description": "Needed for creating system notifications."
-  }
-}
- -
-

Remarque : quand une application est installée, vous ne devriez pas avoir besoin de demander la permission explicitement par le code ci-dessus, mais vous aurez toujours besoin de l'entrée des autorisations ci-dessus pour que les notifications soient lancées.

-
- -

Créer une notification

- -

Créer une notification peut être simplement réalisé en utilisant le constructeur {{domxref("Notification")}}. Ce constructeur s'attend à recevoir un titre à afficher dans la notification et quelques options pour la personnaliser telles qu'une icône {{domxref("Notification.icon","icon")}} ou un texte {{domxref("Notification.body","body")}}.

- -

Une notification sera affichée dès que possible. Pour connaître son statut d'affichage, quatre événements peuvent être déclenchés au niveau de {{domxref("Notification")}} :

- - - -

Ces événements peuvent être suivis en utilisant les gestionnaires d'événements {{domxref("Notification.onshow","onshow")}}, {{domxref("Notification.onclick","onclick")}}, {{domxref("Notification.onclose","onclose")}}, ou {{domxref("Notification.onerror","onerror")}}. Car {{domxref("Notification")}} hérite également de {{domxref("EventTarget")}}, Il est possible d'utiliser cette {{domxref("EventTarget.addEventListener","addEventListener()")}} méthode..

- -
-

Note: Firefox et Safari ferment automatiquement les notifications après un certain temps, de l'ordre de 4 secondes.

- -

Cela peut aussi être fait au niveau de l'application web en utilisant la méthode {{domxref("Notification.close()")}},  comme par exemple dans le code suivant:

- -
var n = new Notification("Salut!");
-n.onshow = function () {
-  setTimeout(n.close.bind(n), 5000);
-}
-
- -

Quand vous recevez un événement "close", il n'y a aucune garantie que l'utilisateur ait lui-même fermé la notification. C'est en accord avec la spécification, qui dit : "When a notification is closed, either by the underlying notifications platform or by the user, the close steps for it must be run." soit "Quand une notification est fermée, que ce soit par la plateforme ou par l'utilisateur, on procède à l'étape de clôture."

-
- -

Un petit exemple

- -

En considérant ce petit bout de HTML assez simple :

- -
<button>Notifiez moi!</button>
- -

Il est possible de gérer les notifications de cette façon :

- -
window.addEventListener('load', function () {
-  // Premièrement, vérifions que nous avons la permission de publier des notifications. Si ce n'est pas le cas, demandons la
-  if (window.Notification && Notification.permission !== "granted") {
-    Notification.requestPermission(function (status) {
-      if (Notification.permission !== status) {
-        Notification.permission = status;
-      }
-    });
-  }
-
-  var button = document.getElementsByTagName('button')[0];
-
-  button.addEventListener('click', function () {
-    // Si l'utilisateur accepte d'être notifié
-    if (window.Notification && Notification.permission === "granted") {
-      var n = new Notification("Coucou !");
-    }
-
-    // Si l'utilisateur n'a pas choisi s'il accepte d'être notifié
-    // Note: à cause de Chrome, nous ne sommes pas certains que la propriété permission soit définie, par conséquent il n'est pas sûr de vérifier la valeur par défaut.
-    else if (window.Notification && Notification.permission !== "denied") {
-      Notification.requestPermission(function (status) {
-        if (Notification.permission !== status) {
-          Notification.permission = status;
-        }
-
-        // Si l'utilisateur est OK
-        if (status === "granted") {
-          var n = new Notification("Coucou !");
-        }
-
-        // Sinon, revenons en à un mode d'alerte classique
-        else {
-          alert("Coucou !");
-        }
-      });
-    }
-
-    // Si l'utilisateur refuse d'être notifié
-    else {
-      // We can fallback to a regular modal alert
-      alert("Coucou !");
-    }
-  });
-});
- -

Et voici le résultat:

- -

{{ EmbedLiveSample('Simple_example', '100%', 30) }}

- -

Gestion des notifications répétitives

- -

Dans certains cas, il peut être dérangeant pour l'utilisateur de lui envoyer un nombre élevé de notifications - par exemple, si une application pour la messagerie instantanée peut notifier à un utilisateur pour chaque message entrant. Pour éviter une invasion de "bulles" sur le bureau de l'utilisateur avec des centaines de notifications inutiles, il est possible de prendre en charge la file d'attente des notifications en attente.

- -

Pour ce faire, il est possible d'ajouter un tag à toute nouvelle notification. Si une notification a déjà le même tag et n'a pas encore été affichée, la nouvelle notification va remplacer l'ancienne. Si la notification avec le même tag a déjà été affichée, l'ancienne notification est fermée et la nouvelle est affichée.

- -

Exemple de Tag

- -

Considérons le code HTML suivant:

- -
<button>Notifie moi!</button>
- -

Il est possible de gérer plusieurs notifications de cette manière:

- -
window.addEventListener('load', function () {
-  // Premièrement, vérifions que nous avons la permission de notifier
-  // Sinon, demandons la permission
-  if (window.Notification && Notification.permission !== "granted") {
-    Notification.requestPermission(function (status) {
-      if (Notification.permission !== status) {
-        Notification.permission = status;
-      }
-    });
-  }
-
-  var button = document.getElementsByTagName('button')[0];
-
-  button.addEventListener('click', function () {
-    // Si l'utilisateur accepte les notifications
-    // essayons d'envoyer 10 notifications
-    if (window.Notification && Notification.permission === "granted") {
-      for (var i = 0; i < 10; i++) {
-        // Grâce au tag, nous ne devrions voir que la notification "Hey! 9"
-        var n = new Notification("Hey! " + i, {tag: 'soManyNotification'});
-      }
-    }
-
-    // Si l'utilisateur n'a pas choisi s'il accepte d'être notifié // Note: à cause de Chrome, nous ne sommes pas certains que la
-    // propriété permission soit définie, par conséquent il n'est pas
-    // sûr de vérifier la valeur par défault.
-    else if (window.Notification && Notification.permission !== "denied") {
-      Notification.requestPermission(function (status) {
-        if (Notification.permission !== status) {
-          Notification.permission = status;
-        }
-
-        // Si l'utilisateur a accepté les notifications
-        if (status === "granted") {
-          for (var i = 0; i < 10; i++) {
-            // Grâce au tag, nous ne devrions voir que la notification "Hey! 9"
-            var n = new Notification("Hey! " + i, {tag: 'soManyNotification'});
-          }
-        }
-
-        // Sinon on bascule sur une alerte modale
-        else {
-          alert("Hey!");
-        }
-      });
-    }
-
-    // Si l'utilisateur refuse les notifications
-    else {
-      // on bascule sur une alerte modale
-      alert("Hey!");
-    }
-  });
-});
- -

Et voici le résultat:

- -

{{ EmbedLiveSample('Tag_example', '100%', 30) }}

- -

Recevoir la notification du clic sur une notification

- -

Quand un utilisateur clique sur une notification générée par une application, il sera notifié de cet événement de deux façons, en fonction de la circonstance:

- -
    -
  1. Un événement click si votre application n'a pas été fermée ou placée en arrière-plan entre le moment où vous créez la notification et celui où l'utilisateur clique dessus.
  2. -
  3. Sinon un message système
  4. -
- -

Voir cet extrait de code pour un exemple d'utilisation.

- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Web Notifications')}}{{Spec2('Web Notifications')}}Spécification initiale
- -

Compatibilité Navigateurs

- -

{{page("/fr/Web/API/Notification","Browser compatibility")}}

- -

A lire aussi

- - diff --git a/files/fr/web/api/notifications_api/using_the_notifications_api/index.html b/files/fr/web/api/notifications_api/using_the_notifications_api/index.html new file mode 100644 index 0000000000..796e7d152a --- /dev/null +++ b/files/fr/web/api/notifications_api/using_the_notifications_api/index.html @@ -0,0 +1,275 @@ +--- +title: Utilisation des Notifications Web +slug: Web/API/notification/Using_Web_Notifications +tags: + - Avancé + - DOM + - Firefox OS + - Guide + - Notifications +translation_of: Web/API/Notifications_API/Using_the_Notifications_API +--- +

{{SeeCompatTable}}

+ +

En bref

+ +

L'API de Notifications Web permet à une page Web d'envoyer des notifications qui s'affichent hors de la page au niveau du système. Cela permet aux applications web d'envoyer des informations à un utilisateur, même si l'application est inactive. Un des principaux cas d'utilisation évidente est une application de messagerie Web qui informe l'utilisateur à chaque fois qu'un nouvel e-mail est reçu, même si l'utilisateur fait autre chose avec une autre application.

+ +

Pour afficher des notifications, il faut commencer par demander la permission appropriée et d'instancier un objet {{domxref("Notification")}} :

+ +
Notification.requestPermission( function(status) {
+  console.log(status); // les notifications ne seront affichées que si "autorisées"
+  var n = new Notification("title", {body: "notification body"}); // this also shows the notification
+});
+
+ +

Obtenir l'autorisation

+ +

Avant qu'une application ne soit capable d'envoyer une notification, l'utilisateur doit donner son accord. C'est une exigence commune quand une API tente d'interagir avec quoi que ce soit en dehors d'une page Web. Cela permet d'éviter les notifications "spam" pour le bien-être de l'utilisateur.

+ +

Vérifier l'état de la permission

+ +

Une application qui a besoin d'envoyer une notification peut vérifier l'état d'autorisation actuel grâce à la propriété non modifiable {{domxref("Notification.permission")}} . Il peut avoir l'une des trois valeurs possibles :

+ + + +
+

Note: Safari et Chrome antérieurs à v32 n'appliquent pas encore la propriété  permission .

+
+ +

Recevoir la permission

+ +

Si l'autorisation n'est pas accordée, l'application doit utiliser la méthode {{domxref("Notification.requestPermission()")}} pour permettre à l'utilisateur de faire un choix. Cette méthode accepte une fonction de rappel qui reçoit la permission choisie par l'utilisateur pour réagir.

+ +

C'est une pratique usuelle de demander l'autorisation à l'initialisation de l'application:

+ +
window.addEventListener('load', function () {
+  Notification.requestPermission(function (status) {
+    // Cela permet d'utiliser Notification.permission avec Chrome/Safari
+    if (Notification.permission !== status) {
+      Notification.permission = status;
+    }
+  });
+});
+ +
+

Note: Chrome ne permettait pas l'appel à {{domxref("Notification.requestPermission()")}} dans l'event load jusqu'à sa version 37 (voir issue 274284).

+
+ +

Manifeste des permissions pour l'API de Notification

+ +

Notez que tant que que l'API de Notification API n'est pas privileged ou certifiée, il vous faudra toujours ajouter une entrée dans votre ficher manifest.webapp pour l'inclure dans une application web ouverte:

+ +
"permissions": {
+  "desktop-notification": {
+    "description": "Needed for creating system notifications."
+  }
+}
+ +
+

Remarque : quand une application est installée, vous ne devriez pas avoir besoin de demander la permission explicitement par le code ci-dessus, mais vous aurez toujours besoin de l'entrée des autorisations ci-dessus pour que les notifications soient lancées.

+
+ +

Créer une notification

+ +

Créer une notification peut être simplement réalisé en utilisant le constructeur {{domxref("Notification")}}. Ce constructeur s'attend à recevoir un titre à afficher dans la notification et quelques options pour la personnaliser telles qu'une icône {{domxref("Notification.icon","icon")}} ou un texte {{domxref("Notification.body","body")}}.

+ +

Une notification sera affichée dès que possible. Pour connaître son statut d'affichage, quatre événements peuvent être déclenchés au niveau de {{domxref("Notification")}} :

+ + + +

Ces événements peuvent être suivis en utilisant les gestionnaires d'événements {{domxref("Notification.onshow","onshow")}}, {{domxref("Notification.onclick","onclick")}}, {{domxref("Notification.onclose","onclose")}}, ou {{domxref("Notification.onerror","onerror")}}. Car {{domxref("Notification")}} hérite également de {{domxref("EventTarget")}}, Il est possible d'utiliser cette {{domxref("EventTarget.addEventListener","addEventListener()")}} méthode..

+ +
+

Note: Firefox et Safari ferment automatiquement les notifications après un certain temps, de l'ordre de 4 secondes.

+ +

Cela peut aussi être fait au niveau de l'application web en utilisant la méthode {{domxref("Notification.close()")}},  comme par exemple dans le code suivant:

+ +
var n = new Notification("Salut!");
+n.onshow = function () {
+  setTimeout(n.close.bind(n), 5000);
+}
+
+ +

Quand vous recevez un événement "close", il n'y a aucune garantie que l'utilisateur ait lui-même fermé la notification. C'est en accord avec la spécification, qui dit : "When a notification is closed, either by the underlying notifications platform or by the user, the close steps for it must be run." soit "Quand une notification est fermée, que ce soit par la plateforme ou par l'utilisateur, on procède à l'étape de clôture."

+
+ +

Un petit exemple

+ +

En considérant ce petit bout de HTML assez simple :

+ +
<button>Notifiez moi!</button>
+ +

Il est possible de gérer les notifications de cette façon :

+ +
window.addEventListener('load', function () {
+  // Premièrement, vérifions que nous avons la permission de publier des notifications. Si ce n'est pas le cas, demandons la
+  if (window.Notification && Notification.permission !== "granted") {
+    Notification.requestPermission(function (status) {
+      if (Notification.permission !== status) {
+        Notification.permission = status;
+      }
+    });
+  }
+
+  var button = document.getElementsByTagName('button')[0];
+
+  button.addEventListener('click', function () {
+    // Si l'utilisateur accepte d'être notifié
+    if (window.Notification && Notification.permission === "granted") {
+      var n = new Notification("Coucou !");
+    }
+
+    // Si l'utilisateur n'a pas choisi s'il accepte d'être notifié
+    // Note: à cause de Chrome, nous ne sommes pas certains que la propriété permission soit définie, par conséquent il n'est pas sûr de vérifier la valeur par défaut.
+    else if (window.Notification && Notification.permission !== "denied") {
+      Notification.requestPermission(function (status) {
+        if (Notification.permission !== status) {
+          Notification.permission = status;
+        }
+
+        // Si l'utilisateur est OK
+        if (status === "granted") {
+          var n = new Notification("Coucou !");
+        }
+
+        // Sinon, revenons en à un mode d'alerte classique
+        else {
+          alert("Coucou !");
+        }
+      });
+    }
+
+    // Si l'utilisateur refuse d'être notifié
+    else {
+      // We can fallback to a regular modal alert
+      alert("Coucou !");
+    }
+  });
+});
+ +

Et voici le résultat:

+ +

{{ EmbedLiveSample('Simple_example', '100%', 30) }}

+ +

Gestion des notifications répétitives

+ +

Dans certains cas, il peut être dérangeant pour l'utilisateur de lui envoyer un nombre élevé de notifications - par exemple, si une application pour la messagerie instantanée peut notifier à un utilisateur pour chaque message entrant. Pour éviter une invasion de "bulles" sur le bureau de l'utilisateur avec des centaines de notifications inutiles, il est possible de prendre en charge la file d'attente des notifications en attente.

+ +

Pour ce faire, il est possible d'ajouter un tag à toute nouvelle notification. Si une notification a déjà le même tag et n'a pas encore été affichée, la nouvelle notification va remplacer l'ancienne. Si la notification avec le même tag a déjà été affichée, l'ancienne notification est fermée et la nouvelle est affichée.

+ +

Exemple de Tag

+ +

Considérons le code HTML suivant:

+ +
<button>Notifie moi!</button>
+ +

Il est possible de gérer plusieurs notifications de cette manière:

+ +
window.addEventListener('load', function () {
+  // Premièrement, vérifions que nous avons la permission de notifier
+  // Sinon, demandons la permission
+  if (window.Notification && Notification.permission !== "granted") {
+    Notification.requestPermission(function (status) {
+      if (Notification.permission !== status) {
+        Notification.permission = status;
+      }
+    });
+  }
+
+  var button = document.getElementsByTagName('button')[0];
+
+  button.addEventListener('click', function () {
+    // Si l'utilisateur accepte les notifications
+    // essayons d'envoyer 10 notifications
+    if (window.Notification && Notification.permission === "granted") {
+      for (var i = 0; i < 10; i++) {
+        // Grâce au tag, nous ne devrions voir que la notification "Hey! 9"
+        var n = new Notification("Hey! " + i, {tag: 'soManyNotification'});
+      }
+    }
+
+    // Si l'utilisateur n'a pas choisi s'il accepte d'être notifié // Note: à cause de Chrome, nous ne sommes pas certains que la
+    // propriété permission soit définie, par conséquent il n'est pas
+    // sûr de vérifier la valeur par défault.
+    else if (window.Notification && Notification.permission !== "denied") {
+      Notification.requestPermission(function (status) {
+        if (Notification.permission !== status) {
+          Notification.permission = status;
+        }
+
+        // Si l'utilisateur a accepté les notifications
+        if (status === "granted") {
+          for (var i = 0; i < 10; i++) {
+            // Grâce au tag, nous ne devrions voir que la notification "Hey! 9"
+            var n = new Notification("Hey! " + i, {tag: 'soManyNotification'});
+          }
+        }
+
+        // Sinon on bascule sur une alerte modale
+        else {
+          alert("Hey!");
+        }
+      });
+    }
+
+    // Si l'utilisateur refuse les notifications
+    else {
+      // on bascule sur une alerte modale
+      alert("Hey!");
+    }
+  });
+});
+ +

Et voici le résultat:

+ +

{{ EmbedLiveSample('Tag_example', '100%', 30) }}

+ +

Recevoir la notification du clic sur une notification

+ +

Quand un utilisateur clique sur une notification générée par une application, il sera notifié de cet événement de deux façons, en fonction de la circonstance:

+ +
    +
  1. Un événement click si votre application n'a pas été fermée ou placée en arrière-plan entre le moment où vous créez la notification et celui où l'utilisateur clique dessus.
  2. +
  3. Sinon un message système
  4. +
+ +

Voir cet extrait de code pour un exemple d'utilisation.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Web Notifications')}}{{Spec2('Web Notifications')}}Spécification initiale
+ +

Compatibilité Navigateurs

+ +

{{page("/fr/Web/API/Notification","Browser compatibility")}}

+ +

A lire aussi

+ + diff --git a/files/fr/web/api/offlineaudiocontext/complete_event/index.html b/files/fr/web/api/offlineaudiocontext/complete_event/index.html new file mode 100644 index 0000000000..5e3b264f1c --- /dev/null +++ b/files/fr/web/api/offlineaudiocontext/complete_event/index.html @@ -0,0 +1,91 @@ +--- +title: complete +slug: Web/Events/complete +translation_of: Web/API/OfflineAudioContext/complete_event +--- +
+

L'événement complete est déclenché lorsque le rendu d'un {{domxref("OfflineAudioContext")}} est terminé.

+
+ +

Informations générales

+ +
+
Spécification
+
{{SpecName('Web Audio API', '#OfflineAudioCompletionEvent-section', 'OfflineAudioCompletionEvent')}}
+
Interface
+
{{domxref("OfflineAudioCompletionEvent")}}
+
Propagation
+
?
+
Annulable
+
?
+
Cible
+
{{domxref("OfflineAudioContext")}}
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
renderedBuffer {{readonlyInline}}{{domxref("AudioBuffer")}}The buffer containing the result of the processing of an {{domxref("OfflineAudioContext")}}.
+ +

Evénements liés

+ +

Aucun

+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Web Audio API', '#OfflineAudioCompletionEvent-section', 'OfflineAudioCompletionEvent')}}{{Spec2('Web Audio API')}} 
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/pointer_events/gestes_pincer_zoom/index.html b/files/fr/web/api/pointer_events/gestes_pincer_zoom/index.html deleted file mode 100644 index 707b3e5eb3..0000000000 --- a/files/fr/web/api/pointer_events/gestes_pincer_zoom/index.html +++ /dev/null @@ -1,220 +0,0 @@ ---- -title: Gestes pincer et zoomer -slug: Web/API/Pointer_events/gestes_pincer_zoom -tags: - - Guide - - PointerEvent - - touch -translation_of: Web/API/Pointer_events/Pinch_zoom_gestures ---- -

{{DefaultAPISidebar("Pointer Events")}}

- -

Ajouter la gestion des gestes à une application peut améliorer de manière significative l'expérience utilisateur. Il existe de nombreux types de gestes, du simple geste swipe (balayage de l'écran) aux gestes plus complexes avec plusieurs doigts comme le twist (rotation), où les points de contact (dits pointeurs) bougent dans des directions différentes.

- -

Cet exemple montre comment détecter les gestes de pinch/zoom (pincer/zoomer), en utilisant les {{domxref("Pointer_events","événements de pointeur")}} pour détecter si l'utilisateur bouge deux pointeurs plus proches ou plus loin l'un de l'autre. 

- -
-

Note: Une version en direct de cette application est disponible sur Github. Le code source est également disponible sur Github; les pull requests et bug reports sont les bienvenus.

-
- -

Exemple

- -

Dans cet exemple, on utilise les {{domxref("Pointer_events","événement de pointeur")}} pour détecter simultanément plusieurs appareils de pointage quel qu'en soit le type, comme les doigts, la souris, et le stylet. Le geste de pincer (zoomer), qui consiste à déplacer deux pointeurs plus près l'un vers l'autre, change la couleur d'arrière-plan de l'élément cible en  lightblue. Le geste d'étirer (dézoomer), qui consiste à déplacer deux pointeur plus loin l'un de l'autre, change la couleur d'arrière-plan de l'élément cible en pink.

- -

Définir la cible du toucher

- -

L'application utilise un {{HTMLElement("div")}} pour définir la zone cible du pointeur.

- -
<style>
-  div {
-    margin: 0em;
-    padding: 2em;
-  }
-  #target {
-    background: white;
-    border: 1px solid black;
-  }
-</style>
-
- -

État global

- -

Prendre en charge un mouvement à deux pointeurs nécessite de conserver un état des événements du pointeur durant les différentes phases de l'événement. Cette application utilise deux variables globales pour mettre en cache l'état de l'événement.

- -
// Variables globales pour mettre en cache l'état de l'événement
-var evCache = new Array();
-var prevDiff = -1;
-
- -

Enregistrer les gestionnaires d'événement

- -

Les gestionnaires d'événement sont enregistrés pour les événements de pointeur suivants: {{event("pointerdown")}}, {{event("pointermove")}} et {{event("pointerup")}}. Le gestionnaire pour {{event("pointerup")}} est utilisé pour les événements {{event("pointercancel")}}, {{event("pointerout")}} et {{event("pointerleave")}} puisque ces quatre événements ont la même sémantique dans cette application.

- -
function init() {
- // Ajoute les gestionnaires d'événements pour la cible du pointeur
- var el=document.getElementById("target");
- el.onpointerdown = pointerdown_handler;
- el.onpointermove = pointermove_handler;
-
- // Même chose pour les événements pointer{up,cancel,out,leave} puisque
- // la sémantique pour ces événements - dans cette appli - est identique.
- el.onpointerup = pointerup_handler;
- el.onpointercancel = pointerup_handler;
- el.onpointerout = pointerup_handler;
- el.onpointerleave = pointerup_handler;
-}
-
- -

Pointer down

- -

L'événement {{event("pointerdown")}} est déclenché quand un pointeur (souris, stylo/stylet ou point de contact sur un écran tactile) entre en contact avec la surface de contact. Dans cette application, l'état de l'événement doit être mis en cache dans le cas où il fait partie d'un geste à deux pointeurs pour pincer/zoomer.

- -
function pointerdown_handler(ev) {
- // L'événement pointerdown signale le début d'une interraction de toucher.
- // L'événement est mis en cache pour prendre en charge les gestes à 2 doigts
- evCache.push(ev);
- log("pointerDown", ev);
-}
-
- -

Pointer move

- -

Le gestionnaire d'événement {{event("pointermove")}} détecte si un utilisateur est en train d'effectuer le geste de pincer/zoomer. Si deux pointeurs sont utilisés, et que la distance entre les pointeurs augmente (ce qui signifie qu'on étire ou dézoome), la couleur d'arrière-plan est changée en pink, et si la distance entre les pointeurs diminue (ce qui signifie qu'on pince ou dézoome), la couleur d'arrière-plan est changée en lightblue. Dans une application plus sophistiquée, le pincement ou l'étirement pourrait être utilisé pour appliquer une sémantique spécifique à l'application.

- -

Quand cet événement est traité, la bordure de la cible est définie à dashed pour fournir une indication visuelle claire que l'élément a reçu un événement de déplacement.

- -
function pointermove_handler(ev) {
- // Cette fonction implémente la détection du mouvement horizontal pincer/zoomer.
- //
- // Si la distance entre les deux pointeurs augmente (zoomer),
- // l'arrière-plan de l'élément cible est changé en "pink" et si la
- // distance diminue (dezoomer), la couleur est changée en "lightblue".
- //
- // Cette fonctionne définie la bordure de l'élément cible à "dashed" pour indiquer
- // visuellement que la cible du pointeur a reçu un événement de déplacement.
- log("pointerMove", ev);
- ev.target.style.border = "dashed";
-
- // Trouve le pointeur en cours dans le cache et le met à jour avec cet événement
- for (var i = 0; i < evCache.length; i++) {
-   if (ev.pointerId == evCache[i].pointerId) {
-      evCache[i] = ev;
-      break;
-   }
- }
-
- // Si deux pointeurs sont utilisés, vérifie le geste de pincement
- if (evCache.length == 2) {
-   // Calcule la distance entre les deux pointeurs
-   var curDiff = Math.abs(evCache[0].clientX - evCache[1].clientX);
-
-   if (prevDiff > 0) {
-     if (curDiff > prevDiff) {
-       // La distance entre les deux pointeurs a augmenté
-       log("Pinch moving OUT -> Zoom in", ev);
-       ev.target.style.background = "pink";
-     }
-     if (curDiff < prevDiff) {
-       // La distance entre les deux pointeurs a diminué
-       log("Pinch moving IN -> Zoom out",ev);
-       ev.target.style.background = "lightblue";
-     }
-   }
-
-   // Met en cache la distance pour les événements suivants
-   prevDiff = curDiff;
- }
-}
-
- -

Pointer up

- -

L'événement {{event("pointerup")}} est déclenché quand le pointeur est levé de la surface de contact. Quand cela arrive, l'événement est retiré du cache et la couleur d'arrière-plan et bordure de la cible sont rétablies à leur valeur d'origine.

- -

Dans cette application, ce gestionnaire est également utilisé pour les événements {{event("pointercancel")}}, {{event("pointerleave")}} et {{event("pointerout")}}.

- -
function pointerup_handler(ev) {
-  log(ev.type, ev);
-  // Retire ce pointeur du cache et rétablit l'arrière-plan et
-  // et bordure de la cible
-  remove_event(ev);
-  ev.target.style.background = "white";
-  ev.target.style.border = "1px solid black";
-
-  // Si le nombre de pointeurs restant est inférieur à deux, remet à zéro la différence
-  if (evCache.length < 2) prevDiff = -1;
-}
-
- -

Application UI

- -

Cette application utilise un élément {{HTMLElement("div")}} comme zone de toucher et fournit des boutons pour activer et nettoyer les logs.

- -

Pour empêcher que le comportement par défaut du navigateur au toucher surcharge le gestionnaire de l'application, la propriété {{cssxref("touch-action")}} est appliquée à l'élément {{HTMLElement("body")}}.

- -
<body onload="init();" style="touch-action:none">
- <div id="target">Touchez l'écran avec deux pointeurs, puis pincez ou étirez.<br/>
-    La couleur d'arrière-plan changera en rose au pincement (Zoomer)
-    ou en bleu clair à l'étirement (Dézoomer).</div>
- <!-- UI pour log/debug -->
- <button id="log" onclick="enableLog(event);">Démarrer/Stopper les logs</button>
- <button id="clearlog" onclick="clearLog(event);">Nettoyer les logs</button>
- <p></p>
- <output></output>
-</body>
-
- -

Fonctions diverses

- -

Ces fonctions prennent en charge l'application mais ne sont pas directement impliquées dans le flux des événements.

- -

Gestion du Cache

- -

Cette fonction aide à gérer le cache global des événements, evCache.

- -
function remove_event(ev) {
- // Supprime l'événement du cache
- for (var i = 0; i < evCache.length; i++) {
-   if (evCache[i].pointerId == ev.pointerId) {
-     evCache.splice(i, 1);
-     break;
-   }
- }
-}
-
- -

Log des événements

- -

Ces fonctions sont utilisées pour afficher l'activité du pointeur dans la fenêtre de l'application (pour aider à debugger et à apprendre le flux des événements).

- -
// Flag log
-var logEvents = false;
-
-// Fonctions Log/debug
-function enableLog(ev) {
-  logEvents = logEvents ? false : true;
-}
-
-function log(prefix, ev) {
-  if (!logEvents) return;
-  var o = document.getElementsByTagName('output')[0];
-  var s = prefix + ": pointerID = " + ev.pointerId +
-                " ; pointerType = " + ev.pointerType +
-                " ; isPrimary = " + ev.isPrimary;
-  o.innerHTML += s + "
-";
-}
-
-function clearLog(event) {
- var o = document.getElementsByTagName('output')[0];
- o.innerHTML = "";
-}
-
- -

Voir aussi

- - diff --git a/files/fr/web/api/pointer_events/pinch_zoom_gestures/index.html b/files/fr/web/api/pointer_events/pinch_zoom_gestures/index.html new file mode 100644 index 0000000000..707b3e5eb3 --- /dev/null +++ b/files/fr/web/api/pointer_events/pinch_zoom_gestures/index.html @@ -0,0 +1,220 @@ +--- +title: Gestes pincer et zoomer +slug: Web/API/Pointer_events/gestes_pincer_zoom +tags: + - Guide + - PointerEvent + - touch +translation_of: Web/API/Pointer_events/Pinch_zoom_gestures +--- +

{{DefaultAPISidebar("Pointer Events")}}

+ +

Ajouter la gestion des gestes à une application peut améliorer de manière significative l'expérience utilisateur. Il existe de nombreux types de gestes, du simple geste swipe (balayage de l'écran) aux gestes plus complexes avec plusieurs doigts comme le twist (rotation), où les points de contact (dits pointeurs) bougent dans des directions différentes.

+ +

Cet exemple montre comment détecter les gestes de pinch/zoom (pincer/zoomer), en utilisant les {{domxref("Pointer_events","événements de pointeur")}} pour détecter si l'utilisateur bouge deux pointeurs plus proches ou plus loin l'un de l'autre. 

+ +
+

Note: Une version en direct de cette application est disponible sur Github. Le code source est également disponible sur Github; les pull requests et bug reports sont les bienvenus.

+
+ +

Exemple

+ +

Dans cet exemple, on utilise les {{domxref("Pointer_events","événement de pointeur")}} pour détecter simultanément plusieurs appareils de pointage quel qu'en soit le type, comme les doigts, la souris, et le stylet. Le geste de pincer (zoomer), qui consiste à déplacer deux pointeurs plus près l'un vers l'autre, change la couleur d'arrière-plan de l'élément cible en  lightblue. Le geste d'étirer (dézoomer), qui consiste à déplacer deux pointeur plus loin l'un de l'autre, change la couleur d'arrière-plan de l'élément cible en pink.

+ +

Définir la cible du toucher

+ +

L'application utilise un {{HTMLElement("div")}} pour définir la zone cible du pointeur.

+ +
<style>
+  div {
+    margin: 0em;
+    padding: 2em;
+  }
+  #target {
+    background: white;
+    border: 1px solid black;
+  }
+</style>
+
+ +

État global

+ +

Prendre en charge un mouvement à deux pointeurs nécessite de conserver un état des événements du pointeur durant les différentes phases de l'événement. Cette application utilise deux variables globales pour mettre en cache l'état de l'événement.

+ +
// Variables globales pour mettre en cache l'état de l'événement
+var evCache = new Array();
+var prevDiff = -1;
+
+ +

Enregistrer les gestionnaires d'événement

+ +

Les gestionnaires d'événement sont enregistrés pour les événements de pointeur suivants: {{event("pointerdown")}}, {{event("pointermove")}} et {{event("pointerup")}}. Le gestionnaire pour {{event("pointerup")}} est utilisé pour les événements {{event("pointercancel")}}, {{event("pointerout")}} et {{event("pointerleave")}} puisque ces quatre événements ont la même sémantique dans cette application.

+ +
function init() {
+ // Ajoute les gestionnaires d'événements pour la cible du pointeur
+ var el=document.getElementById("target");
+ el.onpointerdown = pointerdown_handler;
+ el.onpointermove = pointermove_handler;
+
+ // Même chose pour les événements pointer{up,cancel,out,leave} puisque
+ // la sémantique pour ces événements - dans cette appli - est identique.
+ el.onpointerup = pointerup_handler;
+ el.onpointercancel = pointerup_handler;
+ el.onpointerout = pointerup_handler;
+ el.onpointerleave = pointerup_handler;
+}
+
+ +

Pointer down

+ +

L'événement {{event("pointerdown")}} est déclenché quand un pointeur (souris, stylo/stylet ou point de contact sur un écran tactile) entre en contact avec la surface de contact. Dans cette application, l'état de l'événement doit être mis en cache dans le cas où il fait partie d'un geste à deux pointeurs pour pincer/zoomer.

+ +
function pointerdown_handler(ev) {
+ // L'événement pointerdown signale le début d'une interraction de toucher.
+ // L'événement est mis en cache pour prendre en charge les gestes à 2 doigts
+ evCache.push(ev);
+ log("pointerDown", ev);
+}
+
+ +

Pointer move

+ +

Le gestionnaire d'événement {{event("pointermove")}} détecte si un utilisateur est en train d'effectuer le geste de pincer/zoomer. Si deux pointeurs sont utilisés, et que la distance entre les pointeurs augmente (ce qui signifie qu'on étire ou dézoome), la couleur d'arrière-plan est changée en pink, et si la distance entre les pointeurs diminue (ce qui signifie qu'on pince ou dézoome), la couleur d'arrière-plan est changée en lightblue. Dans une application plus sophistiquée, le pincement ou l'étirement pourrait être utilisé pour appliquer une sémantique spécifique à l'application.

+ +

Quand cet événement est traité, la bordure de la cible est définie à dashed pour fournir une indication visuelle claire que l'élément a reçu un événement de déplacement.

+ +
function pointermove_handler(ev) {
+ // Cette fonction implémente la détection du mouvement horizontal pincer/zoomer.
+ //
+ // Si la distance entre les deux pointeurs augmente (zoomer),
+ // l'arrière-plan de l'élément cible est changé en "pink" et si la
+ // distance diminue (dezoomer), la couleur est changée en "lightblue".
+ //
+ // Cette fonctionne définie la bordure de l'élément cible à "dashed" pour indiquer
+ // visuellement que la cible du pointeur a reçu un événement de déplacement.
+ log("pointerMove", ev);
+ ev.target.style.border = "dashed";
+
+ // Trouve le pointeur en cours dans le cache et le met à jour avec cet événement
+ for (var i = 0; i < evCache.length; i++) {
+   if (ev.pointerId == evCache[i].pointerId) {
+      evCache[i] = ev;
+      break;
+   }
+ }
+
+ // Si deux pointeurs sont utilisés, vérifie le geste de pincement
+ if (evCache.length == 2) {
+   // Calcule la distance entre les deux pointeurs
+   var curDiff = Math.abs(evCache[0].clientX - evCache[1].clientX);
+
+   if (prevDiff > 0) {
+     if (curDiff > prevDiff) {
+       // La distance entre les deux pointeurs a augmenté
+       log("Pinch moving OUT -> Zoom in", ev);
+       ev.target.style.background = "pink";
+     }
+     if (curDiff < prevDiff) {
+       // La distance entre les deux pointeurs a diminué
+       log("Pinch moving IN -> Zoom out",ev);
+       ev.target.style.background = "lightblue";
+     }
+   }
+
+   // Met en cache la distance pour les événements suivants
+   prevDiff = curDiff;
+ }
+}
+
+ +

Pointer up

+ +

L'événement {{event("pointerup")}} est déclenché quand le pointeur est levé de la surface de contact. Quand cela arrive, l'événement est retiré du cache et la couleur d'arrière-plan et bordure de la cible sont rétablies à leur valeur d'origine.

+ +

Dans cette application, ce gestionnaire est également utilisé pour les événements {{event("pointercancel")}}, {{event("pointerleave")}} et {{event("pointerout")}}.

+ +
function pointerup_handler(ev) {
+  log(ev.type, ev);
+  // Retire ce pointeur du cache et rétablit l'arrière-plan et
+  // et bordure de la cible
+  remove_event(ev);
+  ev.target.style.background = "white";
+  ev.target.style.border = "1px solid black";
+
+  // Si le nombre de pointeurs restant est inférieur à deux, remet à zéro la différence
+  if (evCache.length < 2) prevDiff = -1;
+}
+
+ +

Application UI

+ +

Cette application utilise un élément {{HTMLElement("div")}} comme zone de toucher et fournit des boutons pour activer et nettoyer les logs.

+ +

Pour empêcher que le comportement par défaut du navigateur au toucher surcharge le gestionnaire de l'application, la propriété {{cssxref("touch-action")}} est appliquée à l'élément {{HTMLElement("body")}}.

+ +
<body onload="init();" style="touch-action:none">
+ <div id="target">Touchez l'écran avec deux pointeurs, puis pincez ou étirez.<br/>
+    La couleur d'arrière-plan changera en rose au pincement (Zoomer)
+    ou en bleu clair à l'étirement (Dézoomer).</div>
+ <!-- UI pour log/debug -->
+ <button id="log" onclick="enableLog(event);">Démarrer/Stopper les logs</button>
+ <button id="clearlog" onclick="clearLog(event);">Nettoyer les logs</button>
+ <p></p>
+ <output></output>
+</body>
+
+ +

Fonctions diverses

+ +

Ces fonctions prennent en charge l'application mais ne sont pas directement impliquées dans le flux des événements.

+ +

Gestion du Cache

+ +

Cette fonction aide à gérer le cache global des événements, evCache.

+ +
function remove_event(ev) {
+ // Supprime l'événement du cache
+ for (var i = 0; i < evCache.length; i++) {
+   if (evCache[i].pointerId == ev.pointerId) {
+     evCache.splice(i, 1);
+     break;
+   }
+ }
+}
+
+ +

Log des événements

+ +

Ces fonctions sont utilisées pour afficher l'activité du pointeur dans la fenêtre de l'application (pour aider à debugger et à apprendre le flux des événements).

+ +
// Flag log
+var logEvents = false;
+
+// Fonctions Log/debug
+function enableLog(ev) {
+  logEvents = logEvents ? false : true;
+}
+
+function log(prefix, ev) {
+  if (!logEvents) return;
+  var o = document.getElementsByTagName('output')[0];
+  var s = prefix + ": pointerID = " + ev.pointerId +
+                " ; pointerType = " + ev.pointerType +
+                " ; isPrimary = " + ev.isPrimary;
+  o.innerHTML += s + "
+";
+}
+
+function clearLog(event) {
+ var o = document.getElementsByTagName('output')[0];
+ o.innerHTML = "";
+}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/pointer_lock_api/index.html b/files/fr/web/api/pointer_lock_api/index.html new file mode 100644 index 0000000000..e3d6ea14f3 --- /dev/null +++ b/files/fr/web/api/pointer_lock_api/index.html @@ -0,0 +1,319 @@ +--- +title: Pointer Lock API +slug: WebAPI/Pointer_Lock +tags: + - API + - Avancé + - Jeux + - Reference + - mouse lock + - pointer lock +translation_of: Web/API/Pointer_Lock_API +--- +
{{DefaultAPISidebar("Pointer Lock API")}}
+ +

Pointer lock (en français Verrouillage du pointeur, précedement appelé mouse lock) permet d'obtenir des informations sur le déplacement de la souris à travers le temps, et ne se cantonne pas à fournir la position absolue du curseur sur l'écran. Cette interface donne accès aux données brutes de la souris, permet de verrouiller la cible des évènements à un élément unique, limiter jusqu'où le mouvement de la souris peut aller dans une direction donnée et cacher le curseur de la vue.
+
+ Cette API est utile pour les applications qui ont besoin d'écouter la souris pour contrôler des mouvements ou faire pivoter des objets sur leurs axes. Les jeux 3D de type FPS (First Person Shooter), les outils de modelisation, les vidéos immersives ou encore les cartes satellites sont autant de candidats idéals. L'utilisateur peut en effet changer l'angle de vue en bougeant simplement sa souris et sans cliquer sur aucun bouton ce qui les laisse donc disponibles pour effectuer d'autres actions.
+
+ Comme Pointer lock continue de déclencher des évènements même quand le curseur est en dehors des limites du navigateur ou de l'écran, les joueurs peuvent cliquer sur les boutons et déplacer le curseur de la souris sans se soucier de quitter la zone de jeu et de cliquer accidentellement sur une autre application qui changerait le focus de la souris en dehors du jeu.

+ +

Concepts de base

+ +

Pointer Lock partage des similtudes avec la capture de souris. La capture de souris offre un flot ininterrompu d'évènements sur un élément cible quand la souris glisse mais s'arrête quand le bouton est relaché. Pour cette raison, Pointer lock diffère de la capture de souris sur les points suivants :

+ + + +

Vue d'ensemble des méthodes/propriétées

+ +

Cette section fournit une brève description de chaque propriété et méthode associée à la spécification de Pointer Lock.

+ +

requestPointerLock()

+ +

L'API Pointer lock, de manière similaire à l'API Fullscreen, étend les les éléments DOM en ajoutant une nouvelle méthode, {{domxref("Element.requestPointerLock","requestPointerLock()")}}. Comme le préfixe fournisseur a récemment été retiré, vous devriez utiliser la syntaxe ci-dessous, par exemple pour demander un verrouillage deu pointeur sur un élément canvas:

+ +
canvas.requestPointerLock = canvas.requestPointerLock ||
+                            canvas.mozRequestPointerLock ||
+                            canvas.webkitPointerLockElement;
+
+canvas.requestPointerLock()
+ +

pointerLockElement et exitPointerLock()

+ +

L'API Pointer Lock étend également l'interface {{domxref("Document")}}, ajoutant à la fois une nouvelle propriété et une nouvelle méthode. La propriété {{domxref("Document.pointerLockElement","pointerLockElement")}}  est utilisée pour accéder à l'élément actuellement verrouillé (s'il y en a). La méthode {{domxref("Document.exitPointerLock","exitPointerLock()")}}  est utilisée pour libérer le verrou du pointeur.

+ +

La propriété {{domxref("Document.pointerLockElement","pointerLockElement")}}  est utile pour déterminer si un élément est actuellement verrouillé (pour une vérification booléenne par exemple) et également pour obtenir une référence vers l'élément s'il existe.

+ +

Voici un exemple d'utilisation de pointerLockElement:

+ +
document.pointerLockElement = document.pointerLockElement    ||
+                              document.mozPointerLockElement ||
+                              document.webkitPointerLockElement;
+
+// 1) Utiliser une vérification booléenne--le pointeur est-il verrouillé?
+if (!!document.pointerLockElement) {
+  // pointeur verrouillé
+} else {
+  // pointeur non verrouillé
+}
+
+// 2) Accéder à l'élément verrouillé
+if (document.pointerLockElement === someElement) {
+  // someElement est l'élément sur lequel le pointeur est verrouillé
+}
+
+ +

La méthode {{domxref("Document.exitPointerLock()")}} est utilisée pour libérer le verrouillage du pinteur, et, comme {{domxref("Element.requestPointerLock","requestPointerLock")}}, marche de manière asynchrone, on utilise les événements {{event("pointerlockchange")}} et {{event("pointerlockerror")}}, que vous verrez plus en détails ci-dessous.

+ +
document.exitPointerLock = document.exitPointerLock    ||
+                           document.mozExitPointerLock ||
+                           document.webkitExitPointerLock;
+
+// Essaie de déverrouiller
+document.exitPointerLock();
+
+ +

Événement pointerlockchange

+ +

Quand l'état de verrouillage du pointeur change — par exemple quand on appelle {{domxref("Element.requestPointerLock","requestPointerLock()")}}, {{domxref("Document.exitPointerLock","exitPointerLock()")}}, que l'utilisateur presse la touche ECHAP, etc.—l'événement {{event("pointerlockchange")}} est envoyé au document. C'est un simple événement qui ne contient pas de données supplémentaires.

+ +
document.pointerLockElement = document.pointerLockElement    ||
+                              document.mozPointerLockElement ||
+                              document.webkitPointerLockElement;
+
+function pointerLockChange() {
+  if (!!document.pointerLockElement) {
+    console.log("Verrouillé.");
+  } else {
+    console.log("Non verrouillé.");
+  }
+}
+
+document.addEventListener('pointerlockchange', pointerLockChange, false);
+document.addEventListener('mozpointerlockchange', pointerLockChange, false);
+document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
+
+ +

Événement pointerlockerror

+ +

Quand une erreur est causée par l'appel de {{domxref("Element.requestPointerLock","requestPointerLock()")}} ou {{domxref("Document.exitPointerLock","exitPointerLock()")}}, l'événement {{event("pointerlockerror")}} est envoyé au document. C'est un simple événement qui ne contient pas de données supplémentaires.

+ +
document.addEventListener('pointerlockerror', lockError, false);
+document.addEventListener('mozpointerlockerror', lockError, false);
+document.addEventListener('webkitpointerlockerror', pointerLockChange, false);
+
+function lockError(e) {
+  alert("Pointer lock failed");
+}
+
+ +
Note: Jusqu'à Firefox 50, les événements ci-dessus étaient préfixés avec moz.
+ +

Extensions aux événements de souris

+ +

L'API Pointer lock étend l'interface {{domxref("MouseEvent")}} normale avec les attributs de mouvement. Deux nouveaux attributs sont ajoutés aux événements de souris —{{domxref("MouseEvent.movementX","movementX")}} et {{domxref("MouseEvent.movementY","movementY")}}— fournissant le changement de position de la souris. Ces paramètres ont pour valeur les différences entre les valeurs des propriétés de {{domxref("MouseEvent.screenX","screenX")}} / {{domxref("MouseEvent.screenY","screenY")}} stockées dans les événements {{event("mousemove")}}, eNow et ePrevious. En d'autres termes, movementX = eNow.screenX - ePrevious.screenX.

+ +

État verrouillé

+ +

Quand le verrouillage du pointeur est activé, les propriétés standard {{domxref("MouseEvent.clientX","clientX")}}, {{domxref("MouseEvent.clientY","clientY")}}, {{domxref("MouseEvent.screenX","screenX")}}, et {{domxref("MouseEvent.screenY","screenY")}} sont gardées constantes, comme si la souris ne bougeait pas. Les propriétés {{domxref("MouseEvent.movementX","movementX")}} et {{domxref("MouseEvent.movementY","movementY")}} continuent de fournir le changement de position de la souris. Il n'y a pas de limite aux valeurs {{domxref("MouseEvent.movementX","movementX")}} et {{domxref("MouseEvent.movementY","movementY")}}, si la souris continue de bouger toujours dans la même direction. Le curseur de la souris n'existe pas et il ne peut pas sortir de la fenêtre ou être bloqué par un bord de l'écran.

+ +

État déverrouillé

+ +

Les paramètres {{domxref("MouseEvent.movementX","movementX")}} et {{domxref("MouseEvent.movementY","movementY")}} sont disponibles quel que soit l'état de la souris, verrou ou non.

+ +

Quand la souris est déverrouillée, il est possible que le curseur soit en dehors de la fenêtre et il est alors remis automatiquement à l'intérieur. Si cela arrive, {{domxref("MouseEvent.movementX","movementX")}} et {{domxref("MouseEvent.movementY","movementY")}} sont définis à zéro.

+ +

Simple exemple pas à pas

+ +

Nous avons écrit une démo de verrouillage de pointer pour vous montrer comment l'utiliser pour mettre en place un système de contrôle simple (voir le code source). La démo ressemble à ça:

+ +

A red circle on top of a black background.

+ +

Cette démo utilise JavaScript pour dessiner une balle dans un élément {{ htmlelement("canvas") }}. Quand vous cliquez sur le canvas, le verrouillage du pointeur est utilisé pour supprimer le curseur de la souris à l'écran et vous permettre de déplacer la balle avec la souris. Voyons comment cela fonctionne.

+ +

On définit les positions initiales x et y sur le canvas:

+ +
var x = 50;
+var y = 50;
+ +

Les méthodes de verrouillage de pointeur sont préfixées dans les anciennes versions des navigateurs, on prend donc en compte les différentes implémentations des navigateurs:

+ +
canvas.requestPointerLock = canvas.requestPointerLock ||
+                            canvas.mozRequestPointerLock ||
+                            canvas.webkitRequestPointerLock;
+
+document.exitPointerLock = document.exitPointerLock ||
+                           document.mozExitPointerLock ||
+                           document.webkitExitPointerLock;
+ +

Maintenant, on définit un gestionnaire d'événement qui appelle la méthode requestPointerLock() quand le canvas est cliqué, ce qui déclenche le verrouillage du pointeur.

+ +
canvas.onclick = function() {
+  canvas.requestPointerLock();
+}
+ +

Et maintenant le gestionnaire d'événement pour le verrouillage: pointerlockchange. Quand cet événement se déclenche, on appelle lockChangeAlert() pour gérer le changement.

+ +
// Gestionnaire d'événement de changement d'état du verrouilllage pour les différents navigateurs
+document.addEventListener('pointerlockchange', lockChangeAlert, false);
+document.addEventListener('mozpointerlockchange', lockChangeAlert, false);
+document.addEventListener('webkitpointerlockchange', lockChangeAlert, false);
+
+ +

La fonction suivante vérifie si la propriété pointLockElement est sur notre canvas. Si c'est le cas, on attache un gestionnaire d'événement pour gérer les mouvements de la souris avec la fonction updatePosition(). Sinon, elle enlève le gestionnaire d'événement.

+ +
function lockChangeAlert() {
+  if (document.pointerLockElement === canvas) {
+    console.log('The pointer lock status is now locked');
+    document.addEventListener("mousemove", updatePosition, false);
+  } else {
+    console.log('The pointer lock status is now unlocked');
+    document.removeEventListener("mousemove", updatePosition, false);
+  }
+}
+ +

La fonction updatePosition() met à jour la position de la balle sur le canvas (les valeurs x et y), et inclut également des instructions if() pour vérifier si la balle est sortie des bords du canvas. Dans ce cas, la balle se ressort au bord opposé. Elle vérifie également si un appel à requestAnimationFrame() a été effectué et si ce n'est pas le cas, l'appelle pour qu'elle déclenche la fonction canvasDraw() et mette à jour le canvas. Un tracker est mis en place pour afficher les valeurs X et Y à l'écran, pour référence.

+ +
var tracker = document.getElementById('tracker');
+
+var animation;
+function updatePosition(e) {
+  x += e.movementX;
+  y += e.movementY;
+  if (x > canvas.width + RADIUS) {
+    x = -RADIUS;
+  }
+  if (y > canvas.height + RADIUS) {
+    y = -RADIUS;
+  }
+  if (x < -RADIUS) {
+    x = canvas.width + RADIUS;
+  }
+  if (y < -RADIUS) {
+    y = canvas.height + RADIUS;
+  }
+  tracker.textContent = "X position: " + x + ", Y position: " + y;
+
+  if (!animation) {
+    animation = requestAnimationFrame(function() {
+      animation = null;
+      canvasDraw();
+    });
+  }
+}
+ +

La fonction canvasDraw() affiche la balle aux position x et y en cours:

+ +
function canvasDraw() {
+  ctx.fillStyle = "black";
+  ctx.fillRect(0, 0, canvas.width, canvas.height);
+  ctx.fillStyle = "#f00";
+  ctx.beginPath();
+  ctx.arc(x, y, RADIUS, 0, degToRad(360), true);
+  ctx.fill();
+}
+ +

iframe limitations

+ +

Le verrouilage du pointeur ne peut concerner qu'une seule iframe à la fois. Quand vous verrouillez une iframe, vous ne pouvez pas essayer de verrouiller une autre iframe et y transférer la cible; une erreur sera levée. Pour éviter cette limitation, déverrouillez d'abord la première iframe, puis verrouillez la seconde.

+ +

Tandis que cela fonctionne pour les iframes par défaut, les iframes en "sandbox" bloquent le verrouillage. La possibilité d'éviter cette limitation, sous la forme de la combinaison attribut/valeur <iframe sandbox="allow-pointer-lock">, devrait bientôt apparaître dans Chrome.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpecificationEtatCommentaire
{{SpecName('Pointer Lock')}}{{Spec2('Pointer Lock')}}Initial specification.
+ +

Compatibilité navigateur

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support +

{{CompatVersionUnknown}}

+
{{CompatVersionUnknown}} +

{{CompatVersionUnknown}} {{ property_prefix("-moz") }}

+
{{ CompatNo() }}{{CompatVersionUnknown}}10.1
Unprefixed support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(50)}}{{ CompatNo() }}{{CompatVersionUnknown}}10.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidEdgeFirefox Mobile (Gecko)Firefox OSIE PhoneOpera MobileSafari Mobile
Basic support{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}{{ CompatNo() }}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/proximity_events/index.html b/files/fr/web/api/proximity_events/index.html new file mode 100644 index 0000000000..e5b3d1e199 --- /dev/null +++ b/files/fr/web/api/proximity_events/index.html @@ -0,0 +1,120 @@ +--- +title: Proximity +slug: WebAPI/Proximity +tags: + - WebAPI +translation_of: Web/API/Proximity_Events +--- +

{{ SeeCompatTable }}

+

Résumé

+

Les événements de proximité permettent, simplement, de savoir lorsqu'un utilisateur est près de l'appareil. Ces événements permettent de réagir par rapport à cette proximité, par exemple en éteignant l'écran lorsqu'un utilisateur est en train de passer un appel téléphonique et que l'appareil est près de l'oreille.

+
+

Note : Bien entendu, il faut un capteur de proximité pour que cette API fonctionne, ceux-ci sont généralement disponibles sur les appareils mobile. Les appareils ne disposant pas d'un tel capteur pourront supporter de tels événements, ils seront en revanche incapables de les déclencher.

+
+

Événements de proximité

+

Lorsque le capteur de l'appareil détecte un changement entre l'appareil et l'objet, il informe le navigateur de ce changement en lui envoyant une notification. Lorsque le navigateur reçoit une notification comme celle-ci, il déclenche un événement {{domxref("DeviceProximityEvent")}} à chaque fois qu'il y a un changement et un événement  {{domxref("UserProximityEvent")}} dans le cas où un changement plus brutal se produit.

+

Cet événement peut être capturé en utilisant un objet au niveau window en utilisant la méthode {{domxref("EventTarget.addEventListener","addEventListener")}} (en utilisant les noms d'événements {{event("deviceproximity")}} ou {{event("userproximity")}}) ou en attachant un gestionnaire d'événement à la propriété {{domxref("window.ondeviceproximity")}} ou à la propriété {{domxref("window.onuserproximity")}}.

+

Une fois qu'il a été capturé, l'événement donne accès à différentes informations :

+ +

Exemple

+
window.addEventListener('userproximity', function(event) {
+  if (event.near) {
+    // extinction de l'écran
+    navigator.mozPower.screenEnabled = false;
+  } else {
+    // allumage de l'écran
+    navigator.mozPower.screenEnabled = true;
+  }
+});
+

Spécifications

+ + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{ SpecName('Proximity Events', '', 'Proximity Events') }}{{ Spec2('Proximity Events') }}Spécification initiale
+

Compatibilité des navigateurs

+

{{ CompatibilityTable() }}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
{{domxref("DeviceProximityEvent")}}{{CompatNo()}}{{CompatVersionUnknown()}}{{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
{{domxref("UserProximityEvent")}}{{CompatNo()}}{{CompatVersionUnknown()}}{{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
{{domxref("DeviceProximityEvent")}}{{CompatNo()}}{{CompatNo()}}{{ CompatGeckoMobile("15.0") }}{{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
{{domxref("UserProximityEvent")}}{{CompatNo()}}{{CompatNo()}}{{CompatVersionUnknown()}}{{CompatNo()}}{{CompatNo()}}{{CompatNo()}}
+
+

Voir aussi

+ diff --git a/files/fr/web/api/randomsource/getrandomvalues/index.html b/files/fr/web/api/randomsource/getrandomvalues/index.html deleted file mode 100644 index 28682a0c2a..0000000000 --- a/files/fr/web/api/randomsource/getrandomvalues/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: RandomSource.getRandomValues() -slug: Web/API/RandomSource/getRandomValues -tags: - - API - - Cryptographie - - Methode(2) - - Méthode - - Reference - - Référence(2) -translation_of: Web/API/Crypto/getRandomValues ---- -

{{APIRef("Web Crypto API")}}

- -

La méthode RandomSource.getRandomValues() permet d’obtenir des valeurs pseudo-aléatoires cryptographiquement satisfaisantes. Le tableau donné en paramètre est rempli avec des nombres pseudo-aléatoires.

- -

Pour garantir une performance suffisante, les implémentations n’utilisent pas un vrai générateur de nombres aléatoires, mais un générateur de nombres pseudo-aléatoires semé avec une valeur ayant suffisamment d'{{Glossary("entropie")}}. Les générateurs utilisés d’une implémentation à une autre seront différents mais toujours satisfaisants pour une utilisation en cryptographie. Les implémentations doivent également utiliser une graine ayant suffisamment d’entropie, comme une source d’entropie au niveau du système.

- -

Syntaxe

- -
cryptoObj.getRandomValues(typedArray);
- -

Paramètres

- -
-
typedArray
-
Un {{jsxref("TypedArray")}} de nombres entiers, qui est un {{jsxref("Int8Array")}}, un {{jsxref("Uint8Array")}}, un {{jsxref("Uint16Array")}}, un {{jsxref("Int32Array")}}, ou encore un {{jsxref("Uint32Array")}}. Tous les éléments du tableau seront subsitués avec des nombres aléatoires.
-
- -

Exceptions

- - - -

Exemple

- -
/* on part du principe ici que window.crypto.getRandomValues est disponible */
-
-var array = new Uint32Array(10);
-window.crypto.getRandomValues(array);
-
-console.log("Your lucky numbers:");
-for (var i = 0; i < array.length; i++) {
-    console.log(array[i]);
-}
-
- -

Spécification

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Web Crypto API', '#RandomSource-method-getRandomValues')}}{{Spec2('Web Crypto API')}}Initial definition
- -

Compatibilité des navigateurs

- -
{{Compat("api.Crypto.getRandomValues")}}
- -

Voir aussi

- - diff --git a/files/fr/web/api/scriptprocessornode/audioprocess_event/index.html b/files/fr/web/api/scriptprocessornode/audioprocess_event/index.html new file mode 100644 index 0000000000..ae89178361 --- /dev/null +++ b/files/fr/web/api/scriptprocessornode/audioprocess_event/index.html @@ -0,0 +1,151 @@ +--- +title: audioprocess +slug: Web/Events/audioprocess +translation_of: Web/API/ScriptProcessorNode/audioprocess_event +--- +
+

L'événement audioprocess est déclenché lorsqu'un tampon d'entrée d'une API Web audio {{domxref("ScriptProcessorNode")}} est prêt à être traité.

+
+ +

Informations générales

+ +
+
Spécification
+
{{SpecName('Web Audio API', '#AudioProcessingEvent-section', 'AudioProcessingEvent')}}
+
Interface
+
{{domxref("AudioProcessingEvent")}}
+
Propagation
+
?
+
Annulable
+
?
+
Cible
+
{{domxref("ScriptProcessorNode")}}
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{ReadOnlyInline}}{{domxref("EventTarget")}}La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type {{ReadOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{ReadOnlyInline}}booleanEst-ce que l'événement se propage?
cancelable {{ReadOnlyInline}}booleanEst-il possible d'annuler l'événement?
playbackTime {{ReadOnlyInline}}doubleLe moment auquel le son sera joué tel que défini par le temps de {{domxref("AudioContext.currentTime")}}.
inputBuffer {{ReadOnlyInline}}{{domxref("AudioBuffer")}} +

Le tampon contenant les données audio d'entrée devant être traité. Le nombre de canaux est défini par le paramètre numberOfInputChannels de la méthode {{domxref("AudioContext.createScriptProcessor()")}}. Noter que le AudioBuffer retourné est seulement valide dans la portée de la fonction onaudioprocess.

+
outputBuffer {{ReadOnlyInline}}{{domxref("AudioBuffer")}} +

Le tampon dans lequel doit être écrit les données audio de sortie. Le nombre de canaux est défini par le paramètre numberOfOutputChannels de la méthode {{domxref("AudioContext.createScriptProcessor()")}}. Noter que le AudioBuffer retourné est seulement valide dans la portée de la fonction onaudioprocess.

+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Web Audio API', '#AudioProcessingEvent-section', 'AudioProcessingEvent')}}{{Spec2('Web Audio API')}} 
+ +

Compatibilités navigateur

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique{{CompatVersionUnknown}}{{property_prefix("webkit")}}{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
AppareilAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Support basique{{CompatUnknown}}{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/selection_api/index.html b/files/fr/web/api/selection_api/index.html deleted file mode 100644 index bca8077699..0000000000 --- a/files/fr/web/api/selection_api/index.html +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Selection API -slug: Web/API/Selection_API -translation_of: Web/API/Selection_API ---- -

{{APIRef}}

- -
-

L’API Selection fournit des fonctionnalités pour lire et manipuler les plages (en anglais : ranges) de texte sélectionnées par l’utilisatrice ou l’utilisateur.

-
- -

Concepts et utilisation

- -

Pour obtenir la plage de texte actuellement sélectionnée par l’utilisatrice ou l’utilisateur, vous pouvez utiliser la méthode {{domxref("Window.getSelection()")}} ou {{domxref("Document.getSelection()")}}, et stocker la valeur de retour – un objet {{domxref("Selection")}} – dans une variable pour une utilisation ultérieure.

- -

Une fois que votre sélection est dans une variable, vous pouvez effectuer différentes opérations dessus, par exemple :

- - - -

Vous pouvez exécuter du code en réponse à un changement de sélection, ou au commencement d’une nouvelle sélection, en utilisant les gestionnaires d’évènements {{domxref("GlobalEventHandlers.onselectionchange")}} et {{domxref("GlobalEventHandlers.onselectstart")}}.

- -

Interfaces de l’API Selection

- -
-
{{domxref("Selection")}}
-
Représente la plage de texte sélectionnée ou la position actuelle du curseur.
-
- -

Extensions à d’autres interfaces

- -
-
{{domxref("Window.getSelection()")}}, {{domxref("Document.getSelection()")}}
-
Retourne un objet {{domxref("Selection")}} représentant la plage de texte sélectionnée ou la position actuelle du curseur. Document.getSelection() est en quelques sortes un alias de Window.getSelection().
-
{{domxref("GlobalEventHandlers.onselectstart")}}
-
Représente le gestionnaire d’évènement qui est appelé quand un évènement {{event("selectstart")}} est émis sur l’objet concerné (c’est-à-dire quand une nouvelle plage de texte est sur le point d’être sélectionnée).
-
{{domxref("GlobalEventHandlers.onselectionchange")}}
-
Représente le gestionnaire d’évènement qui est appelé quand un évènement {{event("selectionchange")}} est émis sur l’objet concerné (c’est-à-dire quand la plage de texte sélectionné change).
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('Selection API', '#definition', 'Selection')}}{{Spec2('Selection API')}}La spécification de l’API Selection est basée sur la spécification de l’API Édition HTML et se concentre sur les fonctionnalités liées à la sélection.
{{SpecName('HTML Editing', '#selection', 'Selection')}}{{Spec2('HTML Editing')}}Définition initiale (plus ancienne), à présent obsolète.
- -

Compatibilité des navigateurs

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown()}}
- {{CompatGeckoDesktop(52)}}[1]
9{{CompatVersionUnknown}}{{CompatVersionUnknown}}
modify(){{CompatVersionUnknown}}{{CompatUnknown}}{{CompatGeckoDesktop(2)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
setBaseAndExtent(){{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoDesktop(53)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
deleteFromDocument(){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(55)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
empty() comme alias de removeAllRanges(){{CompatVersionUnknown}}{{CompatUnknown}}{{CompatGeckoDesktop(55)}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
setPosition() comme alias de collapse(){{CompatVersionUnknown}}{{CompatUnknown}}{{CompatGeckoDesktop(55)}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Support de base{{CompatUnknown}}{{CompatVersionUnknown}} -

{{CompatVersionUnknown()}}
- {{CompatGeckoMobile(52)}}[1]

-
{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
modify(){{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(2)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatVersionUnknown}}
setBaseAndExtent(){{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(53)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
deleteFromDocument(){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(55)}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
empty() comme alias de removeAllRanges(){{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(55)}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
setPosition() comme alias de collapse(){{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile(55)}}{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
-
- -

[1] Les gestionnaires d’évènements {{domxref("GlobalEventHandlers.onselectionchange")}} et {{domxref("GlobalEventHandlers.onselectstart")}} sont supportés à partir de Firefox 52.

- -

Voir aussi

- - diff --git a/files/fr/web/api/storage/localstorage/index.html b/files/fr/web/api/storage/localstorage/index.html deleted file mode 100644 index 9f6c400f86..0000000000 --- a/files/fr/web/api/storage/localstorage/index.html +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: LocalStorage -slug: Web/API/Storage/LocalStorage -translation_of: Web/API/Window/localStorage -translation_of_original: Web/API/Web_Storage_API/Local_storage ---- -

{{APIRef()}}

- -

La propriété localStorage de l’objet Window est comparable à {{ DOMxRef("Window.sessionStorage", "sessionStorage") }} (la même {{ Glossary("same-origin_policy", "politique de même origine") }} est appliquée), mais les données enregistrées sont persistantes d’une session à l’autre. localStorage a été introduit dans Firefox 3.5.

- -
Note : Quand le navigateur est en mode navigation privée, une nouvelle base de donnée temporaire est créée pour stocker les données locales ; cette base de données est vidée et supprimée quand le mode de navigation privée est arrêté.
- -
// Sauvegarder les informations dans l’espace local courant
-localStorage.setItem("username", "John");
-
-// Accéder à des données enregistrées
-alert("username = " + localStorage.getItem("username"));
- -

La persistence de localStorage le rend utile pour une varitété d’usages, comprenant des compteurs de vues de page comme démontré dans ce tutoriel sur Codepen.

- -

Compatibilité

- -

Les objets {{ DOMxRef("Storage") }} sont un ajout récent au standard. Ainsi, ils pourraient ne pas être présents dans tous les navigateurs. Il est possible de contourner ce problème en insérant l’un des deux codes suivants au début de vos scripts. Cela vous permettra d’utiliser l’objet localStorage dans les navigateurs qui ne le supportent pas nativement.

- -

Cet algorithme est une imitation exacte de l’objet localStorage, mais utilise les cookies.

- -
if (!window.localStorage) {
-  Object.defineProperty(window, "localStorage", new (function () {
-    var aKeys = [], oStorage = {};
-    Object.defineProperty(oStorage, "getItem", {
-      value: function (sKey) { return sKey ? this[sKey] : null; },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "key", {
-      value: function (nKeyId) { return aKeys[nKeyId]; },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "setItem", {
-      value: function (sKey, sValue) {
-        if(!sKey) { return; }
-        document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
-      },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "length", {
-      get: function () { return aKeys.length; },
-      configurable: false,
-      enumerable: false
-    });
-    Object.defineProperty(oStorage, "removeItem", {
-      value: function (sKey) {
-        if(!sKey) { return; }
-        document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
-      },
-      writable: false,
-      configurable: false,
-      enumerable: false
-    });
-    this.get = function () {
-      var iThisIndx;
-      for (var sKey in oStorage) {
-        iThisIndx = aKeys.indexOf(sKey);
-        if (iThisIndx === -1) { oStorage.setItem(sKey, oStorage[sKey]); }
-        else { aKeys.splice(iThisIndx, 1); }
-        delete oStorage[sKey];
-      }
-      for (aKeys; aKeys.length > 0; aKeys.splice(0, 1)) { oStorage.removeItem(aKeys[0]); }
-      for (var aCouple, iKey, nIdx = 0, aCouples = document.cookie.split(/\s*;\s*/); nIdx < aCouples.length; nIdx++) {
-        aCouple = aCouples[nIdx].split(/\s*=\s*/);
-        if (aCouple.length > 1) {
-          oStorage[iKey = unescape(aCouple[0])] = unescape(aCouple[1]);
-          aKeys.push(iKey);
-        }
-      }
-      return oStorage;
-    };
-    this.configurable = false;
-    this.enumerable = true;
-  })());
-}
-
- -
Note : La taille maximale des données est limitée par la capacité des cookies. Avec cet algorithme, utilisez les fonctions localStorage.setItem() et localStorage.removeItem() pour ajouter, changer ou supprimer une clé. L’utilisation des méthodes localStorage.yourKey = yourValue; et delete localStorage.yourKey; pour définir ou supprimer une clé n’est pas sécurisée avec ce code. Vous pouvez également changer son nom et l’utiliser pour gérer uniquement les cookies indépendamment de l’objet localStorage.
- -
Note : En remplaçant "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/" par "; path=/" (et en changeant le nom de l’objet), cela deviendra un polyfill pour sessionStorage plutôt que pour localStorage. Cependant, cette implémentation partagera les valeurs stockées entre les fenêtres et onglets du navigateur (et sera nettoyée seulement quand toutes les fenêtres du navigateur sont fermées), tandis qu’une implémentation fidèle de sessionStorage restreint les valeurs stockées au {{ Glossary("Browsing_context", "contexte de navigation") }} actuel uniquement.
- -

Voici une autre imitation, moins exacte, de l’objet localStorage. Elle est plus simple que la version précédente, mais est compatible avec les navigateur plus anciens comme Internet Explorer < 8 (testé et vérifié même avec Internet Explorer 6). Ce code utilise également les cookies.

- -
if (!window.localStorage) {
-  window.localStorage = {
-    getItem: function (sKey) {
-      if (!sKey || !this.hasOwnProperty(sKey)) { return null; }
-      return unescape(document.cookie.replace(new RegExp("(?:^|.*;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"), "$1"));
-    },
-    key: function (nKeyId) {
-      return unescape(document.cookie.replace(/\s*\=(?:.(?!;))*$/, "").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/)[nKeyId]);
-    },
-    setItem: function (sKey, sValue) {
-      if(!sKey) { return; }
-      document.cookie = escape(sKey) + "=" + escape(sValue) + "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/";
-      this.length = document.cookie.match(/\=/g).length;
-    },
-    length: 0,
-    removeItem: function (sKey) {
-      if (!sKey || !this.hasOwnProperty(sKey)) { return; }
-      document.cookie = escape(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
-      this.length--;
-    },
-    hasOwnProperty: function (sKey) {
-      return (new RegExp("(?:^|;\\s*)" + escape(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie);
-    }
-  };
-  window.localStorage.length = (document.cookie.match(/\=/g) || window.localStorage).length;
-}
-
- -
Note : La taille maximale des données est limitée par les capacités des cookies. Avec cet algorithme, utilisez les fonctions localStorage.getItem(), localStorage.setItem(), et localStorage.removeItem() pour récupérer, ajouter, modifier ou supprimer une clé. L’utilsation de la méthode localStorage.yourKey pour récupérer, définir, ou supprimer une clé n’est pas possible avec ce code. Vous pouvez également changer son nom et l’utiliser pour gérer les cookies indépendamment de l’objet localStorage.
- -
Note : En remplaçant la chaîne "; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/" par "; path=/" (et en changeant le nom de l’objet), cela deviendra un polyfill pour sessionStorage plutôt que pour localStorage. Cependant, cette implémentation partagera les valeurs stockées au travers des onglets et fenêtres du navigateur (et seront supprimée uniquement quand toutes les fenêtres du navigateur seront fermées), alors qu’une implémentation pleinement compatible avec sessionStorage restreint les valeurs sauvegardées au {{ Glossary("Browsing_context", "contexte de navigation") }} actuel uniquement.
- -

Compatibilité et relation avec globalStorage

- -

localStorage est équivalent à globalStorage[location.hostname], à la différence qu’il est rattaché à une {{ Glossary("origine") }} HTML5, et que localStorage est une instance de Storage, contrairement à globalStorage[location.hostname] qui est une instance de StorageObsolete (qui est abordé ci-dessous). Par exemple, http://example.com ne sera pas capable d’accéder au même objet localStorage que https://example.com mais il pourront accéder au même élément globalStorage. localStorage est une interface standard alors que globalStorage n’est pas standard. Ainsi, vous ne devriez pas vous fier à cette dernière.

- -

Veuillez noter que définir une propriété sur globalStorage[location.hostname] n’entraîne pas sa définition sur localStorage, et qu’étendre Storage.prototype n’affecte pas les objets globalStorage ; pour faire ainsi, c’est StorageObsolete.prototype qu’il faut étendre.

- -

Format de stockage

- -

Les clés et les valeurs de Storage sont stockées au format {{ DOMxRef("DOMString") }} UTF-16, qui utilise 2 octets par caractère.

diff --git a/files/fr/web/api/touch_events/index.html b/files/fr/web/api/touch_events/index.html new file mode 100644 index 0000000000..7f3cbae7b5 --- /dev/null +++ b/files/fr/web/api/touch_events/index.html @@ -0,0 +1,245 @@ +--- +title: Événements tactiles / Touch events +slug: Web/Guide/DOM/Events/Touch_events +tags: + - Tactile + - touch +translation_of: Web/API/Touch_events +--- +

{{DefaultAPISidebar("Touch Events")}}

+ +

Afin de fournir un support de qualité pour les interfaces tactiles, les événements tactiles (touch events) permettent d'interpréter les interactions tactiles (sur les écrans ou trackpads).

+ +

Définitions

+ +
+
Surface
+
La surface tactile. Cela peut être un écran ou un trackpad.
+
+ +
+
Point de toucher (Touch point)
+
Le point de contact avec la surface. Cela peut être un doigt ou un stylet (ou un coude, une oreille, un nez... enfin il y a quand même des chances que cela soit un doigt).
+
+ +

Interfaces

+ +
+
{{ domxref("TouchEvent") }}
+
Représente l'événement qui se produit quand l'action de toucher change.
+
{{ domxref("Touch") }}
+
Représente un point unique de contact entre l'utilisateur et la surface tactile.
+
{{ domxref("TouchList") }}
+
Représente un groupe de plusieurs interactions tactiles. Cela peut par exemple être le cas quand l'utilisateur utilise plusieurs doigts pour toucher simultanément la même surface.
+
{{ domxref("DocumentTouch") }}
+
Contient des méthodes permettant de créer les objets  {{ domxref("Touch") }} et {{ domxref("TouchList") }}.
+
+ +

Exemple

+ +

Cet exemple permet de gérer un toucher multiple (plusieurs contacts simultanés), permettant ainsi à l'utilisateur de dessiner dans un {{ HTMLElement("canvas") }} avec plusieurs doigts. Cela ne fonctionne qu'avec les navigateurs supportant les interactions tactiles.

+ +
Note : Le texte qui suit utilisera le terme de « doigt » pour désigner le point de toucher entre l'utilisateur et la surface. Bien entendu, cela est transposable avec une autre méthode de toucher (stylet...).
+ +

Initialiser les gestionnaires d'événements

+ +

Quand la page charge, la fonction startup() décrite ci-dessous est appelée par l'attribut onload de l'élément {{ HTMLElement("body") }}.

+ +
function startup() {
+  var el = document.getElementsByTagName("canvas")[0];
+  el.addEventListener("touchstart", handleStart, false);
+  el.addEventListener("touchend", handleEnd, false);
+  el.addEventListener("touchcancel", handleCancel, false);
+  el.addEventListener("touchleave", handleLeave, false);
+  el.addEventListener("touchmove", handleMove, false);
+}
+
+ +

Cela permet simplement d'initialiser les observateurs d'événements pour l'élément {{ HTMLElement("canvas") }} afin de pouvoir gérer ceux-ci lorsqu'ils se produisent.

+ +

Gérer les nouveaux touchers

+ +

Quand un événement touchstart se produit, cela indique qu'un nouveau toucher s'est produit. La fonction handleStart() est alors appelée.

+ +
function handleStart(evt) {
+  evt.preventDefault();
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  for (var i=0; i<touches.length; i++) {
+    ongoingTouches.push(touches[i]);
+    var color = colorForTouch(touches[i]);
+    ctx.fillStyle = color;
+    ctx.fillRect(touches[i].pageX-2, touches[i].pageY-2, 4, 4);
+  }
+}
+
+ +

Cette fonction appelle {{ domxref("event.preventDefault()") }}, ce qui évite au navigateur de continuer à traiter cet événement (le début du toucher). Cela permet aussi de ne pas déclencher d'événement de souris. On obtient ensuite le contexte, duquel on peut obtenir une liste des changements des points de toucher grâce à la propriété {{ domxref("TouchEvent.changedTouches") }} de l'événement.

+ +

Après quoi, on fait une boucle sur les différents objets {{ domxref("Touch") }} de la liste. puis on les stocke dans un tableau pour ensuite dessiner les points (on souhaite peindre une ligne large de 4 pixels, on dessinera donc des points comme des carrés mesurant 4x4 pixels).

+ +

Dessiner avec les déplacements

+ +

Chaque fois que le(s) doigt(s) bouge(nt), un événement touchmove est déclenché, ce qui provoque l'appel de la fonction handleMove() que l'on a créée. Son rôle, dans cet exemple, est d'actualiser les informations mises en cache sur les informations tactiles et de dessiner une ligne entre la position précédente et la position actuelle pour chacune des touches.

+ +
function handleMove(evt) {
+  evt.preventDefault();
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  ctx.lineWidth = 4;
+
+  for (var i=0; i<touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    ctx.fillStyle = color;
+    ctx.beginPath();
+    ctx.moveTo(ongoingTouches[idx].pageX, ongoingTouches[idx].pageY);
+    ctx.lineTo(touches[i].pageX, touches[i].pageY);
+    ctx.closePath();
+    ctx.stroke();
+    ongoingTouches.splice(idx, 1, touches[i]);  // mettre à jour la liste des touchers
+  }
+}
+
+ +

Cette fonction boucle également sur les changements de touchers. Elle consulte toutefois les informations en cache dans le tableau pour déterminer le point de départ de chaque nouveau segment. Cela se fait en consultant la propriété {{ domxref("Touch.identifier") }}. Cette propriété est un entier unique pour chaque touche, cet entier reste le même pour chaque événement tant que le doigt est en contact avec la surface.

+ +

Cela permet d'obtenir les précédentes coordonnées pour chaque toucher et ainsi d'utiliser la méthode adaptée pour dessiner le segment reliant les deux positions.

+ +

Une fois le segment dessiné, on appelle Array.splice() pour remplacer les informations précédentes sur les points de toucher par les informations courantes contenues dans le tableau ongoingTouches.

+ +

Gérer la fin d'un toucher

+ +

Lorsqu'un utilisateur enlève son doigt de la surface, un événement touchend est envoyé. De la même manière, un événement touchleave sera envoyé si le doigt sort du canvas. Ici, les deux événements sont gérés en commun avec la fonction handleEnd() ci-dessous. Son rôle est de dessiner le dernier segment pour chaque toucher qui s'est fini et de retirer le point de contact de la liste.

+ +
function handleEnd(evt) {
+  evt.preventDefault();
+  var el = document.getElementsByTagName("canvas")[0];
+  var ctx = el.getContext("2d");
+  var touches = evt.changedTouches;
+
+  ctx.lineWidth = 4;
+
+  for (var i=0; i<touches.length; i++) {
+    var color = colorForTouch(touches[i]);
+    var idx = ongoingTouchIndexById(touches[i].identifier);
+
+    ctx.fillStyle = color;
+    ctx.beginPath();
+    ctx.moveTo(ongoingTouches[i].pageX, ongoingTouches[i].pageY);
+    ctx.lineTo(touches[i].pageX, touches[i].pageY);
+    ongoingTouches.splice(i, 1);  // On enlève le point
+  }
+}
+
+ +

Cette fonction ressemble beaucoup à la précédente sauf qu'ici en appelant Array.splice(), on retire simplement l'ancien point sans ajouter un point mis à jour. On arrête donc de « suivre » ce point.

+ +

Gérer l'annulation d'un toucher

+ +

Si le doigt de l'utilisateur se balade dans l'interface du navigateur ou si un toucher doit être annulé, l'événement touchcancel est envoyé et on appelle alors la fonction handleCancel().

+ +
function handleCancel(evt) {
+  evt.preventDefault();
+  var touches = evt.changedTouches;
+
+  for (var i=0; i<touches.length; i++) {
+    ongoingTouches.splice(i, 1);  // on retire le point
+  }
+}
+
+ +

L'idée est ici la même que pour la fin d'un toucher, on retire simplement le point de la liste. Ici on ne dessine pas le dernier segment.

+ +

Fonctions auxiliaires

+ +

Cet exemple utilise deux fonctions auxiliaires qu'il est conseillé de lire rapidement afin de mieux comprendre le reste du code.

+ +

Sélectionner une couleur pour chaque toucher

+ +

Afin que chaque contact soit différent, on utilisera la fonction colorForTouch() pour choisir un couleur unique pour chacun, basée sur l'identifiant du toucher. Cet identifiant sera toujours compris entre 0 et le nombre de touchers moins 1. Imaginons que personne n'utilisera plus de 16 touchers simultanés, on peut alors directement convertir les identifiants en niveaux de gris.

+ +
function colorForTouch(touch) {
+  var id = touch.identifier;
+  id = id.toString(16); // creer un nombre hexadécimal
+  return "#" + id + id + id;
+}
+
+ +

Le résultat de cette fonction sera une chaîne de caractères qui pourra être utilisée par les fonctions de l'élément {{ HTMLElement("canvas") }} pour dessiner les couleurs. Ainsi avec un identifiant initial {{ domxref("Touch.identifier") }} de 10, le résultat de cette fonction sera la chaîne "#aaa".

+ +

Retrouver un toucher en cours

+ +

La fonction ongoingTouchIndexById() analyse le tableau ongoingTouches pour trouver le toucher correspondant à l'identifiant donné. Elle retourne alors l'indice du toucher dans le tableau.

+ +
function ongoingTouchIndexById(idToFind) {
+  for (var i=0; i<ongoingTouches.length; i++) {
+    var id = ongoingTouches[i].identifier;
+
+    if (id == idToFind) {
+      return i;
+    }
+  }
+  return -1;    // toucher non trouvé
+}
+
+ +

Voir l'exemple sur une page

+ +

Astuces supplémentaires

+ +

Cette section fournit quelques astuces supplémentaires pour gérer les événements tactiles au sein de votre application web.

+ +

Gérer les clics

+ +

Étant donné que l'appel de la méthode preventDefault() sur l'événement  touchstart ou le premier événement touchmove de la série empêche la saisie d'événements en provenance de la souris, on appelle souvent  preventDefault() sur touchmove plutôt que sur touchstart. Ainsi, les événements de la souris peuvent continuer à se déclencher et le reste du site fonctionnera de manière habituelle. Une autre méthode parfois utilisée est de déclencher des événements de souris à partir des événements tactiles. (L'exemple qui suit représente seulement une indication. La logique a été simplifiée et ce code, tel quel, aura un comportement étrange.)

+ +
function onTouch(evt) {
+  evt.preventDefault();
+  if (evt.touches.length > 1 || (evt.type == "touchend" && evt.touches.length > 0))
+    return;
+
+  var newEvt = document.createEvent("MouseEvents");
+  var type = null;
+  var touch = null;
+  switch (event.type) {
+    case "touchstart": type = "mousedown"; touch = event.changedTouches[0];
+    case "touchmove":  type = "mousemove"; touch = event.changedTouches[0];
+    case "touchend":   type = "mouseup"; touch = event.changedTouches[0];
+  }
+  newEvt.initMouseEvent(type, true, true, event.originalTarget.ownerDocument.defaultView, 0,
+    touch.screenX, touch.screenY, touch.clientX, touch.clientY,
+    evt.ctrlKey, evt.altKey, evt.shirtKey, evt.metaKey, 0, null);
+  event.originalTarget.dispatchEvent(newEvt);
+}
+
+ +

Appeler preventDefault() uniquement pour un deuxième toucher

+ +

Pour éviter que des événements de zoom (comme pinchZoom) ne se produisent sur la page, il est possible d'appeler la méthode preventDefault() sur le deuxième toucher de la série. Ce comportement n'est pas encore parfaitement défini dans les différentes spécifications. Différents résultats se produisent sur les différents navigateurs (ainsi iOS empêchera le zoom mais continuera à autoriser le déroulement de la page avec deux doigts, Android autorisera le zoom mais pas le déroulement, Opera et Firefox empêcheront ces deux opérations). Il est actuellement déconseillé d'être dépendant d'un de ces comportements en particulier. Il faut plutôt utiliser les méta-données concernant la vue virtuelle (viewport) pour éviter un zoom quelconque.

+ +
+
+ +

Compatibilité des navigateurs

+ +

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

+ +
 
+ +

Notes relatives à Gecko

+ +

Le paramètre dom.w3c_touch_events.enabled peut être utilisé avec ses trois états pour désactiver (0), activer (1) et détecter automatiquement (2) le support des événements tactiles. La valeur par défaut est la détection automatique (2). Une fois que le paramètre a été changé, il est nécessaire de redémarrer le navigateur.

+ +
+

{{ gecko_callout_heading("12.0") }}

+ +

Avant Gecko 12.0 {{ geckoRelease("12.0") }}, Gecko ne supportait pas les contacts multiples simultanés. Seul un toucher à la fois était supporté.

+
+ +
Note : Avant Gecko 6.0 {{ geckoRelease("6.0") }}, Gecko permettait d'utiliser une API propriétaire pour les événements tactile. Cette API est maintenant dépréciée, celle-ci doit être utilisée à la place.
diff --git a/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html b/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html new file mode 100644 index 0000000000..97174a4763 --- /dev/null +++ b/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html @@ -0,0 +1,64 @@ +--- +title: Gérer à la fois événement tactile et événement de la souris +slug: >- + Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris +translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +--- +

{{DefaultAPISidebar("Touch Events")}}

+ +

Les interfaces {{domxref("Touch_events","touch")}} permettent aux applications de créer de meilleures expériences utilisateurs sur les appareils tactiles. Pourtant, la grande majorité du contenu web actuel est développé pour fonctionner uniquement avec la souris. En conséquence, même si un navigateur supporte le tactile, le navigateur continue à émuler les événements de la souris, donc le contenu qui se veut fonctionner uniquement à la souris fonctionnera toujours tel quel sans modification directe.

+ +

Idéalement, une application tactile n'a pas besoin de supporter explicitement la souris. Mais puisque le navigateur doit émuler les événements de la souris, il peut être nécessaire de gérer certains problèmes d'interaction. Ci-dessous, vous trouverez des détails concernant l'interaction et ses répercussions pour les développeurs d'application.

+ +

Déclenchement de l'événement

+ +

La norme des événements tactiles définit quelques exigences envers les navigateurs concernant l'interaction tactile et souris (voir la section Interaction with Mouse Events and click pour plus de détails), noter que le navigateur peut déclencher à la fois des événements tactiles et des événements de la souris en réponse à une seule et même entrée de l'utilisateur. Cette section décrit les exigences pouvant affecter une application.

+ +

Si le navigateur déclenche à la fois des événements tactiles et souris en réponse à une seule entrée d'un utilisateur, le navigateur doit déclencher un événement {{event("touchstart")}} avant tout événement de la souris. En conséquence, si une application ne veut pas que des événements de la souris soient déclenchés sur un élément {{domxref("Touch.target","target")}} spécifiquement tactile, le gestionnaire de l'événement tactile de l'élément devrait appeler {{domxref("Event.preventDefault()","preventDefault()")}} ainsi aucun événement additionnel de la souris sera envoyé.

+ +

Voici un extrait de code du gestionnaire de l'événement {{event("touchmove")}} qui appelle preventDefault().

+ +
// touchmove handler
+function process_touchmove(ev) {
+  // Call preventDefault() to prevent any further handling
+  ev.preventDefault();
+}
+
+ +

Ordre des événements

+ +

Même si l'ordre spécifique des événements tactiles et souris est défini par l'implémentation, la norme indique que l'ordre suivant est représentatif: pour une entrée :

+ + + +

Si l'événement {{event("touchstart")}}, {{event("touchmove")}} ou {{event("touchend")}} est annulé pendant une interaction, aucun événement de la souris ou du click sera déclenché, et la séquence des événements qui en résulte serait seulement :

+ + + +

Community

+ + + + + + diff --git a/files/fr/web/api/urlutils/index.html b/files/fr/web/api/urlutils/index.html deleted file mode 100644 index 7bbe88b470..0000000000 --- a/files/fr/web/api/urlutils/index.html +++ /dev/null @@ -1,213 +0,0 @@ ---- -title: URLUtils -slug: Web/API/URLUtils -tags: - - API - - Experimental - - JavaScript - - Reference - - URL -translation_of: Web/API/HTMLHyperlinkElementUtils ---- -

{{APIRef}}{{SeeCompatTable}}

-

L'interface URLUtils définit des méthodes utilitaires pour travailler avec les URL.

-

il n'y a pas d'objets de ce type, mais quelques objets l'implémentent, comme {{domxref("Location")}}, {{domxref("URL")}}, {{domxref("HTMLAnchorElement")}}, et {{domxref("HTMLAreaElement")}}.

-

Propriétés

-

Cette interface n'hérite d'aucune propriété.

-
-
- {{domxref("URLUtils.href")}}
-
- Une {{domxref("DOMString")}} contenant l'URL entière.
-
- {{domxref("URLUtils.protocol")}}
-
- Une {{domxref("DOMString")}} contenant le schéma de protocole de l'URL, incluant le ':' final.
-
- {{domxref("URLUtils.host")}}
-
- Une {{domxref("DOMString")}} contenant l'hôte, c'est-à-dire le domaine, et, si le port de l'URL n'est pas vide (ce qui peut arriver s'il n'a pas été spécifié ou si la valeur spécifiée est celle du port par défaut du schéma de l'URL), un ':', et le port de l'URL.
-
- {{domxref("URLUtils.hostname")}}
-
- Une {{domxref("DOMString")}} contenant le domaine de l'URL.
-
- {{domxref("URLUtils.port")}}
-
- Une {{domxref("DOMString")}} contenant le numéro de port de l'URL.
-
- {{domxref("URLUtils.pathname")}}
-
- Une {{domxref("DOMString")}} contenant un '/' initial suivi du chemin de l'URL.
-
- {{domxref("URLUtils.search")}}
-
- Une {{domxref("DOMString")}} contenant un '?' suivi des paramètres de l'URL.
-
- {{domxref("URLUtils.hash")}}
-
- Une {{domxref("DOMString")}} contenant un '#' suivi de l'identifiant de fragment de l'URL.
-
- {{domxref("URLUtils.username")}}
-
- Une {{domxref("DOMString")}} contenant le nom d'utilisateur spécifié devant le nom de domaine.
-
- {{domxref("URLUtils.password")}}
-
- Une {{domxref("DOMString")}} contenant le mot de passe spécifié devant le nom de domaine.
-
- {{domxref("URLUtils.origin")}} {{readonlyInline}}
-
- Retourne une {{domxref("DOMString")}} contenant l'origine de l'URL, c'est-à-dire son schéma, son domaine et son port.
-
- {{domxref("URLUtils.searchParams")}}
-
- Retourne un objet {{domxref("URLSearchParams")}} permettant d'accéder aux arguments de requête GET contenus dans l'URL.
-
-

Méthodes

-

Cette interface n'hérite d'aucune méthode.

-
-
- {{domxref("URLUtils.toString()")}}
-
- Retourne une {{domxref("DOMString")}} contenant l'URL entière. C'est un synonyme de {{domxref("URLUtils.href")}}, sauf qu'il ne peut être utilisé pour modifier la valeur.
-
-

Spécifications

- - - - - - - - - - - - - - - -
SpécificationStatutCommentaires
{{SpecName('URL', '#urlutils', 'URLUtils')}}{{Spec2('URL')}}Définition initiale
-

Compatibilité

-

{{ CompatibilityTable() }}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support de base{{CompatNo}} [1]{{CompatGeckoDesktop("22")}} [1]{{CompatNo}} [1]{{CompatNo}} [1]{{CompatNo}} [1]
searchParams{{CompatUnknown}}{{CompatGeckoDesktop("29")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
username et password{{CompatUnknown}}{{CompatGeckoDesktop("26")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
origin{{CompatUnknown}}{{CompatGeckoDesktop("26")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
origin sur Window.location{{CompatUnknown}}{{CompatGeckoDesktop("21")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatNo}} [1]{{CompatNo}} [1]{{CompatGeckoMobile("22")}} [1]{{CompatNo}} [1]{{CompatNo}} [1]{{CompatNo}} [1]
searchParams{{CompatUnknown}}{{CompatUnknown}}{{CompatNo}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
username et password{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("26")}}{{CompatNo}}{{CompatUnknown}}{{CompatUnknown}}
origin{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("26")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
origin sur Window.location{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("21")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
-

[1] Bien qu'elles ne soient pas groupées dans une seule interface abstraite, ces méthodes sont directement disponibles sur les interfaces qui les implémentent, si cette interface est supportée.

-

Voir aussi

- diff --git a/files/fr/web/api/web_workers_api/advanced_concepts_and_examples/index.html b/files/fr/web/api/web_workers_api/advanced_concepts_and_examples/index.html deleted file mode 100644 index b925ca7f4b..0000000000 --- a/files/fr/web/api/web_workers_api/advanced_concepts_and_examples/index.html +++ /dev/null @@ -1,423 +0,0 @@ ---- -title: Concepts avancés et exemples -slug: Web/API/Web_Workers_API/Advanced_concepts_and_examples -translation_of: Web/API/Web_Workers_API/Using_web_workers -translation_of_original: Web/API/Web_Workers_API/Advanced_concepts_and_examples ---- -
-

Cet article fournit de nombreux détails et maints exemples pour illustrer les concepts avancés des web workers.

-
- -

Passage de données : copie, et non partage

- -

Les données passées entre la page principale et les workers sont copiées, et non partagées. Les objets sont sérialisées au moment où ils sont confiés au worker, et consécutivement désérialisés à l'autre bout. La page et le worker ne partagent pas la même instance, ainsi au final une copie est créée de chaque côté. La plupart des navigateurs implémentent cette caractéristique en tant que clonage structuré.

- -

Avant de poursuivre, créons à des fins didactiques une fonction nommée emulateMessage(), avec pour objectif de simuler le comportement d'une valeur qui est clonée et non partagée durant le passage du worker à la page principale ou inversement :

- -
function emulateMessage (vVal) {
-    return eval("(" + JSON.stringify(vVal) + ")");
-}
-
-// Tests
-
-// test #1
-var example1 = new Number(3);
-alert(typeof example1); // objet
-alert(typeof emulateMessage(example1)); // nombre
-
-// test #2
-var example2 = true;
-alert(typeof example2); // booléen
-alert(typeof emulateMessage(example2)); // booléen
-
-// test #3
-var example3 = new String("Hello World");
-alert(typeof example3); // objet
-alert(typeof emulateMessage(example3)); // chaîne de caractères
-
-// test #4
-var example4 = {
-    "name": "John Smith",
-    "age": 43
-};
-alert(typeof example4); // objet
-alert(typeof emulateMessage(example4)); // objet
-
-// test #5
-function Animal (sType, nAge) {
-    this.type = sType;
-    this.age = nAge;
-}
-var example5 = new Animal("Cat", 3);
-alert(example5.constructor); // Animal
-alert(emulateMessage(example5).constructor); // Objet
- -

Une valeur qui est clonée et non partagée est appelée message. Comme vous le savez probablement dès à présent, les messages peuvent être envoyés à et à partir du thread principal en utilisant postMessage(), et l'attribut {{domxref("MessageEvent.data", "data")}} de l'événement message contient les données retournées par le worker.

- -

example.html (la page principale) :

- -
var myWorker = new Worker("my_task.js");
-
-myWorker.onmessage = function (oEvent) {
-  console.log("Worker said : " + oEvent.data);
-};
-
-myWorker.postMessage("ali");
- -

my_task.js (leworker) :

- -
postMessage("I\'m working before postMessage(\'ali\').");
-
-onmessage = function (oEvent) {
-  postMessage("Hi " + oEvent.data);
-};
- -

L'algorithme de clonage structurée peut accepter du JSON et quelques autres choses impossibles en JSON — comme les références circulaires.

- -

Exemples de passages de données

- -

Exemple #1 : Créer un "eval() asynchrone" générique

- -

L'exemple suivant montre comment utiliser un worker afin d'exécuter de manière asynchrone n'importe quel code JavaScript permis dans un worker, au moyen d'une méthode eval() appelée dans le worker :

- -
// Syntaxe : asyncEval(code[, listener])
-
-var asyncEval = (function () {
-
-  var aListeners = [], oParser = new Worker("data:text/javascript;charset=US-ASCII,onmessage%20%3D%20function%20%28oEvent%29%20%7B%0A%09postMessage%28%7B%0A%09%09%22id%22%3A%20oEvent.data.id%2C%0A%09%09%22evaluated%22%3A%20eval%28oEvent.data.code%29%0A%09%7D%29%3B%0A%7D");
-
-  oParser.onmessage = function (oEvent) {
-    if (aListeners[oEvent.data.id]) { aListeners[oEvent.data.id](oEvent.data.evaluated); }
-    delete aListeners[oEvent.data.id];
-  };
-
-
-  return function (sCode, fListener) {
-    aListeners.push(fListener || null);
-    oParser.postMessage({
-      "id": aListeners.length - 1,
-      "code": sCode
-    });
-  };
-
-})();
- -

La data URI est équivalente à une requête réseau, avec la réponse suivante :

- -
onmessage = function (oEvent) {
-	postMessage({
-		"id": oEvent.data.id,
-		"evaluated": eval(oEvent.data.code)
-	});
-}
- -

Exemples d'utilisation :

- -
// message d'alerte asynchrone...
-asyncEval("3 + 2", function (sMessage) {
-    alert("3 + 2 = " + sMessage);
-});
-
-// affichage asynchrone d'un message...
-asyncEval("\"Hello World!!!\"", function (sHTML) {
-    document.body.appendChild(document.createTextNode(sHTML));
-});
-
-// néant asynchrone...
-asyncEval("(function () {\n\tvar oReq = new XMLHttpRequest();\n\toReq.open(\"get\", \"http://www.mozilla.org/\", false);\n\toReq.send(null);\n\treturn oReq.responseText;\n})()");
- -

Exemple #2 : passage avancé de données JSON et création d'un système d'échange

- -

Si vous devez passer des données complexes et appeler différentes fonctions à la fois dans la page principale et dans le worker, vous pouvez créer un système comme suit.

- -

example.html (la page principale) :

- -
<!doctype html>
-<html>
-<head>
-<meta charset="UTF-8"  />
-<title>MDN Example - Queryable worker</title>
-<script type="text/javascript">
-  /*
-    QueryableWorker instances methods:
-     * sendQuery(queryable function name, argument to pass 1, argument to pass 2, etc. etc): calls a Worker's queryable function
-     * postMessage(string or JSON Data): see Worker.prototype.postMessage()
-     * terminate(): terminates the Worker
-     * addListener(name, function): adds a listener
-     * removeListener(name): removes a listener
-    QueryableWorker instances properties:
-     * defaultListener: the default listener executed only when the Worker calls the postMessage() function directly
-  */
-  function QueryableWorker (sURL, fDefListener, fOnError) {
-    var oInstance = this, oWorker = new Worker(sURL), oListeners = {};
-    this.defaultListener = fDefListener || function () {};
-    oWorker.onmessage = function (oEvent) {
-      if (oEvent.data instanceof Object && oEvent.data.hasOwnProperty("vo42t30") && oEvent.data.hasOwnProperty("rnb93qh")) {
-        oListeners[oEvent.data.vo42t30].apply(oInstance, oEvent.data.rnb93qh);
-      } else {
-        this.defaultListener.call(oInstance, oEvent.data);
-      }
-    };
-    if (fOnError) { oWorker.onerror = fOnError; }
-    this.sendQuery = function (/* nom de la fonction requêtable, argument à passer 1, argument à passer 2, etc. etc */) {
-      if (arguments.length < 1) { throw new TypeError("QueryableWorker.sendQuery - not enough arguments"); return; }
-      oWorker.postMessage({ "bk4e1h0": arguments[0], "ktp3fm1": Array.prototype.slice.call(arguments, 1) });
-    };
-    this.postMessage = function (vMsg) {
-      //Je ne pense pas qu'il y ait besoin d'appeler la méthode call()
-      //que diriez-vous tout simplement de oWorker.postMessage(vMsg);
-      //le même cas se pose avec terminate
-      //bien, juste un peu plus vite, aucune recherche dans la chaîne des prototypes
-      Worker.prototype.postMessage.call(oWorker, vMsg);
-    };
-    this.terminate = function () {
-      Worker.prototype.terminate.call(oWorker);
-    };
-    this.addListener = function (sName, fListener) {
-      oListeners[sName] = fListener;
-    };
-    this.removeListener = function (sName) {
-      delete oListeners[sName];
-    };
-  };
-
-  // votre worker "queryable" personnalisé
-  var oMyTask = new QueryableWorker("my_task.js" /* , votreEcouteurDeMessageParDefautIci [optional], votreEcouteurDErreurIci [optional] */);
-
-  // vos "écouteurs" personnalisés
-
-  oMyTask.addListener("printSomething", function (nResult) {
-    document.getElementById("firstLink").parentNode.appendChild(document.createTextNode(" The difference is " + nResult + "!"));
-  });
-
-  oMyTask.addListener("alertSomething", function (nDeltaT, sUnit) {
-    alert("Worker waited for " + nDeltaT + " " + sUnit + " :-)");
-  });
-</script>
-</head>
-<body>
-  <ul>
-    <li><a id="firstLink" href="javascript:oMyTask.sendQuery('getDifference', 5, 3);">What is the difference between 5 and 3?</a></li>
-    <li><a href="javascript:oMyTask.sendQuery('waitSomething');">Wait 3 seconds</a></li>
-    <li><a href="javascript:oMyTask.terminate();">terminate() the Worker</a></li>
-  </ul>
-</body>
-</html>
- -

my_task.js (le worker) :

- -
// vos fonctions PRIVEES personnalisées
-
-function myPrivateFunc1 () {
-  // instructions à exécuter
-}
-
-function myPrivateFunc2 () {
-  // instructions à exécuter
-}
-
-// etc. etc.
-
-// vos fonctions PUBLIQUES personnalisées (i.e. requêtables depuis la page principale)
-
-var queryableFunctions = {
-  // exemple #1 : obtenir la différence entre deux nombres :
-  getDifference: function (nMinuend, nSubtrahend) {
-      reply("printSomething", nMinuend - nSubtrahend);
-  },
-  // exemple #2 : attendre trois secondes
-  waitSomething: function () {
-      setTimeout(function() { reply("alertSomething", 3, "seconds"); }, 3000);
-  }
-};
-
-// fonctions système
-
-function defaultQuery (vMsg) {
-  // votre fonction PUBLIQUE par défaut est exécutée seulement lorsque la page principale appelle la méthode queryableWorker.postMessage() directement
-  // instructions à exécuter
-}
-
-function reply (/* listener name, argument to pass 1, argument to pass 2, etc. etc */) {
-  if (arguments.length < 1) { throw new TypeError("reply - not enough arguments"); return; }
-  postMessage({ "vo42t30": arguments[0], "rnb93qh": Array.prototype.slice.call(arguments, 1) });
-}
-
-onmessage = function (oEvent) {
-  if (oEvent.data instanceof Object && oEvent.data.hasOwnProperty("bk4e1h0") && oEvent.data.hasOwnProperty("ktp3fm1")) {
-    queryableFunctions[oEvent.data.bk4e1h0].apply(self, oEvent.data.ktp3fm1);
-  } else {
-    defaultQuery(oEvent.data);
-  }
-};
- -

Il est possible d'échanger le contenu de chaque message page principale -> worker et worker -> page principale.

- -

Passage de données par transfert de propriété (objets transférables)

- -

Google Chrome 17+ et Firefox 18+ proposent une manière additionnelle de passer certains types d'objets (les objets transférables, c'est-à-dire les objets implémentant l'interface {{domxref("Transferable")}}) vers ou à partir d'un worker avec une haute performance. Les objets transférables sont transférés d'un contexte vers un autre sans aucune opération de copie, ce qui conduit à d'énormes gains de performance lorsque de gros ensembles de données sont envoyés. Considérez la chose comme un passage par référence si vous venez du monde C/C++. Cependant, contrairement au passage par référence, la 'version' issue du contexte appelant n'est plus disponible une fois transférée. Sa propriété est transférée au nouveau contexte. Par exemple, lors du transfert d'un {{domxref("ArrayBuffer")}} à partir de votre application principale vers le script d'un worker, le {{domxref("ArrayBuffer")}} original est nettoyé et définitivement inutilisable. Son contenu est (tout à fait littéralement) transféré au contexte du worker.

- -
// Crée un "fichier" de 32MB et le remplit.
-var uInt8Array = new Uint8Array(1024*1024*32); // 32MB
-for (var i = 0; i < uInt8Array.length; ++i) {
-  uInt8Array[i] = i;
-}
-
-worker.postMessage(uInt8Array.buffer, [uInt8Array.buffer]);
-
- -
-

Remarque : pour plus d'information sur les objets transférables, la performance et la détection de fonctionnalité de cette méthode, lisez Transferable Objects: Lightning Fast! sur HTML5 Rocks.

-
- -

Workers embarqués

- -

Il n'y a pas une manière "officielle" d'embarquer le code d'un worker dans une page web, comme les éléments {{ HTMLElement("script") }} le font pour les scripts normaux. Mais un élément {{ HTMLElement("script") }} qui n'aurait pas d'attribut src et dont l'attribut type n'identifierait pas un type MIME exécutable peut être considéré comme un élément de bloc de données dont JavaScript peut faire usage.  Les "blocs de données" sont une caractéristique plus générale d'HTML5 qui peuvent contenir presque n'importe quelles données textuelles. Ainsi, un worker pourrait être embarqué de cette façon :

- -
<!DOCTYPE html>
-<html>
-<head>
-<meta charset="UTF-8" />
-<title>MDN Example - Embedded worker</title>
-<script type="text/js-worker">
-  // Ce script NE SERA PAS traité par les moteurs JS parce que son type MIME est text/js-worker.
-  var myVar = "Hello World!";
-  // Le reste du code de votre worker commence ici.
-</script>
-<script type="text/javascript">
-  // Ce script SERA analysé par les moteurs JS engines parce que son type MIME est text/javascript.
-  function pageLog (sMsg) {
-    // Utilisation d'un fragment : le navigateur réaffichera/réorganisera le DOM seulement une fois.
-    var oFragm = document.createDocumentFragment();
-    oFragm.appendChild(document.createTextNode(sMsg));
-    oFragm.appendChild(document.createElement("br"));
-    document.querySelector("#logDisplay").appendChild(oFragm);
-  }
-</script>
-<script type="text/js-worker">
-  // Ce script NE SERA PAS traité par les moteurs JS parce que son type MIME est text/js-worker.
-  onmessage = function (oEvent) {
-    postMessage(myVar);
-  };
-  // Le reste du code de votre worker commence ici.
-</script>
-<script type="text/javascript">
-  // Ce script SERA analysé par les moteurs JS engines parce que son type MIME est text/javascript.
-
-  // Dans le passé... :
-  // blob builder a existé
-  // ...mais nous utilisons désormais Blob...:
-  var blob = new Blob(Array.prototype.map.call(document.querySelectorAll("script[type=\"text\/js-worker\"]"), function (oScript) { return oScript.textContent; }),{type: "text/javascript"});
-
-  // Création d'une nouvelle propriété document.worker contenant tous nos scripts "text/js-worker".
-  document.worker = new Worker(window.URL.createObjectURL(blob));
-
-  document.worker.onmessage = function (oEvent) {
-    pageLog("Received: " + oEvent.data);
-  };
-
-  // Démarrage du worker.
-  window.onload = function() { document.worker.postMessage(""); };
-</script>
-</head>
-<body><div id="logDisplay"></div></body>
-</html>
- -

Le worker embarqué est maintenant imbriqué dans une nouvelle propriété personnalisée document.worker.

- -

Exemples

- -

Cette section fournit plusieurs exemples sur la façon d'utiliser les workers DOM.

- -

Réaliser des calculs en arrière-plan

- -

Les workers sont principalement utiles pour permettre à votre code de réaliser des calculs très consommateur en CPU sans bloquer le thread de l'interface utilisateur. Dans cet exemple, un worker est utilisé pour calculer la suite de Fibonacci.

- -

Le code JavaScript

- -

Le code JavaScript suivant est stocké dans le fichier "fibonacci.js" référencé par le fichier HTML dans la prochaine section.

- -
var results = [];
-
-function resultReceiver(event) {
-  results.push(parseInt(event.data));
-  if (results.length == 2) {
-    postMessage(results[0] + results[1]);
-  }
-}
-
-function errorReceiver(event) {
-  throw event.data;
-}
-
-onmessage = function(event) {
-  var n = parseInt(event.data);
-
-  if (n == 0 || n == 1) {
-    postMessage(n);
-    return;
-  }
-
-  for (var i = 1; i <= 2; i++) {
-    var worker = new Worker("fibonacci.js");
-    worker.onmessage = resultReceiver;
-    worker.onerror = errorReceiver;
-    worker.postMessage(n - i);
-  }
- };
- -

Le worker affecte à la propriété onmessage  une fonction qui recevra les messages envoyés lorsque la méthode  postMessage() de l'objet worker est appelée (remarquez que cela diffère de définir une variable globale de ce nom, ou de définir une fonction avec ce nom.   var onmessage et function onmessage définissent des propriétés globales avec ces noms, mais elles n'enregistrent pas la fonction pour recevoir les messages envoyés par la page web qui a créé le worker). Au démarrage de la récursion, il engendre ainsi de nouvelles copies de lui-même pour gérer chacune des itérations du calcul.

- -

Le code HTML

- -
<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8"  />
-    <title>Test threads fibonacci</title>
-  </head>
-  <body>
-
-  <div id="result"></div>
-
-  <script language="javascript">
-
-    var worker = new Worker("fibonacci.js");
-
-    worker.onmessage = function(event) {
-      document.getElementById("result").textContent = event.data;
-      dump("Got: " + event.data + "\n");
-    };
-
-    worker.onerror = function(error) {
-      dump("Worker error: " + error.message + "\n");
-      throw error;
-    };
-
-    worker.postMessage("5");
-
-  </script>
-  </body>
-</html>
-
- -

La page web crée un élément div avec l'ID  result , qui sera utilisé pour afficher le résultat, puis engendre le worker.  Après création du worker, le gestionnaire onmessage est configuré pour afficher les résultats en renseignant le contenu de l'élément div, et le gestionnaire onerror est configuré pour capturer le message d'erreur.

- -

Finalement, un message est envoyé au worker pour le démarrer.

- -

Tester cet exemple.

- -

Réaliser des E/S web en arrière-plan

- -

Vous pouvez trouver un tel exemple dans l'article Using workers in extensions .

- -

Répartir des tâches entre plusieurs workers

- -

Les ordinateurs multi-coeur étant de plus en plus répandus, il est souvent utile de répartir le calcul de tâches complexes entre différents workers afin de tirer partie des coeurs de ces multiprocesseurs.

- -

Voir aussi

- - diff --git a/files/fr/web/api/web_workers_api/algorithme_clonage_structure/index.html b/files/fr/web/api/web_workers_api/algorithme_clonage_structure/index.html deleted file mode 100644 index dfb8c20bf9..0000000000 --- a/files/fr/web/api/web_workers_api/algorithme_clonage_structure/index.html +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: L’algorithme de clonage structuré -slug: Web/API/Web_Workers_API/algorithme_clonage_structure -translation_of: Web/API/Web_Workers_API/Structured_clone_algorithm ---- -

L’algorithme de clonage structuré est un nouvel algorithme défini par la spécification HTML5 pour sérialiser les objets JavaScript complexes. Il est plus puissant que JSON en cela qu’il supporte la sérialisation d’objets contenant des graphes cycliques — des objets peuvent faire référence à des objets faisant référence à d’autres objets dans le même graphe. De plus, dans certains cas, l’algorithme de clonage structuré peut être plus efficace que JSON.

- -

L’algorithme, essentiellement, parcourt tous les champs de l’objet original, copiant les valeurs de chaque champ dans un nouvel objet. Si un champ est lui-même un objet avec des champs, ces champs sont parcourus de manière récursive jusqu’à ce que chaque champ et sous-champ aient été copié dans le nouvel objet.

- -

Avantages par rapport à JSON

- -

Il y a quelques avantages notables à utiliser l’algorithme de clonage structuré plutôt que JSON :

- - - -

Ce qui ne marche pas avec le clonage structuré

- - - -

Types supportés

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Type d’objetNotes
Tous types primitifsÀ l’exception des symboles
Objet Booléen 
Objet String 
Date 
RegExpLe champ lastIndex n’est pas préservé
{{ domxref("Blob") }} 
{{ domxref("File") }} 
{{ domxref("FileList") }} 
ArrayBuffer 
ArrayBufferViewCe qui implique tous les tableaux typés tels que Int32Array, etc.
{{ domxref("ImageData") }} 
Array 
ObjectInclut seulement les objets plats (par ex. depuis un objet littéral)
Map 
Set 
- -

Alternative : copie profonde

- -

Si vous voulez une copie profonde d’un objet (c’est-à-dire une copie récursive de toutes les propriétés imbriquées, en parcourant la chaîne des prototypes), vous devez employer une autre approche. Ce qui suit est un exemple possible.

- -
function clone(objectToBeCloned) {
-  // Cas basique.
-  if (!(objectToBeCloned instanceof Object)) {
-    return objectToBeCloned;
-  }
-
-  var objectClone;
-
-  // Filtre les objets spéciaux.
-  var Constructor = objectToBeCloned.constructor;
-  switch (Constructor) {
-    // Implémenter d’autres objets spéciaux ici.
-    case RegExp:
-      objectClone = new Constructor(objectToBeCloned);
-      break;
-    case Date:
-      objectClone = new Constructor(objectToBeCloned.getTime());
-      break;
-    default:
-      objectClone = new Constructor();
-  }
-
-  // Clone chaque propriété.
-  for (var prop in objectToBeCloned) {
-    objectClone[prop] = clone(objectToBeCloned[prop]);
-  }
-
-  return objectClone;
-}
-
- -
  Note : Cet algorithme ne prend en charge que les objets spéciaux RegExp, Array et Date. Vous pouvez implémenter d’autres cas spéciaux selon vos besoins.
- -

Voir aussi

- - diff --git a/files/fr/web/api/web_workers_api/functions_and_classes_available_to_workers/index.html b/files/fr/web/api/web_workers_api/functions_and_classes_available_to_workers/index.html new file mode 100644 index 0000000000..379f86edd6 --- /dev/null +++ b/files/fr/web/api/web_workers_api/functions_and_classes_available_to_workers/index.html @@ -0,0 +1,240 @@ +--- +title: Fonctions et classes disponibles dans les Web Workers +slug: Web/API/Worker/Functions_and_classes_available_to_workers +translation_of: Web/API/Web_Workers_API/Functions_and_classes_available_to_workers +--- +

En plus de l'ensemble des fonctions standard JavaScript (telles que {{jsxref("Global_Objects/String", "String")}}, {{jsxref("Global_Objects/Array", "Array")}}, {{jsxref("Global_Objects/Object", "Object")}}, {{jsxref("Global_Objects/JSON", "JSON")}} etc), des fonctions du DOM restent disponibles pour les workers. Cet article en fournit la liste.

+ +

Les workers s'exécutent dans un contexte global, {{domxref("DedicatedWorkerGlobalScope")}} différent du contexte de la fenêtre courante. Par défaut les méthodes et propriétés de {{domxref("Window")}} ne leur sont pas disponibles, mais {{domxref("DedicatedWorkerGlobalScope")}}, comme Window, implémente {{domxref("WindowTimers")}} et {{domxref("WindowBase64")}}.

+ +

Comparaison des propriétés et méthodes des différents types de workers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionsWorkers dédiésWorkers partagésService workersChrome workers {{Non-standard_inline}}En dehors des  workers
{{domxref("WindowBase64.atob", "atob()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowBase64.btoa", "btoa()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.clearInterval", "clearInterval()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.clearTimeout", "clearTimeout()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("Window.dump()", "dump()")}} {{non-standard_inline}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.setInterval", "setInterval()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.setTimeout", "setTimeout()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WorkerGlobalScope.importScripts", "importScripts()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}non
{{domxref("WorkerGlobalScope.close", "close()")}} {{non-standard_inline}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, mais sans effetInconnunon
{{domxref("DedicatedWorkerGlobalScope.postMessage", "postMessage()")}}oui, sur {{domxref("DedicatedWorkerGlobalScope")}}nonnonInconnunon
+ +

APIs disponibles dans les workers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionFonctionnalitéSupport dans Gecko (Firefox)Support dans IESupport dans Blink (Chrome et Opera)Support dans WebKit (Safari)
XMLHttpRequestCrée et retourne un nouvel objet {{domxref("XMLHttpRequest")}}; il imite le comportement du constructeur standard XMLHttpRequest(). Remarquez que les attributs responseXML et channel de XMLHttpRequest retourne toujours null. +

Basique : {{CompatGeckoDesktop("1.9.1")}}

+ +

{{domxref("XMLHttpRequest.response", "response")}} et {{domxref("XMLHttpRequest.responseType", "responseType")}} sont disponibles depuis {{CompatGeckoDesktop("10")}}

+ +

{{domxref("XMLHttpRequest.timeout", "timeout")}} et {{domxref("XMLHttpRequest.ontimeout", "ontimeout")}} sont disponibles depuis {{CompatGeckoDesktop("13")}}

+
{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
WorkerCrée un nouveau {{ domxref("Worker") }}. Oui, les workers peuvent engendrer des workers supplémentaires.{{CompatGeckoDesktop("1.9.1")}}10.0{{CompatNo}} Voir crbug.com/31666{{CompatNo}}
{{ domxref("URL") }}Les workers peuvent utiliser les méthodes statiques URL.createObjectURL et URL.revokeObjectURL avec les objets {{domxref("Blob")}} accessibles au worker.
+ Les workers peuvent aussi créer une nouvelle URL en utilisant le constructeur {{domxref("URL.URL", "URL()")}} et appeler n'importe quelle méthode normale sur l'objet retourné.
{{CompatGeckoDesktop(21)}} et {{CompatGeckoDesktop(26)}} pour le constructeur URL(){{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("TextEncoder")}} and {{domxref("TextDecoder")}}Crée et retourne un nouveau {{domxref("TextEncoder")}}, ou respectivement {{domxref("TextDecoder")}}, permettant d'encoder ou de décoder des chaînes de caractère dans un encodage spécifique.{{CompatGeckoDesktop(20)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("WorkerNavigator")}}Le sous-ensemble de l'interface {{domxref("Navigator")}} disponible aux workers.Implémentation basique {{CompatVersionUnknown}}
+ {{domxref("NavigatorID.appCodeName", "appCodeName")}}, {{domxref("NavigatorID.product", "product")}}, {{domxref("NavigatorID.taintEnabled", "taintEnabled()")}}: {{CompatGeckoDesktop(28)}}
+ {{domxref("WorkerNavigator.onLine", "onLine")}}: {{CompatGeckoDesktop(29)}}
+ {{domxref("NavigatorLanguage")}}: {{CompatNo}}
{{domxref("NavigatorID.appName", "appName")}}, {{domxref("NavigatorID.appVersion", "appName")}}, {{domxref("WorkerNavigator.onLine", "onLine")}}, {{domxref("NavigatorID.platform", "platform")}}, {{domxref("NavigatorID.userAgent", "userAgent")}}: 10.0
+ Autre : {{CompatNo}}
{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("WorkerLocation")}}Le sous-ensemble de l'interface {{domxref("Location")}} disponible aux workers.{{CompatGeckoDesktop(1.9.2)}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("WorkerGlobalScope")}}Le contexte global des workers. Cet objet définit les fonctions spécifiques aux workers.{{CompatVersionUnknown}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("ImageData")}}Les données en pixels sous-jacentes à une zone d'un élément {{domxref("canvas")}}. Manipuler de telles données peut être une tâche complexe qu'il est plus approprié de déléguer à un web worker.{{CompatGeckoDesktop(25)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("FileReaderSync")}}Cette API permet la lecture synchrone d'objets {{domxref("Blob")}} et {{domxref("File")}}. C'est une API qui fonctionne uniquement au sein des workers.{{CompatGeckoDesktop(8)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("IndexedDB_API", "IndexedDB")}}Une base de données pour stocker des enregistrements contenant des valeurs simples et des objets hiérarchiques.{{CompatGeckoDesktop(37)}}10.0{{CompatVersionUnknown}}{{CompatNo}}
{{domxref("WebSocket")}}Crée et retourne un nouvel objet {{domxref("WebSocket")}}; Il imite le comportement d'un constructeur WebSocket() standard.{{CompatGeckoDesktop(36)}}11.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
Data Store APIUn mécanisme de stockage puissant et flexible pour de multiples applications Firefox OS qui ont l'habitude de stocker et d'échanger des données entre elles de manière rapide, efficace et sécurisée.Seulement dans les applications internes (certifiées) de Firefox OS, deuis v1.0.1.{{CompatNo}}{{CompatNo}}{{CompatNo}}
PromisesLes objets JavaScript qui vous permettent d'écrire des fonctions asynchrones.{{CompatGeckoDesktop(28)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/web_workers_api/structured_clone_algorithm/index.html b/files/fr/web/api/web_workers_api/structured_clone_algorithm/index.html new file mode 100644 index 0000000000..dfb8c20bf9 --- /dev/null +++ b/files/fr/web/api/web_workers_api/structured_clone_algorithm/index.html @@ -0,0 +1,153 @@ +--- +title: L’algorithme de clonage structuré +slug: Web/API/Web_Workers_API/algorithme_clonage_structure +translation_of: Web/API/Web_Workers_API/Structured_clone_algorithm +--- +

L’algorithme de clonage structuré est un nouvel algorithme défini par la spécification HTML5 pour sérialiser les objets JavaScript complexes. Il est plus puissant que JSON en cela qu’il supporte la sérialisation d’objets contenant des graphes cycliques — des objets peuvent faire référence à des objets faisant référence à d’autres objets dans le même graphe. De plus, dans certains cas, l’algorithme de clonage structuré peut être plus efficace que JSON.

+ +

L’algorithme, essentiellement, parcourt tous les champs de l’objet original, copiant les valeurs de chaque champ dans un nouvel objet. Si un champ est lui-même un objet avec des champs, ces champs sont parcourus de manière récursive jusqu’à ce que chaque champ et sous-champ aient été copié dans le nouvel objet.

+ +

Avantages par rapport à JSON

+ +

Il y a quelques avantages notables à utiliser l’algorithme de clonage structuré plutôt que JSON :

+ + + +

Ce qui ne marche pas avec le clonage structuré

+ + + +

Types supportés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Type d’objetNotes
Tous types primitifsÀ l’exception des symboles
Objet Booléen 
Objet String 
Date 
RegExpLe champ lastIndex n’est pas préservé
{{ domxref("Blob") }} 
{{ domxref("File") }} 
{{ domxref("FileList") }} 
ArrayBuffer 
ArrayBufferViewCe qui implique tous les tableaux typés tels que Int32Array, etc.
{{ domxref("ImageData") }} 
Array 
ObjectInclut seulement les objets plats (par ex. depuis un objet littéral)
Map 
Set 
+ +

Alternative : copie profonde

+ +

Si vous voulez une copie profonde d’un objet (c’est-à-dire une copie récursive de toutes les propriétés imbriquées, en parcourant la chaîne des prototypes), vous devez employer une autre approche. Ce qui suit est un exemple possible.

+ +
function clone(objectToBeCloned) {
+  // Cas basique.
+  if (!(objectToBeCloned instanceof Object)) {
+    return objectToBeCloned;
+  }
+
+  var objectClone;
+
+  // Filtre les objets spéciaux.
+  var Constructor = objectToBeCloned.constructor;
+  switch (Constructor) {
+    // Implémenter d’autres objets spéciaux ici.
+    case RegExp:
+      objectClone = new Constructor(objectToBeCloned);
+      break;
+    case Date:
+      objectClone = new Constructor(objectToBeCloned.getTime());
+      break;
+    default:
+      objectClone = new Constructor();
+  }
+
+  // Clone chaque propriété.
+  for (var prop in objectToBeCloned) {
+    objectClone[prop] = clone(objectToBeCloned[prop]);
+  }
+
+  return objectClone;
+}
+
+ +
  Note : Cet algorithme ne prend en charge que les objets spéciaux RegExp, Array et Date. Vous pouvez implémenter d’autres cas spéciaux selon vos besoins.
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/web_workers_api/using_web_workers/index.html b/files/fr/web/api/web_workers_api/using_web_workers/index.html new file mode 100644 index 0000000000..b1330f34bf --- /dev/null +++ b/files/fr/web/api/web_workers_api/using_web_workers/index.html @@ -0,0 +1,633 @@ +--- +title: Utilisation des web workers +slug: Web/API/Web_Workers_API/Utilisation_des_web_workers +tags: + - Avancé + - Guide + - JavaScript + - Web Workers +translation_of: Web/API/Web_Workers_API/Using_web_workers +--- +
{{DefaultAPISidebar("Web Workers API")}}
+ +

Les Web Workers sont un outil permettant au contenu web d'exécuter des scripts dans des tâches (threads) d'arrière-plan. Le thread associé au worker peut réaliser des tâches sans qu'il y ait d'interférence avec l'interface utilisateur. De plus, les web workers peuvent réaliser des opérations d'entrée/sortie grâce à XMLHttpRequest (bien que les attributs responseXML et channel soient nécessairement vides dans ces cas). Une fois créé, un worker peut envoyer des messages au code JavaScript qui l'a créé. De même, le script initial peut envoyer des messages au worker. Cette communication s'effectue grâce à des gestionnaires d'évènements. Dans cet article, nous verrons une introduction à l'utilisation des web workers.

+ +

L'API Web Workers

+ +

Un worker est un objet créé à l'aide d'un constructeur (par exemple {{domxref("Worker.Worker", "Worker()")}}) et qui exécute un fichier JavaScript donné. Ce fichier contient le code qui sera exécuté par le thread du worker. Les workers sont exécutés dans un contexte global qui n'est pas celui du document (généralement {{domxref("window")}}). Aussi, si, dans un worker, on utilise {{domxref("window")}} pour accéder à la portée globale (plutôt que {{domxref("window.self","self")}}), cela provoquera une erreur.

+ +

Le contexte du worker est représenté par un objet {{domxref("DedicatedWorkerGlobalScope")}} pour les workers dédiés et par un objet {{domxref("SharedWorkerGlobalScope")}} sinon. Un worker dédié est uniquement accessible au travers du script qui l'a déclenché tandis qu'un worker partagé peut être utilisé par différents scripts.

+ +
+

Note : Voir la page d'entrée pour l'API Web Workers pour consulter la documentation de référence sur les workers et d'autres guides.

+
+ +

Il est possible d'exécuter n'importe quel code JavaScript dans le thread du worker, à l'exception des méthodes de manipulation du DOM ou de certaines propriétés et méthodes rattachées à {{domxref("window")}}. On notera cependant qu'on peut tout à fait utiliser certaines API rendues disponibles via window comme les WebSockets, les API de stockage de données telles que IndexedDB. Pour plus de détails, voir les fonctions et classes disponibles au sein des workers.

+ +

Les données sont échangées entre le thread du worker et le thread principal par l'intermédiaire de messages. Chaque partie peut envoyer des messages à l'aide de la méthode postMessage() et réagir aux messages reçus grâce au gestionnaire d'évènement onmessage (le message sera contenu dans l'attribut data de l'évènement {{event("Message")}} associé). Les données sont copiées dans le message, elles ne sont pas partagées.

+ +

Les workers peuvent également déclencher la création d'autres workers tant que ceux-ci restent hébergés sur la même origine que la page parente. De plus, les workers pourront utiliser XMLHttpRequest pour effectuer des opérations réseau mais les attributs responseXML et channel de XMLHttpRequest renverront nécessairement null.

+ +

Les workers dédiés

+ +

Comme indiqué plus haut, un worker dédié n'est accessible qu'au travers du script qui l'a initié. Dans cette section, nous étudierons le code JavaScript de notre exemple de worker dédié simple. Dans cet exemple, nous souhaitons multiplier deux nombres. Ces nombres sont envoyés à un worker dédié puis le résultat est renvoyé à la page et affiché.

+ +

Cet exemple est assez simple mais permet d'introduire les concepts de base autour des workers. Nous verrons certains détails plus avancés dans la suite de cet article.

+ +

Détecter la possibilité d'utiliser les workers

+ +

Afin de gérer une meilleure amélioration progressive, une rétro-compatibilité et de présenter des messages d'erreur adéquats, il pourra être utile d'envelopper le code relatif au worker de la façon suivante (main.js) :

+ +
if (window.Worker) {
+  ...
+}
+ +

Initier un worker dédié

+ +

La création d'un nouveau worker est assez simple. On appellera le constructeur {{domxref("Worker.Worker", "Worker()")}} en indiquant l'URI du script à exécuter dans le thread associé au worker (main.js) :

+ +
+
var monWorker = new Worker('worker.js');
+
+
+ +

Envoyer des messages au worker et y réagir

+ +

L'intérêt principal des workers repose sur l'échange de messages à l'aide de la méthode {{domxref("Worker.postMessage", "postMessage()")}} et grâce au gestionnaire d'évènement {{domxref("Worker.onmessage", "onmessage")}}. Lorsqu'on souhaite envoyer un message au worker, on enverra des messages de la façon suivante (main.js) :

+ +
premierNombre.onchange = function() {
+  monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]);
+  console.log('Message envoyé au worker');
+}
+
+deuxiemeNombre.onchange = function() {
+  monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]);
+  console.log('Message envoyé au worker');
+}
+ +

Ici, nous disposons de deux éléments {{htmlelement("input")}} représentés par les variables premierNombre et deuxiemeNombre. Lorsque l'un de ces deux champs est modifié, on utilise monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]) afin d'envoyer les deux valeurs au worker dans un tableau. Les messages peuvent être utilisés pour échanger n'importe quel type de valeur.

+ +

Dans le worker, on peut réagir au message reçu grâce à un gestionnaire d'évènement comme celui-ci (worker.js) :

+ +
onmessage = function(e) {
+  console.log('Message reçu depuis le script principal.');
+  var workerResult = 'Résultat : ' + (e.data[0] * e.data[1]);
+  console.log('Envoi du message de retour au script principal');
+  postMessage(workerResult);
+}
+ +

Le gestionnaire onmessage permet d'exécuter du code lorsqu'un message est reçu. Le message même est disponible grâce à l'attribut data de l'évènement. Dans cet exemple, nous multiplions simplement les deux nombres avant d'utiliser postMessage() à nouveau afin d'envoyer le résultat via un message destiné au thread principal.

+ +

De retour dans le thread principal, nous pouvons utiliser onmessage à nouveau pour réagir à la réponse provenant du worker :

+ +
monWorker.onmessage = function(e) {
+  resultat.textContent = e.data;
+  console.log('Message reçu depuis le worker');
+}
+ +

Ici, nous récupérons les données grâce à l'attribut data de l'évènement et nous mettons à jour le contenu du paragraphe avec l'attribut textContent de l'élément. Ainsi, l'utilisateur peut visualiser le résultat du calcul.

+ +
Note : On notera que onmessage et postMessage() doivent être rattachés à un objet Worker lorsqu'ils sont utilisés depuis le thread principal (ici, c'était monWorker) mais pas lorsqu'ils sont employés depuis le worker. En effet, dans le worker, c'est le worker qui constitue la portée globale et qui met à disposition ces méthodes.
+ +
Note : Lorsqu'un message est envoyé d'un thread à l'autre, ses données sont copiées. Elles ne sont pas partagées. Voir ci-après pour plus d'explications à ce sujet.
+ +

Clôturer un worker

+ +

Si on doit arrêter un worker immédiatement, on pourra utiliser la méthode {{domxref("Worker", "terminate")}} depuis le thread principal :

+ +
monWorker.terminate();
+ +

Lorsque cette méthode exécuté, le thread associé au worker est tué immédiatement.

+ +

Gérer les erreurs

+ +

Lorsqu'une erreur d'exécution se produit avec le worker, son gestionnaire d'évènement onerror est appelé et reçoit un évènement error qui implémente l'interface ErrorEvent.

+ +

Cet évènement ne bouillonne (bubble) pas et peut être annulé. Pour empêcher les conséquences par défaut, on pourra utiliser la méthode preventDefault() rattachée à l'évènement d'erreur.

+ +

L'évènement décrivant l'erreur possède notamment trois propriétés intéressantes :

+ +
+
message
+
Un message d'erreur compréhensible par un humain.
+
filename
+
Le nom du fichier pour lequel l'erreur s'est produite.
+
lineno
+
Le numéro de ligne au sein du fichier responsable de l'erreur.
+
+ +

Initier des workers fils

+ +

Les workers peuvent également engendrer d'autres workers. Ces workers-fils doivent être hébergés sur la même origine que la page initiale. De plus, les URI des workers-fils sont résolues relativement à l'emplacement du worker père (plutôt que par rapport à la page parente). Ces contraintes permettent de simplifier le suivi des dépendances.

+ +

Importer des scripts et des bibliothèques

+ +

Les threads d'exécution des workers peuvent accéder à la fonction globale importScripts(), qui leur permet d'importer des scripts. Cette fonction prend zéro à plusieurs URL en paramètres et importe les ressources associées. Voici quelques exemples valides :

+ +
importScripts();                         /* n'importe rien */
+importScripts('toto.js');                /* importe uniquement "toto.js" */
+importScripts('toto.js', 'truc.js');     /* importe deux scripts */
+importScripts('//example.com/hello.js'); /* importe un script d'une autre origine */
+ +

Lors d'un import, le navigateur chargera chacun des scripts puis l'exécutera. Chaque script pourra ainsi mettre à disposition des objets globaux qui pourront être utilisés par le worker. Si le script ne peut pas être chargé, une exception NETWORK_ERROR sera levée et le code assicé ne sera pas exécuté. Le code exécuté précédemment (y compris celui-ci reporté à l'aide de {{domxref("window.setTimeout()")}}) continuera cependant d'être fonctionnel. Les déclarations de fonction situées après importScripts() sont également exécutées car évaluées avant le reste du code.

+ +
Note : Les scripts peuvent être téléchargés dans n'importe quel ordre mais ils seront exécutés dans l'ordre des arguments passés à importScripts() . Cet exécution est effectuée de façon synchrone et importScripts() ne rendra pas la main tant que l'ensemble des scripts n'auront pas été chargés et exécutés.
+ +

Les workers partagés

+ +

Un worker partagé est accessible par plusieurs scripts (même si ceux-ci proviennent de différentes fenêtres, iframes voire d'autres workers). Dans cette section, nous illustrerons les concepts à l'aide de l'exemple simple d'un worker partagé. Cet exemple est semblable à l'exemple utilisé pour le worker dédié. Il diffère car il possède deux fonctions, gérées par deux fichiers de script distincts : une fonction permettant de multiplier deux nombres et une fonction permettant d'élever un nombre au carré. Les deux scripts utilisent le même worker pour réaliser le calcul demandé.

+ +

Ici, nous nous intéresserons particulièrement aux différences entre les workers dédiés et les workers partagés. Dans cet exemple, nous aurons deux pages HTML, chacune utilisant du code JavaScript employant le même worker.

+ +
+

Note : Si on peut accéder à un worker partagé depuis différents contextes de navigations, ces contextes de navigation doivent néanmoins partager la même origine (même protocole, même hôte, même port).

+
+ +
+

Note : Dans Firefox, les workers partagés ne peuvent pas être partagés entre les documents chargés en navigation privée et les documents chargés en navigation classique ({{bug(1177621)}}).

+
+ +

Initier un worker partagé

+ +

La création d'un nouveau worker partagé est assez semblable à la création d'un worker dédié. On utilise alors un constructeur différent :

+ +
var monWorker = new SharedWorker('worker.js');
+ +

Une différence fondamentale avec les workers dédiés est l'utilisation d'un objet port pour la communication. Un port sera explicitement ouvert pour être utilisé afin de communiquer avec le worker (dans le cas des workers dédiés, ce port est ouvert implicitement).

+ +

La connexion au port doit être démarrée implicitement avec l'utilisation du gestionnaire d'évènement onmessage ou explicitement avec la méthode start() avant qu'un message soit envoyé. On utilisera uniquement start() si l'évènement message est détecté avec la méthode addEventListener().

+ +
+

Note : Lorsqu'on utilise la méthode start() afin d'ouvrir le port de connexion, celle-ci doit être appelée de part et d'autre (depuis le thread parent et depuis le worker) si on souhaite disposer d'une connexion bidirectionnelle.

+
+ +

Échanger des messages avec un worker partagé et y réagir

+ +

On peut alors envoyer des messages au worker. Dans le cas d'un worker partagé, la méthode postMessage() doit être appelée via l'objet port (là aussi, vous pouvez étudier le code de multiply.js et square.js) :

+ +
carreNombre.onchange = function() {
+  monWorker.port.postMessage([carreNombre.value, carreNombre.value]);
+  console.log('Message envoyé au worker');
+}
+ +

Du côté du worker, les choses sont également légèrement plus compliquées (voir worker.js) :

+ +
onconnect = function(e) {
+  var port = e.ports[0];
+
+  port.onmessage = function(e) {
+    var workerResult = 'Résultat : ' + (e.data[0] * e.data[1]);
+    port.postMessage(workerResult);
+  }
+}
+ +

On commence par utiliser le gestionnaire onconnect afin de déclencher du code à la connexion au port (c'est-à-dire lorsque le gestionnaire onmessage est déclaré depuis le thread parent ou lorsque la méthode start() est invoquée explicitement depuis le thread parent).

+ +

On utilise l'attribut ports de l'évènement afin de récupérer le port utilisé et on le place dans une variable.

+ +

Ensuite, sur ce port, on ajoute un gestionnaire d'évènement pour l'évènement message afin de faire les calculs et de renvoyer le résultat au thread principal. En définissant ce gestionnaire pour message dans le thread du worker, on ouvre implicitement le port pour la connexion au thread parent : il n'est donc pas nécessaire d'invoquer port.start().

+ +

Enfin, dans le script de la page, on gère le message du résultat (voir multiply.js et square.js):

+ +
monWorker.port.onmessage = function(e) {
+  result2.textContent = e.data;
+  console.log('Message reçu depuis le worker');
+}
+ +

Lorsqu'un message provient du port associé au worker, on vérifie son type puis on insère le résultat dans le paragraphe associé.

+ +

Sûreté des threads

+ +

L'interface {{domxref("Worker")}} engendre des threads au sens du système d'exploitation. Certains développeurs avertis pourront se demander si cette communication à base de threads ne peut pas générer d'effets indésirables tels que des situations de compétition (race conditions).

+ +

Toutefois, la communication entre les web workers est contrôlée explicitement dans les scripts et il n'y a pas d'accès aux composants ou au DOM qui ne seraient pas sûrs à ce niveau. De plus, la communication entre les threads s'effectue par recopie de données. Aussi, s'il n'est théoriquement pas impossible de ne pas avoir de tels problèmes, il faudrait les chercher pour les provoquer.

+ +

Règles de sécurité du contenu (content security policy, CSP)

+ +

Les workers disposent de leur propre contexte d'exécution, distinct de celui du document qui les a créés. Aussi, en général, les workers ne sont pas gérés par la politique de sécurité de contenu du document (ou du worker parent) responsable de leur création. Ainsi, si un document est servi avec l'en-tête suivant :

+ +
Content-Security-Policy: script-src 'self'
+ +
Cette règle empêchera n'importe quel script inclus dans le document d'utiliser eval(). Toutefois, si le script génère un worker, le code exécuté par ce worker pourra utiliser eval().
+
+Pour appliquer une règle de sécurité au worker, il faudra fournir un en-tête Content-Security-Policy approprié pour la requête responsable du service du script du worker.
+
+Si l'origine du script du worker est un identifiant global unique (si son URL utilise le schéma data:// ou blob:// par exemple), le worker héritera du CSP associé au document responsable de sa création.
+ +
+ +

Échanger des données avec les workers : plus de détails

+ +

Les données échangées entre le document principal et les workers sont copiées et non partagées. Lorsqu'ils sont envoyés au worker, les objets sont sérialisés (puis désérialisés à leur réception). La page et le worker ne partagent pas le même exemplaire et on a donc deux versions d'une part et d'autre. La plupart des navigateurs implémentent cette approche avec une clonage structurel.

+ +

Pour illustrer ce point, on prendra une fonction intitulée emulateMessage() et qui simule le comportement d'une valeur clonée (pas partagée) avec un worker attaché à la page principale et réciproquement :

+ +
function emulateMessage(vVal) {
+    return eval('(' + JSON.stringify(vVal) + ')');
+}
+
+// Tests
+
+// test #1
+var example1 = new Number(3);
+console.log(typeof example1); // object
+console.log(typeof emulateMessage(example1)); // number
+
+// test #2
+var example2 = true;
+console.log(typeof example2); // boolean
+console.log(typeof emulateMessage(example2)); // boolean
+
+// test #3
+var example3 = new String('Hello World');
+console.log(typeof example3); // object
+console.log(typeof emulateMessage(example3)); // string
+
+// test #4
+var example4 = {
+    'name': 'John Smith',
+    "age": 43
+};
+console.log(typeof example4); // object
+console.log(typeof emulateMessage(example4)); // object
+
+// test #5
+function Animal(sType, nAge) {
+    this.type = sType;
+    this.age = nAge;
+}
+var example5 = new Animal('Cat', 3);
+console.log(example5.constructor); // Animal
+console.log(emulateMessage(example5).constructor); // Object
+ +

Une valeur qui est clonée et non partagée est appelée un message. Les messages peuvent être envoyés et reçus grâce à postMessage() et au gestionnaire d'évènement pour message (dont l'attribut {{domxref("MessageEvent.data", "data")}} contiendra les données copiées).

+ +

example.html (page principale) :

+ +
var myWorker = new Worker('my_task.js');
+
+myWorker.onmessage = function(oEvent) {
+  console.log('Worker said : ' + oEvent.data);
+};
+
+myWorker.postMessage('ali');
+ +

my_task.js (le code du worker) :

+ +
postMessage("I\'m working before postMessage(\'ali\').");
+
+onmessage = function(oEvent) {
+  postMessage('Hi ' + oEvent.data);
+};
+ +

L'algorithme de clonage structurel permet de sérialiser aussi bien des données JSON que d'autres formats et permet notamment de gérer les références circulaires (ce que JSON ne permet pas de gérer nativement).

+ +

Les objets transférables - échanger des données avec transfert de la propriété

+ +

Chrome 17+ et Firefox 18+ permettent également d'échanger certains types d'objet (qualifiés de transférables et qui implémentent l'interface {{domxref("Transferable")}}) avec des workers et à haute performance. Les objets transférables sont passés d'un contexte à l'autre avec une opération zero-copy qui permet d'obtenir des améliorations sensibles lors de l'échange de données volumineuses. On peut voir cela comme un passage de référence du monde C/C++ mais les données qui sont transférées depuis le contexte appelant ne sont plus disponibles dans ce contexte après le transfert. La propriété des données est transférée au nouveau contexte. Ainsi, lorsqu'on transfère un objet {{domxref("ArrayBuffer")}} depuis l'application principale vers le worker, l'objet {{domxref("ArrayBuffer")}} de départ est nettoyé et ne peut plus être utilisé, son contenu est (littéralement) transféré au contexte du worker.

+ +
// Créer un fichier de 32MB et le remplir.
+var uInt8Array = new Uint8Array(1024 * 1024 * 32); // 32MB
+for (var i = 0; i < uInt8Array.length; ++i) {
+  uInt8Array[i] = i;
+}
+
+worker.postMessage(uInt8Array.buffer, [uInt8Array.buffer]);
+
+ +
+

Note : Pour plus d'informations quant aux objets transférables, aux performances associées et à la détection de ces fonctionnalités, on pourra lire Transferable Objects: Lightning Fast.

+
+ +

Workers embarqués

+ +

Il n'existe pas de méthode standard pour embarquer le code d'un worker dans une page web à la façon des éléments {{HTMLElement("script")}}. Toutefois, un élément {{HTMLElement("script")}}, qui ne possède pas d'attribut src, qui possède un attribut type ne correspondant pas à un type MIME exécutable pourra être considéré comme un bloc de données pouvant être utilisé par JavaScript. Ces blocs de données sont une fonctionnalité HTML5 qui permet de transporter n'importe quelle donnée textuelle. On pourrait donc embarquer un worker de cette façon :

+ +
<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8" />
+<title>Exemple MDN - Worker embarqué</title>
+<script type="text/js-worker">
+  // Ce script ne sera pas analysé par le moteur JS car
+  // son type MIME est text/js-worker.
+  var maVar = 'Coucou monde !';
+  // Reste du code du worker.
+</script>
+<script type="text/javascript">
+  // Ce script sera analysé par le moteur JS car son type MIME
+  // est text/javascript.
+  function pageLog(sMsg) {
+    // On utilise un fragment afin que le navigateur ne rende/peigne
+    // qu'une seule fois.
+    var oFragm = document.createDocumentFragment();
+    oFragm.appendChild(document.createTextNode(sMsg));
+    oFragm.appendChild(document.createElement('br'));
+    document.querySelector('#logDisplay').appendChild(oFragm);
+  }
+</script>
+<script type="text/js-worker">
+  // Ce script ne sera pas analysé par le moteur JS car son type
+  // MIME est text/js-worker.
+  onmessage = function(oEvent) {
+    postMessage(myVar);
+  };
+  // Reste du code du worker
+</script>
+<script type="text/javascript">
+  // Ce script sera analysé par le moteur JS car son type MIME est
+  // text/javascript
+
+  var blob = new Blob(Array.prototype.map.call(document.querySelectorAll('script[type=\'text\/js-worker\']'), function (oScript) { return oScript.textContent; }),{type: 'text/javascript'});
+
+  // On crée une nouvelle propriété document.worker qui contient
+  // tous les scripts "text/js-worker".
+  document.worker = new Worker(window.URL.createObjectURL(blob));
+
+  document.worker.onmessage = function(oEvent) {
+    pageLog('Received: ' + oEvent.data);
+  };
+
+  // On démarre le worker.
+  window.onload = function() { document.worker.postMessage(''); };
+</script>
+</head>
+<body><div id="logDisplay"></div></body>
+</html>
+ +

Le worker embarqué est désormais injecté dans la propriété document.worker.

+ +

On notera également qu'on peut convertir une fonction en un Blob et générer une URL d'objet vers ce blob. Par exemple :

+ +
function fn2workerURL(fn) {
+  var blob = new Blob(['('+fn.toString()+')()'], {type: 'application/javascript'})
+  return URL.createObjectURL(blob)
+}
+ +

Autres exemples

+ +

Dans cette section nous voyons d'autres exemples d'application.

+ +

Effectuer des calculs en arrière-plan

+ +

Les workers sont notamment utiles pour réaliser des opérations de traitement intensives sans bloquer pour autant le thread responsable de l'interface utilisateur. Dans cet exemple, on utilise un worker afin de calculer la suite de Fibonacci.

+ +

JavaScript

+ +

Le code JavaScript suivant sera enregistré dans le fichier "fibonacci.js" auquel on fera référence dans le document HTML ci-après.

+ +
var results = [];
+
+function resultReceiver(event) {
+  results.push(parseInt(event.data));
+  if (results.length == 2) {
+    postMessage(results[0] + results[1]);
+  }
+}
+
+function errorReceiver(event) {
+  throw event.data;
+}
+
+onmessage = function(event) {
+  var n = parseInt(event.data);
+
+  if (n == 0 || n == 1) {
+    postMessage(n);
+    return;
+  }
+
+  for (var i = 1; i <= 2; i++) {
+    var worker = new Worker('fibonacci.js');
+    worker.onmessage = resultReceiver;
+    worker.onerror = errorReceiver;
+    worker.postMessage(n - i);
+  }
+ };
+ +

On a défini la propriété onmessage avec une fonction qui recevra les messages envoyés au worker via postMessage(). On initie alors la récursion et on déclenche des copies du worker afin de gérer chacune des itérations liées au calcul.

+ +

HTML

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="UTF-8"  />
+    <title>Test threads fibonacci</title>
+  </head>
+  <body>
+
+  <div id="result"></div>
+
+  <script language="javascript">
+
+    var worker = new Worker('fibonacci.js');
+
+    worker.onmessage = function(event) {
+      document.getElementById('result').textContent = event.data;
+      dump('Got: ' + event.data + '\n');
+    };
+
+    worker.onerror = function(error) {
+      console.error('Worker error: ' + error.message + '\n');
+      throw error;
+    };
+
+    worker.postMessage('5');
+
+  </script>
+  </body>
+</html>
+
+ +

Dans la page web, on crée un élément div avec l'identifiant result. C'est cet élément qui sera utilisé afin d'afficher le résultat.

+ +

Ensuite, on lance le worker. Après avoir initié le worker, on configure le gestionnaire d'évènement onmessage afin d'afficher le résultat via le div. On configure également le gestionnaire onerror afin d'afficher l'erreur de la console.

+ +

Enfin, on envoie un message au worker afin de le démarrer.

+ +

Essayer cet exemple.

+ +

Répartir des tâches entre plusieurs workers

+ +

Les ordinateurs dotés de plusieurs coeurs se généralisent et il peut s'avérer utile de fragmenter une tâche complexe entre différents workers afin de tirer parti des différents coeurs du processeur.

+ +

Autres workers

+ +

En plus des web workers (dédiés et partagés), il existe d'autres types de workers :

+ + + +

Fonctions et interfaces disponibles pour les workers

+ +

La plupart des fonctionnalités JavaScript standard peuvent être utilisées dans les web workers, dont :

+ + + +

En revanche, un worker ne pourra pas directement manipuler la page parente et notamment le DOM et les objets de la page. Il faudra effectuer ce traitement indirectement, via des messages.

+ +
+

Note : Pour avoir une liste exhaustive des fonctionnalités disponibles pour les workers, voir  les fonctions et interfaces disponibles pour les workers.

+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('HTML WHATWG', '#workers', 'Web workers')}}{{Spec2('HTML WHATWG')}}
+ +

Compatibilité des navigateurs

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support simple4[1]{{CompatGeckoDesktop("1.9.1")}}10.010.6[1]4[2][5]
Workers partagés4[1]{{CompatGeckoDesktop(29)}}{{CompatNo}}10.65
+ {{CompatNo}} 6.1[4]
Echange de données via le clonage structuré13{{CompatGeckoDesktop(8)}}10.011.56
Echange de données via les objets transférables17 {{property_prefix("webkit")}}
+ 21
{{CompatGeckoDesktop(18)}}{{CompatNo}}156
Variable globale {{domxref("window.URL", "URL")}}10[3]
+ 23
{{CompatGeckoDesktop(21)}}11156[3]
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidChrome pour AndroidFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari Mobile
Support simple4.44[1]3.51.0.110.011.5[1]5.1[2][5]
Shared workers{{CompatNo}}4[1]81.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Echange de données via le clonage structuré{{CompatNo}}481.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Echange de données via les objets transférables{{CompatNo}}{{CompatNo}}181.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

[1] Chrome et Opera provoquent une erreur "Uncaught SecurityError: Failed to construct 'Worker': Script at 'file:///Path/to/worker.js' cannot be accessed from origin 'null'." lorsqu'on souhaite accéder au worker en local. Il faut un domaine réel pour le faire.

+ +

[2] Avec Safari 7.1.2, on peut appeler console.log depuis un worker mais cela n'affichera rien dans la console. Les versions antérieures ne permettent pas d'appeler console.log depuis un worker.

+ +

[3] Cette fonctionnalité est préfixée : webkitURL.

+ +

[4] Safari a retiré la prise en charge de SharedWorker.

+ +

[5] Avec Safari v.12+ (iOS & MacOS), les web workers sont uniquement démarrés après une interaction utilisateur (un clic par exemple). Les workers pourront être créés mais ne seront pas exécutés tant qu'ils n'y aura pas eu d'interaction.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/web_workers_api/utilisation_des_web_workers/index.html b/files/fr/web/api/web_workers_api/utilisation_des_web_workers/index.html deleted file mode 100644 index b1330f34bf..0000000000 --- a/files/fr/web/api/web_workers_api/utilisation_des_web_workers/index.html +++ /dev/null @@ -1,633 +0,0 @@ ---- -title: Utilisation des web workers -slug: Web/API/Web_Workers_API/Utilisation_des_web_workers -tags: - - Avancé - - Guide - - JavaScript - - Web Workers -translation_of: Web/API/Web_Workers_API/Using_web_workers ---- -
{{DefaultAPISidebar("Web Workers API")}}
- -

Les Web Workers sont un outil permettant au contenu web d'exécuter des scripts dans des tâches (threads) d'arrière-plan. Le thread associé au worker peut réaliser des tâches sans qu'il y ait d'interférence avec l'interface utilisateur. De plus, les web workers peuvent réaliser des opérations d'entrée/sortie grâce à XMLHttpRequest (bien que les attributs responseXML et channel soient nécessairement vides dans ces cas). Une fois créé, un worker peut envoyer des messages au code JavaScript qui l'a créé. De même, le script initial peut envoyer des messages au worker. Cette communication s'effectue grâce à des gestionnaires d'évènements. Dans cet article, nous verrons une introduction à l'utilisation des web workers.

- -

L'API Web Workers

- -

Un worker est un objet créé à l'aide d'un constructeur (par exemple {{domxref("Worker.Worker", "Worker()")}}) et qui exécute un fichier JavaScript donné. Ce fichier contient le code qui sera exécuté par le thread du worker. Les workers sont exécutés dans un contexte global qui n'est pas celui du document (généralement {{domxref("window")}}). Aussi, si, dans un worker, on utilise {{domxref("window")}} pour accéder à la portée globale (plutôt que {{domxref("window.self","self")}}), cela provoquera une erreur.

- -

Le contexte du worker est représenté par un objet {{domxref("DedicatedWorkerGlobalScope")}} pour les workers dédiés et par un objet {{domxref("SharedWorkerGlobalScope")}} sinon. Un worker dédié est uniquement accessible au travers du script qui l'a déclenché tandis qu'un worker partagé peut être utilisé par différents scripts.

- -
-

Note : Voir la page d'entrée pour l'API Web Workers pour consulter la documentation de référence sur les workers et d'autres guides.

-
- -

Il est possible d'exécuter n'importe quel code JavaScript dans le thread du worker, à l'exception des méthodes de manipulation du DOM ou de certaines propriétés et méthodes rattachées à {{domxref("window")}}. On notera cependant qu'on peut tout à fait utiliser certaines API rendues disponibles via window comme les WebSockets, les API de stockage de données telles que IndexedDB. Pour plus de détails, voir les fonctions et classes disponibles au sein des workers.

- -

Les données sont échangées entre le thread du worker et le thread principal par l'intermédiaire de messages. Chaque partie peut envoyer des messages à l'aide de la méthode postMessage() et réagir aux messages reçus grâce au gestionnaire d'évènement onmessage (le message sera contenu dans l'attribut data de l'évènement {{event("Message")}} associé). Les données sont copiées dans le message, elles ne sont pas partagées.

- -

Les workers peuvent également déclencher la création d'autres workers tant que ceux-ci restent hébergés sur la même origine que la page parente. De plus, les workers pourront utiliser XMLHttpRequest pour effectuer des opérations réseau mais les attributs responseXML et channel de XMLHttpRequest renverront nécessairement null.

- -

Les workers dédiés

- -

Comme indiqué plus haut, un worker dédié n'est accessible qu'au travers du script qui l'a initié. Dans cette section, nous étudierons le code JavaScript de notre exemple de worker dédié simple. Dans cet exemple, nous souhaitons multiplier deux nombres. Ces nombres sont envoyés à un worker dédié puis le résultat est renvoyé à la page et affiché.

- -

Cet exemple est assez simple mais permet d'introduire les concepts de base autour des workers. Nous verrons certains détails plus avancés dans la suite de cet article.

- -

Détecter la possibilité d'utiliser les workers

- -

Afin de gérer une meilleure amélioration progressive, une rétro-compatibilité et de présenter des messages d'erreur adéquats, il pourra être utile d'envelopper le code relatif au worker de la façon suivante (main.js) :

- -
if (window.Worker) {
-  ...
-}
- -

Initier un worker dédié

- -

La création d'un nouveau worker est assez simple. On appellera le constructeur {{domxref("Worker.Worker", "Worker()")}} en indiquant l'URI du script à exécuter dans le thread associé au worker (main.js) :

- -
-
var monWorker = new Worker('worker.js');
-
-
- -

Envoyer des messages au worker et y réagir

- -

L'intérêt principal des workers repose sur l'échange de messages à l'aide de la méthode {{domxref("Worker.postMessage", "postMessage()")}} et grâce au gestionnaire d'évènement {{domxref("Worker.onmessage", "onmessage")}}. Lorsqu'on souhaite envoyer un message au worker, on enverra des messages de la façon suivante (main.js) :

- -
premierNombre.onchange = function() {
-  monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]);
-  console.log('Message envoyé au worker');
-}
-
-deuxiemeNombre.onchange = function() {
-  monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]);
-  console.log('Message envoyé au worker');
-}
- -

Ici, nous disposons de deux éléments {{htmlelement("input")}} représentés par les variables premierNombre et deuxiemeNombre. Lorsque l'un de ces deux champs est modifié, on utilise monWorker.postMessage([premierNombre.value, deuxiemeNombre.value]) afin d'envoyer les deux valeurs au worker dans un tableau. Les messages peuvent être utilisés pour échanger n'importe quel type de valeur.

- -

Dans le worker, on peut réagir au message reçu grâce à un gestionnaire d'évènement comme celui-ci (worker.js) :

- -
onmessage = function(e) {
-  console.log('Message reçu depuis le script principal.');
-  var workerResult = 'Résultat : ' + (e.data[0] * e.data[1]);
-  console.log('Envoi du message de retour au script principal');
-  postMessage(workerResult);
-}
- -

Le gestionnaire onmessage permet d'exécuter du code lorsqu'un message est reçu. Le message même est disponible grâce à l'attribut data de l'évènement. Dans cet exemple, nous multiplions simplement les deux nombres avant d'utiliser postMessage() à nouveau afin d'envoyer le résultat via un message destiné au thread principal.

- -

De retour dans le thread principal, nous pouvons utiliser onmessage à nouveau pour réagir à la réponse provenant du worker :

- -
monWorker.onmessage = function(e) {
-  resultat.textContent = e.data;
-  console.log('Message reçu depuis le worker');
-}
- -

Ici, nous récupérons les données grâce à l'attribut data de l'évènement et nous mettons à jour le contenu du paragraphe avec l'attribut textContent de l'élément. Ainsi, l'utilisateur peut visualiser le résultat du calcul.

- -
Note : On notera que onmessage et postMessage() doivent être rattachés à un objet Worker lorsqu'ils sont utilisés depuis le thread principal (ici, c'était monWorker) mais pas lorsqu'ils sont employés depuis le worker. En effet, dans le worker, c'est le worker qui constitue la portée globale et qui met à disposition ces méthodes.
- -
Note : Lorsqu'un message est envoyé d'un thread à l'autre, ses données sont copiées. Elles ne sont pas partagées. Voir ci-après pour plus d'explications à ce sujet.
- -

Clôturer un worker

- -

Si on doit arrêter un worker immédiatement, on pourra utiliser la méthode {{domxref("Worker", "terminate")}} depuis le thread principal :

- -
monWorker.terminate();
- -

Lorsque cette méthode exécuté, le thread associé au worker est tué immédiatement.

- -

Gérer les erreurs

- -

Lorsqu'une erreur d'exécution se produit avec le worker, son gestionnaire d'évènement onerror est appelé et reçoit un évènement error qui implémente l'interface ErrorEvent.

- -

Cet évènement ne bouillonne (bubble) pas et peut être annulé. Pour empêcher les conséquences par défaut, on pourra utiliser la méthode preventDefault() rattachée à l'évènement d'erreur.

- -

L'évènement décrivant l'erreur possède notamment trois propriétés intéressantes :

- -
-
message
-
Un message d'erreur compréhensible par un humain.
-
filename
-
Le nom du fichier pour lequel l'erreur s'est produite.
-
lineno
-
Le numéro de ligne au sein du fichier responsable de l'erreur.
-
- -

Initier des workers fils

- -

Les workers peuvent également engendrer d'autres workers. Ces workers-fils doivent être hébergés sur la même origine que la page initiale. De plus, les URI des workers-fils sont résolues relativement à l'emplacement du worker père (plutôt que par rapport à la page parente). Ces contraintes permettent de simplifier le suivi des dépendances.

- -

Importer des scripts et des bibliothèques

- -

Les threads d'exécution des workers peuvent accéder à la fonction globale importScripts(), qui leur permet d'importer des scripts. Cette fonction prend zéro à plusieurs URL en paramètres et importe les ressources associées. Voici quelques exemples valides :

- -
importScripts();                         /* n'importe rien */
-importScripts('toto.js');                /* importe uniquement "toto.js" */
-importScripts('toto.js', 'truc.js');     /* importe deux scripts */
-importScripts('//example.com/hello.js'); /* importe un script d'une autre origine */
- -

Lors d'un import, le navigateur chargera chacun des scripts puis l'exécutera. Chaque script pourra ainsi mettre à disposition des objets globaux qui pourront être utilisés par le worker. Si le script ne peut pas être chargé, une exception NETWORK_ERROR sera levée et le code assicé ne sera pas exécuté. Le code exécuté précédemment (y compris celui-ci reporté à l'aide de {{domxref("window.setTimeout()")}}) continuera cependant d'être fonctionnel. Les déclarations de fonction situées après importScripts() sont également exécutées car évaluées avant le reste du code.

- -
Note : Les scripts peuvent être téléchargés dans n'importe quel ordre mais ils seront exécutés dans l'ordre des arguments passés à importScripts() . Cet exécution est effectuée de façon synchrone et importScripts() ne rendra pas la main tant que l'ensemble des scripts n'auront pas été chargés et exécutés.
- -

Les workers partagés

- -

Un worker partagé est accessible par plusieurs scripts (même si ceux-ci proviennent de différentes fenêtres, iframes voire d'autres workers). Dans cette section, nous illustrerons les concepts à l'aide de l'exemple simple d'un worker partagé. Cet exemple est semblable à l'exemple utilisé pour le worker dédié. Il diffère car il possède deux fonctions, gérées par deux fichiers de script distincts : une fonction permettant de multiplier deux nombres et une fonction permettant d'élever un nombre au carré. Les deux scripts utilisent le même worker pour réaliser le calcul demandé.

- -

Ici, nous nous intéresserons particulièrement aux différences entre les workers dédiés et les workers partagés. Dans cet exemple, nous aurons deux pages HTML, chacune utilisant du code JavaScript employant le même worker.

- -
-

Note : Si on peut accéder à un worker partagé depuis différents contextes de navigations, ces contextes de navigation doivent néanmoins partager la même origine (même protocole, même hôte, même port).

-
- -
-

Note : Dans Firefox, les workers partagés ne peuvent pas être partagés entre les documents chargés en navigation privée et les documents chargés en navigation classique ({{bug(1177621)}}).

-
- -

Initier un worker partagé

- -

La création d'un nouveau worker partagé est assez semblable à la création d'un worker dédié. On utilise alors un constructeur différent :

- -
var monWorker = new SharedWorker('worker.js');
- -

Une différence fondamentale avec les workers dédiés est l'utilisation d'un objet port pour la communication. Un port sera explicitement ouvert pour être utilisé afin de communiquer avec le worker (dans le cas des workers dédiés, ce port est ouvert implicitement).

- -

La connexion au port doit être démarrée implicitement avec l'utilisation du gestionnaire d'évènement onmessage ou explicitement avec la méthode start() avant qu'un message soit envoyé. On utilisera uniquement start() si l'évènement message est détecté avec la méthode addEventListener().

- -
-

Note : Lorsqu'on utilise la méthode start() afin d'ouvrir le port de connexion, celle-ci doit être appelée de part et d'autre (depuis le thread parent et depuis le worker) si on souhaite disposer d'une connexion bidirectionnelle.

-
- -

Échanger des messages avec un worker partagé et y réagir

- -

On peut alors envoyer des messages au worker. Dans le cas d'un worker partagé, la méthode postMessage() doit être appelée via l'objet port (là aussi, vous pouvez étudier le code de multiply.js et square.js) :

- -
carreNombre.onchange = function() {
-  monWorker.port.postMessage([carreNombre.value, carreNombre.value]);
-  console.log('Message envoyé au worker');
-}
- -

Du côté du worker, les choses sont également légèrement plus compliquées (voir worker.js) :

- -
onconnect = function(e) {
-  var port = e.ports[0];
-
-  port.onmessage = function(e) {
-    var workerResult = 'Résultat : ' + (e.data[0] * e.data[1]);
-    port.postMessage(workerResult);
-  }
-}
- -

On commence par utiliser le gestionnaire onconnect afin de déclencher du code à la connexion au port (c'est-à-dire lorsque le gestionnaire onmessage est déclaré depuis le thread parent ou lorsque la méthode start() est invoquée explicitement depuis le thread parent).

- -

On utilise l'attribut ports de l'évènement afin de récupérer le port utilisé et on le place dans une variable.

- -

Ensuite, sur ce port, on ajoute un gestionnaire d'évènement pour l'évènement message afin de faire les calculs et de renvoyer le résultat au thread principal. En définissant ce gestionnaire pour message dans le thread du worker, on ouvre implicitement le port pour la connexion au thread parent : il n'est donc pas nécessaire d'invoquer port.start().

- -

Enfin, dans le script de la page, on gère le message du résultat (voir multiply.js et square.js):

- -
monWorker.port.onmessage = function(e) {
-  result2.textContent = e.data;
-  console.log('Message reçu depuis le worker');
-}
- -

Lorsqu'un message provient du port associé au worker, on vérifie son type puis on insère le résultat dans le paragraphe associé.

- -

Sûreté des threads

- -

L'interface {{domxref("Worker")}} engendre des threads au sens du système d'exploitation. Certains développeurs avertis pourront se demander si cette communication à base de threads ne peut pas générer d'effets indésirables tels que des situations de compétition (race conditions).

- -

Toutefois, la communication entre les web workers est contrôlée explicitement dans les scripts et il n'y a pas d'accès aux composants ou au DOM qui ne seraient pas sûrs à ce niveau. De plus, la communication entre les threads s'effectue par recopie de données. Aussi, s'il n'est théoriquement pas impossible de ne pas avoir de tels problèmes, il faudrait les chercher pour les provoquer.

- -

Règles de sécurité du contenu (content security policy, CSP)

- -

Les workers disposent de leur propre contexte d'exécution, distinct de celui du document qui les a créés. Aussi, en général, les workers ne sont pas gérés par la politique de sécurité de contenu du document (ou du worker parent) responsable de leur création. Ainsi, si un document est servi avec l'en-tête suivant :

- -
Content-Security-Policy: script-src 'self'
- -
Cette règle empêchera n'importe quel script inclus dans le document d'utiliser eval(). Toutefois, si le script génère un worker, le code exécuté par ce worker pourra utiliser eval().
-
-Pour appliquer une règle de sécurité au worker, il faudra fournir un en-tête Content-Security-Policy approprié pour la requête responsable du service du script du worker.
-
-Si l'origine du script du worker est un identifiant global unique (si son URL utilise le schéma data:// ou blob:// par exemple), le worker héritera du CSP associé au document responsable de sa création.
- -
- -

Échanger des données avec les workers : plus de détails

- -

Les données échangées entre le document principal et les workers sont copiées et non partagées. Lorsqu'ils sont envoyés au worker, les objets sont sérialisés (puis désérialisés à leur réception). La page et le worker ne partagent pas le même exemplaire et on a donc deux versions d'une part et d'autre. La plupart des navigateurs implémentent cette approche avec une clonage structurel.

- -

Pour illustrer ce point, on prendra une fonction intitulée emulateMessage() et qui simule le comportement d'une valeur clonée (pas partagée) avec un worker attaché à la page principale et réciproquement :

- -
function emulateMessage(vVal) {
-    return eval('(' + JSON.stringify(vVal) + ')');
-}
-
-// Tests
-
-// test #1
-var example1 = new Number(3);
-console.log(typeof example1); // object
-console.log(typeof emulateMessage(example1)); // number
-
-// test #2
-var example2 = true;
-console.log(typeof example2); // boolean
-console.log(typeof emulateMessage(example2)); // boolean
-
-// test #3
-var example3 = new String('Hello World');
-console.log(typeof example3); // object
-console.log(typeof emulateMessage(example3)); // string
-
-// test #4
-var example4 = {
-    'name': 'John Smith',
-    "age": 43
-};
-console.log(typeof example4); // object
-console.log(typeof emulateMessage(example4)); // object
-
-// test #5
-function Animal(sType, nAge) {
-    this.type = sType;
-    this.age = nAge;
-}
-var example5 = new Animal('Cat', 3);
-console.log(example5.constructor); // Animal
-console.log(emulateMessage(example5).constructor); // Object
- -

Une valeur qui est clonée et non partagée est appelée un message. Les messages peuvent être envoyés et reçus grâce à postMessage() et au gestionnaire d'évènement pour message (dont l'attribut {{domxref("MessageEvent.data", "data")}} contiendra les données copiées).

- -

example.html (page principale) :

- -
var myWorker = new Worker('my_task.js');
-
-myWorker.onmessage = function(oEvent) {
-  console.log('Worker said : ' + oEvent.data);
-};
-
-myWorker.postMessage('ali');
- -

my_task.js (le code du worker) :

- -
postMessage("I\'m working before postMessage(\'ali\').");
-
-onmessage = function(oEvent) {
-  postMessage('Hi ' + oEvent.data);
-};
- -

L'algorithme de clonage structurel permet de sérialiser aussi bien des données JSON que d'autres formats et permet notamment de gérer les références circulaires (ce que JSON ne permet pas de gérer nativement).

- -

Les objets transférables - échanger des données avec transfert de la propriété

- -

Chrome 17+ et Firefox 18+ permettent également d'échanger certains types d'objet (qualifiés de transférables et qui implémentent l'interface {{domxref("Transferable")}}) avec des workers et à haute performance. Les objets transférables sont passés d'un contexte à l'autre avec une opération zero-copy qui permet d'obtenir des améliorations sensibles lors de l'échange de données volumineuses. On peut voir cela comme un passage de référence du monde C/C++ mais les données qui sont transférées depuis le contexte appelant ne sont plus disponibles dans ce contexte après le transfert. La propriété des données est transférée au nouveau contexte. Ainsi, lorsqu'on transfère un objet {{domxref("ArrayBuffer")}} depuis l'application principale vers le worker, l'objet {{domxref("ArrayBuffer")}} de départ est nettoyé et ne peut plus être utilisé, son contenu est (littéralement) transféré au contexte du worker.

- -
// Créer un fichier de 32MB et le remplir.
-var uInt8Array = new Uint8Array(1024 * 1024 * 32); // 32MB
-for (var i = 0; i < uInt8Array.length; ++i) {
-  uInt8Array[i] = i;
-}
-
-worker.postMessage(uInt8Array.buffer, [uInt8Array.buffer]);
-
- -
-

Note : Pour plus d'informations quant aux objets transférables, aux performances associées et à la détection de ces fonctionnalités, on pourra lire Transferable Objects: Lightning Fast.

-
- -

Workers embarqués

- -

Il n'existe pas de méthode standard pour embarquer le code d'un worker dans une page web à la façon des éléments {{HTMLElement("script")}}. Toutefois, un élément {{HTMLElement("script")}}, qui ne possède pas d'attribut src, qui possède un attribut type ne correspondant pas à un type MIME exécutable pourra être considéré comme un bloc de données pouvant être utilisé par JavaScript. Ces blocs de données sont une fonctionnalité HTML5 qui permet de transporter n'importe quelle donnée textuelle. On pourrait donc embarquer un worker de cette façon :

- -
<!DOCTYPE html>
-<html>
-<head>
-<meta charset="UTF-8" />
-<title>Exemple MDN - Worker embarqué</title>
-<script type="text/js-worker">
-  // Ce script ne sera pas analysé par le moteur JS car
-  // son type MIME est text/js-worker.
-  var maVar = 'Coucou monde !';
-  // Reste du code du worker.
-</script>
-<script type="text/javascript">
-  // Ce script sera analysé par le moteur JS car son type MIME
-  // est text/javascript.
-  function pageLog(sMsg) {
-    // On utilise un fragment afin que le navigateur ne rende/peigne
-    // qu'une seule fois.
-    var oFragm = document.createDocumentFragment();
-    oFragm.appendChild(document.createTextNode(sMsg));
-    oFragm.appendChild(document.createElement('br'));
-    document.querySelector('#logDisplay').appendChild(oFragm);
-  }
-</script>
-<script type="text/js-worker">
-  // Ce script ne sera pas analysé par le moteur JS car son type
-  // MIME est text/js-worker.
-  onmessage = function(oEvent) {
-    postMessage(myVar);
-  };
-  // Reste du code du worker
-</script>
-<script type="text/javascript">
-  // Ce script sera analysé par le moteur JS car son type MIME est
-  // text/javascript
-
-  var blob = new Blob(Array.prototype.map.call(document.querySelectorAll('script[type=\'text\/js-worker\']'), function (oScript) { return oScript.textContent; }),{type: 'text/javascript'});
-
-  // On crée une nouvelle propriété document.worker qui contient
-  // tous les scripts "text/js-worker".
-  document.worker = new Worker(window.URL.createObjectURL(blob));
-
-  document.worker.onmessage = function(oEvent) {
-    pageLog('Received: ' + oEvent.data);
-  };
-
-  // On démarre le worker.
-  window.onload = function() { document.worker.postMessage(''); };
-</script>
-</head>
-<body><div id="logDisplay"></div></body>
-</html>
- -

Le worker embarqué est désormais injecté dans la propriété document.worker.

- -

On notera également qu'on peut convertir une fonction en un Blob et générer une URL d'objet vers ce blob. Par exemple :

- -
function fn2workerURL(fn) {
-  var blob = new Blob(['('+fn.toString()+')()'], {type: 'application/javascript'})
-  return URL.createObjectURL(blob)
-}
- -

Autres exemples

- -

Dans cette section nous voyons d'autres exemples d'application.

- -

Effectuer des calculs en arrière-plan

- -

Les workers sont notamment utiles pour réaliser des opérations de traitement intensives sans bloquer pour autant le thread responsable de l'interface utilisateur. Dans cet exemple, on utilise un worker afin de calculer la suite de Fibonacci.

- -

JavaScript

- -

Le code JavaScript suivant sera enregistré dans le fichier "fibonacci.js" auquel on fera référence dans le document HTML ci-après.

- -
var results = [];
-
-function resultReceiver(event) {
-  results.push(parseInt(event.data));
-  if (results.length == 2) {
-    postMessage(results[0] + results[1]);
-  }
-}
-
-function errorReceiver(event) {
-  throw event.data;
-}
-
-onmessage = function(event) {
-  var n = parseInt(event.data);
-
-  if (n == 0 || n == 1) {
-    postMessage(n);
-    return;
-  }
-
-  for (var i = 1; i <= 2; i++) {
-    var worker = new Worker('fibonacci.js');
-    worker.onmessage = resultReceiver;
-    worker.onerror = errorReceiver;
-    worker.postMessage(n - i);
-  }
- };
- -

On a défini la propriété onmessage avec une fonction qui recevra les messages envoyés au worker via postMessage(). On initie alors la récursion et on déclenche des copies du worker afin de gérer chacune des itérations liées au calcul.

- -

HTML

- -
<!DOCTYPE html>
-<html>
-  <head>
-    <meta charset="UTF-8"  />
-    <title>Test threads fibonacci</title>
-  </head>
-  <body>
-
-  <div id="result"></div>
-
-  <script language="javascript">
-
-    var worker = new Worker('fibonacci.js');
-
-    worker.onmessage = function(event) {
-      document.getElementById('result').textContent = event.data;
-      dump('Got: ' + event.data + '\n');
-    };
-
-    worker.onerror = function(error) {
-      console.error('Worker error: ' + error.message + '\n');
-      throw error;
-    };
-
-    worker.postMessage('5');
-
-  </script>
-  </body>
-</html>
-
- -

Dans la page web, on crée un élément div avec l'identifiant result. C'est cet élément qui sera utilisé afin d'afficher le résultat.

- -

Ensuite, on lance le worker. Après avoir initié le worker, on configure le gestionnaire d'évènement onmessage afin d'afficher le résultat via le div. On configure également le gestionnaire onerror afin d'afficher l'erreur de la console.

- -

Enfin, on envoie un message au worker afin de le démarrer.

- -

Essayer cet exemple.

- -

Répartir des tâches entre plusieurs workers

- -

Les ordinateurs dotés de plusieurs coeurs se généralisent et il peut s'avérer utile de fragmenter une tâche complexe entre différents workers afin de tirer parti des différents coeurs du processeur.

- -

Autres workers

- -

En plus des web workers (dédiés et partagés), il existe d'autres types de workers :

- - - -

Fonctions et interfaces disponibles pour les workers

- -

La plupart des fonctionnalités JavaScript standard peuvent être utilisées dans les web workers, dont :

- - - -

En revanche, un worker ne pourra pas directement manipuler la page parente et notamment le DOM et les objets de la page. Il faudra effectuer ce traitement indirectement, via des messages.

- -
-

Note : Pour avoir une liste exhaustive des fonctionnalités disponibles pour les workers, voir  les fonctions et interfaces disponibles pour les workers.

-
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('HTML WHATWG', '#workers', 'Web workers')}}{{Spec2('HTML WHATWG')}}
- -

Compatibilité des navigateurs

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support simple4[1]{{CompatGeckoDesktop("1.9.1")}}10.010.6[1]4[2][5]
Workers partagés4[1]{{CompatGeckoDesktop(29)}}{{CompatNo}}10.65
- {{CompatNo}} 6.1[4]
Echange de données via le clonage structuré13{{CompatGeckoDesktop(8)}}10.011.56
Echange de données via les objets transférables17 {{property_prefix("webkit")}}
- 21
{{CompatGeckoDesktop(18)}}{{CompatNo}}156
Variable globale {{domxref("window.URL", "URL")}}10[3]
- 23
{{CompatGeckoDesktop(21)}}11156[3]
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome pour AndroidFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari Mobile
Support simple4.44[1]3.51.0.110.011.5[1]5.1[2][5]
Shared workers{{CompatNo}}4[1]81.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Echange de données via le clonage structuré{{CompatNo}}481.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
Echange de données via les objets transférables{{CompatNo}}{{CompatNo}}181.0.1{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

[1] Chrome et Opera provoquent une erreur "Uncaught SecurityError: Failed to construct 'Worker': Script at 'file:///Path/to/worker.js' cannot be accessed from origin 'null'." lorsqu'on souhaite accéder au worker en local. Il faut un domaine réel pour le faire.

- -

[2] Avec Safari 7.1.2, on peut appeler console.log depuis un worker mais cela n'affichera rien dans la console. Les versions antérieures ne permettent pas d'appeler console.log depuis un worker.

- -

[3] Cette fonctionnalité est préfixée : webkitURL.

- -

[4] Safari a retiré la prise en charge de SharedWorker.

- -

[5] Avec Safari v.12+ (iOS & MacOS), les web workers sont uniquement démarrés après une interaction utilisateur (un clic par exemple). Les workers pourront être créés mais ne seront pas exécutés tant qu'ils n'y aura pas eu d'interaction.

- -

Voir aussi

- - diff --git a/files/fr/web/api/webgl_api/by_example/appliquer_des_couleurs/index.html b/files/fr/web/api/webgl_api/by_example/appliquer_des_couleurs/index.html deleted file mode 100644 index 1d8db41a20..0000000000 --- a/files/fr/web/api/webgl_api/by_example/appliquer_des_couleurs/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Appliquer des couleurs -slug: Web/API/WebGL_API/By_example/Appliquer_des_couleurs -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Clearing_with_colors ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Détecter_WebGL","Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_%C3%A0_la_souris")}}

- -

Dans cet article, on voit comment appliquer une couleur unie dans le contexte de rendu.

- -

{{EmbedLiveSample("Appliquer_une_couleur_unie_dans_le_contexte_WebGL",660,300)}}

- -

Appliquer une couleur unie dans le contexte WebGL

- -

Voici l'application la plus simple de {{Glossary("WebGL")}} : appliquer un vert uni dans le {{domxref("WebGLRenderingContext","contexte de rendu")}}. On notera que la feuille de style {{Glossary("CSS")}} définit l'arrière-plan comme étant noir. Ainsi, quand le canevas s'affiche en vert, on sait que {{Glossary("WebGL")}} a fonctionné comme il fallait.

- -

Par ailleurs, vous pouvez remarquer que, pour appliquer une couleur unie sur le tampon (buffer) de dessin, on utilise deux étapes. Tout d'abord, on applique la couleur verte grâce à la méthode {{domxref("WebGLRenderingContext.clearColor()","clearColor()")}}. Cette opération ne modifie que l'état interne de {{Glossary("WebGL")}}, rien n'est peint/affiché pour le moment. Ensuite, on dessine « réellement » avec la méthode {{domxref("WebGLRenderingContext.clear()","clear()")}}. C'est la méthode classique pour dessiner avec WebGL. Il y a seulement quelques méthodes qui « dessinent » (dont clear()), toutes les autres méthodes permettent d'obtenir ou de modifier les variables liées aux états de WebGL (dont la couleur à appliquer).

- -

Il existe de nombreuses options pour modifier les états {{Glossary("WebGL")}}. La couleur à appliquer en est une parmi d'autres.{{Glossary("WebGL")}}/{{Glossary("OpenGL")}} est souvent qualifié d'automate à états. En fait, lorsque vous manipulez ces variables internes, ces « interrupteurs », vous modifiez l'état interne de WebGL, qui modifie à son tour la façon dont la sortie est retranscrite (dans cet exemple, cela correspond à l'étape où les pixels sont passés en vert).

- -

Enfin, vous pouvez voir que les couleurs manipulées en WebGL sont décrites avec le format {{Glossary("RGBA")}}. Ce format décrit quatre composantes numériques pour les intensités respectives des tons rouge (R), vert (green G), bleu (B) et alpha (qui correspond à l'opacité). C'est pour ça que clearColor() prend quatre arguments.

- -
<p>Un programme WebGL très simple qui affiche une couleur.</p>
-<!-- Le texte d'un élément canvas est affiché uniquement
-    si canvas n'est pas supporté. -->
-<canvas>Il semblerait que votre navigateur ne supporte pas
-    le canevas HTML5</canvas>
-
- -
body {
-  text-align : center;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-
- -
// On exécute tout dans le gestionnaire d'événement
-// correspondant au chargement de la fenêtre. De cette
-// façon, le DOM est complètement chargé et mis en forme
-// avant de le manipuler et d'encombrer la portée globale.
-// On donne un nom au gestionnaire (setupWebGL) afin de
-// pouvoir y faire référence par la suite.
-window.addEventListener("load", function setupWebGL (evt) {
-  "use strict"
-
-  // On fait le ménage : le gestionnaire se supprime lui-
-  // même car il n'a besoin d'être exécuté qu'une fois.
-  window.removeEventListener(evt.type, setupWebGL, false);
-
-  // On fait référence aux éléments du document.
-  var paragraph = document.querySelector("p"),
-    canvas = document.querySelector("canvas");
-
-  // On récupère le contexte de rendu WebGL.
-  var gl = canvas.getContext("webgl")
-    || canvas.getContext("experimental-webgl");
-
-  // Si cela échoue, on informe l'utilisateur.
-  // Sinon, on initialise la zone de dessin et on
-  // applique une couleur dans le contexte.
-  if (!gl) {
-    paragraph.innerHTML = "Échec de la récupération du "
-      + "contexte WebGL. Votre navigateur peut ne pas "
-      + " supporter WebGL.";
-    return;
-  }
-  paragraph.innerHTML =
-    "Félicitations, votre navigateur supporte WebGL. ";
-  gl.viewport(0, 0,
-    gl.drawingBufferWidth, gl.drawingBufferHeight);
-
-  // On définit la couleur qu'on veut appliquer
-  // (ici un vert foncé).
-  gl.clearColor(0.0, 0.5, 0.0, 1.0);
-
-  // Enfin, on applique la couleur dans le contexte. C'est
-  // cette fonction qui « dessine » réellement quelque chose.
-  gl.clear(gl.COLOR_BUFFER_BIT);
-
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -
{{PreviousNext("Apprendre/WebGL/Par_exemple/Détecter_WebGL","Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_%C3%A0_la_souris")}}
diff --git "a/files/fr/web/api/webgl_api/by_example/appliquer_des_d\303\251coupes_simples/index.html" "b/files/fr/web/api/webgl_api/by_example/appliquer_des_d\303\251coupes_simples/index.html" deleted file mode 100644 index 3995861e83..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/appliquer_des_d\303\251coupes_simples/index.html" +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Appliquer des découpes simples -slug: Web/API/WebGL_API/By_example/Appliquer_des_découpes_simples -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Basic_scissoring ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Masque_de_couleur","Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL")}}

- -

Dans cet article, on illustre comment dessiner des rectangles et des carrés grâce à des opérations de découpe simple (scissoring).

- -

{{EmbedLiveSample("Appliquer_les_changements_sur_le_buffer_lors_de_la_découpe",660,330)}}

- -

Appliquer les changements sur le buffer lors de la découpe

- -

Voici une démonstration simple des opérations appliquées sur le contexte de rendu avec la méthode {{domxref("WebGLRenderingContext.scissor","scissor")}}.

- -

La commande {{domxref("WebGLRenderingContext.clear","clear()")}} permet de dessiner la couleur d'applique (définie à l'aide de {{domxref("WebGLRenderingContext.clearColor","clearColor()")}}) sur tous les pixels du tampon (buffer) de dessin. La commande  {{domxref("WebGLRenderingContext.scissor","scissor()")}} permet quant à elle de définir un masque qui permet de ne modifier que les pixels contenus dans un rectangle donné.

- -

Cet article représente une excellente occasion pour distinguer les pixels des fragments. Un pixel est un élément d'une image (en pratique c'est un point) sur l'écran ou un élément unique du tampon de dessin (l'espace mémoire qui contient les données relatives aux pixels comme les différentes composantes couleur). Un fragment fait référence au pixel manipulé par les processus {{Glossary("WebGL")}}.

- -

Cette distinction existe car la couleur d'un fragment (et ses autres caractéristiques comme la profondeur) peut être manipulée et modifiée à plusieurs reprises avant d'être écrite à l'écran. On a déjà vu comment la couleur d'un fragment pouvait être modifiée au cours des opérations graphiques en appliquant un {{domxref("WebGLRenderingContext.colorMask()","masque de couleur", "", 1)}}. Il existe d'autres cas où les fragments sont ignorés (le pixel n'est pass mis à jour) ou d'autres où ils interagissent avec la valeur du pixel existant (afin de fusionner les couleurs pour les éléments transparents qui composent une scène).

- -

Ici, on voit une autre distinction entre les fragments et les pixels. La découpe est une étape distincte du processus graphique de  {{Glossary("WebGL")}}/{{Glossary("OpenGL")}} (elle est traitée après l'applique de couleur et avant le masque de couleur). Avant que les pixels réels soient mis à jour, les fragments doivent passer le test de la découpe. S'ils réussissent ce test, ils continuent dans le processus de traitement et les pixels correspondants sont mis à jours. S'ils échouent, le processus rejette les fragments et ils ne sont plus gérés pour les traitements ultérieurs, les pixels correspondants ne seront pas mis à jour. Seuls les fragments appartenant à la zone rectangulaire donnée réussissent le test et seuls les pixels correspondants sont mis à jour. Au final, on obtient un rectangle qui est dessiné à l'écran.

- -

Par défaut, l'étape de découpe est désactivée dans le processus. Ici, on l'active avec la méthode  {{domxref("WebGLRenderingContext.enable","enable()")}} (enable() sera utilisée pour activer de nombreuses autres fonctionnalités liées à WebGL) avec la constante SCISSOR_TEST. Là aussi, on voit l'ordre généralement utilisé pour les commandes {{Glossary("WebGL")}}. Tout d'abord, on modifie l'état de WebGL (ici on active le test de découpe et on crée un masque rectangulaire). Une fois que l'état a bien été modifié, on exécute les commandes de dessin (ici clear()) pour commencer le processus de traitement des fragments.

- -
<p>Le résultat de la découpe.</p>
-<canvas>Il semblerait que votre navigateur
-    ne supporte pas l'élément canvas.</canvas>
-
- -
body {
-  text-align : center;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-
- -
window.addEventListener("load", function setupWebGL (evt) {
-  "use strict"
-  window.removeEventListener(evt.type, setupWebGL, false);
-  var paragraph = document.querySelector("p");
-  var canvas = document.querySelector("canvas");
-
-  // Les deux lignes suivantes définissent la taille,
-  // en pixels CSS, du buffer de dessin qui est la même
-  // que celle du canevas (définie avec CSS).
-  canvas.width = canvas.clientWidth;
-  canvas.height = canvas.clientHeight;
-
-  var gl = canvas.getContext("webgl")
-    || canvas.getContext("experimental-webgl");
-  if (!gl) {
-    paragraph.innerHTML = "Échec de la récupération du "
-      + "contexte WebGL. Votre navigateur pourrait ne pas "
-      + "supporter WebGL.";
-    return;
-  }
-  gl.viewport(0, 0,
-    gl.drawingBufferWidth, gl.drawingBufferHeight);
-
-  // On applique une découpe et on définit la taille de
-  // la zone de découpe.
-  gl.enable(gl.SCISSOR_TEST);
-  gl.scissor(40, 20, 60, 170);
-
-  // On applique un jaune uni dans le contexte de rendu.
-  gl.clearColor(1.0, 1.0, 0.0, 1.0);
-  gl.clear(gl.COLOR_BUFFER_BIT);
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Masque_de_couleur","Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL")}}

diff --git "a/files/fr/web/api/webgl_api/by_example/appliquer_une_couleur_\303\240_la_souris/index.html" "b/files/fr/web/api/webgl_api/by_example/appliquer_une_couleur_\303\240_la_souris/index.html" deleted file mode 100644 index 7ca07c36e6..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/appliquer_une_couleur_\303\240_la_souris/index.html" +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: Appliquer une couleur à la souris -slug: Web/API/WebGL_API/By_example/Appliquer_une_couleur_à_la_souris -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Clearing_by_clicking ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs","Apprendre/WebGL/Par_exemple/Cr%C3%A9er_une_animation_color%C3%A9e")}}

- -

Dans cet article, on voit comment combiner les interactions de l'utilisateur et les opérations graphiques. Plus précisément, dans cet exemple, chaque clic de l'utilisateur déclenchera l'application d'une couleur aléatoire dans le contexte de rendu.

- -

{{EmbedLiveSample("Appliquer_des_couleurs_aléatoires_dans_le_contexte_de_rendu",660,410)}}

- -

Appliquer des couleurs aléatoires dans le contexte de rendu

- -

Cet exemple illustre simplement comment associer WebGL aux interactions utilisateur. Chaque fois que l'utilisateur cliquera sur le canevas ou sur le bouton, une couleur aléatoire sera appliquée sur le contexte de rendu.

- -

Ici, on montre comment on place les appels aux fonctions WebGL dans la fonction qui gère les événements :

- -
<p>Un programme WebGL très simple qui affiche des couleurs
-    suite aux interactions utilisateur.</p>
-<p>Vous pouvez cliquer sur le canevas ou sur le bouton pour
-    modifier la couleur.</p>
-<canvas id="canvas-view">Il semblerait que votre navigateur
-    ne supporte pas l'élément canvas.</canvas>
-<button id="color-switcher">Cliquez ici pour changer la couleur</button>
-
- -
body {
-  text-align : center;
-}
-button {
-  display : inline-block;
-  font-size : inherit;
-  margin : auto;
-  padding : 0.6em;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-
- -
// On exécute tout dans le gestionnaire d'événement
-// correspondant au chargement de la fenêtre. De cette
-// façon, le DOM est complètement chargé et mis en forme
-// avant de le manipuler et d'encombrer la portée globale.
-// On donne un nom au gestionnaire (setupWebGL) afin de
-// pouvoir y faire référence par la suite.
-window.addEventListener("load", function setupWebGL (evt) {
-  "use strict"
-
-  // On fait le ménage : le gestionnaire se supprime lui-
-  // même car il n'a besoin d'être exécuté qu'une fois.
-  window.removeEventListener(evt.type, setupWebGL, false);
-
-  // On ajoute le même gestionnaire de clic sur le canevas
-  // et sur le bouton.
-  var canvas = document.querySelector("#canvas-view");
-  var button = document.querySelector("#color-switcher");
-  canvas.addEventListener("click", switchColor, false);
-  button.addEventListener("click", switchColor, false);
-
-  // On crée une variable qui contiendra WebGLRenderingContext.
-  var gl;
-
-  // La déclaration du gestionnaire d'événement pour le clic.
-  function switchColor () {
-
-    // On utilise la variable gl définie en dehors.
-    // Si elle n'est pas définie, on récupère WebGLRenderingContext.
-    // Si cela échoue, on avertit l'utilisateur. Sinon, on
-    // initialise la zone de dessin (viewport)
-    if (!gl) {
-      gl = canvas.getContext("webgl")
-        || canvas.getContext("experimental-webgl");
-      if (!gl) {
-        alert("Échec de la récupération du \n"
-          + "contexte WebGL. Votre navigateur peut ne pas \n"
-          + " supporter WebGL.");
-        return;
-      }
-      gl.viewport(0, 0,
-        gl.drawingBufferWidth, gl.drawingBufferHeight);
-    }
-
-    // On obtient une couleur aléatoire grâce
-    // à une fonction auxiliaire.
-    var color = getRandomColor();
-
-    // On choisit cette couleur comme couleur à appliquer.
-    gl.clearColor(color[0], color[1], color[2], 1.0);
-
-    // On applique la nouvelle couleur dans le contexte.
-    // C'est cette fonction qui effectue « réellement »
-    // le dessin sur la zone.
-    gl.clear(gl.COLOR_BUFFER_BIT);
-  }
-
-  // Une fonction auxiliaire pour créer une couleur aléatoire.
-  function getRandomColor() {
-    return [Math.random(), Math.random(), Math.random()];
-  }
-
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -
{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs","Apprendre/WebGL/Par_exemple/Cr%C3%A9er_une_animation_color%C3%A9e")}}
diff --git a/files/fr/web/api/webgl_api/by_example/basic_scissoring/index.html b/files/fr/web/api/webgl_api/by_example/basic_scissoring/index.html new file mode 100644 index 0000000000..3995861e83 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/basic_scissoring/index.html @@ -0,0 +1,90 @@ +--- +title: Appliquer des découpes simples +slug: Web/API/WebGL_API/By_example/Appliquer_des_découpes_simples +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Basic_scissoring +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Masque_de_couleur","Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL")}}

+ +

Dans cet article, on illustre comment dessiner des rectangles et des carrés grâce à des opérations de découpe simple (scissoring).

+ +

{{EmbedLiveSample("Appliquer_les_changements_sur_le_buffer_lors_de_la_découpe",660,330)}}

+ +

Appliquer les changements sur le buffer lors de la découpe

+ +

Voici une démonstration simple des opérations appliquées sur le contexte de rendu avec la méthode {{domxref("WebGLRenderingContext.scissor","scissor")}}.

+ +

La commande {{domxref("WebGLRenderingContext.clear","clear()")}} permet de dessiner la couleur d'applique (définie à l'aide de {{domxref("WebGLRenderingContext.clearColor","clearColor()")}}) sur tous les pixels du tampon (buffer) de dessin. La commande  {{domxref("WebGLRenderingContext.scissor","scissor()")}} permet quant à elle de définir un masque qui permet de ne modifier que les pixels contenus dans un rectangle donné.

+ +

Cet article représente une excellente occasion pour distinguer les pixels des fragments. Un pixel est un élément d'une image (en pratique c'est un point) sur l'écran ou un élément unique du tampon de dessin (l'espace mémoire qui contient les données relatives aux pixels comme les différentes composantes couleur). Un fragment fait référence au pixel manipulé par les processus {{Glossary("WebGL")}}.

+ +

Cette distinction existe car la couleur d'un fragment (et ses autres caractéristiques comme la profondeur) peut être manipulée et modifiée à plusieurs reprises avant d'être écrite à l'écran. On a déjà vu comment la couleur d'un fragment pouvait être modifiée au cours des opérations graphiques en appliquant un {{domxref("WebGLRenderingContext.colorMask()","masque de couleur", "", 1)}}. Il existe d'autres cas où les fragments sont ignorés (le pixel n'est pass mis à jour) ou d'autres où ils interagissent avec la valeur du pixel existant (afin de fusionner les couleurs pour les éléments transparents qui composent une scène).

+ +

Ici, on voit une autre distinction entre les fragments et les pixels. La découpe est une étape distincte du processus graphique de  {{Glossary("WebGL")}}/{{Glossary("OpenGL")}} (elle est traitée après l'applique de couleur et avant le masque de couleur). Avant que les pixels réels soient mis à jour, les fragments doivent passer le test de la découpe. S'ils réussissent ce test, ils continuent dans le processus de traitement et les pixels correspondants sont mis à jours. S'ils échouent, le processus rejette les fragments et ils ne sont plus gérés pour les traitements ultérieurs, les pixels correspondants ne seront pas mis à jour. Seuls les fragments appartenant à la zone rectangulaire donnée réussissent le test et seuls les pixels correspondants sont mis à jour. Au final, on obtient un rectangle qui est dessiné à l'écran.

+ +

Par défaut, l'étape de découpe est désactivée dans le processus. Ici, on l'active avec la méthode  {{domxref("WebGLRenderingContext.enable","enable()")}} (enable() sera utilisée pour activer de nombreuses autres fonctionnalités liées à WebGL) avec la constante SCISSOR_TEST. Là aussi, on voit l'ordre généralement utilisé pour les commandes {{Glossary("WebGL")}}. Tout d'abord, on modifie l'état de WebGL (ici on active le test de découpe et on crée un masque rectangulaire). Une fois que l'état a bien été modifié, on exécute les commandes de dessin (ici clear()) pour commencer le processus de traitement des fragments.

+ +
<p>Le résultat de la découpe.</p>
+<canvas>Il semblerait que votre navigateur
+    ne supporte pas l'élément canvas.</canvas>
+
+ +
body {
+  text-align : center;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+
+ +
window.addEventListener("load", function setupWebGL (evt) {
+  "use strict"
+  window.removeEventListener(evt.type, setupWebGL, false);
+  var paragraph = document.querySelector("p");
+  var canvas = document.querySelector("canvas");
+
+  // Les deux lignes suivantes définissent la taille,
+  // en pixels CSS, du buffer de dessin qui est la même
+  // que celle du canevas (définie avec CSS).
+  canvas.width = canvas.clientWidth;
+  canvas.height = canvas.clientHeight;
+
+  var gl = canvas.getContext("webgl")
+    || canvas.getContext("experimental-webgl");
+  if (!gl) {
+    paragraph.innerHTML = "Échec de la récupération du "
+      + "contexte WebGL. Votre navigateur pourrait ne pas "
+      + "supporter WebGL.";
+    return;
+  }
+  gl.viewport(0, 0,
+    gl.drawingBufferWidth, gl.drawingBufferHeight);
+
+  // On applique une découpe et on définit la taille de
+  // la zone de découpe.
+  gl.enable(gl.SCISSOR_TEST);
+  gl.scissor(40, 20, 60, 170);
+
+  // On applique un jaune uni dans le contexte de rendu.
+  gl.clearColor(1.0, 1.0, 0.0, 1.0);
+  gl.clear(gl.COLOR_BUFFER_BIT);
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Masque_de_couleur","Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/by_example/boilerplate_1/index.html b/files/fr/web/api/webgl_api/by_example/boilerplate_1/index.html new file mode 100644 index 0000000000..a055a358c8 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/boilerplate_1/index.html @@ -0,0 +1,97 @@ +--- +title: Modèle 1 +slug: Web/API/WebGL_API/By_example/Modèle_1 +tags: + - Apprendre + - Débutant + - Exemple + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Boilerplate_1 +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL","Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique")}}

+ +

Dans cet article, on décrit les fragments de code qui seront réutilisés pour les exemples suivants (où ils seront masqués pour une meilleur lisibilité). Parmi ce code, on définit une fonction JavaScript utilitaire qui permet de simplifier l'initialisation de WebGL.

+ +

{{EmbedLiveSample("Socle_pour_l'initialisation_du_contexte_WebGL",660,400)}}

+ +

Socle pour l'initialisation du contexte WebGL

+ +

Nous avons vu plusieurs fois les mêmes morceaux de {{Glossary("HTML")}}, {{Glossary("CSS")}} et {{Glossary("JavaScript")}}. Nous allons donc les cacher par la suite afin de mieux nous concentrer sur les parties du code qui sont pertinentes pour l'apprentissage de {{Glossary("WebGL")}}.

+ +

Plus précisément, le code HTML contiendra

+ + + +

Les règles CSS s'appliqueront aux éléments body, canvas et button. Les éléments supplémentaires pour le code CSS et HTML seront détaillés dans les pages des exemples concernés.

+ +

Dans les exemples suivants, on utilisera la fonction utilitaire JavaScript getRenderingContext pour initialiser {{domxref("WebGLRenderingContext","le contexte de rendu WebGL", "", 1)}}. Grâce aux exemples précédents, vous devriez pouvoir comprendre le rôle de cette fonction. Pour résumer, celle-ci

+ + + +

S'il y a une erreur, la fonction affiche un message d'erreur et renvoie null.

+ +

Enfin, tout le code JavaScript est exécuté par une fonction immédiatement appelée (une technique plutôt commune avec JavaScript). La déclaration de la fonction et son invocation seront cachées.

+ +
<p>[ Un texte qui décrit l'exemple. ]</p>
+<button>[ Un bouton optionnel pour les interactions. ]</button>
+<canvas>Il semblerait que votre navigateur ne supporte
+    pas le canevas HTML5.</canvas>
+
+ +
body {
+  text-align : center;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+button {
+  display : block;
+  font-size : inherit;
+  margin : auto;
+  padding : 0.6em;
+}
+
+ +
function getRenderingContext() {
+  var canvas = document.querySelector("canvas");
+  canvas.width = canvas.clientWidth;
+  canvas.height = canvas.clientHeight;
+  var gl = canvas.getContext("webgl")
+    || canvas.getContext("experimental-webgl");
+  if (!gl) {
+    var paragraph = document.querySelector("p");
+    paragraph.innerHTML = "Échec de l'obtention du "
+      + "contexte WebGL."
+      + "Votre navigateur ou appareil ne supporte "
+      + "peut-être pas WebGL.";
+    return null;
+  }
+  gl.viewport(0, 0,
+    gl.drawingBufferWidth, gl.drawingBufferHeight);
+  gl.clearColor(0.0, 0.0, 0.0, 1.0);
+  gl.clear(gl.COLOR_BUFFER_BIT);
+  return gl;
+}
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL","Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique")}}

diff --git a/files/fr/web/api/webgl_api/by_example/canvas_size_and_webgl/index.html b/files/fr/web/api/webgl_api/by_example/canvas_size_and_webgl/index.html new file mode 100644 index 0000000000..086e0394a7 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/canvas_size_and_webgl/index.html @@ -0,0 +1,82 @@ +--- +title: Tailles de canvas et WebGL +slug: Web/API/WebGL_API/By_example/Tailles_de_canvas_et_WebGL +tags: + - Apprendre + - Débutant + - Exemple + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Canvas_size_and_WebGL +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples","Apprendre/WebGL/Par_exemple/Modèle_1")}}

+ +

{{EmbedLiveSample("Les_effets_liés_à_la_taille_du_canevas_sur_le_rendu_avec_WebGL",660,180)}}

+ +

Dans cet exemple, on observe l'effet obtenu quand on définit (ou non) la taille du canevas HTML avec sa taille {{Glossary("CSS")}} (exprimée en pixels CSS), tel qu'il apparaît dans la fenêtre du navigateur.

+ +

Les effets liés à la taille du canevas sur le rendu avec WebGL

+ +

Grâce aux méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}} on peut démontrer que le tampon (buffer) de dessin WebGL est affecté par la taille du canevas (l'élément HTML canvas).

+ +

La taille du premier canevas est définie avec la taille de l'élément, mis en forme, qui est déterminée par {{Glossary("CSS")}}. Pour cela, on affecte respectivement les valeurs {{domxref("Element.clientWidth","clientWidth")}} and {{domxref("Element.clientHeight","clientHeight")}} aux propriétés {{domxref("HTMLCanvasElement.width","width")}} et {{domxref("HTMLCanvasElement.height","height")}}.

+ +

Pour le deuxième canevas, on n'applique pas ce traitement, c'est donc les dimensions internes du canevas : {{domxref("HTMLCanvasElement.width","width")}} et {{domxref("HTMLCanvasElement.height","height")}} qui sont prises en compte. Celles-ci sont différentes des dimensions de l'élément canvas affiché dans le fenêtre du navigateur.

+ +

L'effet devient visible quand on utilise les méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}} pour dessiner un carré au centre du canevas en définissant sa position et sa taille en pixels. Dans le premier canevas, on obtient bien le bon résultat et dans le deuxième, on a la mauvaise forme, la mauvaise taille et la mauvaise position.

+ +
<p>On compare les deux canevas.</p>
+<canvas>Votre navigateur ne semble pas
+    supporter l'élément HTML5 canvas.</canvas>
+<canvas>Votre navigateur ne semble pas
+    supporter l'élément HTML5 canvas.</canvas>
+
+ +
body {
+  text-align : center;
+}
+canvas {
+  width : 120px;
+  height : 80px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+
+ +
window.addEventListener("load", function() {
+  "use strict"
+  var firstCanvas = document.getElementsByTagName("canvas")[0],
+    secondCanvas = document.getElementsByTagName("canvas")[1];
+
+  // Ici on applique le traitement spécifique au premier
+  // canevas
+  firstCanvas.width = firstCanvas.clientWidth;
+  firstCanvas.height = firstCanvas.clientHeight;
+
+  // Ensuite on traite les deux canevas de la même façon
+  [firstCanvas, secondCanvas].forEach(function(canvas) {
+    var gl = canvas.getContext("webgl")
+      || canvas.getContext("experimental-webgl");
+    if (!gl) {
+      document.querySelector("p").innerHTML =
+        "Échec de l'obtention du contexte WebGL. "
+        + "Votre navigateur peut ne pas supporter WebGL.";
+      return;
+    }
+    gl.viewport(0, 0,
+      gl.drawingBufferWidth, gl.drawingBufferHeight);
+    gl.enable(gl.SCISSOR_TEST);
+    gl.scissor(30, 10, 60, 60);
+    gl.clearColor(1.0, 1.0, 0.0, 1.0);
+    gl.clear(gl.COLOR_BUFFER_BIT);
+  });
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples","Apprendre/WebGL/Par_exemple/Modèle_1")}}

diff --git a/files/fr/web/api/webgl_api/by_example/clearing_by_clicking/index.html b/files/fr/web/api/webgl_api/by_example/clearing_by_clicking/index.html new file mode 100644 index 0000000000..7ca07c36e6 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/clearing_by_clicking/index.html @@ -0,0 +1,122 @@ +--- +title: Appliquer une couleur à la souris +slug: Web/API/WebGL_API/By_example/Appliquer_une_couleur_à_la_souris +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Clearing_by_clicking +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs","Apprendre/WebGL/Par_exemple/Cr%C3%A9er_une_animation_color%C3%A9e")}}

+ +

Dans cet article, on voit comment combiner les interactions de l'utilisateur et les opérations graphiques. Plus précisément, dans cet exemple, chaque clic de l'utilisateur déclenchera l'application d'une couleur aléatoire dans le contexte de rendu.

+ +

{{EmbedLiveSample("Appliquer_des_couleurs_aléatoires_dans_le_contexte_de_rendu",660,410)}}

+ +

Appliquer des couleurs aléatoires dans le contexte de rendu

+ +

Cet exemple illustre simplement comment associer WebGL aux interactions utilisateur. Chaque fois que l'utilisateur cliquera sur le canevas ou sur le bouton, une couleur aléatoire sera appliquée sur le contexte de rendu.

+ +

Ici, on montre comment on place les appels aux fonctions WebGL dans la fonction qui gère les événements :

+ +
<p>Un programme WebGL très simple qui affiche des couleurs
+    suite aux interactions utilisateur.</p>
+<p>Vous pouvez cliquer sur le canevas ou sur le bouton pour
+    modifier la couleur.</p>
+<canvas id="canvas-view">Il semblerait que votre navigateur
+    ne supporte pas l'élément canvas.</canvas>
+<button id="color-switcher">Cliquez ici pour changer la couleur</button>
+
+ +
body {
+  text-align : center;
+}
+button {
+  display : inline-block;
+  font-size : inherit;
+  margin : auto;
+  padding : 0.6em;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+
+ +
// On exécute tout dans le gestionnaire d'événement
+// correspondant au chargement de la fenêtre. De cette
+// façon, le DOM est complètement chargé et mis en forme
+// avant de le manipuler et d'encombrer la portée globale.
+// On donne un nom au gestionnaire (setupWebGL) afin de
+// pouvoir y faire référence par la suite.
+window.addEventListener("load", function setupWebGL (evt) {
+  "use strict"
+
+  // On fait le ménage : le gestionnaire se supprime lui-
+  // même car il n'a besoin d'être exécuté qu'une fois.
+  window.removeEventListener(evt.type, setupWebGL, false);
+
+  // On ajoute le même gestionnaire de clic sur le canevas
+  // et sur le bouton.
+  var canvas = document.querySelector("#canvas-view");
+  var button = document.querySelector("#color-switcher");
+  canvas.addEventListener("click", switchColor, false);
+  button.addEventListener("click", switchColor, false);
+
+  // On crée une variable qui contiendra WebGLRenderingContext.
+  var gl;
+
+  // La déclaration du gestionnaire d'événement pour le clic.
+  function switchColor () {
+
+    // On utilise la variable gl définie en dehors.
+    // Si elle n'est pas définie, on récupère WebGLRenderingContext.
+    // Si cela échoue, on avertit l'utilisateur. Sinon, on
+    // initialise la zone de dessin (viewport)
+    if (!gl) {
+      gl = canvas.getContext("webgl")
+        || canvas.getContext("experimental-webgl");
+      if (!gl) {
+        alert("Échec de la récupération du \n"
+          + "contexte WebGL. Votre navigateur peut ne pas \n"
+          + " supporter WebGL.");
+        return;
+      }
+      gl.viewport(0, 0,
+        gl.drawingBufferWidth, gl.drawingBufferHeight);
+    }
+
+    // On obtient une couleur aléatoire grâce
+    // à une fonction auxiliaire.
+    var color = getRandomColor();
+
+    // On choisit cette couleur comme couleur à appliquer.
+    gl.clearColor(color[0], color[1], color[2], 1.0);
+
+    // On applique la nouvelle couleur dans le contexte.
+    // C'est cette fonction qui effectue « réellement »
+    // le dessin sur la zone.
+    gl.clear(gl.COLOR_BUFFER_BIT);
+  }
+
+  // Une fonction auxiliaire pour créer une couleur aléatoire.
+  function getRandomColor() {
+    return [Math.random(), Math.random(), Math.random()];
+  }
+
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +
{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs","Apprendre/WebGL/Par_exemple/Cr%C3%A9er_une_animation_color%C3%A9e")}}
diff --git a/files/fr/web/api/webgl_api/by_example/clearing_with_colors/index.html b/files/fr/web/api/webgl_api/by_example/clearing_with_colors/index.html new file mode 100644 index 0000000000..1d8db41a20 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/clearing_with_colors/index.html @@ -0,0 +1,100 @@ +--- +title: Appliquer des couleurs +slug: Web/API/WebGL_API/By_example/Appliquer_des_couleurs +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Clearing_with_colors +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Détecter_WebGL","Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_%C3%A0_la_souris")}}

+ +

Dans cet article, on voit comment appliquer une couleur unie dans le contexte de rendu.

+ +

{{EmbedLiveSample("Appliquer_une_couleur_unie_dans_le_contexte_WebGL",660,300)}}

+ +

Appliquer une couleur unie dans le contexte WebGL

+ +

Voici l'application la plus simple de {{Glossary("WebGL")}} : appliquer un vert uni dans le {{domxref("WebGLRenderingContext","contexte de rendu")}}. On notera que la feuille de style {{Glossary("CSS")}} définit l'arrière-plan comme étant noir. Ainsi, quand le canevas s'affiche en vert, on sait que {{Glossary("WebGL")}} a fonctionné comme il fallait.

+ +

Par ailleurs, vous pouvez remarquer que, pour appliquer une couleur unie sur le tampon (buffer) de dessin, on utilise deux étapes. Tout d'abord, on applique la couleur verte grâce à la méthode {{domxref("WebGLRenderingContext.clearColor()","clearColor()")}}. Cette opération ne modifie que l'état interne de {{Glossary("WebGL")}}, rien n'est peint/affiché pour le moment. Ensuite, on dessine « réellement » avec la méthode {{domxref("WebGLRenderingContext.clear()","clear()")}}. C'est la méthode classique pour dessiner avec WebGL. Il y a seulement quelques méthodes qui « dessinent » (dont clear()), toutes les autres méthodes permettent d'obtenir ou de modifier les variables liées aux états de WebGL (dont la couleur à appliquer).

+ +

Il existe de nombreuses options pour modifier les états {{Glossary("WebGL")}}. La couleur à appliquer en est une parmi d'autres.{{Glossary("WebGL")}}/{{Glossary("OpenGL")}} est souvent qualifié d'automate à états. En fait, lorsque vous manipulez ces variables internes, ces « interrupteurs », vous modifiez l'état interne de WebGL, qui modifie à son tour la façon dont la sortie est retranscrite (dans cet exemple, cela correspond à l'étape où les pixels sont passés en vert).

+ +

Enfin, vous pouvez voir que les couleurs manipulées en WebGL sont décrites avec le format {{Glossary("RGBA")}}. Ce format décrit quatre composantes numériques pour les intensités respectives des tons rouge (R), vert (green G), bleu (B) et alpha (qui correspond à l'opacité). C'est pour ça que clearColor() prend quatre arguments.

+ +
<p>Un programme WebGL très simple qui affiche une couleur.</p>
+<!-- Le texte d'un élément canvas est affiché uniquement
+    si canvas n'est pas supporté. -->
+<canvas>Il semblerait que votre navigateur ne supporte pas
+    le canevas HTML5</canvas>
+
+ +
body {
+  text-align : center;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+
+ +
// On exécute tout dans le gestionnaire d'événement
+// correspondant au chargement de la fenêtre. De cette
+// façon, le DOM est complètement chargé et mis en forme
+// avant de le manipuler et d'encombrer la portée globale.
+// On donne un nom au gestionnaire (setupWebGL) afin de
+// pouvoir y faire référence par la suite.
+window.addEventListener("load", function setupWebGL (evt) {
+  "use strict"
+
+  // On fait le ménage : le gestionnaire se supprime lui-
+  // même car il n'a besoin d'être exécuté qu'une fois.
+  window.removeEventListener(evt.type, setupWebGL, false);
+
+  // On fait référence aux éléments du document.
+  var paragraph = document.querySelector("p"),
+    canvas = document.querySelector("canvas");
+
+  // On récupère le contexte de rendu WebGL.
+  var gl = canvas.getContext("webgl")
+    || canvas.getContext("experimental-webgl");
+
+  // Si cela échoue, on informe l'utilisateur.
+  // Sinon, on initialise la zone de dessin et on
+  // applique une couleur dans le contexte.
+  if (!gl) {
+    paragraph.innerHTML = "Échec de la récupération du "
+      + "contexte WebGL. Votre navigateur peut ne pas "
+      + " supporter WebGL.";
+    return;
+  }
+  paragraph.innerHTML =
+    "Félicitations, votre navigateur supporte WebGL. ";
+  gl.viewport(0, 0,
+    gl.drawingBufferWidth, gl.drawingBufferHeight);
+
+  // On définit la couleur qu'on veut appliquer
+  // (ici un vert foncé).
+  gl.clearColor(0.0, 0.5, 0.0, 1.0);
+
+  // Enfin, on applique la couleur dans le contexte. C'est
+  // cette fonction qui « dessine » réellement quelque chose.
+  gl.clear(gl.COLOR_BUFFER_BIT);
+
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +
{{PreviousNext("Apprendre/WebGL/Par_exemple/Détecter_WebGL","Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_%C3%A0_la_souris")}}
diff --git a/files/fr/web/api/webgl_api/by_example/color_masking/index.html b/files/fr/web/api/webgl_api/by_example/color_masking/index.html new file mode 100644 index 0000000000..ad5e0dd461 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/color_masking/index.html @@ -0,0 +1,136 @@ +--- +title: Masque de couleur +slug: Web/API/WebGL_API/By_example/Masque_de_couleur +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Color_masking +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée","Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples")}}

+ +
+
+

Dans cet article, on modifie des couleurs aléatoires grâce à un masque de couleur. Cela permet de limiter la plage de couleurs affichées à certains tons.

+
+ +

{{EmbedLiveSample("color-masking-source",660,425)}}

+ +
+

Appliquer un masque sur des couleurs aléatoires

+ +

Dans cet exemple, on modifie les couleurs aléatoires utilisées pour une animation grâce à l'opération {{domxref("WebGLRenderingContext.colorMask()","colorMask()")}}. D'une certaine façon, cette opération est analogue à la modification qu'on obtient lorsqu'on regarde à travers du verre teinté ou derrière une filtre coloré. Ainsi, en masquant les canaux vert et bleu, on ne pourra recevoir que les composantes rouges des pixels et cela donnera l'impression de regarder à travers du verre teinté de rouge.

+ +

Les masques de couleur nous permettent d'illustrer quelques concepts de base de la théorie des couleurs. En masquant certaines composantes, on rapproche les couleurs affichées de la couleur complémentaire. Ainsi, en masquant le bleu et le rouge, on obtiendrait des tons de vert. En masquant uniquement le canal bleu, on obtiendra des tons de jaune (dont orange, marron, olive, etc.) qui est la couleur complémentaire du bleu. De la même façon, en masquant uniquement le vert, on obtiendrait des tons magenta (pourpres, rouges, etc.) et en masquant uniquement le rouge, on obtiendrait des tons cyan.

+ +

On voit que les appels à colorMask() sont uniquement déclenchés lorsque l'utilisateur clique sur l'un des boutons. En revanche, le rendu est fait chaque seconde grâce au timer. L'état du masque de couleur lié à {{Glossary("WebGL")}} est conservé et il n'est donc pas nécessaire d'appeler colorMask() à chaque frame pour régler le masque. Cela illustre la manière dont WebGL est un automate a état. Dans un premier temps, on initialise l'état de WebGL et ensuite, à chaque frame, on déclenche uniquement les opérations de dessin.

+ +

Les masques de couleurs permettent d'avoir un contrôle précis pour mettre à jour les pixels à l'écran. En limitant les canaux de couleur qui sont utilisés à chaque commande de dessin, on peut utiliser chaque canal à bon escient et on peut par exemple stocler une image en ton de gris.

+ +

Enfin, l'application d'un masque de couleur nous montre que {{Glossary("WebGL")}} n'est pas seulement un automate à états mais aussi un processus graphique. Cela signifie que les opérations graphiques liées à WebGL sont effectuées dans un ordre donné et que le résultat de chaque opération sert de point d'entrée pour l'opération suivante. Ainsi, l'opération d'applique définit la valeur pour chaque pixel. L'application du masque se produit plus tard dans le processus et modifie la couleur. Ainsi, le résultat final affiché à l'écran est teinté par la couleur du masque.

+
+ +
+
<p>Tinting the displayed colors with color masking.</p>
+<canvas>Il semblerait que votre navigateur ne supporte pas
+    l'élément HTML5 canvas.</canvas>
+<button id="red-toggle">On</button>
+<button id="green-toggle">On</button>
+<button id="blue-toggle">On</button>
+
+ +
body {
+  text-align : center;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+button {
+  display : inline-block;
+  font-family : serif;
+  font-size : inherit;
+  font-weight : 900;
+  color : white;
+  margin : auto;
+  padding : 0.6em 1.2em;
+}
+#red-toggle {
+  background-color : red;
+}
+#green-toggle {
+  background-color : green;
+}
+#blue-toggle {
+  background-color : blue;
+}
+
+ +
window.addEventListener("load", function setupAnimation (evt) {
+  "use strict"
+  window.removeEventListener(evt.type, setupAnimation, false);
+
+  var canvas = document.querySelector("canvas");
+  var gl = canvas.getContext("webgl")
+      || canvas.getContext("experimental-webgl");
+  if (!gl) {
+    document.querySelector("p").innerHTML =
+      "Échec lors de l'obtention du contexte WebGL."
+      + "Votre navigateur ou appareil ne supporte "
+      + "peut-être pas WebGL.";
+    return;
+  }
+  gl.viewport(0, 0,
+    gl.drawingBufferWidth, gl.drawingBufferHeight);
+
+  var timer = setInterval(drawAnimation, 1000);
+
+  var mask = [true, true, true];
+  var redtoggle = document.querySelector("#red-toggle"),
+    greentoggle = document.querySelector("#green-toggle"),
+    bluetoggle = document.querySelector("#blue-toggle");
+  redtoggle.addEventListener("click", setColorMask, false);
+  greentoggle.addEventListener("click", setColorMask, false);
+  bluetoggle.addEventListener("click", setColorMask, false);
+
+  function setColorMask(evt) {
+    var index =
+      evt.target === greentoggle && 1
+      || evt.target === bluetoggle && 2
+      || 0;
+    mask[index] = !mask[index];
+    if (mask[index] === true)
+      evt.target.innerHTML="On";
+    else
+      evt.target.innerHTML="Off";
+    gl.colorMask(mask[0], mask[1], mask[2], true);
+    drawAnimation();
+  };
+
+  function drawAnimation () {
+    var color = getRandomColor();
+    gl.clearColor(color[0], color[1], color[2], 1.0);
+    gl.clear(gl.COLOR_BUFFER_BIT);
+  }
+
+  function getRandomColor() {
+    return [Math.random(), Math.random(), Math.random()];
+  }
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+
+
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée","Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples")}}

diff --git "a/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_avec_d\303\251coupe_et_applique/index.html" "b/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_avec_d\303\251coupe_et_applique/index.html" deleted file mode 100644 index 8eb25287ab..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_avec_d\303\251coupe_et_applique/index.html" +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: Créer une animation avec découpe et applique -slug: Web/API/WebGL_API/By_example/Créer_une_animation_avec_découpe_et_applique -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Scissor_animation ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Modèle_1","Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle")}}

- -

Dans cet article, on voit comment créer des animations grâce à des opérations de découpe et d'applique.

- -

{{EmbedLiveSample("Une_animation_grâce_à_des_découpes",660,425)}}

- -

Une animation grâce à des découpes

- -

Dans cet exemple, on anime des carrés grâce aux méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}}. Ensuite, on crée à nouveau une boucle d'animation grâce aux timers. Cette fois-ci, la position du carré (la zone de découpe) est mise à jour à chaque frame (on a environ une frame rafraîchie toutes les 17 millisecondes, ce qui correspond environ à 60fps (frame per second ou frame par seconde).

- -

En revanche, la couleur du carré (définie avec {{domxref("WebGLRenderingContext.clearColor()","clearColor")}}) est uniquement mise à jour lorsqu'un nouveau carré est créé. On voit ici que {{Glossary("WebGL")}} est un automate. Pour chaque carré, on définit sa couleur une fois puis on met à jour sa position à chaque frame. L'état lié à la couleur reste tel quel jusqu'à ce qu'un nouveau carré soit créé.

- - - - - - - -
"use strict"
-window.addEventListener("load", setupAnimation, false);
-// Voici les variables qui permettront de
-// manipuler le contexte WebGL, la couleur
-// et la position des carrés.
-var gl,
-  color = getRandomColor(),
-  position;
-
-function setupAnimation (evt) {
-  window.removeEventListener(evt.type, setupAnimation, false);
-  if (!(gl = getRenderingContext()))
-    return;
-
-  gl.enable(gl.SCISSOR_TEST);
-  gl.clearColor(color[0], color[1], color[2], 1.0);
-
-  // À la différence de la fenêtre du navigateur,
-  // l'axe vertical de WebGL va dans le sens croissant
-  // du bas vers le haut. Dans cette position, on indique
-  // que la position initiale du carré est en haut à gauche
-  // du contexte de dessin
-  position = [0, gl.drawingBufferHeight];
-
-  var button = document.querySelector("button");
-  var timer;
-  function startAnimation(evt) {
-    button.removeEventListener(evt.type, startAnimation, false);
-    button.addEventListener("click", stopAnimation, false);
-    document.querySelector("strong").innerHTML = "arrêter";
-    timer = setInterval(drawAnimation, 17);
-    drawAnimation();
-  }
-  function stopAnimation(evt) {
-    button.removeEventListener(evt.type, stopAnimation, false);
-    button.addEventListener("click", startAnimation, false);
-    document.querySelector("strong").innerHTML = "lancer";
-    clearInterval(timer);
-  }
-  stopAnimation({type: "click"});
-}
-
-// Les variables qui permettront de stocker la taille
-// et la vitesse du carré.
-var size = [60, 60],
-  velocity = 3.0;
-function drawAnimation () {
-  gl.scissor(position[0], position[1], size[0] , size[1]);
-  gl.clear(gl.COLOR_BUFFER_BIT);
-  // À chaque frame, on définit une position plus basse
-  // pour le carré, c'est cela qui crée une illusion
-  // de mouvement.
-  position[1] -= velocity;
-  // Lorsque le carré atteint le bas, on crée un nouveau
-  // carré avec une nouvelle vitesse et une nouvelle
-  // couleur.
-  if (position[1] < 0) {
-    // La position horizontale est choisie aléatoirement.
-    // La position verticale correspond au haut
-    // du buffer de dessin.
-    position = [
-      Math.random()*(gl.drawingBufferWidth - size[0]),
-      gl.drawingBufferHeight
-    ];
-    // Ici on détermine une vitesse aléatoire
-    // comprise entre 1.0 et 7.0
-    velocity = 1.0 + 6.0*Math.random();
-    color = getRandomColor();
-    gl.clearColor(color[0], color[1], color[2], 1.0);
-  }
-}
-
-function getRandomColor() {
-  return [Math.random(), Math.random(), Math.random()];
-}
-
- - - - - -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Modèle_1","Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle")}}

diff --git "a/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_color\303\251e/index.html" "b/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_color\303\251e/index.html" deleted file mode 100644 index a38d174808..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/cr\303\251er_une_animation_color\303\251e/index.html" +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Créer une animation colorée -slug: Web/API/WebGL_API/By_example/Créer_une_animation_colorée -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Simple_color_animation ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris","Apprendre/WebGL/Par_exemple/Masque_de_couleur")}}

- -

Dans cet exemple, on crée une animation avec des couleurs en appliquant chaque seconde une couleur aléatoire dans le contexte de rendu {{Glossary("WebGL")}}.

- -

{{EmbedLiveSample("Créer_une_animation_avec_clear",660,425)}}

- -

Créer une animation avec clear

- -

Cet exemple illustre comment lancer une animation avec WebGL et gérer les interactions de l'utilisateur. L'utilisateur peut lancer, arrêter et reprendre l'animation en cliquant sur le bouton.

- -

Cette fois, on place les appels à la fonction WebGL à l'intérieur d'un gestionnaire d'événement de timer. Un gestionnaire d'événements pour les clics permet de gérer les interactions simples (lancer et arrêter l'animation). Le timer et la fonction de gestion du timer créent une boucle d'animation qui permet d'exécuter un ensemble de commandes pour le dessin à des intervalles réguliers (généralement, pour chaque frame, dans ce cas, on a une fréquence d'une frame par seconde).

- -
<p>Un programme WebGL simple qui crée une animation colorée.</p>
-<p>Vous pouvez sur le bouton pour activer/désactiver l'animation.</p>
-<canvas id="canvas-view">Il semblerait que votre navigateur ne
-    supporte pas l'élément canvas.</canvas>
-<button id="animation-onoff">
-  Cliquez ici pour
-<strong>[le verbe de l'action]</strong>
-  l'animation
-</button>
-
- -
body {
-  text-align : center;
-}
-button {
-  display : inline-block;
-  font-size : inherit;
-  margin : auto;
-  padding : 0.6em;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-
- -
window.addEventListener("load", function setupAnimation (evt) {
-  "use strict"
-  window.removeEventListener(evt.type, setupAnimation, false);
-
-  // Une variable pour gérer le timer qui contrôle
-  // l'animation.
-  var timer;
-
-  // On ajoute un gestionnaire d'événement pour le clic.
-  var button = document.querySelector("#animation-onoff");
-  var verb = document.querySelector("strong");
-  function startAnimation(evt) {
-    button.removeEventListener(evt.type, startAnimation, false);
-    button.addEventListener("click", stopAnimation, false);
-    verb.innerHTML="arrêter";
-
-    // On place une boucle d'animation : on repeint
-    // environ chaque seconde.
-    timer = setInterval(drawAnimation, 1000);
-
-    // On dessine une frame d'animation afin de
-    // fournir un feedback à l'utilisateur.
-    drawAnimation();
-  }
-
-  function stopAnimation(evt) {
-    button.removeEventListener(evt.type, stopAnimation, false);
-    button.addEventListener("click", startAnimation, false);
-    verb.innerHTML="lancer";
-    // On arrête l'animation en réinitialisant le timer.
-    clearInterval(timer);
-  }
-
-  // On appelle stopAnimation() une fois pour mettre en place
-  // les gestionnaires d'événement pour le canevas et le bouton.
-  stopAnimation({type: "click"});
-
-  var gl;
-  function drawAnimation () {
-    if (!gl) {
-      var canvas = document.getElementById("canvas-view");
-      gl = canvas.getContext("webgl")
-        ||canvas.getContext("experimental-webgl");
-      if (!gl) {
-
-        // On ne veut pas avoir plusieurs messages d'alerte
-        // donc on arrête l'animation en réinitialisant le
-        // timer.
-        clearInterval(timer);
-        alert("Échec du chargement du contexte WebGL.\n"
-          + "Votre navigateur peut ne pas supporter WebGL.");
-        return;
-
-      }
-      gl.viewport(0, 0,
-        gl.drawingBufferWidth, gl.drawingBufferHeight);
-    }
-
-    // On génère une couleur aléatoire avec une fonction
-    // auxiliaire.
-    var color = getRandomColor();
-
-    // On applique la couleur obtenue dans le
-    // contexte WebGLRenderingContext
-    gl.clearColor(color[0], color[1], color[2], 1.0);
-
-    // On propage le changement dans le contexte
-    // avec la méthode clear.
-    gl.clear(gl.COLOR_BUFFER_BIT);
-  }
-
-  // Une fonction auxiliaire qui fournit une
-  // couleur aléatoire.
-  function getRandomColor() {
-    return [Math.random(), Math.random(), Math.random()];
-  }
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris","Apprendre/WebGL/Par_exemple/Masque_de_couleur")}}

diff --git a/files/fr/web/api/webgl_api/by_example/detect_webgl/index.html b/files/fr/web/api/webgl_api/by_example/detect_webgl/index.html new file mode 100644 index 0000000000..fec1fd88a0 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/detect_webgl/index.html @@ -0,0 +1,79 @@ +--- +title: Détecter WebGL +slug: Web/API/WebGL_API/By_example/Détecter_WebGL +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Detect_WebGL +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +
{{PreviousNext("Apprendre/WebGL/Par_exemple","Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs")}}
+ +

Dans cet exemple, on voit comment détecter un contexte de rendu {{Glossary("WebGL")}} et afficher le résultat à l'utilisateur.

+ +

{{EmbedLiveSample("Détecter_le_support_WebGL",660,150)}}

+ +

Détecter le support WebGL

+ +

Dans ce premier exemple, on vérifie si le navigateur prend en charge {{Glossary("WebGL")}}. Pour cela, on essaye d'obtenir le {{domxref("WebGLRenderingContext","contexte de rendu WebGL","",1)}} à partir d'un élément {{domxref("HTMLCanvasElement","canvas")}}. Le {{domxref("WebGLRenderingContext","contexte de rendu WebGL", "", 1)}} est une interface qui permet de connaître et de modifier l'état du moteur graphique WebGL, d'envoyer des données à WebGL et d'exécuter des commandes de dessin.

+ +

La gestion d'une machine graphique au sein d'une seule interface n'est pas propre à {{Glossary("WebGL")}}. Les autres {̣{Glossary("API")}} graphiques comme {{domxref("CanvasRenderingContext2D","le contexte de rendu 2D du canevas", "", 1)}}. Cependant, les propriétés et variables qui peuvent être manipulées changent d'une API à l'autre.

+ +
<p>[ On affichera ici le résultat de la détection du support WebGL ]</p>
+<button>Cliquez ici pour détecter WebGLRenderingContext</button>
+
+ +
body {
+  text-align : center;
+}
+button {
+  display : block;
+  font-size : inherit;
+  margin : auto;
+  padding : 0.6em;
+}
+
+ +
// On exécute tout dans le gestionnaire d'événement
+// correspondant au chargement de la fenêtre. De cette
+// façon, le DOM est complètement chargé et mis en forme
+// avant de le manipuler.
+window.addEventListener("load", function() {
+  var paragraph = document.querySelector("p"),
+    button = document.querySelector("button");
+
+  // On ajoute un gestionnaire d'événement pour
+  // le clic sur le bouton
+  button.addEventListener("click", detectWebGLContext, false);
+  function detectWebGLContext () {
+
+    // On crée un élément canvas. Le canvas n'est pas
+    // ajouté au document et il n'est donc jamais
+    // affiché dans la fenêtre du navigateur
+    var canvas = document.createElement("canvas");
+
+    // On récupère le contexte WebGLRenderingContext
+    // depuis l'élément canvas.
+    var gl = canvas.getContext("webgl")
+      || canvas.getContext("experimental-webgl");
+
+    // On affiche le résultat.
+    if (gl && gl instanceof WebGLRenderingContext) {
+      paragraph.innerHTML =
+        "Félicitations, votre navigateur supporte WebGL.";
+    } else {
+      paragraph.innerHTML = "Échec du contexte WebGL. "
+        + "Votre navigateur peut ne pas supporter WebGL.";
+    }
+  }
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +
{{PreviousNext("Apprendre/WebGL/Par_exemple","Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs")}}
diff --git "a/files/fr/web/api/webgl_api/by_example/d\303\251tecter_webgl/index.html" "b/files/fr/web/api/webgl_api/by_example/d\303\251tecter_webgl/index.html" deleted file mode 100644 index fec1fd88a0..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/d\303\251tecter_webgl/index.html" +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Détecter WebGL -slug: Web/API/WebGL_API/By_example/Détecter_WebGL -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Detect_WebGL ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -
{{PreviousNext("Apprendre/WebGL/Par_exemple","Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs")}}
- -

Dans cet exemple, on voit comment détecter un contexte de rendu {{Glossary("WebGL")}} et afficher le résultat à l'utilisateur.

- -

{{EmbedLiveSample("Détecter_le_support_WebGL",660,150)}}

- -

Détecter le support WebGL

- -

Dans ce premier exemple, on vérifie si le navigateur prend en charge {{Glossary("WebGL")}}. Pour cela, on essaye d'obtenir le {{domxref("WebGLRenderingContext","contexte de rendu WebGL","",1)}} à partir d'un élément {{domxref("HTMLCanvasElement","canvas")}}. Le {{domxref("WebGLRenderingContext","contexte de rendu WebGL", "", 1)}} est une interface qui permet de connaître et de modifier l'état du moteur graphique WebGL, d'envoyer des données à WebGL et d'exécuter des commandes de dessin.

- -

La gestion d'une machine graphique au sein d'une seule interface n'est pas propre à {{Glossary("WebGL")}}. Les autres {̣{Glossary("API")}} graphiques comme {{domxref("CanvasRenderingContext2D","le contexte de rendu 2D du canevas", "", 1)}}. Cependant, les propriétés et variables qui peuvent être manipulées changent d'une API à l'autre.

- -
<p>[ On affichera ici le résultat de la détection du support WebGL ]</p>
-<button>Cliquez ici pour détecter WebGLRenderingContext</button>
-
- -
body {
-  text-align : center;
-}
-button {
-  display : block;
-  font-size : inherit;
-  margin : auto;
-  padding : 0.6em;
-}
-
- -
// On exécute tout dans le gestionnaire d'événement
-// correspondant au chargement de la fenêtre. De cette
-// façon, le DOM est complètement chargé et mis en forme
-// avant de le manipuler.
-window.addEventListener("load", function() {
-  var paragraph = document.querySelector("p"),
-    button = document.querySelector("button");
-
-  // On ajoute un gestionnaire d'événement pour
-  // le clic sur le bouton
-  button.addEventListener("click", detectWebGLContext, false);
-  function detectWebGLContext () {
-
-    // On crée un élément canvas. Le canvas n'est pas
-    // ajouté au document et il n'est donc jamais
-    // affiché dans la fenêtre du navigateur
-    var canvas = document.createElement("canvas");
-
-    // On récupère le contexte WebGLRenderingContext
-    // depuis l'élément canvas.
-    var gl = canvas.getContext("webgl")
-      || canvas.getContext("experimental-webgl");
-
-    // On affiche le résultat.
-    if (gl && gl instanceof WebGLRenderingContext) {
-      paragraph.innerHTML =
-        "Félicitations, votre navigateur supporte WebGL.";
-    } else {
-      paragraph.innerHTML = "Échec du contexte WebGL. "
-        + "Votre navigateur peut ne pas supporter WebGL.";
-    }
-  }
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -
{{PreviousNext("Apprendre/WebGL/Par_exemple","Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs")}}
diff --git "a/files/fr/web/api/webgl_api/by_example/g\303\251n\303\251rer_des_textures_avec_du_code/index.html" "b/files/fr/web/api/webgl_api/by_example/g\303\251n\303\251rer_des_textures_avec_du_code/index.html" deleted file mode 100644 index cd7d71f0c5..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/g\303\251n\303\251rer_des_textures_avec_du_code/index.html" +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: Générer des textures avec du code -slug: Web/API/WebGL_API/By_example/Générer_des_textures_avec_du_code -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Textures_from_code ---- -
{{draft}}{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex","Apprendre/WebGL/Par_exemple/Les_textures_vidéos")}}

- -

Dans cet article, on illustre simplement comment générer des textures procédurales avec des fragments de shaders.

- -

{{EmbedLiveSample("Dessiner_des_textures_avec_du_code",660,350)}}

- -

Dessiner des textures avec du  code

- -

Il est possible d'appliquer des textures en effectuant des calculs pour chaque pixel du fragment de shader.

- - - - - -
<script type="x-shader/x-vertex" id="vertex-shader">
-#version 100
-precision highp float;
-void main() {
-  gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
-  gl_PointSize = 128.0;
-}
-</script>
-
- -
<script type="x-shader/x-fragment" id="fragment-shader">
-#version 100
-precision mediump float;
-// On définit une variation radiale (à partir du centre)
-void main() {
-  vec2 fragmentPosition = 2.0*gl_PointCoord - 1.0;
-  float distance = length(fragmentPosition);
-  float distanceSqrd = distance * distance;
-  gl_FragColor = vec4(
-    0.2/distanceSqrd,
-    0.1/distanceSqrd,
-    0.0, 1.0 );
-}
-</script>
-
- - - -
"use strict"
-window.addEventListener("load", setupWebGL, false);
-var gl,
-  program;
-function setupWebGL (evt) {
-  window.removeEventListener(evt.type, setupWebGL, false);
-  if (!(gl = getRenderingContext()))
-    return;
-
-  var source = document.querySelector("#vertex-shader").innerHTML;
-  var vertexShader = gl.createShader(gl.VERTEX_SHADER);
-  gl.shaderSource(vertexShader,source);
-  gl.compileShader(vertexShader);
-  source = document.querySelector("#fragment-shader").innerHTML
-  var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
-  gl.shaderSource(fragmentShader,source);
-  gl.compileShader(fragmentShader);
-  program = gl.createProgram();
-  gl.attachShader(program, vertexShader);
-  gl.attachShader(program, fragmentShader);
-  gl.linkProgram(program);
-  gl.detachShader(program, vertexShader);
-  gl.detachShader(program, fragmentShader);
-  gl.deleteShader(vertexShader);
-  gl.deleteShader(fragmentShader);
-  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
-    var linkErrLog = gl.getProgramInfoLog(program);
-    cleanup();
-    document.querySelector("p").innerHTML =
-      "La liaison du programme de shader a échoué. "
-      + "Journal d'erreur : " + linkErrLog;
-    return;
-  }
-  initializeAttributes();
-  gl.useProgram(program);
-  gl.drawArrays(gl.POINTS, 0, 1);
-  cleanup();
-}
-
-var buffer;
-function initializeAttributes() {
-  gl.enableVertexAttribArray(0);
-  buffer = gl.createBuffer();
-  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
-  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0]), gl.STATIC_DRAW);
-  gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
-}
-
-function cleanup() {
-gl.useProgram(null);
-if (buffer)
-  gl.deleteBuffer(buffer);
-if (program)
-  gl.deleteProgram(program);
-}
-
- - - - - -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex","Apprendre/WebGL/Par_exemple/Les_textures_vidéos")}}

diff --git a/files/fr/web/api/webgl_api/by_example/hello_vertex_attributes/index.html b/files/fr/web/api/webgl_api/by_example/hello_vertex_attributes/index.html new file mode 100644 index 0000000000..612dbad79c --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/hello_vertex_attributes/index.html @@ -0,0 +1,171 @@ +--- +title: Introduction aux attributs de vertex +slug: Web/API/WebGL_API/By_example/Introduction_aux_attributs_vertex +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Hello_vertex_attributes +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Hello_GLSL","Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

+ +

Avec cet exemple, on voit comment combiner la programmation des shaders et les interactions utilisateurs grâce aux attributs des vertex.

+ +

{{EmbedLiveSample("Un_Hello_World_en_GLSL",660,425)}}

+ +

Un Hello World en GLSL

+ +

Voici comment envoyer des données saisies à un programme de manipulation des shaders en utilisant la mémoire GPU.

+ + + + + +
<script type="x-shader/x-vertex" id="vertex-shader">
+#version 100
+precision highp float;
+
+attribute float position;
+
+void main() {
+  gl_Position = vec4(position, 0.0, 0.0, 1.0);
+  gl_PointSize = 64.0;
+}
+</script>
+
+ +
<script type="x-shader/x-fragment" id="fragment-shader">
+#version 100
+precision mediump float;
+void main() {
+  gl_FragColor = vec4(0.18, 0.54, 0.34, 1.0);
+}
+</script>
+
+ + + +
"use strict"
+window.addEventListener("load", setupWebGL, false);
+var gl,
+  program;
+function setupWebGL (evt) {
+  window.removeEventListener(evt.type, setupWebGL, false);
+  if (!(gl = getRenderingContext()))
+    return;
+
+  var source = document.querySelector("#vertex-shader").innerHTML;
+  var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+  gl.shaderSource(vertexShader,source);
+  gl.compileShader(vertexShader);
+  source = document.querySelector("#fragment-shader").innerHTML
+  var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
+  gl.shaderSource(fragmentShader,source);
+  gl.compileShader(fragmentShader);
+  program = gl.createProgram();
+  gl.attachShader(program, vertexShader);
+  gl.attachShader(program, fragmentShader);
+  gl.linkProgram(program);
+  gl.detachShader(program, vertexShader);
+  gl.detachShader(program, fragmentShader);
+  gl.deleteShader(vertexShader);
+  gl.deleteShader(fragmentShader);
+  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
+    var linkErrLog = gl.getProgramInfoLog(program);
+    cleanup();
+    document.querySelector("p").innerHTML =
+      "Shader program did not link successfully. "
+      + "Error log: " + linkErrLog;
+    return;
+  }
+
+  initializeAttributes();
+  gl.useProgram(program);
+  gl.drawArrays(gl.POINTS, 0, 1);
+
+  document.querySelector("canvas").addEventListener("click",
+    function (evt) {
+      var clickXrelativToCanvas =
+          evt.pageX - evt.target.offsetLeft;
+      var clickXinWebGLCoords =
+          2.0 * (clickXrelativToCanvas- gl.drawingBufferWidth/2)
+          / gl.drawingBufferWidth;
+      gl.bufferData(gl.ARRAY_BUFFER,
+        new Float32Array([clickXinWebGLCoords]), gl.STATIC_DRAW);
+      gl.drawArrays(gl.POINTS, 0, 1);
+    }, false);
+}
+
+var buffer;
+function initializeAttributes() {
+  gl.enableVertexAttribArray(0);
+  buffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0]), gl.STATIC_DRAW);
+  gl.vertexAttribPointer(0, 1, gl.FLOAT, false, 0, 0);
+}
+
+window.addEventListener("beforeunload", cleanup, true);
+function cleanup() {
+  gl.useProgram(null);
+  if (buffer)
+    gl.deleteBuffer(buffer);
+  if (program)
+    gl.deleteProgram(program);
+}
+
+ + + + + +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Hello_GLSL","Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

diff --git a/files/fr/web/api/webgl_api/by_example/introduction_aux_attributs_vertex/index.html b/files/fr/web/api/webgl_api/by_example/introduction_aux_attributs_vertex/index.html deleted file mode 100644 index 612dbad79c..0000000000 --- a/files/fr/web/api/webgl_api/by_example/introduction_aux_attributs_vertex/index.html +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Introduction aux attributs de vertex -slug: Web/API/WebGL_API/By_example/Introduction_aux_attributs_vertex -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Hello_vertex_attributes ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Hello_GLSL","Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

- -

Avec cet exemple, on voit comment combiner la programmation des shaders et les interactions utilisateurs grâce aux attributs des vertex.

- -

{{EmbedLiveSample("Un_Hello_World_en_GLSL",660,425)}}

- -

Un Hello World en GLSL

- -

Voici comment envoyer des données saisies à un programme de manipulation des shaders en utilisant la mémoire GPU.

- - - - - -
<script type="x-shader/x-vertex" id="vertex-shader">
-#version 100
-precision highp float;
-
-attribute float position;
-
-void main() {
-  gl_Position = vec4(position, 0.0, 0.0, 1.0);
-  gl_PointSize = 64.0;
-}
-</script>
-
- -
<script type="x-shader/x-fragment" id="fragment-shader">
-#version 100
-precision mediump float;
-void main() {
-  gl_FragColor = vec4(0.18, 0.54, 0.34, 1.0);
-}
-</script>
-
- - - -
"use strict"
-window.addEventListener("load", setupWebGL, false);
-var gl,
-  program;
-function setupWebGL (evt) {
-  window.removeEventListener(evt.type, setupWebGL, false);
-  if (!(gl = getRenderingContext()))
-    return;
-
-  var source = document.querySelector("#vertex-shader").innerHTML;
-  var vertexShader = gl.createShader(gl.VERTEX_SHADER);
-  gl.shaderSource(vertexShader,source);
-  gl.compileShader(vertexShader);
-  source = document.querySelector("#fragment-shader").innerHTML
-  var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
-  gl.shaderSource(fragmentShader,source);
-  gl.compileShader(fragmentShader);
-  program = gl.createProgram();
-  gl.attachShader(program, vertexShader);
-  gl.attachShader(program, fragmentShader);
-  gl.linkProgram(program);
-  gl.detachShader(program, vertexShader);
-  gl.detachShader(program, fragmentShader);
-  gl.deleteShader(vertexShader);
-  gl.deleteShader(fragmentShader);
-  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
-    var linkErrLog = gl.getProgramInfoLog(program);
-    cleanup();
-    document.querySelector("p").innerHTML =
-      "Shader program did not link successfully. "
-      + "Error log: " + linkErrLog;
-    return;
-  }
-
-  initializeAttributes();
-  gl.useProgram(program);
-  gl.drawArrays(gl.POINTS, 0, 1);
-
-  document.querySelector("canvas").addEventListener("click",
-    function (evt) {
-      var clickXrelativToCanvas =
-          evt.pageX - evt.target.offsetLeft;
-      var clickXinWebGLCoords =
-          2.0 * (clickXrelativToCanvas- gl.drawingBufferWidth/2)
-          / gl.drawingBufferWidth;
-      gl.bufferData(gl.ARRAY_BUFFER,
-        new Float32Array([clickXinWebGLCoords]), gl.STATIC_DRAW);
-      gl.drawArrays(gl.POINTS, 0, 1);
-    }, false);
-}
-
-var buffer;
-function initializeAttributes() {
-  gl.enableVertexAttribArray(0);
-  buffer = gl.createBuffer();
-  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
-  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0]), gl.STATIC_DRAW);
-  gl.vertexAttribPointer(0, 1, gl.FLOAT, false, 0, 0);
-}
-
-window.addEventListener("beforeunload", cleanup, true);
-function cleanup() {
-  gl.useProgram(null);
-  if (buffer)
-    gl.deleteBuffer(buffer);
-  if (program)
-    gl.deleteProgram(program);
-}
-
- - - - - -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Hello_GLSL","Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

diff --git "a/files/fr/web/api/webgl_api/by_example/les_textures_vid\303\251os/index.html" "b/files/fr/web/api/webgl_api/by_example/les_textures_vid\303\251os/index.html" deleted file mode 100644 index ab1ea5a388..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/les_textures_vid\303\251os/index.html" +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Les textures vidéos -slug: Web/API/WebGL_API/By_example/Les_textures_vidéos -tags: - - Apprendre - - Avancé - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Video_textures ---- -
{{draft}}{{IncludeSubnav("/fr/Apprendre")}}
- -

{{Previous("Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

- -

Cet exemple illustre comment utiliser des fichiers vidéos comme textures.

- -

Des textures à partir de vidéos

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample8/index.html', 670, 510)}}

- -

{{Previous("Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

diff --git a/files/fr/web/api/webgl_api/by_example/masque_de_couleur/index.html b/files/fr/web/api/webgl_api/by_example/masque_de_couleur/index.html deleted file mode 100644 index ad5e0dd461..0000000000 --- a/files/fr/web/api/webgl_api/by_example/masque_de_couleur/index.html +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: Masque de couleur -slug: Web/API/WebGL_API/By_example/Masque_de_couleur -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Color_masking ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée","Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples")}}

- -
-
-

Dans cet article, on modifie des couleurs aléatoires grâce à un masque de couleur. Cela permet de limiter la plage de couleurs affichées à certains tons.

-
- -

{{EmbedLiveSample("color-masking-source",660,425)}}

- -
-

Appliquer un masque sur des couleurs aléatoires

- -

Dans cet exemple, on modifie les couleurs aléatoires utilisées pour une animation grâce à l'opération {{domxref("WebGLRenderingContext.colorMask()","colorMask()")}}. D'une certaine façon, cette opération est analogue à la modification qu'on obtient lorsqu'on regarde à travers du verre teinté ou derrière une filtre coloré. Ainsi, en masquant les canaux vert et bleu, on ne pourra recevoir que les composantes rouges des pixels et cela donnera l'impression de regarder à travers du verre teinté de rouge.

- -

Les masques de couleur nous permettent d'illustrer quelques concepts de base de la théorie des couleurs. En masquant certaines composantes, on rapproche les couleurs affichées de la couleur complémentaire. Ainsi, en masquant le bleu et le rouge, on obtiendrait des tons de vert. En masquant uniquement le canal bleu, on obtiendra des tons de jaune (dont orange, marron, olive, etc.) qui est la couleur complémentaire du bleu. De la même façon, en masquant uniquement le vert, on obtiendrait des tons magenta (pourpres, rouges, etc.) et en masquant uniquement le rouge, on obtiendrait des tons cyan.

- -

On voit que les appels à colorMask() sont uniquement déclenchés lorsque l'utilisateur clique sur l'un des boutons. En revanche, le rendu est fait chaque seconde grâce au timer. L'état du masque de couleur lié à {{Glossary("WebGL")}} est conservé et il n'est donc pas nécessaire d'appeler colorMask() à chaque frame pour régler le masque. Cela illustre la manière dont WebGL est un automate a état. Dans un premier temps, on initialise l'état de WebGL et ensuite, à chaque frame, on déclenche uniquement les opérations de dessin.

- -

Les masques de couleurs permettent d'avoir un contrôle précis pour mettre à jour les pixels à l'écran. En limitant les canaux de couleur qui sont utilisés à chaque commande de dessin, on peut utiliser chaque canal à bon escient et on peut par exemple stocler une image en ton de gris.

- -

Enfin, l'application d'un masque de couleur nous montre que {{Glossary("WebGL")}} n'est pas seulement un automate à états mais aussi un processus graphique. Cela signifie que les opérations graphiques liées à WebGL sont effectuées dans un ordre donné et que le résultat de chaque opération sert de point d'entrée pour l'opération suivante. Ainsi, l'opération d'applique définit la valeur pour chaque pixel. L'application du masque se produit plus tard dans le processus et modifie la couleur. Ainsi, le résultat final affiché à l'écran est teinté par la couleur du masque.

-
- -
-
<p>Tinting the displayed colors with color masking.</p>
-<canvas>Il semblerait que votre navigateur ne supporte pas
-    l'élément HTML5 canvas.</canvas>
-<button id="red-toggle">On</button>
-<button id="green-toggle">On</button>
-<button id="blue-toggle">On</button>
-
- -
body {
-  text-align : center;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-button {
-  display : inline-block;
-  font-family : serif;
-  font-size : inherit;
-  font-weight : 900;
-  color : white;
-  margin : auto;
-  padding : 0.6em 1.2em;
-}
-#red-toggle {
-  background-color : red;
-}
-#green-toggle {
-  background-color : green;
-}
-#blue-toggle {
-  background-color : blue;
-}
-
- -
window.addEventListener("load", function setupAnimation (evt) {
-  "use strict"
-  window.removeEventListener(evt.type, setupAnimation, false);
-
-  var canvas = document.querySelector("canvas");
-  var gl = canvas.getContext("webgl")
-      || canvas.getContext("experimental-webgl");
-  if (!gl) {
-    document.querySelector("p").innerHTML =
-      "Échec lors de l'obtention du contexte WebGL."
-      + "Votre navigateur ou appareil ne supporte "
-      + "peut-être pas WebGL.";
-    return;
-  }
-  gl.viewport(0, 0,
-    gl.drawingBufferWidth, gl.drawingBufferHeight);
-
-  var timer = setInterval(drawAnimation, 1000);
-
-  var mask = [true, true, true];
-  var redtoggle = document.querySelector("#red-toggle"),
-    greentoggle = document.querySelector("#green-toggle"),
-    bluetoggle = document.querySelector("#blue-toggle");
-  redtoggle.addEventListener("click", setColorMask, false);
-  greentoggle.addEventListener("click", setColorMask, false);
-  bluetoggle.addEventListener("click", setColorMask, false);
-
-  function setColorMask(evt) {
-    var index =
-      evt.target === greentoggle && 1
-      || evt.target === bluetoggle && 2
-      || 0;
-    mask[index] = !mask[index];
-    if (mask[index] === true)
-      evt.target.innerHTML="On";
-    else
-      evt.target.innerHTML="Off";
-    gl.colorMask(mask[0], mask[1], mask[2], true);
-    drawAnimation();
-  };
-
-  function drawAnimation () {
-    var color = getRandomColor();
-    gl.clearColor(color[0], color[1], color[2], 1.0);
-    gl.clear(gl.COLOR_BUFFER_BIT);
-  }
-
-  function getRandomColor() {
-    return [Math.random(), Math.random(), Math.random()];
-  }
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

-
-
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée","Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples")}}

diff --git "a/files/fr/web/api/webgl_api/by_example/mod\303\250le_1/index.html" "b/files/fr/web/api/webgl_api/by_example/mod\303\250le_1/index.html" deleted file mode 100644 index a055a358c8..0000000000 --- "a/files/fr/web/api/webgl_api/by_example/mod\303\250le_1/index.html" +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Modèle 1 -slug: Web/API/WebGL_API/By_example/Modèle_1 -tags: - - Apprendre - - Débutant - - Exemple - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Boilerplate_1 ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL","Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique")}}

- -

Dans cet article, on décrit les fragments de code qui seront réutilisés pour les exemples suivants (où ils seront masqués pour une meilleur lisibilité). Parmi ce code, on définit une fonction JavaScript utilitaire qui permet de simplifier l'initialisation de WebGL.

- -

{{EmbedLiveSample("Socle_pour_l'initialisation_du_contexte_WebGL",660,400)}}

- -

Socle pour l'initialisation du contexte WebGL

- -

Nous avons vu plusieurs fois les mêmes morceaux de {{Glossary("HTML")}}, {{Glossary("CSS")}} et {{Glossary("JavaScript")}}. Nous allons donc les cacher par la suite afin de mieux nous concentrer sur les parties du code qui sont pertinentes pour l'apprentissage de {{Glossary("WebGL")}}.

- -

Plus précisément, le code HTML contiendra

- - - -

Les règles CSS s'appliqueront aux éléments body, canvas et button. Les éléments supplémentaires pour le code CSS et HTML seront détaillés dans les pages des exemples concernés.

- -

Dans les exemples suivants, on utilisera la fonction utilitaire JavaScript getRenderingContext pour initialiser {{domxref("WebGLRenderingContext","le contexte de rendu WebGL", "", 1)}}. Grâce aux exemples précédents, vous devriez pouvoir comprendre le rôle de cette fonction. Pour résumer, celle-ci

- - - -

S'il y a une erreur, la fonction affiche un message d'erreur et renvoie null.

- -

Enfin, tout le code JavaScript est exécuté par une fonction immédiatement appelée (une technique plutôt commune avec JavaScript). La déclaration de la fonction et son invocation seront cachées.

- -
<p>[ Un texte qui décrit l'exemple. ]</p>
-<button>[ Un bouton optionnel pour les interactions. ]</button>
-<canvas>Il semblerait que votre navigateur ne supporte
-    pas le canevas HTML5.</canvas>
-
- -
body {
-  text-align : center;
-}
-canvas {
-  display : block;
-  width : 280px;
-  height : 210px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-button {
-  display : block;
-  font-size : inherit;
-  margin : auto;
-  padding : 0.6em;
-}
-
- -
function getRenderingContext() {
-  var canvas = document.querySelector("canvas");
-  canvas.width = canvas.clientWidth;
-  canvas.height = canvas.clientHeight;
-  var gl = canvas.getContext("webgl")
-    || canvas.getContext("experimental-webgl");
-  if (!gl) {
-    var paragraph = document.querySelector("p");
-    paragraph.innerHTML = "Échec de l'obtention du "
-      + "contexte WebGL."
-      + "Votre navigateur ou appareil ne supporte "
-      + "peut-être pas WebGL.";
-    return null;
-  }
-  gl.viewport(0, 0,
-    gl.drawingBufferWidth, gl.drawingBufferHeight);
-  gl.clearColor(0.0, 0.0, 0.0, 1.0);
-  gl.clear(gl.COLOR_BUFFER_BIT);
-  return gl;
-}
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL","Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique")}}

diff --git a/files/fr/web/api/webgl_api/by_example/raining_rectangles/index.html b/files/fr/web/api/webgl_api/by_example/raining_rectangles/index.html new file mode 100644 index 0000000000..e9f9bcdf8c --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/raining_rectangles/index.html @@ -0,0 +1,176 @@ +--- +title: Une pluie de rectangle +slug: Web/API/WebGL_API/By_example/Une_pluie_de_rectangle +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Raining_rectangles +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique","Apprendre/WebGL/Par_exemple/Hello_GLSL")}}

+ +

Cet exemple permet de créer un jeu simple qui illustre ce qu'il est possible de faire avec du « découpage », des animations et des interactions utilisateur.

+ +

{{EmbedLiveSample("Utiliser_des_animations_et_des_interactions_grâce_à_des_découpes",660,425)}}

+ +

Utiliser des animations et des interactions grâce à des découpes

+ +

Voici un jeu simple où il faut essayer de cliquer sur les rectangles qui tombent pour en attraper le plus possible. Dans cet exemple, on utilise un approche orientée objet pour représenter les rectangles. Cela permet de mieux gérer l'état du rectangle (sa position, sa couleur, etc.) et cela rend le code plus compact et plus facile à réutiliser.

+ +

Dans cet exemple, on combine l'applique de couleurs unis dans le tampon de dessin et des opérations de découpe. C'est un aperçu d'une application graphique complète qui manipule les différentes phases des processus {{Glossary("WebGL")}} et de son automate.

+ +

De plus, cet exmple illustre comment intégrer des fonctions WebGL dans une boucle de jeu. La boucle de jeu est responsable du dessin pour l'animation, de la gestion des entrées utilisateur et de la réactivité de l'ensemble. Voici comment la boucle de jeu est implémentée avec des  setTimeout.

+ + + + + + + +
"use strict"
+window.addEventListener("load", setupAnimation, false);
+var gl,
+  timer,
+  rainingRect,
+  scoreDisplay,
+  missesDisplay;
+function setupAnimation (evt) {
+  window.removeEventListener(evt.type, setupAnimation, false);
+  if (!(gl = getRenderingContext()))
+    return;
+  gl.enable(gl.SCISSOR_TEST);
+
+  rainingRect = new Rectangle();
+  timer = setTimeout(drawAnimation, 17);
+  document.querySelector("canvas")
+      .addEventListener("click", playerClick, false);
+  var displays = document.querySelectorAll("strong");
+  scoreDisplay = displays[0];
+  missesDisplay = displays[1];
+}
+
+var score = 0,
+  misses = 0;
+function drawAnimation () {
+  gl.scissor(rainingRect.position[0], rainingRect.position[1],
+      rainingRect.size[0] , rainingRect.size[1]);
+  gl.clear(gl.COLOR_BUFFER_BIT);
+  rainingRect.position[1] -= rainingRect.velocity;
+  if (rainingRect.position[1] < 0) {
+    misses += 1;
+    missesDisplay.innerHTML = misses;
+    rainingRect = new Rectangle();
+  }
+  // On utilise la fonction setTimeout pour l'animation
+  // et on appelle ainsi la fonction drawAnimation toutes
+  // les 17ms, sinon, on n'aurait pas d'animation.
+  timer = setTimeout(drawAnimation, 17);
+}
+
+function playerClick (evt) {
+  // Il est nécessaire de transfomer la position de l'événement
+  // déclenché par le clic, exprimée dans le repèree de la fenêtre
+  // pour obtenir la position relative au canevas.
+  // De plus, on rappelle qu'avec WebGL les ordonnées croissent
+  // selon l'axe vertical, c'est-à-dire l'inverse du système
+  // utilisé pour la fenêtre du navigateur.
+  var position = [
+      evt.pageX - evt.target.offsetLeft,
+      gl.drawingBufferHeight - (evt.pageY - evt.target.offsetTop),
+    ];
+  // si le clic est sur un rectangle, on l'attrape.
+  // On incrémente donc le score et on crée un nouveau rectangle
+  var diffPos = [ position[0] - rainingRect.position[0],
+      position[1] - rainingRect.position[1] ];
+  if ( diffPos[0] >= 0 && diffPos[0] < rainingRect.size[0]
+      && diffPos[1] >= 0 && diffPos[1] < rainingRect.size[1] ) {
+    score += 1;
+    scoreDisplay.innerHTML = score;
+    rainingRect = new Rectangle();
+  }
+}
+
+function Rectangle () {
+  // On garde une référence au nouvel objet Rectangle
+  // plutôt que de risquer une confusion avec this.
+  var rect = this;
+  // On prend trois nombres aléatoires pour la taille
+  // et la position du nouveau rectangle. On utilise
+  // un nombre différent pour la position et la taille
+  // car on veut que celles-ci soient indépendantes.
+  var randNums = getRandomVector();
+  rect.size = [
+    5 + 120 * randNums[0],
+    5 + 120 * randNums[1]
+  ];
+  rect.position = [
+    randNums[2]*(gl.drawingBufferWidth - rect.size[0]),
+    gl.drawingBufferHeight
+  ];
+  rect.velocity = 1.0 + 6.0*Math.random();
+  rect.color = getRandomVector();
+  gl.clearColor(rect.color[0], rect.color[1], rect.color[2], 1.0);
+  function getRandomVector() {
+    return [Math.random(), Math.random(), Math.random()];
+  }
+}
+
+ + + + + +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique","Apprendre/WebGL/Par_exemple/Hello_GLSL")}}

diff --git a/files/fr/web/api/webgl_api/by_example/scissor_animation/index.html b/files/fr/web/api/webgl_api/by_example/scissor_animation/index.html new file mode 100644 index 0000000000..8eb25287ab --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/scissor_animation/index.html @@ -0,0 +1,162 @@ +--- +title: Créer une animation avec découpe et applique +slug: Web/API/WebGL_API/By_example/Créer_une_animation_avec_découpe_et_applique +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Scissor_animation +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Modèle_1","Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle")}}

+ +

Dans cet article, on voit comment créer des animations grâce à des opérations de découpe et d'applique.

+ +

{{EmbedLiveSample("Une_animation_grâce_à_des_découpes",660,425)}}

+ +

Une animation grâce à des découpes

+ +

Dans cet exemple, on anime des carrés grâce aux méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}}. Ensuite, on crée à nouveau une boucle d'animation grâce aux timers. Cette fois-ci, la position du carré (la zone de découpe) est mise à jour à chaque frame (on a environ une frame rafraîchie toutes les 17 millisecondes, ce qui correspond environ à 60fps (frame per second ou frame par seconde).

+ +

En revanche, la couleur du carré (définie avec {{domxref("WebGLRenderingContext.clearColor()","clearColor")}}) est uniquement mise à jour lorsqu'un nouveau carré est créé. On voit ici que {{Glossary("WebGL")}} est un automate. Pour chaque carré, on définit sa couleur une fois puis on met à jour sa position à chaque frame. L'état lié à la couleur reste tel quel jusqu'à ce qu'un nouveau carré soit créé.

+ + + + + + + +
"use strict"
+window.addEventListener("load", setupAnimation, false);
+// Voici les variables qui permettront de
+// manipuler le contexte WebGL, la couleur
+// et la position des carrés.
+var gl,
+  color = getRandomColor(),
+  position;
+
+function setupAnimation (evt) {
+  window.removeEventListener(evt.type, setupAnimation, false);
+  if (!(gl = getRenderingContext()))
+    return;
+
+  gl.enable(gl.SCISSOR_TEST);
+  gl.clearColor(color[0], color[1], color[2], 1.0);
+
+  // À la différence de la fenêtre du navigateur,
+  // l'axe vertical de WebGL va dans le sens croissant
+  // du bas vers le haut. Dans cette position, on indique
+  // que la position initiale du carré est en haut à gauche
+  // du contexte de dessin
+  position = [0, gl.drawingBufferHeight];
+
+  var button = document.querySelector("button");
+  var timer;
+  function startAnimation(evt) {
+    button.removeEventListener(evt.type, startAnimation, false);
+    button.addEventListener("click", stopAnimation, false);
+    document.querySelector("strong").innerHTML = "arrêter";
+    timer = setInterval(drawAnimation, 17);
+    drawAnimation();
+  }
+  function stopAnimation(evt) {
+    button.removeEventListener(evt.type, stopAnimation, false);
+    button.addEventListener("click", startAnimation, false);
+    document.querySelector("strong").innerHTML = "lancer";
+    clearInterval(timer);
+  }
+  stopAnimation({type: "click"});
+}
+
+// Les variables qui permettront de stocker la taille
+// et la vitesse du carré.
+var size = [60, 60],
+  velocity = 3.0;
+function drawAnimation () {
+  gl.scissor(position[0], position[1], size[0] , size[1]);
+  gl.clear(gl.COLOR_BUFFER_BIT);
+  // À chaque frame, on définit une position plus basse
+  // pour le carré, c'est cela qui crée une illusion
+  // de mouvement.
+  position[1] -= velocity;
+  // Lorsque le carré atteint le bas, on crée un nouveau
+  // carré avec une nouvelle vitesse et une nouvelle
+  // couleur.
+  if (position[1] < 0) {
+    // La position horizontale est choisie aléatoirement.
+    // La position verticale correspond au haut
+    // du buffer de dessin.
+    position = [
+      Math.random()*(gl.drawingBufferWidth - size[0]),
+      gl.drawingBufferHeight
+    ];
+    // Ici on détermine une vitesse aléatoire
+    // comprise entre 1.0 et 7.0
+    velocity = 1.0 + 6.0*Math.random();
+    color = getRandomColor();
+    gl.clearColor(color[0], color[1], color[2], 1.0);
+  }
+}
+
+function getRandomColor() {
+  return [Math.random(), Math.random(), Math.random()];
+}
+
+ + + + + +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Modèle_1","Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle")}}

diff --git a/files/fr/web/api/webgl_api/by_example/simple_color_animation/index.html b/files/fr/web/api/webgl_api/by_example/simple_color_animation/index.html new file mode 100644 index 0000000000..a38d174808 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/simple_color_animation/index.html @@ -0,0 +1,139 @@ +--- +title: Créer une animation colorée +slug: Web/API/WebGL_API/By_example/Créer_une_animation_colorée +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Simple_color_animation +--- +
{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris","Apprendre/WebGL/Par_exemple/Masque_de_couleur")}}

+ +

Dans cet exemple, on crée une animation avec des couleurs en appliquant chaque seconde une couleur aléatoire dans le contexte de rendu {{Glossary("WebGL")}}.

+ +

{{EmbedLiveSample("Créer_une_animation_avec_clear",660,425)}}

+ +

Créer une animation avec clear

+ +

Cet exemple illustre comment lancer une animation avec WebGL et gérer les interactions de l'utilisateur. L'utilisateur peut lancer, arrêter et reprendre l'animation en cliquant sur le bouton.

+ +

Cette fois, on place les appels à la fonction WebGL à l'intérieur d'un gestionnaire d'événement de timer. Un gestionnaire d'événements pour les clics permet de gérer les interactions simples (lancer et arrêter l'animation). Le timer et la fonction de gestion du timer créent une boucle d'animation qui permet d'exécuter un ensemble de commandes pour le dessin à des intervalles réguliers (généralement, pour chaque frame, dans ce cas, on a une fréquence d'une frame par seconde).

+ +
<p>Un programme WebGL simple qui crée une animation colorée.</p>
+<p>Vous pouvez sur le bouton pour activer/désactiver l'animation.</p>
+<canvas id="canvas-view">Il semblerait que votre navigateur ne
+    supporte pas l'élément canvas.</canvas>
+<button id="animation-onoff">
+  Cliquez ici pour
+<strong>[le verbe de l'action]</strong>
+  l'animation
+</button>
+
+ +
body {
+  text-align : center;
+}
+button {
+  display : inline-block;
+  font-size : inherit;
+  margin : auto;
+  padding : 0.6em;
+}
+canvas {
+  display : block;
+  width : 280px;
+  height : 210px;
+  margin : auto;
+  padding : 0;
+  border : none;
+  background-color : black;
+}
+
+ +
window.addEventListener("load", function setupAnimation (evt) {
+  "use strict"
+  window.removeEventListener(evt.type, setupAnimation, false);
+
+  // Une variable pour gérer le timer qui contrôle
+  // l'animation.
+  var timer;
+
+  // On ajoute un gestionnaire d'événement pour le clic.
+  var button = document.querySelector("#animation-onoff");
+  var verb = document.querySelector("strong");
+  function startAnimation(evt) {
+    button.removeEventListener(evt.type, startAnimation, false);
+    button.addEventListener("click", stopAnimation, false);
+    verb.innerHTML="arrêter";
+
+    // On place une boucle d'animation : on repeint
+    // environ chaque seconde.
+    timer = setInterval(drawAnimation, 1000);
+
+    // On dessine une frame d'animation afin de
+    // fournir un feedback à l'utilisateur.
+    drawAnimation();
+  }
+
+  function stopAnimation(evt) {
+    button.removeEventListener(evt.type, stopAnimation, false);
+    button.addEventListener("click", startAnimation, false);
+    verb.innerHTML="lancer";
+    // On arrête l'animation en réinitialisant le timer.
+    clearInterval(timer);
+  }
+
+  // On appelle stopAnimation() une fois pour mettre en place
+  // les gestionnaires d'événement pour le canevas et le bouton.
+  stopAnimation({type: "click"});
+
+  var gl;
+  function drawAnimation () {
+    if (!gl) {
+      var canvas = document.getElementById("canvas-view");
+      gl = canvas.getContext("webgl")
+        ||canvas.getContext("experimental-webgl");
+      if (!gl) {
+
+        // On ne veut pas avoir plusieurs messages d'alerte
+        // donc on arrête l'animation en réinitialisant le
+        // timer.
+        clearInterval(timer);
+        alert("Échec du chargement du contexte WebGL.\n"
+          + "Votre navigateur peut ne pas supporter WebGL.");
+        return;
+
+      }
+      gl.viewport(0, 0,
+        gl.drawingBufferWidth, gl.drawingBufferHeight);
+    }
+
+    // On génère une couleur aléatoire avec une fonction
+    // auxiliaire.
+    var color = getRandomColor();
+
+    // On applique la couleur obtenue dans le
+    // contexte WebGLRenderingContext
+    gl.clearColor(color[0], color[1], color[2], 1.0);
+
+    // On propage le changement dans le contexte
+    // avec la méthode clear.
+    gl.clear(gl.COLOR_BUFFER_BIT);
+  }
+
+  // Une fonction auxiliaire qui fournit une
+  // couleur aléatoire.
+  function getRandomColor() {
+    return [Math.random(), Math.random(), Math.random()];
+  }
+}, false);
+
+ +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris","Apprendre/WebGL/Par_exemple/Masque_de_couleur")}}

diff --git a/files/fr/web/api/webgl_api/by_example/tailles_de_canvas_et_webgl/index.html b/files/fr/web/api/webgl_api/by_example/tailles_de_canvas_et_webgl/index.html deleted file mode 100644 index 086e0394a7..0000000000 --- a/files/fr/web/api/webgl_api/by_example/tailles_de_canvas_et_webgl/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Tailles de canvas et WebGL -slug: Web/API/WebGL_API/By_example/Tailles_de_canvas_et_WebGL -tags: - - Apprendre - - Débutant - - Exemple - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Canvas_size_and_WebGL ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples","Apprendre/WebGL/Par_exemple/Modèle_1")}}

- -

{{EmbedLiveSample("Les_effets_liés_à_la_taille_du_canevas_sur_le_rendu_avec_WebGL",660,180)}}

- -

Dans cet exemple, on observe l'effet obtenu quand on définit (ou non) la taille du canevas HTML avec sa taille {{Glossary("CSS")}} (exprimée en pixels CSS), tel qu'il apparaît dans la fenêtre du navigateur.

- -

Les effets liés à la taille du canevas sur le rendu avec WebGL

- -

Grâce aux méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}} on peut démontrer que le tampon (buffer) de dessin WebGL est affecté par la taille du canevas (l'élément HTML canvas).

- -

La taille du premier canevas est définie avec la taille de l'élément, mis en forme, qui est déterminée par {{Glossary("CSS")}}. Pour cela, on affecte respectivement les valeurs {{domxref("Element.clientWidth","clientWidth")}} and {{domxref("Element.clientHeight","clientHeight")}} aux propriétés {{domxref("HTMLCanvasElement.width","width")}} et {{domxref("HTMLCanvasElement.height","height")}}.

- -

Pour le deuxième canevas, on n'applique pas ce traitement, c'est donc les dimensions internes du canevas : {{domxref("HTMLCanvasElement.width","width")}} et {{domxref("HTMLCanvasElement.height","height")}} qui sont prises en compte. Celles-ci sont différentes des dimensions de l'élément canvas affiché dans le fenêtre du navigateur.

- -

L'effet devient visible quand on utilise les méthodes {{domxref("WebGLRenderingContext.scissor()","scissor()")}} et {{domxref("WebGLRenderingContext.clear()","clear()")}} pour dessiner un carré au centre du canevas en définissant sa position et sa taille en pixels. Dans le premier canevas, on obtient bien le bon résultat et dans le deuxième, on a la mauvaise forme, la mauvaise taille et la mauvaise position.

- -
<p>On compare les deux canevas.</p>
-<canvas>Votre navigateur ne semble pas
-    supporter l'élément HTML5 canvas.</canvas>
-<canvas>Votre navigateur ne semble pas
-    supporter l'élément HTML5 canvas.</canvas>
-
- -
body {
-  text-align : center;
-}
-canvas {
-  width : 120px;
-  height : 80px;
-  margin : auto;
-  padding : 0;
-  border : none;
-  background-color : black;
-}
-
- -
window.addEventListener("load", function() {
-  "use strict"
-  var firstCanvas = document.getElementsByTagName("canvas")[0],
-    secondCanvas = document.getElementsByTagName("canvas")[1];
-
-  // Ici on applique le traitement spécifique au premier
-  // canevas
-  firstCanvas.width = firstCanvas.clientWidth;
-  firstCanvas.height = firstCanvas.clientHeight;
-
-  // Ensuite on traite les deux canevas de la même façon
-  [firstCanvas, secondCanvas].forEach(function(canvas) {
-    var gl = canvas.getContext("webgl")
-      || canvas.getContext("experimental-webgl");
-    if (!gl) {
-      document.querySelector("p").innerHTML =
-        "Échec de l'obtention du contexte WebGL. "
-        + "Votre navigateur peut ne pas supporter WebGL.";
-      return;
-    }
-    gl.viewport(0, 0,
-      gl.drawingBufferWidth, gl.drawingBufferHeight);
-    gl.enable(gl.SCISSOR_TEST);
-    gl.scissor(30, 10, 60, 60);
-    gl.clearColor(1.0, 1.0, 0.0, 1.0);
-    gl.clear(gl.COLOR_BUFFER_BIT);
-  });
-}, false);
-
- -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples","Apprendre/WebGL/Par_exemple/Modèle_1")}}

diff --git a/files/fr/web/api/webgl_api/by_example/textures_from_code/index.html b/files/fr/web/api/webgl_api/by_example/textures_from_code/index.html new file mode 100644 index 0000000000..cd7d71f0c5 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/textures_from_code/index.html @@ -0,0 +1,164 @@ +--- +title: Générer des textures avec du code +slug: Web/API/WebGL_API/By_example/Générer_des_textures_avec_du_code +tags: + - Apprendre + - Débutant + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Textures_from_code +--- +
{{draft}}{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex","Apprendre/WebGL/Par_exemple/Les_textures_vidéos")}}

+ +

Dans cet article, on illustre simplement comment générer des textures procédurales avec des fragments de shaders.

+ +

{{EmbedLiveSample("Dessiner_des_textures_avec_du_code",660,350)}}

+ +

Dessiner des textures avec du  code

+ +

Il est possible d'appliquer des textures en effectuant des calculs pour chaque pixel du fragment de shader.

+ + + + + +
<script type="x-shader/x-vertex" id="vertex-shader">
+#version 100
+precision highp float;
+void main() {
+  gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
+  gl_PointSize = 128.0;
+}
+</script>
+
+ +
<script type="x-shader/x-fragment" id="fragment-shader">
+#version 100
+precision mediump float;
+// On définit une variation radiale (à partir du centre)
+void main() {
+  vec2 fragmentPosition = 2.0*gl_PointCoord - 1.0;
+  float distance = length(fragmentPosition);
+  float distanceSqrd = distance * distance;
+  gl_FragColor = vec4(
+    0.2/distanceSqrd,
+    0.1/distanceSqrd,
+    0.0, 1.0 );
+}
+</script>
+
+ + + +
"use strict"
+window.addEventListener("load", setupWebGL, false);
+var gl,
+  program;
+function setupWebGL (evt) {
+  window.removeEventListener(evt.type, setupWebGL, false);
+  if (!(gl = getRenderingContext()))
+    return;
+
+  var source = document.querySelector("#vertex-shader").innerHTML;
+  var vertexShader = gl.createShader(gl.VERTEX_SHADER);
+  gl.shaderSource(vertexShader,source);
+  gl.compileShader(vertexShader);
+  source = document.querySelector("#fragment-shader").innerHTML
+  var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
+  gl.shaderSource(fragmentShader,source);
+  gl.compileShader(fragmentShader);
+  program = gl.createProgram();
+  gl.attachShader(program, vertexShader);
+  gl.attachShader(program, fragmentShader);
+  gl.linkProgram(program);
+  gl.detachShader(program, vertexShader);
+  gl.detachShader(program, fragmentShader);
+  gl.deleteShader(vertexShader);
+  gl.deleteShader(fragmentShader);
+  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
+    var linkErrLog = gl.getProgramInfoLog(program);
+    cleanup();
+    document.querySelector("p").innerHTML =
+      "La liaison du programme de shader a échoué. "
+      + "Journal d'erreur : " + linkErrLog;
+    return;
+  }
+  initializeAttributes();
+  gl.useProgram(program);
+  gl.drawArrays(gl.POINTS, 0, 1);
+  cleanup();
+}
+
+var buffer;
+function initializeAttributes() {
+  gl.enableVertexAttribArray(0);
+  buffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
+  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0]), gl.STATIC_DRAW);
+  gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);
+}
+
+function cleanup() {
+gl.useProgram(null);
+if (buffer)
+  gl.deleteBuffer(buffer);
+if (program)
+  gl.deleteProgram(program);
+}
+
+ + + + + +

Le code source de cet exemple est également disponible sur GitHub.

+ +

{{PreviousNext("Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex","Apprendre/WebGL/Par_exemple/Les_textures_vidéos")}}

diff --git a/files/fr/web/api/webgl_api/by_example/une_pluie_de_rectangle/index.html b/files/fr/web/api/webgl_api/by_example/une_pluie_de_rectangle/index.html deleted file mode 100644 index e9f9bcdf8c..0000000000 --- a/files/fr/web/api/webgl_api/by_example/une_pluie_de_rectangle/index.html +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: Une pluie de rectangle -slug: Web/API/WebGL_API/By_example/Une_pluie_de_rectangle -tags: - - Apprendre - - Débutant - - Exemple - - Graphisme - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/By_example/Raining_rectangles ---- -
{{IncludeSubnav("/fr/Apprendre")}}
- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique","Apprendre/WebGL/Par_exemple/Hello_GLSL")}}

- -

Cet exemple permet de créer un jeu simple qui illustre ce qu'il est possible de faire avec du « découpage », des animations et des interactions utilisateur.

- -

{{EmbedLiveSample("Utiliser_des_animations_et_des_interactions_grâce_à_des_découpes",660,425)}}

- -

Utiliser des animations et des interactions grâce à des découpes

- -

Voici un jeu simple où il faut essayer de cliquer sur les rectangles qui tombent pour en attraper le plus possible. Dans cet exemple, on utilise un approche orientée objet pour représenter les rectangles. Cela permet de mieux gérer l'état du rectangle (sa position, sa couleur, etc.) et cela rend le code plus compact et plus facile à réutiliser.

- -

Dans cet exemple, on combine l'applique de couleurs unis dans le tampon de dessin et des opérations de découpe. C'est un aperçu d'une application graphique complète qui manipule les différentes phases des processus {{Glossary("WebGL")}} et de son automate.

- -

De plus, cet exmple illustre comment intégrer des fonctions WebGL dans une boucle de jeu. La boucle de jeu est responsable du dessin pour l'animation, de la gestion des entrées utilisateur et de la réactivité de l'ensemble. Voici comment la boucle de jeu est implémentée avec des  setTimeout.

- - - - - - - -
"use strict"
-window.addEventListener("load", setupAnimation, false);
-var gl,
-  timer,
-  rainingRect,
-  scoreDisplay,
-  missesDisplay;
-function setupAnimation (evt) {
-  window.removeEventListener(evt.type, setupAnimation, false);
-  if (!(gl = getRenderingContext()))
-    return;
-  gl.enable(gl.SCISSOR_TEST);
-
-  rainingRect = new Rectangle();
-  timer = setTimeout(drawAnimation, 17);
-  document.querySelector("canvas")
-      .addEventListener("click", playerClick, false);
-  var displays = document.querySelectorAll("strong");
-  scoreDisplay = displays[0];
-  missesDisplay = displays[1];
-}
-
-var score = 0,
-  misses = 0;
-function drawAnimation () {
-  gl.scissor(rainingRect.position[0], rainingRect.position[1],
-      rainingRect.size[0] , rainingRect.size[1]);
-  gl.clear(gl.COLOR_BUFFER_BIT);
-  rainingRect.position[1] -= rainingRect.velocity;
-  if (rainingRect.position[1] < 0) {
-    misses += 1;
-    missesDisplay.innerHTML = misses;
-    rainingRect = new Rectangle();
-  }
-  // On utilise la fonction setTimeout pour l'animation
-  // et on appelle ainsi la fonction drawAnimation toutes
-  // les 17ms, sinon, on n'aurait pas d'animation.
-  timer = setTimeout(drawAnimation, 17);
-}
-
-function playerClick (evt) {
-  // Il est nécessaire de transfomer la position de l'événement
-  // déclenché par le clic, exprimée dans le repèree de la fenêtre
-  // pour obtenir la position relative au canevas.
-  // De plus, on rappelle qu'avec WebGL les ordonnées croissent
-  // selon l'axe vertical, c'est-à-dire l'inverse du système
-  // utilisé pour la fenêtre du navigateur.
-  var position = [
-      evt.pageX - evt.target.offsetLeft,
-      gl.drawingBufferHeight - (evt.pageY - evt.target.offsetTop),
-    ];
-  // si le clic est sur un rectangle, on l'attrape.
-  // On incrémente donc le score et on crée un nouveau rectangle
-  var diffPos = [ position[0] - rainingRect.position[0],
-      position[1] - rainingRect.position[1] ];
-  if ( diffPos[0] >= 0 && diffPos[0] < rainingRect.size[0]
-      && diffPos[1] >= 0 && diffPos[1] < rainingRect.size[1] ) {
-    score += 1;
-    scoreDisplay.innerHTML = score;
-    rainingRect = new Rectangle();
-  }
-}
-
-function Rectangle () {
-  // On garde une référence au nouvel objet Rectangle
-  // plutôt que de risquer une confusion avec this.
-  var rect = this;
-  // On prend trois nombres aléatoires pour la taille
-  // et la position du nouveau rectangle. On utilise
-  // un nombre différent pour la position et la taille
-  // car on veut que celles-ci soient indépendantes.
-  var randNums = getRandomVector();
-  rect.size = [
-    5 + 120 * randNums[0],
-    5 + 120 * randNums[1]
-  ];
-  rect.position = [
-    randNums[2]*(gl.drawingBufferWidth - rect.size[0]),
-    gl.drawingBufferHeight
-  ];
-  rect.velocity = 1.0 + 6.0*Math.random();
-  rect.color = getRandomVector();
-  gl.clearColor(rect.color[0], rect.color[1], rect.color[2], 1.0);
-  function getRandomVector() {
-    return [Math.random(), Math.random(), Math.random()];
-  }
-}
-
- - - - - -

Le code source de cet exemple est également disponible sur GitHub.

- -

{{PreviousNext("Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique","Apprendre/WebGL/Par_exemple/Hello_GLSL")}}

diff --git a/files/fr/web/api/webgl_api/by_example/video_textures/index.html b/files/fr/web/api/webgl_api/by_example/video_textures/index.html new file mode 100644 index 0000000000..ab1ea5a388 --- /dev/null +++ b/files/fr/web/api/webgl_api/by_example/video_textures/index.html @@ -0,0 +1,23 @@ +--- +title: Les textures vidéos +slug: Web/API/WebGL_API/By_example/Les_textures_vidéos +tags: + - Apprendre + - Avancé + - Exemple + - Graphisme + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/By_example/Video_textures +--- +
{{draft}}{{IncludeSubnav("/fr/Apprendre")}}
+ +

{{Previous("Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

+ +

Cet exemple illustre comment utiliser des fichiers vidéos comme textures.

+ +

Des textures à partir de vidéos

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample8/index.html', 670, 510)}}

+ +

{{Previous("Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code")}}

diff --git a/files/fr/web/api/webgl_api/data/index.html b/files/fr/web/api/webgl_api/data/index.html new file mode 100644 index 0000000000..f41b0e2f1d --- /dev/null +++ b/files/fr/web/api/webgl_api/data/index.html @@ -0,0 +1,56 @@ +--- +title: Les données en WebGL +slug: Web/API/WebGL_API/Données +tags: + - 3D + - API WebGL + - Attributs + - BesoinDExemple + - BesoinDeContenu + - Graphismes + - Graphismes 3D + - Guide + - Intermédiaire + - Uniformes + - Variants + - WebGL + - dessin +translation_of: Web/API/WebGL_API/Data +--- +
{{WebGLSidebar}}{{draft}}
+ +

Les programmes shaders ont accès à trois types de stockage de données, chacun d'entre eux ayant un usage particulier. Chaque type de variable est accessible par l'un des types de programmes de shader ou par les deux (en fonction du type de stockage de données), et éventuellement, par le code JavaScript du site, suivant le type de variable particulier.

+ +

Types de données GLSL

+ +

<<documenter les types de base, les vecteurs, etc. ; voir Data Type (GLSL)  sur le wiki WebGL de Khronos >>

+ +

Variables GLSL

+ +

Il existe trois types de stockage "variable" ou de stockage de données dans GLSL, chacun ayant son propre but et ses propres cas d'utilisation : {{anch("Attributes", "attributes")}}, {{anch("Varyings", "varyings")}}, et {{anch("Uniforms", "uniforms")}}.

+ +

Attributes

+ +

Les attributes sont des variables GLSL qui ne sont disponibles que pour le shader de sommet (en tant que variables) et le code JavaScript. Les attributs sont généralement utilisés pour stocker des informations de couleur, des coordonnées de texture et toutes les autres données calculées ou récupérées qui doivent être partagées entre le code JavaScript et le shader de sommet.

+ +

<<add how to use them>>

+ +

Varyings

+ +

Les varyings sont des variables déclarées par le shader de sommet et elle sont utilisées pour transmettre des données du shader de sommet au shader de fragment. Ceci est communément utilisé pour partager un sommet {{interwiki ("wikipedia", "Normal_ (géométrie)", "vecteur normal")}} après qu'il a été calculé par le shader de sommet.

+ +

<<how to use>>

+ +

Uniforms

+ +

Les uniforms sont définis par le code JavaScript et sont disponibles à la fois pour le shader de sommet et pour celui de fragment. Ils sont utilisés pour fournir des valeurs qui seront les mêmes pour tout ce qui est dessiné dans le cadre, telles que les positions et les intensités d'éclairage, la transformation globale et les détails de la perspective, et ainsi de suite.

+ +

<<add details>>

+ +

Tampons

+ +

<<add information>>

+ +

Textures

+ +

<<add information>>

diff --git "a/files/fr/web/api/webgl_api/donn\303\251es/index.html" "b/files/fr/web/api/webgl_api/donn\303\251es/index.html" deleted file mode 100644 index f41b0e2f1d..0000000000 --- "a/files/fr/web/api/webgl_api/donn\303\251es/index.html" +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Les données en WebGL -slug: Web/API/WebGL_API/Données -tags: - - 3D - - API WebGL - - Attributs - - BesoinDExemple - - BesoinDeContenu - - Graphismes - - Graphismes 3D - - Guide - - Intermédiaire - - Uniformes - - Variants - - WebGL - - dessin -translation_of: Web/API/WebGL_API/Data ---- -
{{WebGLSidebar}}{{draft}}
- -

Les programmes shaders ont accès à trois types de stockage de données, chacun d'entre eux ayant un usage particulier. Chaque type de variable est accessible par l'un des types de programmes de shader ou par les deux (en fonction du type de stockage de données), et éventuellement, par le code JavaScript du site, suivant le type de variable particulier.

- -

Types de données GLSL

- -

<<documenter les types de base, les vecteurs, etc. ; voir Data Type (GLSL)  sur le wiki WebGL de Khronos >>

- -

Variables GLSL

- -

Il existe trois types de stockage "variable" ou de stockage de données dans GLSL, chacun ayant son propre but et ses propres cas d'utilisation : {{anch("Attributes", "attributes")}}, {{anch("Varyings", "varyings")}}, et {{anch("Uniforms", "uniforms")}}.

- -

Attributes

- -

Les attributes sont des variables GLSL qui ne sont disponibles que pour le shader de sommet (en tant que variables) et le code JavaScript. Les attributs sont généralement utilisés pour stocker des informations de couleur, des coordonnées de texture et toutes les autres données calculées ou récupérées qui doivent être partagées entre le code JavaScript et le shader de sommet.

- -

<<add how to use them>>

- -

Varyings

- -

Les varyings sont des variables déclarées par le shader de sommet et elle sont utilisées pour transmettre des données du shader de sommet au shader de fragment. Ceci est communément utilisé pour partager un sommet {{interwiki ("wikipedia", "Normal_ (géométrie)", "vecteur normal")}} après qu'il a été calculé par le shader de sommet.

- -

<<how to use>>

- -

Uniforms

- -

Les uniforms sont définis par le code JavaScript et sont disponibles à la fois pour le shader de sommet et pour celui de fragment. Ils sont utilisés pour fournir des valeurs qui seront les mêmes pour tout ce qui est dessiné dans le cadre, telles que les positions et les intensités d'éclairage, la transformation globale et les détails de la perspective, et ainsi de suite.

- -

<<add details>>

- -

Tampons

- -

<<add information>>

- -

Textures

- -

<<add information>>

diff --git a/files/fr/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html b/files/fr/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html new file mode 100644 index 0000000000..c7afe5f9ae --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html @@ -0,0 +1,307 @@ +--- +title: Ajouter du contenu à WebGL +slug: Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL +tags: + - 3D + - API WebGL + - Graphismes + - Graphismes 2D + - Graphismes 3D + - Intermédiaire + - Shaders + - Tutoriel + - WebGL + - dessin +translation_of: Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL")}}

+ +

Une fois que vous avez correctement créé un contexte WebGL, vous pouvez commencer à y dessiner. Une chose simple que nous pouvons faire est de dessiner un simple carré 2D sans texture, commençons donc par là, en construisant un code pour dessiner un carré 2D.

+ +

Dessiner la scène

+ +

La chose la plus importante à comprendre avant que nous ne commencions est que, bien que nous dessinions seulement un carré 2D dans cet exemple, nous sommes toujours en train de dessiner dans un espace 3D. Nous dessinons juste un carré et nous le mettons exactement en face de la caméra, perpendiculairement à la direction de vision. Nous avons besoin de définir les shaders qui créeront la couleur pour notre scène simple, et qui dessineront notre objet. Cela définira comment notre carré 2D apparaîtra à l'écran.

+ +

Les shaders

+ +

Un shader est un programme, écrit en utilisant le OpenGL ES Shading Language (GLSL), qui utilise les informations des sommets constituant une forme, et qui génère les données nécessaires pour faire un rendu des pixels à l'écran : nommément, les positions des pixels et leurs couleurs.

+ +

Deux fonctions de shader sont exécutées lors du dessin d'un contenu WebGL : le shader  de sommet et le shader de fragment. Vous les écrivez en GLSL et vous passez le texte du code à WebGL pour qu'il soit compilé pour exécution dans la GPU. Pris conjointement, un ensemble de shaders de sommet et de fragment sont appelés un programme shader.

+ +

Jetons un coup d'œil rapide aux deux types de shaders, en gardant présent à l'esprit l'exemple du dessin d'une forme 2D dans le contexte WebGL.

+ +

Le shader de sommet

+ +

Chaque fois qu'une forme est rendue, le shader de sommet est exécuté pour chaque sommet de la forme. Son travail consiste à effectuer les transformations souhaitées sur la position du sommet.

+ +

Les informations de position sont stockées dans une variable spéciale fournie par GLSL, appelée gl_Position.

+ +

Le shader de sommet peut, au besoin, aussi faire des choses comme déterminer les coordonnées dans la texture des faces du {{interwiki ("wikipedia", "texel")}} à appliquer au sommet, appliquer les normales pour déterminer le facteur d'éclairage à appliquer au sommet, et ainsi de suite. Ces informations peuvent alors être stockées dans des variations ou des attributs comme approprié, pour être partagées avec le shader de fragment.

+ +

Notre shader de sommet ci-dessous reçoit des valeurs de position de sommet à partir d'un attribut que nous définissons, appelé aVertexPosition. Cette position est ensuite multipliée par deux matrices 4x4 que nous fournissons, appelées uProjectionMatrix et uModelMatrix ; gl_Position est définie comme étant le résultat. Pour plus d'informations sur la projection et autres matrices, vous pourriez trouver cet article utile.

+ +
// Programme shader de sommet
+
+const vsSource = `
+  attribute vec4 aVertexPosition;
+
+  uniform mat4 uModelViewMatrix;
+  uniform mat4 uProjectionMatrix;
+
+  void main() {
+    gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
+  }
+`;
+ +

Dans cet exemple, nous ne calculons pas d'éclairage du tout, puisque nous n'en avons pas encore appliqué à la scène. Cela viendra plus tard, dans l'exemple Éclairage en WebGL. Notez également l'absence de tout travail sur les textures ici ; cela sera ajouté dans Utilisation de textures en WebGL.

+ +

Le shader de fragment

+ +

Le shader de fragment est appelé une fois pour chaque pixel de chaque forme à dessiner, une fois que les sommets de la forme ont été traités par le shader de sommet. Son travail consiste à déterminer la couleur de ce pixel en déterminant quel texel (c'est-à-dire le pixel de la texture de la forme) appliquer au pixel, à obtenir la couleur de ce texel, puis à appliquer l'éclairage approprié à la couleur. La couleur est ensuite renvoyée à la couche WebGL en la stockant dans la variable spéciale gl_FragColor. Cette couleur est alors dessinée à l'écran dans la position correcte pour le pixel correspondant de la forme.

+ +

Dans ce cas, nous retournons simplement du blanc à chaque fois, car nous sommes seulement en train de dessiner un carré blanc, sans éclairage.

+ +
  const fsSource = `
+    void main() {
+      gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+    }
+  `;
+
+ +

Initialisation des shaders

+ +

Maintenant que nous avons défini les deux shaders, nous devons les transmettre à WebGL, les compiler et les lier ensemble. Le code ci-dessous crée les deux shaders en appelant loadShader(), lui passant le type et la source du shader. Il crée alors un programme, attache les shaders et les relie ensemble. Si la compilation ou la liaison échoue, le code affiche une alerte.

+ +
//
+// Initialiser un programme shader, de façon à ce que WebGL sache comment dessiner nos données
+//
+function initShaderProgram(gl, vsSource, fsSource) {
+  const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vsSource);
+  const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fsSource);
+
+  // Créer le programme shader
+
+  const shaderProgram = gl.createProgram();
+  gl.attachShader(shaderProgram, vertexShader);
+  gl.attachShader(shaderProgram, fragmentShader);
+  gl.linkProgram(shaderProgram);
+
+  // Si la création du programme shader a échoué, alerte
+
+  if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
+    alert('Impossible d'initialiser le programme shader : ' + gl.getProgramInfoLog(shaderProgram));
+    return null;
+  }
+
+  return shaderProgram;
+}
+
+//
+// Crée un shader du type fourni, charge le source et le compile.
+//
+function loadShader(gl, type, source) {
+  const shader = gl.createShader(type);
+
+  // Envoyer le source à l'objet shader
+
+  gl.shaderSource(shader, source);
+
+  // Compiler le programme shader
+
+  gl.compileShader(shader);
+
+  // Vérifier s'il a ét compilé avec succès
+
+  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
+    alert('An error occurred compiling the shaders: ' + gl.getShaderInfoLog(shader));
+    gl.deleteShader(shader);
+    return null;
+  }
+
+  return shader;
+}
+ +

La fonction loadShader() prend en entrée le contexte WebGL, le type de shader et le code source, puis crée et compile le shader comme suit :

+ +
    +
  1. un nouveau shader est créé en appelant {{domxref("WebGLRenderingContext.createShader", "gl.createShader()")}} ;
  2. +
  3. le code source du shader est envoyé au shader en appelant {{domxref("WebGLRenderingContext.shaderSource", "gl.shaderSource()")}} ;
  4. +
  5. une fois que le shader a le code source, il est compilé en utilisant {{domxref("WebGLRenderingContext.compileShader", "gl.compileShader()")}} ;
  6. +
  7. pour vérifier que le shader a été compilé avec succès, le paramètre gl.COMPILE_STATUS du shader est vérifié ; pour obtenir sa valeur, nous appelons {{domxref("WebGLRenderingContext.getShaderParameter", "gl.getShaderParameter()")}}, en indiquant le shader et le nom du paramètre que nous voulons vérifier (gl.COMPILE_STATUS) ; si c'est false, nous savons que le shader n'a pas pu être compilé, aussi nous affichons une alerte avec les informations du journalisation obtenues du compilateur en utilisant {{domxref ("WebGLRenderingContext.getShaderInfoLog", "gl.getShaderInfoLog()")}}, puis nous supprimons le shader et nous renvoyons null pour indiquer l'échec du chargement du shader ;
  8. +
  9. si le shader a été chargé et compilé avec succès, le shader compilé est renvoyé à l'appelant.
  10. +
+ +

Pour utiliser ce code, nous l'appelons de la façon suivante :

+ +
 const shaderProgram = initShaderProgram(gl, vsSource, fsSource);
+
+ +

Après avoir créé un programme de shaders, nous devons rechercher les emplacements que WebGL a assignés à nos entrées. Dans ce cas, nous avons un attribut et deux uniformes. Les attributs reçoivent des valeurs des tampons. Chaque itération du shader des sommets reçoit la valeur suivante du tampon affecté à cet attribut. Les uniformes sont similaires aux variables globales JavaScript. Ils conservent la même valeur pour toutes les itérations d'un shader. Du fait que les attributs et les emplacements des uniformes sont spécifiques à un programme de shader donné, nous les stockerons ensemble pour les rendre plus faciles à transmettre.

+ +
  const programInfo = {
+    program: shaderProgram,
+    attribLocations: {
+      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
+    },
+    uniformLocations: {
+      projectionMatrix: gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),
+      modelViewMatrix: gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),
+    },
+  };
+
+ +

Création du carré 2D

+ +

Avant de pouvoir faire un rendu de notre carré 2D, nous devons créer le tampon qui contiendra les positions de ses sommets et y placer les positions des sommets. Nous ferons cela en utilisant une fonction que nous appelerons initBuffers() ; à mesure que nous explorerons des concepts WebGL plus avancés, cette routine sera augmentée pour créer plus d'objets 3D, et plus complexes.

+ +
function initBuffers(gl) {
+
+  // Créer un tampon des positions pour le carré.
+
+  const positionBuffer = gl.createBuffer();
+
+  // Définir le positionBuffer comme étant celui auquel appliquer les opérations
+  // de tampon à partir d'ici.
+
+  gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
+
+  // Créer maintenant un tableau des positions pour le carré.
+
+  const positions = [
+     1.0,  1.0,
+    -1.0,  1.0,
+     1.0, -1.0,
+    -1.0, -1.0,
+  ];
+
+  // Passer mainenant la liste des positions à WebGL pour construire la forme.
+  // Nous faisons cela en créant un Float32Array à partir du tableau JavaScript,
+  // puis en l'utilisant pour remplir le tampon en cours.
+
+  gl.bufferData(gl.ARRAY_BUFFER,
+                new Float32Array(positions),
+                gl.STATIC_DRAW);
+
+  return {
+    position: positionBuffer,
+  };
+}
+ +

Cette routine est assez simpliste du fait de la nature basique de la scène dans cet exemple. Elle commence par appeler la méthode {{domxref ("WebGLRenderingContext.createBuffer()", "createBuffer()")}} de l'objet gl pour obtenir un tampon dans lequel nous stockerons les positions des sommets. Ce dernier est ensuite lié au contexte en appelant la méthode {{domxref ("WebGLRenderingContext.bindBuffer()", "bindBuffer()")}}.

+ +

Une fois que cela est fait, nous créons un tableau JavaScript contenant la position de chaque sommet du carré 2D. Ce dernier est ensuite converti en un tableau de flottants et transmis à la méthode {{domxref ("WebGLRenderingContext.bufferData()", "bufferData()")}} de l'objet gl pour définir les positions des sommets de l'objet.

+ +

Rendu de la scène

+ +

Une fois que les shaders sont définis, que les emplacements sont retrouvés, et que les positions des sommets du carré 2D sont stockées dans le tampon, nous pouvons faire effectivement le rendu de la scène. Puisque nous n'animons rien dans cet exemple, notre fonction drawScene() est très simple. Elle utilise quelques routines utilitaires que nous décrirons sous peu.

+ +
+

Vous pourriez obtenir une erreur JavaScript indiquant "mat4 n'est pas défini". Cela signifie qu'il existe une dépendance à glmatrix. Vous pouvez inclure gl-matrix.js pour résoudre ce problème, comme suggéré ici.

+
+ +
function drawScene(gl, programInfo, buffers) {
+  gl.clearColor(0.0, 0.0, 0.0, 1.0);  // effacement en noir, complètement opaque
+  gl.clearDepth(1.0);                 // tout effacer
+  gl.enable(gl.DEPTH_TEST);           // activer le test de profondeur
+  gl.depthFunc(gl.LEQUAL);            // les choses proches cachent les choses lointaines
+
+  // Effacer le canevas avant que nous ne commencions à dessiner dessus.
+
+  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+
+  // Créer une matrice de perspective, une matrice spéciale qui est utilisée pour
+  // simuler la distorsion de la perspective dans une caméra.
+  // Notre champ de vision est de 45 degrés, avec un rapport largeur/hauteur qui
+  // correspond à la taille d'affichage du canvas ;
+  // et nous voulons seulement voir les objets situés entre 0,1 unité et 100 unités
+  // à partir de la caméra.
+
+  const fieldOfView = 45 * Math.PI / 180;   // en radians
+  const aspect = gl.canvas.clientWidth / gl.canvas.clientHeight;
+  const zNear = 0.1;
+  const zFar = 100.0;
+  const projectionMatrix = mat4.create();
+
+  // note: glmatrix.js a toujours comme premier argument la destination
+  // où stocker le résultat.
+  mat4.perspective(projectionMatrix,
+                   fieldOfView,
+                   aspect,
+                   zNear,
+                   zFar);
+
+  // Définir la position de dessin comme étant le point "origine", qui est
+  // le centre de la scène.
+  const modelViewMatrix = mat4.create();
+
+  // Commencer maintenant à déplacer la position de dessin un peu vers là où
+  // nous voulons commencer à dessiner le carré.
+
+  mat4.translate(modelViewMatrix,     // matrice de destination
+                 modelViewMatrix,     // matrice de déplacement
+                 [-0.0, 0.0, -6.0]);  // quantité de déplacement
+
+  // Indiquer à WebGL comment extraire les positions à partir du tampon des
+  // positions pour les mettre dans l'attribut vertexPosition.
+  {
+    const numComponents = 2;  // extraire 2 valeurs par itération
+    const type = gl.FLOAT;    // les données dans le tampon sont des flottants 32bit
+    const normalize = false;  // ne pas normaliser
+    const stride = 0;         // combien d'octets à extraire entre un jeu de valeurs et le suivant
+                              // 0 = utiliser le type et numComponents ci-dessus
+    const offset = 0;         // démarrer à partir de combien d'octets dans le tampon
+    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
+    gl.vertexAttribPointer(
+        programInfo.attribLocations.vertexPosition,
+        numComponents,
+        type,
+        normalize,
+        stride,
+        offset);
+    gl.enableVertexAttribArray(
+        programInfo.attribLocations.vertexPosition);
+  }
+
+  // Indiquer à WebGL d'utiliser notre programme pour dessiner
+
+  gl.useProgram(programInfo.program);
+
+  // Définir les uniformes du shader
+
+  gl.uniformMatrix4fv(
+      programInfo.uniformLocations.projectionMatrix,
+      false,
+      projectionMatrix);
+  gl.uniformMatrix4fv(
+      programInfo.uniformLocations.modelViewMatrix,
+      false,
+      modelViewMatrix);
+
+  {
+    const offset = 0;
+    const vertexCount = 4;
+    gl.drawArrays(gl.TRIANGLE_STRIP, offset, vertexCount);
+  }
+}
+ +

La première étape consiste à effacer le canevas avec notre arrière plan ; ensuite, nous établissons la perspective de la caméra. Nous définissons un champ de vision de 45°, avec un rapport largeur sur hauteur qui correspond aux dimensions d'affichage de notre canevas. Nous indiquons également que seuls les objets situés entre 0,1 et 100 unités à partir de la caméra doivent être rendus.

+ +

Ensuite, nous établissons la position du carré 2D en chargeant la position de l'origine et en nous déplaçant de 6 unités à partir de la caméra. Après cela, nous lions le tampon des sommets du carré à l'attribut que le shader utilise comme aVertexPosition et nous indiquons à WebGL comment en extraire les données. Enfin, nous dessinons l'objet en appelant la méthode {{domxref ("WebGLRenderingContext.drawArrays()", "drawArrays()")}}.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample2/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

Opérations utilitaires matricielles

+ +

Les opérations matricielles peuvent sembler compliquées, mais elles sont en fait assez simples si vous en prenez une à la fois. En général, les gens utilisent une bibliothèque matricielle plutôt que d'écrire la leur. Dans notre cas, nous utilisons la bibliothèque populaire glMatrix.

+ +

Voir aussi :

+ + + +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/ajouter_des_couleurs_avec_les_shaders/index.html b/files/fr/web/api/webgl_api/tutorial/ajouter_des_couleurs_avec_les_shaders/index.html deleted file mode 100644 index 2bd786c015..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/ajouter_des_couleurs_avec_les_shaders/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Ajouter des couleurs avec les nuanceurs -slug: Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders -tags: - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context", "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL")}}

- -

Dans la démonstration précédente, nous avons créé un carré 2D, la prochaine étape évidente consiste à lui appliquer de la couleur. Nous allons faire cela en révisant les nuanceurs.

- -

Application de couleur aux sommets

- -

En WebGL, les objets sont construits en utilisant des sommets, chacun d'entre eux ayant une position et une couleur ; par défaut, les couleurs des autres sommets (et tous leurs autres attributs, incluant leur position) sont calculés en utilisant une interpolation linéaire, créant ainsi automatiquement des dégradés. Précédemment, notre nuanceur de sommet n'appliquait aucunes couleurs spécifiques aux sommets ; entre cela et le fait que le nuanceur de fragment assignait la valeur blanche à chaque pixel, le carré entier était rendu en blanc uni.

- -

Supposons que nous voulions faire un rendu en dégradé dans lequel chaque coin du carré est de couleur différente : rouge, bleu, vert et blanc. La première chose à faire est de définir ces couleurs pour les quatre sommets. Pour ce faire, nous devons d'abord créer un tableau des couleurs des sommets, puis le stocker dans un tampon WebGL ; nous le ferons en ajoutant le code suivant à notre fonction initBuffers() :

- -
  const colors = [
-    1.0,  1.0,  1.0,  1.0,    // blanc
-    1.0,  0.0,  0.0,  1.0,    // rouge
-    0.0,  1.0,  0.0,  1.0,    // vert
-    0.0,  0.0,  1.0,  1.0,    // bleu
-  ];
-
-  const colorBuffer = gl.createBuffer();
-  gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
-  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
-
-  return {
-    position: positionBuffer,
-    color: colorBuffer,
-  };
-}
- -

Ce code commence par créer un tableau JavaScript contenant des vecteurs à 4 valeurs, un pour chaque couleur de sommet. Un tampon WebGL est alors alloué pour stocker ces couleurs, et le tableau est converti en flottants et stocké dans le tampon.

- -

Pour que ces couleurs soient effectivement utilisées, le nuanceur de sommet doit être mis à jour pour extraire la couleur appropriée du tampon des couleurs :

- -
  const vsSource = `
-    attribute vec4 aVertexPosition;
-    attribute vec4 aVertexColor;
-
-    uniform mat4 uModelViewMatrix;
-    uniform mat4 uProjectionMatrix;
-
-    varying lowp vec4 vColor;
-
-    void main(void) {
-      gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
-      vColor = aVertexColor;
-    }
-  `;
- -

La différence clé est ici que, pour chaque sommet, nous passons sa couleur au nuanceur de fragment en utilisant un varying.

- -

Coloriage des fragments

- -

Pour mémoire, voici à quoi ressemblait précédemment notre nuanceur de fragment :

- -
  const fsSource = `
-    void main() {
-      gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
-    }
-  `;
- -

Afin de choisir la couleur interpolée pour chaque pixel, nous devons le changer pour récupérer la valeur depuis le varying vColor :

- -
  const fsSource = `
-    varying lowp vec4 vColor;
-
-    void main(void) {
-      gl_FragColor = vColor;
-    }
-  `;
- -

La principale différence ici c'est que pour chaque sommet, on assigne la valeur correspondant à sa couleur dans le tableau.

- -

Dessiner en utilisant les couleurs

- -

Ensuite, il est nécessaire d'ajouter le code recherchant les couleurs dans l'emplacement de l'attribut, et de configurer cet attribut pour le programme nuanceur :

- -
  const programInfo = {
-    program: shaderProgram,
-    attribLocations: {
-      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
-      vertexColor: gl.getAttribLocation(shaderProgram, 'aVertexColor'),
-    },
-    ...
- -

Ensuite, drawScene() peut être modifié pour utiliser réellement ces couleurs lors du dessin du carré :

- -
  // Indiquer à WebGL comment transférer les couleurs du tampon des couleurs
-  // dans l'attribut vertexColor.
-  {
-    const numComponents = 4;
-    const type = gl.FLOAT;
-    const normalize = false;
-    const stride = 0;
-    const offset = 0;
-    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
-    gl.vertexAttribPointer(
-        programInfo.attribLocations.vertexColor,
-        numComponents,
-        type,
-        normalize,
-        stride,
-        offset);
-    gl.enableVertexAttribArray(
-        programInfo.attribLocations.vertexColor);
-  }
- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample3/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context", "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL")}}

diff --git "a/files/fr/web/api/webgl_api/tutorial/ajouter_du_contenu_\303\240_webgl/index.html" "b/files/fr/web/api/webgl_api/tutorial/ajouter_du_contenu_\303\240_webgl/index.html" deleted file mode 100644 index c7afe5f9ae..0000000000 --- "a/files/fr/web/api/webgl_api/tutorial/ajouter_du_contenu_\303\240_webgl/index.html" +++ /dev/null @@ -1,307 +0,0 @@ ---- -title: Ajouter du contenu à WebGL -slug: Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -tags: - - 3D - - API WebGL - - Graphismes - - Graphismes 2D - - Graphismes 3D - - Intermédiaire - - Shaders - - Tutoriel - - WebGL - - dessin -translation_of: Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL")}}

- -

Une fois que vous avez correctement créé un contexte WebGL, vous pouvez commencer à y dessiner. Une chose simple que nous pouvons faire est de dessiner un simple carré 2D sans texture, commençons donc par là, en construisant un code pour dessiner un carré 2D.

- -

Dessiner la scène

- -

La chose la plus importante à comprendre avant que nous ne commencions est que, bien que nous dessinions seulement un carré 2D dans cet exemple, nous sommes toujours en train de dessiner dans un espace 3D. Nous dessinons juste un carré et nous le mettons exactement en face de la caméra, perpendiculairement à la direction de vision. Nous avons besoin de définir les shaders qui créeront la couleur pour notre scène simple, et qui dessineront notre objet. Cela définira comment notre carré 2D apparaîtra à l'écran.

- -

Les shaders

- -

Un shader est un programme, écrit en utilisant le OpenGL ES Shading Language (GLSL), qui utilise les informations des sommets constituant une forme, et qui génère les données nécessaires pour faire un rendu des pixels à l'écran : nommément, les positions des pixels et leurs couleurs.

- -

Deux fonctions de shader sont exécutées lors du dessin d'un contenu WebGL : le shader  de sommet et le shader de fragment. Vous les écrivez en GLSL et vous passez le texte du code à WebGL pour qu'il soit compilé pour exécution dans la GPU. Pris conjointement, un ensemble de shaders de sommet et de fragment sont appelés un programme shader.

- -

Jetons un coup d'œil rapide aux deux types de shaders, en gardant présent à l'esprit l'exemple du dessin d'une forme 2D dans le contexte WebGL.

- -

Le shader de sommet

- -

Chaque fois qu'une forme est rendue, le shader de sommet est exécuté pour chaque sommet de la forme. Son travail consiste à effectuer les transformations souhaitées sur la position du sommet.

- -

Les informations de position sont stockées dans une variable spéciale fournie par GLSL, appelée gl_Position.

- -

Le shader de sommet peut, au besoin, aussi faire des choses comme déterminer les coordonnées dans la texture des faces du {{interwiki ("wikipedia", "texel")}} à appliquer au sommet, appliquer les normales pour déterminer le facteur d'éclairage à appliquer au sommet, et ainsi de suite. Ces informations peuvent alors être stockées dans des variations ou des attributs comme approprié, pour être partagées avec le shader de fragment.

- -

Notre shader de sommet ci-dessous reçoit des valeurs de position de sommet à partir d'un attribut que nous définissons, appelé aVertexPosition. Cette position est ensuite multipliée par deux matrices 4x4 que nous fournissons, appelées uProjectionMatrix et uModelMatrix ; gl_Position est définie comme étant le résultat. Pour plus d'informations sur la projection et autres matrices, vous pourriez trouver cet article utile.

- -
// Programme shader de sommet
-
-const vsSource = `
-  attribute vec4 aVertexPosition;
-
-  uniform mat4 uModelViewMatrix;
-  uniform mat4 uProjectionMatrix;
-
-  void main() {
-    gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
-  }
-`;
- -

Dans cet exemple, nous ne calculons pas d'éclairage du tout, puisque nous n'en avons pas encore appliqué à la scène. Cela viendra plus tard, dans l'exemple Éclairage en WebGL. Notez également l'absence de tout travail sur les textures ici ; cela sera ajouté dans Utilisation de textures en WebGL.

- -

Le shader de fragment

- -

Le shader de fragment est appelé une fois pour chaque pixel de chaque forme à dessiner, une fois que les sommets de la forme ont été traités par le shader de sommet. Son travail consiste à déterminer la couleur de ce pixel en déterminant quel texel (c'est-à-dire le pixel de la texture de la forme) appliquer au pixel, à obtenir la couleur de ce texel, puis à appliquer l'éclairage approprié à la couleur. La couleur est ensuite renvoyée à la couche WebGL en la stockant dans la variable spéciale gl_FragColor. Cette couleur est alors dessinée à l'écran dans la position correcte pour le pixel correspondant de la forme.

- -

Dans ce cas, nous retournons simplement du blanc à chaque fois, car nous sommes seulement en train de dessiner un carré blanc, sans éclairage.

- -
  const fsSource = `
-    void main() {
-      gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
-    }
-  `;
-
- -

Initialisation des shaders

- -

Maintenant que nous avons défini les deux shaders, nous devons les transmettre à WebGL, les compiler et les lier ensemble. Le code ci-dessous crée les deux shaders en appelant loadShader(), lui passant le type et la source du shader. Il crée alors un programme, attache les shaders et les relie ensemble. Si la compilation ou la liaison échoue, le code affiche une alerte.

- -
//
-// Initialiser un programme shader, de façon à ce que WebGL sache comment dessiner nos données
-//
-function initShaderProgram(gl, vsSource, fsSource) {
-  const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vsSource);
-  const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fsSource);
-
-  // Créer le programme shader
-
-  const shaderProgram = gl.createProgram();
-  gl.attachShader(shaderProgram, vertexShader);
-  gl.attachShader(shaderProgram, fragmentShader);
-  gl.linkProgram(shaderProgram);
-
-  // Si la création du programme shader a échoué, alerte
-
-  if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
-    alert('Impossible d'initialiser le programme shader : ' + gl.getProgramInfoLog(shaderProgram));
-    return null;
-  }
-
-  return shaderProgram;
-}
-
-//
-// Crée un shader du type fourni, charge le source et le compile.
-//
-function loadShader(gl, type, source) {
-  const shader = gl.createShader(type);
-
-  // Envoyer le source à l'objet shader
-
-  gl.shaderSource(shader, source);
-
-  // Compiler le programme shader
-
-  gl.compileShader(shader);
-
-  // Vérifier s'il a ét compilé avec succès
-
-  if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
-    alert('An error occurred compiling the shaders: ' + gl.getShaderInfoLog(shader));
-    gl.deleteShader(shader);
-    return null;
-  }
-
-  return shader;
-}
- -

La fonction loadShader() prend en entrée le contexte WebGL, le type de shader et le code source, puis crée et compile le shader comme suit :

- -
    -
  1. un nouveau shader est créé en appelant {{domxref("WebGLRenderingContext.createShader", "gl.createShader()")}} ;
  2. -
  3. le code source du shader est envoyé au shader en appelant {{domxref("WebGLRenderingContext.shaderSource", "gl.shaderSource()")}} ;
  4. -
  5. une fois que le shader a le code source, il est compilé en utilisant {{domxref("WebGLRenderingContext.compileShader", "gl.compileShader()")}} ;
  6. -
  7. pour vérifier que le shader a été compilé avec succès, le paramètre gl.COMPILE_STATUS du shader est vérifié ; pour obtenir sa valeur, nous appelons {{domxref("WebGLRenderingContext.getShaderParameter", "gl.getShaderParameter()")}}, en indiquant le shader et le nom du paramètre que nous voulons vérifier (gl.COMPILE_STATUS) ; si c'est false, nous savons que le shader n'a pas pu être compilé, aussi nous affichons une alerte avec les informations du journalisation obtenues du compilateur en utilisant {{domxref ("WebGLRenderingContext.getShaderInfoLog", "gl.getShaderInfoLog()")}}, puis nous supprimons le shader et nous renvoyons null pour indiquer l'échec du chargement du shader ;
  8. -
  9. si le shader a été chargé et compilé avec succès, le shader compilé est renvoyé à l'appelant.
  10. -
- -

Pour utiliser ce code, nous l'appelons de la façon suivante :

- -
 const shaderProgram = initShaderProgram(gl, vsSource, fsSource);
-
- -

Après avoir créé un programme de shaders, nous devons rechercher les emplacements que WebGL a assignés à nos entrées. Dans ce cas, nous avons un attribut et deux uniformes. Les attributs reçoivent des valeurs des tampons. Chaque itération du shader des sommets reçoit la valeur suivante du tampon affecté à cet attribut. Les uniformes sont similaires aux variables globales JavaScript. Ils conservent la même valeur pour toutes les itérations d'un shader. Du fait que les attributs et les emplacements des uniformes sont spécifiques à un programme de shader donné, nous les stockerons ensemble pour les rendre plus faciles à transmettre.

- -
  const programInfo = {
-    program: shaderProgram,
-    attribLocations: {
-      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
-    },
-    uniformLocations: {
-      projectionMatrix: gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),
-      modelViewMatrix: gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),
-    },
-  };
-
- -

Création du carré 2D

- -

Avant de pouvoir faire un rendu de notre carré 2D, nous devons créer le tampon qui contiendra les positions de ses sommets et y placer les positions des sommets. Nous ferons cela en utilisant une fonction que nous appelerons initBuffers() ; à mesure que nous explorerons des concepts WebGL plus avancés, cette routine sera augmentée pour créer plus d'objets 3D, et plus complexes.

- -
function initBuffers(gl) {
-
-  // Créer un tampon des positions pour le carré.
-
-  const positionBuffer = gl.createBuffer();
-
-  // Définir le positionBuffer comme étant celui auquel appliquer les opérations
-  // de tampon à partir d'ici.
-
-  gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
-
-  // Créer maintenant un tableau des positions pour le carré.
-
-  const positions = [
-     1.0,  1.0,
-    -1.0,  1.0,
-     1.0, -1.0,
-    -1.0, -1.0,
-  ];
-
-  // Passer mainenant la liste des positions à WebGL pour construire la forme.
-  // Nous faisons cela en créant un Float32Array à partir du tableau JavaScript,
-  // puis en l'utilisant pour remplir le tampon en cours.
-
-  gl.bufferData(gl.ARRAY_BUFFER,
-                new Float32Array(positions),
-                gl.STATIC_DRAW);
-
-  return {
-    position: positionBuffer,
-  };
-}
- -

Cette routine est assez simpliste du fait de la nature basique de la scène dans cet exemple. Elle commence par appeler la méthode {{domxref ("WebGLRenderingContext.createBuffer()", "createBuffer()")}} de l'objet gl pour obtenir un tampon dans lequel nous stockerons les positions des sommets. Ce dernier est ensuite lié au contexte en appelant la méthode {{domxref ("WebGLRenderingContext.bindBuffer()", "bindBuffer()")}}.

- -

Une fois que cela est fait, nous créons un tableau JavaScript contenant la position de chaque sommet du carré 2D. Ce dernier est ensuite converti en un tableau de flottants et transmis à la méthode {{domxref ("WebGLRenderingContext.bufferData()", "bufferData()")}} de l'objet gl pour définir les positions des sommets de l'objet.

- -

Rendu de la scène

- -

Une fois que les shaders sont définis, que les emplacements sont retrouvés, et que les positions des sommets du carré 2D sont stockées dans le tampon, nous pouvons faire effectivement le rendu de la scène. Puisque nous n'animons rien dans cet exemple, notre fonction drawScene() est très simple. Elle utilise quelques routines utilitaires que nous décrirons sous peu.

- -
-

Vous pourriez obtenir une erreur JavaScript indiquant "mat4 n'est pas défini". Cela signifie qu'il existe une dépendance à glmatrix. Vous pouvez inclure gl-matrix.js pour résoudre ce problème, comme suggéré ici.

-
- -
function drawScene(gl, programInfo, buffers) {
-  gl.clearColor(0.0, 0.0, 0.0, 1.0);  // effacement en noir, complètement opaque
-  gl.clearDepth(1.0);                 // tout effacer
-  gl.enable(gl.DEPTH_TEST);           // activer le test de profondeur
-  gl.depthFunc(gl.LEQUAL);            // les choses proches cachent les choses lointaines
-
-  // Effacer le canevas avant que nous ne commencions à dessiner dessus.
-
-  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
-
-  // Créer une matrice de perspective, une matrice spéciale qui est utilisée pour
-  // simuler la distorsion de la perspective dans une caméra.
-  // Notre champ de vision est de 45 degrés, avec un rapport largeur/hauteur qui
-  // correspond à la taille d'affichage du canvas ;
-  // et nous voulons seulement voir les objets situés entre 0,1 unité et 100 unités
-  // à partir de la caméra.
-
-  const fieldOfView = 45 * Math.PI / 180;   // en radians
-  const aspect = gl.canvas.clientWidth / gl.canvas.clientHeight;
-  const zNear = 0.1;
-  const zFar = 100.0;
-  const projectionMatrix = mat4.create();
-
-  // note: glmatrix.js a toujours comme premier argument la destination
-  // où stocker le résultat.
-  mat4.perspective(projectionMatrix,
-                   fieldOfView,
-                   aspect,
-                   zNear,
-                   zFar);
-
-  // Définir la position de dessin comme étant le point "origine", qui est
-  // le centre de la scène.
-  const modelViewMatrix = mat4.create();
-
-  // Commencer maintenant à déplacer la position de dessin un peu vers là où
-  // nous voulons commencer à dessiner le carré.
-
-  mat4.translate(modelViewMatrix,     // matrice de destination
-                 modelViewMatrix,     // matrice de déplacement
-                 [-0.0, 0.0, -6.0]);  // quantité de déplacement
-
-  // Indiquer à WebGL comment extraire les positions à partir du tampon des
-  // positions pour les mettre dans l'attribut vertexPosition.
-  {
-    const numComponents = 2;  // extraire 2 valeurs par itération
-    const type = gl.FLOAT;    // les données dans le tampon sont des flottants 32bit
-    const normalize = false;  // ne pas normaliser
-    const stride = 0;         // combien d'octets à extraire entre un jeu de valeurs et le suivant
-                              // 0 = utiliser le type et numComponents ci-dessus
-    const offset = 0;         // démarrer à partir de combien d'octets dans le tampon
-    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.position);
-    gl.vertexAttribPointer(
-        programInfo.attribLocations.vertexPosition,
-        numComponents,
-        type,
-        normalize,
-        stride,
-        offset);
-    gl.enableVertexAttribArray(
-        programInfo.attribLocations.vertexPosition);
-  }
-
-  // Indiquer à WebGL d'utiliser notre programme pour dessiner
-
-  gl.useProgram(programInfo.program);
-
-  // Définir les uniformes du shader
-
-  gl.uniformMatrix4fv(
-      programInfo.uniformLocations.projectionMatrix,
-      false,
-      projectionMatrix);
-  gl.uniformMatrix4fv(
-      programInfo.uniformLocations.modelViewMatrix,
-      false,
-      modelViewMatrix);
-
-  {
-    const offset = 0;
-    const vertexCount = 4;
-    gl.drawArrays(gl.TRIANGLE_STRIP, offset, vertexCount);
-  }
-}
- -

La première étape consiste à effacer le canevas avec notre arrière plan ; ensuite, nous établissons la perspective de la caméra. Nous définissons un champ de vision de 45°, avec un rapport largeur sur hauteur qui correspond aux dimensions d'affichage de notre canevas. Nous indiquons également que seuls les objets situés entre 0,1 et 100 unités à partir de la caméra doivent être rendus.

- -

Ensuite, nous établissons la position du carré 2D en chargeant la position de l'origine et en nous déplaçant de 6 unités à partir de la caméra. Après cela, nous lions le tampon des sommets du carré à l'attribut que le shader utilise comme aVertexPosition et nous indiquons à WebGL comment en extraire les données. Enfin, nous dessinons l'objet en appelant la méthode {{domxref ("WebGLRenderingContext.drawArrays()", "drawArrays()")}}.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample2/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

Opérations utilitaires matricielles

- -

Les opérations matricielles peuvent sembler compliquées, mais elles sont en fait assez simples si vous en prenez une à la fois. En général, les gens utilisent une bibliothèque matricielle plutôt que d'écrire la leur. Dans notre cas, nous utilisons la bibliothèque populaire glMatrix.

- -

Voir aussi :

- - - -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/animating_objects_with_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/animating_objects_with_webgl/index.html new file mode 100644 index 0000000000..534d6ef995 --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/animating_objects_with_webgl/index.html @@ -0,0 +1,59 @@ +--- +title: Animer des objets avec WebGL +slug: Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL +tags: + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL", "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL") }}

+ +

Dans cet exemple, nous allons faire tourner notre carré 2D.

+ +

Faire tourner le carré

+ +

Commençons par faire tourner le carré. La première chose dont nous avons besoin est une variable pour mémoriser la rotation courante du carré :

+ +
var squareRotation = 0.0;
+
+ +

Maintenant, nous devons modifier la fonction drawScene() pour appliquer la rotation courante du carré quand on le dessine. Après déplacement à la position de dessin initiale du carré, nous appliquons la rotation comme suit :  

+ +
  mat4.rotate(modelViewMatrix,  // matrice de destination
+              modelViewMatrix,  // matrice de rotation
+              squareRotation,   // rotation en radians
+              [0, 0, 1]);       // axe autour duquel tourner
+ +

Ceci fait tourner la modelViewMatrix de la valeur courante de squareRotation, autour de l'axe Z.

+ +

Pour réaliser effectivement l'animation, nous avons besoin d'ajouter du code qui change la valeur de squareRotation au fil du temps. Nous pouvons faire cela en créant une nouvelle variable pour mémoriser l'instant auquel nous avons réalisé l'animation pour la dernière fois (appelons le then), puis en ajoutant le code suivant à la fin de la fonction principale :

+ +
var then = 0;
+
+// Dessiner la scène répétitivement
+function render(now) {
+  now *= 0.001;  // conversion en secondes
+  const deltaTime = now - then;
+  then = now;
+
+  drawScene(gl, programInfo, buffers, deltaTime);
+
+  requestAnimationFrame(render);
+}
+requestAnimationFrame(render);
+ +

Ce code utilise requestAnimationFrame pour demander au navigateur d'appeler la fonction "render" à chaque image. requestAnimationFrame nous transmet le temps en millisecondes depuis le chargement de la page. Nous le convertissons en secondes, puis nous lui soustrayons le dernier instant pour calculer deltaTime, qui est le nombre de secondes depuis le rendu de la dernière image. À la fin de drawscene, nous ajoutons le code pour mettre à jour squareRotation.

+ +
  squareRotation += deltaTime;
+ +

Ce code utilise le laps de temps qui s'est écoulé depuis la dernière fois que nous avons mis à jour la valeur squareRotation pour déterminer de combien faire tourner le carré.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample4/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL", "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL") }}

+ +

 

+ +

 

diff --git a/files/fr/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html new file mode 100644 index 0000000000..1c9efb8966 --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html @@ -0,0 +1,144 @@ +--- +title: Animation de textures en WebGL +slug: Web/API/WebGL_API/Tutorial/Animation_de_textures_en_WebGL +tags: + - Media + - Tutoriel + - Video + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL +--- +

{{WebGLSidebar("Tutorial") }} {{Previous("Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

+ +

Dans cette démonstration, nous construisons sur l'exemple précédent en remplaçant nos textures statiques par les images d'un fichier vidéo mp4 en cours de lecture. C'est en fait assez facile à faire, mais c'est amusant à regarder, alors commençons. Un code similaire peut être réalisé pour utiliser n'importe quel type de données (comme un {{HTMLElement ("canvas")}}) comme source pour vos textures..

+ +

Accéder à la vidéo

+ +

La première étape consiste à créer l'élément {{HTMLElement("video")}} que nous utiliserons pour récupérer les images vidéo :

+ +
// sera mis à true quand la vidéo pourra être copiée dans la texture
+var copierVideo = false;
+
+function configurerVideo(url) {
+  const video = document.createElement('video');
+
+  var playing = false;
+  var timeupdate = false;
+
+  video.autoplay = true;
+  video.muted = true;
+  video.loop = true;
+
+  // Le fait d'attendre ces 2 évènements assure
+  // qu'il y a des données dans la vidéo
+
+  video.addEventListener('playing', function() {
+     playing = true;
+     verifierPret();
+  }, true);
+
+  video.addEventListener('timeupdate', function() {
+     timeupdate = true;
+     verifierPret();
+  }, true);
+
+  video.src = url;
+  video.play();
+
+  function verifierPret() {
+    if (playing && timeupdate) {
+      copierVideo = true;
+    }
+  }
+
+  return video;
+}
+
+ +

D'abord, nous créons un élément vidéo. Nous le mettons en lecture automatique, nous coupons le son et nous faisons tourner la vidéo en boucle. Nous configurons ensuite 2 événements pour voir que la vidéo est en cours de lecture et que le temps a été mis à jour. Nous avons besoin de ces deux vérifications, car c'est une erreur que d'essayer de télécharger sur WebGL une vidéo qui n'a pas encore de données disponibles. La vérification de ces deux événements garantit que des données sont disponibles et que l'on peut démarrer en toute sécurité le chargement de la vidéo dans une texture WebGL. Dans le code ci-dessus, nous vérifions si nous avons reçu ces deux événements et si c'est le cas, nous mettons une variable globale, copierVideo, à true pour nous dire qu'il est possible de commencer à copier la vidéo dans une texture.

+ +

Et enfin, nous définissons l'attribut src pour commencer, et nous appelons play pour démarrer le chargement et la lecture de la vidéo.

+ +

Utilisation des images vidéo comme texture

+ +

La prochaine modification porte sur initTexture(), qui devient beaucoup plus simple, car elle n'a plus besoin de charger un fichier image. A la place, tout ce qu'elle fait est de créer un objet texture vide, d'y mettre un unique pixel et de définir son filtrage pour une utilisation ultérieure :

+ +
function initTexture(gl, url) {
+  const texture = gl.createTexture();
+  gl.bindTexture(gl.TEXTURE_2D, texture);
+
+  // Parce que la vidéo doit être téléchargée depuis sur Internet,
+  // cela peut prendre un certain temps jusqu'à ce qu'elle soit prête, donc
+  // mettre un seul pixel dans la texture, de façon à ce que nous puissions
+  // l'utiliser immédiatement.
+  const niveau = 0;
+  const formatInterne = gl.RGBA;
+  const largeur = 1;
+  const hauteur = 1;
+  const bordure = 0;
+  const formatSrc = gl.RGBA;
+  const typeSrc = gl.UNSIGNED_BYTE;
+  const pixel = new Uint8Array([0, 0, 255, 255]);  // bleu opaque
+  gl.texImage2D(gl.TEXTURE_2D, niveau, formatInterne,
+                largeur, hauteur, bordure, formatSrc, typeSrc,
+                pixel);
+
+  // Désactiver mips et définir l'emballage comme accroché au bord afin qu'il
+  // fonctionne indépendamment des dimensions de la vidéo.
+  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
+
+  return texture;
+}
+
+ +
Voici à quoi ressemble la fonction mettreAJourTexture() ; c'est là où le vrai travail est fait :
+ +
function mettreAJourTexture(gl, texture, video) {
+  const niveau = 0;
+  const formatInterne = gl.RGBA;
+  const formatSrc = gl.RGBA;
+  const typeSrc = gl.UNSIGNED_BYTE;
+  gl.bindTexture(gl.TEXTURE_2D, texture);
+  gl.texImage2D(gl.TEXTURE_2D, niveau, formatInterne,
+                formatSrc, typeSrc, video);
+}
+
+ +

Vous avez déjà vu ce code. Il est presque identique à la fonction onload de l'image dans l'exemple précédent, sauf quand nous appellons texImage2D(), au lieu de passer un objet Image, nous passons l'élément {{HTMLElement ("video")}}. WebGL sait comment extraire l'image en cours et l'utiliser comme texture.

+ +

Si copierVideo est true, alors mettreAJourTexture() est appelé à chaque fois juste avant que nous appellions la fonction dessinerScene().

+ +
  var alors = 0;
+
+  // Dessiner la scène répétitivement
+  function dessiner(maintenant) {
+    maintenant *= 0.001;  // convertir en seconds
+    const ecartTemps = maintenant - alors;
+    alors = maintenant;
+
+    if (copierVideo) {
+      mettreAJourTexture(gl, texture, video);
+    }
+
+    dessinerScene(gl, programInfo, buffers, texture, ecartTemps);
+
+    requestAnimationFrame(dessiner);
+  }
+  requestAnimationFrame(dessiner);
+
+ +

C'est tout pour ce qu'il y a à faire pour cela !

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample8/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

Voir aussi

+ + + +

{{Previous("Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/animation_de_textures_en_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/animation_de_textures_en_webgl/index.html deleted file mode 100644 index 1c9efb8966..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/animation_de_textures_en_webgl/index.html +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: Animation de textures en WebGL -slug: Web/API/WebGL_API/Tutorial/Animation_de_textures_en_WebGL -tags: - - Media - - Tutoriel - - Video - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL ---- -

{{WebGLSidebar("Tutorial") }} {{Previous("Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

- -

Dans cette démonstration, nous construisons sur l'exemple précédent en remplaçant nos textures statiques par les images d'un fichier vidéo mp4 en cours de lecture. C'est en fait assez facile à faire, mais c'est amusant à regarder, alors commençons. Un code similaire peut être réalisé pour utiliser n'importe quel type de données (comme un {{HTMLElement ("canvas")}}) comme source pour vos textures..

- -

Accéder à la vidéo

- -

La première étape consiste à créer l'élément {{HTMLElement("video")}} que nous utiliserons pour récupérer les images vidéo :

- -
// sera mis à true quand la vidéo pourra être copiée dans la texture
-var copierVideo = false;
-
-function configurerVideo(url) {
-  const video = document.createElement('video');
-
-  var playing = false;
-  var timeupdate = false;
-
-  video.autoplay = true;
-  video.muted = true;
-  video.loop = true;
-
-  // Le fait d'attendre ces 2 évènements assure
-  // qu'il y a des données dans la vidéo
-
-  video.addEventListener('playing', function() {
-     playing = true;
-     verifierPret();
-  }, true);
-
-  video.addEventListener('timeupdate', function() {
-     timeupdate = true;
-     verifierPret();
-  }, true);
-
-  video.src = url;
-  video.play();
-
-  function verifierPret() {
-    if (playing && timeupdate) {
-      copierVideo = true;
-    }
-  }
-
-  return video;
-}
-
- -

D'abord, nous créons un élément vidéo. Nous le mettons en lecture automatique, nous coupons le son et nous faisons tourner la vidéo en boucle. Nous configurons ensuite 2 événements pour voir que la vidéo est en cours de lecture et que le temps a été mis à jour. Nous avons besoin de ces deux vérifications, car c'est une erreur que d'essayer de télécharger sur WebGL une vidéo qui n'a pas encore de données disponibles. La vérification de ces deux événements garantit que des données sont disponibles et que l'on peut démarrer en toute sécurité le chargement de la vidéo dans une texture WebGL. Dans le code ci-dessus, nous vérifions si nous avons reçu ces deux événements et si c'est le cas, nous mettons une variable globale, copierVideo, à true pour nous dire qu'il est possible de commencer à copier la vidéo dans une texture.

- -

Et enfin, nous définissons l'attribut src pour commencer, et nous appelons play pour démarrer le chargement et la lecture de la vidéo.

- -

Utilisation des images vidéo comme texture

- -

La prochaine modification porte sur initTexture(), qui devient beaucoup plus simple, car elle n'a plus besoin de charger un fichier image. A la place, tout ce qu'elle fait est de créer un objet texture vide, d'y mettre un unique pixel et de définir son filtrage pour une utilisation ultérieure :

- -
function initTexture(gl, url) {
-  const texture = gl.createTexture();
-  gl.bindTexture(gl.TEXTURE_2D, texture);
-
-  // Parce que la vidéo doit être téléchargée depuis sur Internet,
-  // cela peut prendre un certain temps jusqu'à ce qu'elle soit prête, donc
-  // mettre un seul pixel dans la texture, de façon à ce que nous puissions
-  // l'utiliser immédiatement.
-  const niveau = 0;
-  const formatInterne = gl.RGBA;
-  const largeur = 1;
-  const hauteur = 1;
-  const bordure = 0;
-  const formatSrc = gl.RGBA;
-  const typeSrc = gl.UNSIGNED_BYTE;
-  const pixel = new Uint8Array([0, 0, 255, 255]);  // bleu opaque
-  gl.texImage2D(gl.TEXTURE_2D, niveau, formatInterne,
-                largeur, hauteur, bordure, formatSrc, typeSrc,
-                pixel);
-
-  // Désactiver mips et définir l'emballage comme accroché au bord afin qu'il
-  // fonctionne indépendamment des dimensions de la vidéo.
-  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
-  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
-  gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
-
-  return texture;
-}
-
- -
Voici à quoi ressemble la fonction mettreAJourTexture() ; c'est là où le vrai travail est fait :
- -
function mettreAJourTexture(gl, texture, video) {
-  const niveau = 0;
-  const formatInterne = gl.RGBA;
-  const formatSrc = gl.RGBA;
-  const typeSrc = gl.UNSIGNED_BYTE;
-  gl.bindTexture(gl.TEXTURE_2D, texture);
-  gl.texImage2D(gl.TEXTURE_2D, niveau, formatInterne,
-                formatSrc, typeSrc, video);
-}
-
- -

Vous avez déjà vu ce code. Il est presque identique à la fonction onload de l'image dans l'exemple précédent, sauf quand nous appellons texImage2D(), au lieu de passer un objet Image, nous passons l'élément {{HTMLElement ("video")}}. WebGL sait comment extraire l'image en cours et l'utiliser comme texture.

- -

Si copierVideo est true, alors mettreAJourTexture() est appelé à chaque fois juste avant que nous appellions la fonction dessinerScene().

- -
  var alors = 0;
-
-  // Dessiner la scène répétitivement
-  function dessiner(maintenant) {
-    maintenant *= 0.001;  // convertir en seconds
-    const ecartTemps = maintenant - alors;
-    alors = maintenant;
-
-    if (copierVideo) {
-      mettreAJourTexture(gl, texture, video);
-    }
-
-    dessinerScene(gl, programInfo, buffers, texture, ecartTemps);
-
-    requestAnimationFrame(dessiner);
-  }
-  requestAnimationFrame(dessiner);
-
- -

C'est tout pour ce qu'il y a à faire pour cela !

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample8/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

Voir aussi

- - - -

{{Previous("Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/animer_des_objets_avec_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/animer_des_objets_avec_webgl/index.html deleted file mode 100644 index 534d6ef995..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/animer_des_objets_avec_webgl/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Animer des objets avec WebGL -slug: Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL -tags: - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL", "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL") }}

- -

Dans cet exemple, nous allons faire tourner notre carré 2D.

- -

Faire tourner le carré

- -

Commençons par faire tourner le carré. La première chose dont nous avons besoin est une variable pour mémoriser la rotation courante du carré :

- -
var squareRotation = 0.0;
-
- -

Maintenant, nous devons modifier la fonction drawScene() pour appliquer la rotation courante du carré quand on le dessine. Après déplacement à la position de dessin initiale du carré, nous appliquons la rotation comme suit :  

- -
  mat4.rotate(modelViewMatrix,  // matrice de destination
-              modelViewMatrix,  // matrice de rotation
-              squareRotation,   // rotation en radians
-              [0, 0, 1]);       // axe autour duquel tourner
- -

Ceci fait tourner la modelViewMatrix de la valeur courante de squareRotation, autour de l'axe Z.

- -

Pour réaliser effectivement l'animation, nous avons besoin d'ajouter du code qui change la valeur de squareRotation au fil du temps. Nous pouvons faire cela en créant une nouvelle variable pour mémoriser l'instant auquel nous avons réalisé l'animation pour la dernière fois (appelons le then), puis en ajoutant le code suivant à la fin de la fonction principale :

- -
var then = 0;
-
-// Dessiner la scène répétitivement
-function render(now) {
-  now *= 0.001;  // conversion en secondes
-  const deltaTime = now - then;
-  then = now;
-
-  drawScene(gl, programInfo, buffers, deltaTime);
-
-  requestAnimationFrame(render);
-}
-requestAnimationFrame(render);
- -

Ce code utilise requestAnimationFrame pour demander au navigateur d'appeler la fonction "render" à chaque image. requestAnimationFrame nous transmet le temps en millisecondes depuis le chargement de la page. Nous le convertissons en secondes, puis nous lui soustrayons le dernier instant pour calculer deltaTime, qui est le nombre de secondes depuis le rendu de la dernière image. À la fin de drawscene, nous ajoutons le code pour mettre à jour squareRotation.

- -
  squareRotation += deltaTime;
- -

Ce code utilise le laps de temps qui s'est écoulé depuis la dernière fois que nous avons mis à jour la valeur squareRotation pour déterminer de combien faire tourner le carré.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample4/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL", "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL") }}

- -

 

- -

 

diff --git a/files/fr/web/api/webgl_api/tutorial/commencer_avec_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/commencer_avec_webgl/index.html deleted file mode 100644 index 4388934aeb..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/commencer_avec_webgl/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Commencer avec WebGL -slug: Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -tags: - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{Next("Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL")}}WebGL permet à un contenu web d'utiliser l'API basée sur OpenGL ES 2.0 pour effectuer un rendu 2D et 3D dans un canvas dans les navigateurs qui le supportent, sans utilisation d'un module complémentaire. Les programmes WebGL sont constitués de code de contrôle écrit en JavaScript, et le code d'ombrage (GLSL) est exécuté dans l'Unité de Traitement Graphique (GPU) de l'ordinateur. Les éléments WebGL peuvent être mélangés avec d'autres éléments HTML, et composés d'autres parties de la page ou de l'arrière-plan de la page.

- -

Cet article va vous donner une introduction aux bases de l'utilisation de WebGL. Il est supposé que vous avez déjà une compréhension des mathématiques impliquées dans les graphismes 3D, et cet article ne prétend pas vous enseigner les concepts des graphismes 3D par eux-mêmes.

- -

Les exemples de code de ce tutoriel peuvent aussi être trouvés dans le webgl-examples GitHub repository.

- -

Préparation au rendu 3D

- -

La première chose dont vous avez besoin pour utiliser WebGL pour faire un rendu est un canvas. Le fragment d'HTML ci-dessous déclare un canvas dans lequel notre exemple se dessinera.

- -
<body>
-  <canvas id="glCanvas" width="640" height="480"></canvas>
-</body>
-
- -
-

Préparation du contexte WebGL

- -

La fonction main() dans notre code JavaScript est appelée quand notre script est chargé. Son but est de créer le contexte WebGL et de commencer à rendre du contenu.

- -
main();
-
-//
-// Début ici
-//
-function main() {
-  const canvas = document.querySelector("#glCanvas");
-  // Initialisation du contexte WebGL
-  const gl = canvas.getContext("webgl");
-
-  // Continuer seulement si WebGL est disponible et fonctionnel
-  if (!gl) {
-    alert("Impossible d'initialiser WebGL. Votre navigateur ou votre machine peut ne pas le supporter.");
-    return;
-  }
-
-  // Définir la couleur d'effacement comme étant le noir, complètement opaque
-  gl.clearColor(0.0, 0.0, 0.0, 1.0);
-  // Effacer le tampon de couleur avec la couleur d'effacement spécifiée
-  gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);
-}
-
- -

La première chose que nous faisons ici est d'obtenir une référence au canvas, en l'affectant à une variable dénommée canvas.

- -

Une fois que nous avons le canvas, nous essayons de lui obtenir un WebGLRenderingContext, en appelant getContext et en lui passant la chaîne "webgl". Si le navigateur ne supporte pas WebGL, getContext retournera null, auquel cas nous afficherons un message pour l'utilisateur, et nous sortirons.

- -

Si le contexte est initialisé avec succès, la variable gl sera notre référence à celui-ci. Dans ce cas, nous définissons la couleur d'effacement comme étant le noir, et nous effaçons le contexte avec cette couleur (redessin du canvas avec la couleur d'arrière-plan).

- -

A ce stade, votre code est suffisant pour que le contexte WebGL puisse s'initialiser avec succès, et vous devriez vous retrouver avec une grande boîte noire et vide, prête à - et attendant de - recevoir du contenu.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample1/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

Voir aussi

- - - -

{{Next("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context")}}

-
diff --git a/files/fr/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html new file mode 100644 index 0000000000..ccbff1a2d6 --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html @@ -0,0 +1,167 @@ +--- +title: Créer des objets 3D avec WebGL +slug: Web/API/WebGL_API/Tutorial/Creer_des_objets_3D_avec_WebGL +tags: + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

+ +

Transformons notre carré en trois dimensions en lui ajoutant cinq faces supplémentaires pour créer un cube. Pour faire cela efficacement, nous allons passer du dessin de sommets par l'appel direct de la méthode {{domxref("WebGLRenderingContext.drawArrays()", "gl.drawArrays()")}}, à l'utilisation du tableau des sommets comme une table, et à référencer les sommets individuels dans cette table pour définir les positions des sommets de chaque face, en appelant directement {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}.

+ +

Notez que chaque face nécessite quatre sommets pour la définir, mais que chaque sommet est partagé entre trois faces. Nous pouvons donc passer beaucoup moins de données en faisant un tableau des 24 sommets, puis en référençant chaque sommet par son indice dans ce tableau, au lieu de passer des ensembles complets de coordonnées. Si vous vous demandez pourquoi nous avons besoin de 24 sommets, et non pas seulement de 8, c'est parce que chaque coin appartient à trois faces de couleurs différentes, et qu'un sommet donné doit avoir une couleur spécifique - c'est pourquoi nous allons créer 3 copies de chaque sommet dans les trois couleurs différentes, une pour chaque face.

+ +

Définir la position des sommets du cube

+ +

Tout d'abord, construisons le tampon des sommets du cube en mettant à jour le code de initBuffer(). C'est sensiblement le même que pour le carré, mais en plus long, du fait qu'il y a 24 sommets (4 par côté) :

+ +
  const positions = [
+    // Face avant
+    -1.0, -1.0,  1.0,
+     1.0, -1.0,  1.0,
+     1.0,  1.0,  1.0,
+    -1.0,  1.0,  1.0,
+
+    // Face arrière
+    -1.0, -1.0, -1.0,
+    -1.0,  1.0, -1.0,
+     1.0,  1.0, -1.0,
+     1.0, -1.0, -1.0,
+
+    // Face supérieure
+    -1.0,  1.0, -1.0,
+    -1.0,  1.0,  1.0,
+     1.0,  1.0,  1.0,
+     1.0,  1.0, -1.0,
+
+    // Face inférieure
+    -1.0, -1.0, -1.0,
+     1.0, -1.0, -1.0,
+     1.0, -1.0,  1.0,
+    -1.0, -1.0,  1.0,
+
+    // Face droite
+     1.0, -1.0, -1.0,
+     1.0,  1.0, -1.0,
+     1.0,  1.0,  1.0,
+     1.0, -1.0,  1.0,
+
+    // Face gauche
+    -1.0, -1.0, -1.0,
+    -1.0, -1.0,  1.0,
+    -1.0,  1.0,  1.0,
+    -1.0,  1.0, -1.0
+  ];
+
+ +

Du fait que nous avons ajouté une composante z à nos sommets, nous avons besoin de changer en 3 le numComponents de notre attribut vertexPosition.

+ +
// Indiquer à WebGL comment extraire les positions du tampon des
+// positions dans l'attribut vertexPosition
+{
+  const numComponents = 3;
+  ...
+  gl.vertexAttribPointer(
+      programInfo.attribLocations.vertexPosition,
+      numComponents,
+      type,
+      normalize,
+      stride,
+      offset);
+  gl.enableVertexAttribArray(
+      programInfo.attribLocations.vertexPosition);
+}
+ +

Définir les couleurs des sommets

+ +

Nous avons aussi besoin de construire un tableau des couleurs pour chacun des 24 sommets. Ce code commence par définir une couleur pour chaque face, puis il utilise une boucle pour assembler le tableau de toutes les couleurs pour chacun des sommets.

+ +
  const faceColors = [
+    [1.0,  1.0,  1.0,  1.0],    // Face avant : blanc
+    [1.0,  0.0,  0.0,  1.0],    // Face arrière : rouge
+    [0.0,  1.0,  0.0,  1.0],    // Face supérieure : vert
+    [0.0,  0.0,  1.0,  1.0],    // Face infiérieure : bleu
+    [1.0,  1.0,  0.0,  1.0],    // Face droite : jaune
+    [1.0,  0.0,  1.0,  1.0]     // Face gauche : violet
+  ];
+
+  // Conversion du tableau des couleurs en une table pour tous les sommets
+
+  var colors = [];
+
+  for (j=0; j<faceColors.length; j++) {
+    const c = faceColors[j];
+
+    // Répéter chaque couleur quatre fois pour les quatre sommets d'une face
+    colors = colors.concat(c, c, c, c);
+  }
+
+  const colorBuffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
+  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
+
+ +

Définir le tableau des éléments

+ +

Une fois que les tableaux des sommets sont générés, nous devons construire le tableau des éléments.

+ +
  const indexBuffer = gl.createBuffer();
+  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
+
+  // Ce tableau définit chaque face comme deux triangles, en utilisant les
+  // indices dans le tableau des sommets pour spécifier la position de chaque
+  // triangle.
+
+  const indices = [
+    0,  1,  2,      0,  2,  3,    // avant
+    4,  5,  6,      4,  6,  7,    // arrière
+    8,  9,  10,     8,  10, 11,   // haut
+    12, 13, 14,     12, 14, 15,   // bas
+    16, 17, 18,     16, 18, 19,   // droite
+    20, 21, 22,     20, 22, 23,   // gauche
+  ];
+
+  // Envoyer maintenant le tableau des éléments à GL
+
+  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
+      new Uint16Array(indices), gl.STATIC_DRAW);
+
+  return {
+    position: positionBuffer,
+    color: colorBuffer,
+    indices: indexBuffer,
+  };
+}
+ +

Le tableau indices définit chaque face comme étant une paire de triangles, en spécifiant chaque sommet du triangle comme un indice dans les tableaux des sommets du cube. Ainsi le cube est décrit comme une collection de 12 triangles.

+ +

Dessiner le cube

+ +

Ensuite, nous devons ajouter du code à notre fonction drawScene() pour dessiner le tampon des indices du cube, en ajoutant de nouveaux appels à {{domxref("WebGLRenderingContext.bindBuffer()", "gl.bindBuffer()")}} et {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}} :

+ +
  // Indiquer à WebGL quels indices utiliser pour indexer les sommets
+  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tampons.indices);
+
+...
+
+  {
+    const vertexCount = 36;
+    const type = gl.UNSIGNED_SHORT;
+    const offset = 0;
+    gl.drawElements(gl.TRIANGLES, vertexCount, type, offset);
+  }
+ +

Du fait que chaque face de notre cube est composée de deux triangles, il y a 6 sommets par côté, soit 36 sommets au total dans le cube, même si beaucoup d'entre eux sont des doublons.

+ +

Finalement, remplaçons notre variable squareRotation par cubeRotation et ajoutons une seconde rotation autour de l'axe des x :

+ +
mat4.rotate(modelViewMatrix, modelViewMatrix, cubeRotation * .7, [0, 1, 0]);
+ +

À ce stade, nous avons un cube animé en rotation, ses six faces ayant des couleurs assez vives.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample5/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/creer_des_objets_3d_avec_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/creer_des_objets_3d_avec_webgl/index.html deleted file mode 100644 index ccbff1a2d6..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/creer_des_objets_3d_avec_webgl/index.html +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Créer des objets 3D avec WebGL -slug: Web/API/WebGL_API/Tutorial/Creer_des_objets_3D_avec_WebGL -tags: - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

- -

Transformons notre carré en trois dimensions en lui ajoutant cinq faces supplémentaires pour créer un cube. Pour faire cela efficacement, nous allons passer du dessin de sommets par l'appel direct de la méthode {{domxref("WebGLRenderingContext.drawArrays()", "gl.drawArrays()")}}, à l'utilisation du tableau des sommets comme une table, et à référencer les sommets individuels dans cette table pour définir les positions des sommets de chaque face, en appelant directement {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}}.

- -

Notez que chaque face nécessite quatre sommets pour la définir, mais que chaque sommet est partagé entre trois faces. Nous pouvons donc passer beaucoup moins de données en faisant un tableau des 24 sommets, puis en référençant chaque sommet par son indice dans ce tableau, au lieu de passer des ensembles complets de coordonnées. Si vous vous demandez pourquoi nous avons besoin de 24 sommets, et non pas seulement de 8, c'est parce que chaque coin appartient à trois faces de couleurs différentes, et qu'un sommet donné doit avoir une couleur spécifique - c'est pourquoi nous allons créer 3 copies de chaque sommet dans les trois couleurs différentes, une pour chaque face.

- -

Définir la position des sommets du cube

- -

Tout d'abord, construisons le tampon des sommets du cube en mettant à jour le code de initBuffer(). C'est sensiblement le même que pour le carré, mais en plus long, du fait qu'il y a 24 sommets (4 par côté) :

- -
  const positions = [
-    // Face avant
-    -1.0, -1.0,  1.0,
-     1.0, -1.0,  1.0,
-     1.0,  1.0,  1.0,
-    -1.0,  1.0,  1.0,
-
-    // Face arrière
-    -1.0, -1.0, -1.0,
-    -1.0,  1.0, -1.0,
-     1.0,  1.0, -1.0,
-     1.0, -1.0, -1.0,
-
-    // Face supérieure
-    -1.0,  1.0, -1.0,
-    -1.0,  1.0,  1.0,
-     1.0,  1.0,  1.0,
-     1.0,  1.0, -1.0,
-
-    // Face inférieure
-    -1.0, -1.0, -1.0,
-     1.0, -1.0, -1.0,
-     1.0, -1.0,  1.0,
-    -1.0, -1.0,  1.0,
-
-    // Face droite
-     1.0, -1.0, -1.0,
-     1.0,  1.0, -1.0,
-     1.0,  1.0,  1.0,
-     1.0, -1.0,  1.0,
-
-    // Face gauche
-    -1.0, -1.0, -1.0,
-    -1.0, -1.0,  1.0,
-    -1.0,  1.0,  1.0,
-    -1.0,  1.0, -1.0
-  ];
-
- -

Du fait que nous avons ajouté une composante z à nos sommets, nous avons besoin de changer en 3 le numComponents de notre attribut vertexPosition.

- -
// Indiquer à WebGL comment extraire les positions du tampon des
-// positions dans l'attribut vertexPosition
-{
-  const numComponents = 3;
-  ...
-  gl.vertexAttribPointer(
-      programInfo.attribLocations.vertexPosition,
-      numComponents,
-      type,
-      normalize,
-      stride,
-      offset);
-  gl.enableVertexAttribArray(
-      programInfo.attribLocations.vertexPosition);
-}
- -

Définir les couleurs des sommets

- -

Nous avons aussi besoin de construire un tableau des couleurs pour chacun des 24 sommets. Ce code commence par définir une couleur pour chaque face, puis il utilise une boucle pour assembler le tableau de toutes les couleurs pour chacun des sommets.

- -
  const faceColors = [
-    [1.0,  1.0,  1.0,  1.0],    // Face avant : blanc
-    [1.0,  0.0,  0.0,  1.0],    // Face arrière : rouge
-    [0.0,  1.0,  0.0,  1.0],    // Face supérieure : vert
-    [0.0,  0.0,  1.0,  1.0],    // Face infiérieure : bleu
-    [1.0,  1.0,  0.0,  1.0],    // Face droite : jaune
-    [1.0,  0.0,  1.0,  1.0]     // Face gauche : violet
-  ];
-
-  // Conversion du tableau des couleurs en une table pour tous les sommets
-
-  var colors = [];
-
-  for (j=0; j<faceColors.length; j++) {
-    const c = faceColors[j];
-
-    // Répéter chaque couleur quatre fois pour les quatre sommets d'une face
-    colors = colors.concat(c, c, c, c);
-  }
-
-  const colorBuffer = gl.createBuffer();
-  gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
-  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
-
- -

Définir le tableau des éléments

- -

Une fois que les tableaux des sommets sont générés, nous devons construire le tableau des éléments.

- -
  const indexBuffer = gl.createBuffer();
-  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
-
-  // Ce tableau définit chaque face comme deux triangles, en utilisant les
-  // indices dans le tableau des sommets pour spécifier la position de chaque
-  // triangle.
-
-  const indices = [
-    0,  1,  2,      0,  2,  3,    // avant
-    4,  5,  6,      4,  6,  7,    // arrière
-    8,  9,  10,     8,  10, 11,   // haut
-    12, 13, 14,     12, 14, 15,   // bas
-    16, 17, 18,     16, 18, 19,   // droite
-    20, 21, 22,     20, 22, 23,   // gauche
-  ];
-
-  // Envoyer maintenant le tableau des éléments à GL
-
-  gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,
-      new Uint16Array(indices), gl.STATIC_DRAW);
-
-  return {
-    position: positionBuffer,
-    color: colorBuffer,
-    indices: indexBuffer,
-  };
-}
- -

Le tableau indices définit chaque face comme étant une paire de triangles, en spécifiant chaque sommet du triangle comme un indice dans les tableaux des sommets du cube. Ainsi le cube est décrit comme une collection de 12 triangles.

- -

Dessiner le cube

- -

Ensuite, nous devons ajouter du code à notre fonction drawScene() pour dessiner le tampon des indices du cube, en ajoutant de nouveaux appels à {{domxref("WebGLRenderingContext.bindBuffer()", "gl.bindBuffer()")}} et {{domxref("WebGLRenderingContext.drawElements()", "gl.drawElements()")}} :

- -
  // Indiquer à WebGL quels indices utiliser pour indexer les sommets
-  gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, tampons.indices);
-
-...
-
-  {
-    const vertexCount = 36;
-    const type = gl.UNSIGNED_SHORT;
-    const offset = 0;
-    gl.drawElements(gl.TRIANGLES, vertexCount, type, offset);
-  }
- -

Du fait que chaque face de notre cube est composée de deux triangles, il y a 6 sommets par côté, soit 36 sommets au total dans le cube, même si beaucoup d'entre eux sont des doublons.

- -

Finalement, remplaçons notre variable squareRotation par cubeRotation et ajoutons une seconde rotation autour de l'axe des x :

- -
mat4.rotate(modelViewMatrix, modelViewMatrix, cubeRotation * .7, [0, 1, 0]);
- -

À ce stade, nous avons un cube animé en rotation, ses six faces ayant des couleurs assez vives.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample5/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL", "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/eclairage_en_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/eclairage_en_webgl/index.html deleted file mode 100644 index db767fe9bb..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/eclairage_en_webgl/index.html +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: Éclairage en WebGL -slug: Web/API/WebGL_API/Tutorial/Eclairage_en_WebGL -translation_of: Web/API/WebGL_API/Tutorial/Lighting_in_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL", "Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL")}}

- -

La première chose à comprendre à propos de WebGL est que contrairement au standard OpenGL, WebGL n'a pas de support pour l'éclairage. Vous avez à le faire par vous même. Heureusement ce n'est pas si dur à faire, et cet article va vous expliquer quelques bases.

- -

Simuler l'éclairage et les ombres en 3D

- -

Rentrer dans les détails de la théorie derrière la simulation de l'éclairage 3D est assez loin du sujet de cet article mais il vaut mieux en connaitre un minimum le sujet. Au lieu de rentrer dans le vif du sujet ici, jetez un coup d'oeil sur l'ombrage de Phong sur Wikipédia, qui fourni une bonne vue d'ensemble comme modèle d'éclairage.

- -

Il y a trois types basiques d'éclairage :

- -
    -
  1. Ambient light (Lumière Ambiante) est la lumière qui imprègne, qui se répand sur la scène. Elle n'a pas de direction et s'applique sur toutes les faces de la scène de la même façon.
  2. -
  3. Directional light (Lumière Directionnelle) est une lumière émise depuis une direction spécifique. Par exemple le soleil, est une lumière directionnelle.
  4. -
  5. Point light (Point de lumière) est une lumière émise depuis un point, éméttant une lumière dans toutes les directions, contrairement à la Lumière Directionnelle. C'est comme ceci que les lumières fonctionnent principalement dans notre monde, comme par exemple une ampoule.
  6. -
- -

Pour notre tutorial, nous allons simplifier le model d'éclairage, en considérant seulement une unique lumière directionnelle et une lumière ambiante. Nous allons réutiliser notre précédent exemple avec le cube en rotation.

- -

Une fois que nous avons appréhendé le concept de source et de réfléction de la lumière, il y a deux choses que nous avons besoin d'implémenter pour nos lumières directionnelles.

- -
    -
  1. Nous avons besoin d'associer la surface normale avec chaque sommet. C'est un vecteur qui est perpendiculaire à la face associé à ce sommet.
  2. -
  3. Nous avons besoin de connaître la direction dans laquelle la lumière arrive. Ceci est défini par la direction du vecteur.
  4. -
- -

Puis nous mettons à jour le vertex shader pour ajuster la couleur de chaque sommet. en prenant en compte la lumière ambiante ainsi que l'effet de la lumière directionnelle donné par l'angle qui rencontre la face du cube. Nous allons voir comment faire avec les shaders.

- -

Créer les normales pour les sommets

- -

La première chose dont nous avons besoin, est de générer le tableau des normales pour tous les sommets que constituent notre cube. Comme un cube est un simple objet, c'est plutôt simple à faire, évidemment pour des objets plus complexe, calculer les normales sera plus compliqué.

- -
cubeVerticesNormalBuffer = gl.createBuffer();
-gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesNormalBuffer);
-
-var vertexNormals = [
-  // Front
-   0.0,  0.0,  1.0,
-   0.0,  0.0,  1.0,
-   0.0,  0.0,  1.0,
-   0.0,  0.0,  1.0,
-
-  // Back
-   0.0,  0.0, -1.0,
-   0.0,  0.0, -1.0,
-   0.0,  0.0, -1.0,
-   0.0,  0.0, -1.0,
-
-  // Top
-   0.0,  1.0,  0.0,
-   0.0,  1.0,  0.0,
-   0.0,  1.0,  0.0,
-   0.0,  1.0,  0.0,
-
-  // Bottom
-   0.0, -1.0,  0.0,
-   0.0, -1.0,  0.0,
-   0.0, -1.0,  0.0,
-   0.0, -1.0,  0.0,
-
-  // Right
-   1.0,  0.0,  0.0,
-   1.0,  0.0,  0.0,
-   1.0,  0.0,  0.0,
-   1.0,  0.0,  0.0,
-
-  // Left
-  -1.0,  0.0,  0.0,
-  -1.0,  0.0,  0.0,
-  -1.0,  0.0,  0.0,
-  -1.0,  0.0,  0.0
-];
-
-gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertexNormals), gl.STATIC_DRAW);
-
- -

Ceci doit vous être plutôt familier maintenant. Nous créons un nouveau buffer, on le lie avec le tableau sur lequel nous allons travailler, puis nous allons envoyer l'ensemble de notre tableau au buffer en appelant la méthode bufferData().

- -

Ensuite nous allons ajouter le code à la fonction drawScene() pour attacher le tableau de normales à l'attribut du shader, comme ça le code du shader y aura accès:

- -
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesNormalBuffer);
-gl.vertexAttribPointer(vertexNormalAttribute, 3, gl.FLOAT, false, 0, 0);
-
- -

Enfin, nous avons besoin de mettre à jour le code qui construit les matrices uniformes pour générer et livrer au shader une matrice normale, qui sera utilisée pour transformer les normales en fonction de l'orientation actuelle du cube par rapport à la source de lumière.

- -
var normalMatrix = mvMatrix.inverse();
-normalMatrix = normalMatrix.transpose();
-var nUniform = gl.getUniformLocation(shaderProgram, 'uNormalMatrix');
-gl.uniformMatrix4fv(nUniform, false, new WebGLFloatArray(normalMatrix.flatten()));
-
- -

Mettre à jour les shaders

- -

Maintenant que les shaders ont toutes les données dont ils ont besoin, nous mettons à jour leur code.

- -

Le vertex shader

- -

La première chose à faire est de mettre à jour le vertex shader en générant une valeur pour l'ombre de chaque sommet, en se basant sur l'éclairage ambiant ainsi que la direction de la lumière. Jettons un oeil sur le code suivant:

- -
<script id="shader-vs" type="x-shader/x-vertex">
-  attribute highp vec3 aVertexNormal;
-  attribute highp vec3 aVertexPosition;
-  attribute highp vec2 aTextureCoord;
-
-  uniform highp mat4 uNormalMatrix;
-  uniform highp mat4 uMVMatrix;
-  uniform highp mat4 uPMatrix;
-
-  varying highp vec2 vTextureCoord;
-  varying highp vec3 vLighting;
-
-  void main(void) {
-    gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
-    vTextureCoord = aTextureCoord;
-
-    // Apply lighting effect
-
-    highp vec3 ambientLight = vec3(0.6, 0.6, 0.6);
-    highp vec3 directionalLightColor = vec3(0.5, 0.5, 0.75);
-    highp vec3 directionalVector = vec3(0.85, 0.8, 0.75);
-
-    highp vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);
-
-    highp float directional = max(dot(transformedNormal.xyz, directionalVector), 0.0);
-    vLighting = ambientLight + (directionalLightColor * directional);
-  }
-</script>
-
- -

Une fois que la position du sommet est calculée, et que nous obtenons les coordonnées des texels (tas de pixel pour une texture) correspondant au sommet, nous pouvons travailler sur le calcul de l'ombre de chaque sommet.

- -

La première chose que nous allons faire est de transformer la base normale sur la position actuelle et l'orientation du cube, en calculant les normales des sommets par la matrice normale. Nous pouvons alors calculer la quantité d'éclairage qui doit être appliquée au sommet en calculant le produit de la normale transformée et du vecteur directionnel (la direction d'où la lumière vient). Si le résultat est inférieur à zéro, alors on le met à 0. Car une lumière négative n'a pas de sens dans notre cas.

- -

Une fois la quantité de lumière directionnelle calculée, nous pouvons générer la valeur d'éclairage en prenant l'éclairage ambiant et en y ajoutant le produit de la couleur de la lumière directionnelle, et aussi la quantité de la lumière directionnelle à fournir. Comme résultat, nous avons maintenant une valeur RGB qui sera utilisé par le fragment shader pour ajuster la couleur de chaque pixel.

- -

Le fragment shader

- -

Le fragment shader a maintenant besoin d'être mis à jour en prenant en compte la quantité de lumière calculée précédemment par le vertex shader:

- -
<script id="shader-fs" type="x-shader/x-fragment">
-  varying highp vec2 vTextureCoord;
-  varying highp vec3 vLighting;
-
-  uniform sampler2D uSampler;
-
-  void main(void) {
-    mediump vec4 texelColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
-
-    gl_FragColor = vec4(texelColor.rgb * vLighting, texelColor.a);
-  }
-</script>
-
- -

Ici nous récupérons la couleur de chaque texel (tas de pixel pour une texture) , comme nous avons fait pour l'exemple précédent, mais avant d'ajuster la couleur du fragment, nous multiplions la couleur des pixels par la quantité de lumière, pour appliquer l'effet d'éclairage.

- -

Et c'est tout !

- -

 

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample7/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

Exercices

- -

Évidemment, ceci est un simple exemple, une implémentation basique de calcul de lumière par sommet. Pour aller plus loin, nous voulons implémenter un calcul de lumière par pixel, mais ceci vous mènera dans la bonne direction. 

- -

Vous pouvez aussi implémenter avec la direction de source de lumière, la couleur de la source, la distance, etc..

- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL", "Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html new file mode 100644 index 0000000000..4388934aeb --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html @@ -0,0 +1,73 @@ +--- +title: Commencer avec WebGL +slug: Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL +tags: + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{Next("Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL")}}WebGL permet à un contenu web d'utiliser l'API basée sur OpenGL ES 2.0 pour effectuer un rendu 2D et 3D dans un canvas dans les navigateurs qui le supportent, sans utilisation d'un module complémentaire. Les programmes WebGL sont constitués de code de contrôle écrit en JavaScript, et le code d'ombrage (GLSL) est exécuté dans l'Unité de Traitement Graphique (GPU) de l'ordinateur. Les éléments WebGL peuvent être mélangés avec d'autres éléments HTML, et composés d'autres parties de la page ou de l'arrière-plan de la page.

+ +

Cet article va vous donner une introduction aux bases de l'utilisation de WebGL. Il est supposé que vous avez déjà une compréhension des mathématiques impliquées dans les graphismes 3D, et cet article ne prétend pas vous enseigner les concepts des graphismes 3D par eux-mêmes.

+ +

Les exemples de code de ce tutoriel peuvent aussi être trouvés dans le webgl-examples GitHub repository.

+ +

Préparation au rendu 3D

+ +

La première chose dont vous avez besoin pour utiliser WebGL pour faire un rendu est un canvas. Le fragment d'HTML ci-dessous déclare un canvas dans lequel notre exemple se dessinera.

+ +
<body>
+  <canvas id="glCanvas" width="640" height="480"></canvas>
+</body>
+
+ +
+

Préparation du contexte WebGL

+ +

La fonction main() dans notre code JavaScript est appelée quand notre script est chargé. Son but est de créer le contexte WebGL et de commencer à rendre du contenu.

+ +
main();
+
+//
+// Début ici
+//
+function main() {
+  const canvas = document.querySelector("#glCanvas");
+  // Initialisation du contexte WebGL
+  const gl = canvas.getContext("webgl");
+
+  // Continuer seulement si WebGL est disponible et fonctionnel
+  if (!gl) {
+    alert("Impossible d'initialiser WebGL. Votre navigateur ou votre machine peut ne pas le supporter.");
+    return;
+  }
+
+  // Définir la couleur d'effacement comme étant le noir, complètement opaque
+  gl.clearColor(0.0, 0.0, 0.0, 1.0);
+  // Effacer le tampon de couleur avec la couleur d'effacement spécifiée
+  gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);
+}
+
+ +

La première chose que nous faisons ici est d'obtenir une référence au canvas, en l'affectant à une variable dénommée canvas.

+ +

Une fois que nous avons le canvas, nous essayons de lui obtenir un WebGLRenderingContext, en appelant getContext et en lui passant la chaîne "webgl". Si le navigateur ne supporte pas WebGL, getContext retournera null, auquel cas nous afficherons un message pour l'utilisateur, et nous sortirons.

+ +

Si le contexte est initialisé avec succès, la variable gl sera notre référence à celui-ci. Dans ce cas, nous définissons la couleur d'effacement comme étant le noir, et nous effaçons le contexte avec cette couleur (redessin du canvas avec la couleur d'arrière-plan).

+ +

A ce stade, votre code est suffisant pour que le contexte WebGL puisse s'initialiser avec succès, et vous devriez vous retrouver avec une grande boîte noire et vide, prête à - et attendant de - recevoir du contenu.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample1/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

Voir aussi

+ + + +

{{Next("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context")}}

+
diff --git a/files/fr/web/api/webgl_api/tutorial/lighting_in_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/lighting_in_webgl/index.html new file mode 100644 index 0000000000..db767fe9bb --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/lighting_in_webgl/index.html @@ -0,0 +1,175 @@ +--- +title: Éclairage en WebGL +slug: Web/API/WebGL_API/Tutorial/Eclairage_en_WebGL +translation_of: Web/API/WebGL_API/Tutorial/Lighting_in_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL", "Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL")}}

+ +

La première chose à comprendre à propos de WebGL est que contrairement au standard OpenGL, WebGL n'a pas de support pour l'éclairage. Vous avez à le faire par vous même. Heureusement ce n'est pas si dur à faire, et cet article va vous expliquer quelques bases.

+ +

Simuler l'éclairage et les ombres en 3D

+ +

Rentrer dans les détails de la théorie derrière la simulation de l'éclairage 3D est assez loin du sujet de cet article mais il vaut mieux en connaitre un minimum le sujet. Au lieu de rentrer dans le vif du sujet ici, jetez un coup d'oeil sur l'ombrage de Phong sur Wikipédia, qui fourni une bonne vue d'ensemble comme modèle d'éclairage.

+ +

Il y a trois types basiques d'éclairage :

+ +
    +
  1. Ambient light (Lumière Ambiante) est la lumière qui imprègne, qui se répand sur la scène. Elle n'a pas de direction et s'applique sur toutes les faces de la scène de la même façon.
  2. +
  3. Directional light (Lumière Directionnelle) est une lumière émise depuis une direction spécifique. Par exemple le soleil, est une lumière directionnelle.
  4. +
  5. Point light (Point de lumière) est une lumière émise depuis un point, éméttant une lumière dans toutes les directions, contrairement à la Lumière Directionnelle. C'est comme ceci que les lumières fonctionnent principalement dans notre monde, comme par exemple une ampoule.
  6. +
+ +

Pour notre tutorial, nous allons simplifier le model d'éclairage, en considérant seulement une unique lumière directionnelle et une lumière ambiante. Nous allons réutiliser notre précédent exemple avec le cube en rotation.

+ +

Une fois que nous avons appréhendé le concept de source et de réfléction de la lumière, il y a deux choses que nous avons besoin d'implémenter pour nos lumières directionnelles.

+ +
    +
  1. Nous avons besoin d'associer la surface normale avec chaque sommet. C'est un vecteur qui est perpendiculaire à la face associé à ce sommet.
  2. +
  3. Nous avons besoin de connaître la direction dans laquelle la lumière arrive. Ceci est défini par la direction du vecteur.
  4. +
+ +

Puis nous mettons à jour le vertex shader pour ajuster la couleur de chaque sommet. en prenant en compte la lumière ambiante ainsi que l'effet de la lumière directionnelle donné par l'angle qui rencontre la face du cube. Nous allons voir comment faire avec les shaders.

+ +

Créer les normales pour les sommets

+ +

La première chose dont nous avons besoin, est de générer le tableau des normales pour tous les sommets que constituent notre cube. Comme un cube est un simple objet, c'est plutôt simple à faire, évidemment pour des objets plus complexe, calculer les normales sera plus compliqué.

+ +
cubeVerticesNormalBuffer = gl.createBuffer();
+gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesNormalBuffer);
+
+var vertexNormals = [
+  // Front
+   0.0,  0.0,  1.0,
+   0.0,  0.0,  1.0,
+   0.0,  0.0,  1.0,
+   0.0,  0.0,  1.0,
+
+  // Back
+   0.0,  0.0, -1.0,
+   0.0,  0.0, -1.0,
+   0.0,  0.0, -1.0,
+   0.0,  0.0, -1.0,
+
+  // Top
+   0.0,  1.0,  0.0,
+   0.0,  1.0,  0.0,
+   0.0,  1.0,  0.0,
+   0.0,  1.0,  0.0,
+
+  // Bottom
+   0.0, -1.0,  0.0,
+   0.0, -1.0,  0.0,
+   0.0, -1.0,  0.0,
+   0.0, -1.0,  0.0,
+
+  // Right
+   1.0,  0.0,  0.0,
+   1.0,  0.0,  0.0,
+   1.0,  0.0,  0.0,
+   1.0,  0.0,  0.0,
+
+  // Left
+  -1.0,  0.0,  0.0,
+  -1.0,  0.0,  0.0,
+  -1.0,  0.0,  0.0,
+  -1.0,  0.0,  0.0
+];
+
+gl.bufferData(gl.ARRAY_BUFFER, new WebGLFloatArray(vertexNormals), gl.STATIC_DRAW);
+
+ +

Ceci doit vous être plutôt familier maintenant. Nous créons un nouveau buffer, on le lie avec le tableau sur lequel nous allons travailler, puis nous allons envoyer l'ensemble de notre tableau au buffer en appelant la méthode bufferData().

+ +

Ensuite nous allons ajouter le code à la fonction drawScene() pour attacher le tableau de normales à l'attribut du shader, comme ça le code du shader y aura accès:

+ +
gl.bindBuffer(gl.ARRAY_BUFFER, cubeVerticesNormalBuffer);
+gl.vertexAttribPointer(vertexNormalAttribute, 3, gl.FLOAT, false, 0, 0);
+
+ +

Enfin, nous avons besoin de mettre à jour le code qui construit les matrices uniformes pour générer et livrer au shader une matrice normale, qui sera utilisée pour transformer les normales en fonction de l'orientation actuelle du cube par rapport à la source de lumière.

+ +
var normalMatrix = mvMatrix.inverse();
+normalMatrix = normalMatrix.transpose();
+var nUniform = gl.getUniformLocation(shaderProgram, 'uNormalMatrix');
+gl.uniformMatrix4fv(nUniform, false, new WebGLFloatArray(normalMatrix.flatten()));
+
+ +

Mettre à jour les shaders

+ +

Maintenant que les shaders ont toutes les données dont ils ont besoin, nous mettons à jour leur code.

+ +

Le vertex shader

+ +

La première chose à faire est de mettre à jour le vertex shader en générant une valeur pour l'ombre de chaque sommet, en se basant sur l'éclairage ambiant ainsi que la direction de la lumière. Jettons un oeil sur le code suivant:

+ +
<script id="shader-vs" type="x-shader/x-vertex">
+  attribute highp vec3 aVertexNormal;
+  attribute highp vec3 aVertexPosition;
+  attribute highp vec2 aTextureCoord;
+
+  uniform highp mat4 uNormalMatrix;
+  uniform highp mat4 uMVMatrix;
+  uniform highp mat4 uPMatrix;
+
+  varying highp vec2 vTextureCoord;
+  varying highp vec3 vLighting;
+
+  void main(void) {
+    gl_Position = uPMatrix * uMVMatrix * vec4(aVertexPosition, 1.0);
+    vTextureCoord = aTextureCoord;
+
+    // Apply lighting effect
+
+    highp vec3 ambientLight = vec3(0.6, 0.6, 0.6);
+    highp vec3 directionalLightColor = vec3(0.5, 0.5, 0.75);
+    highp vec3 directionalVector = vec3(0.85, 0.8, 0.75);
+
+    highp vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);
+
+    highp float directional = max(dot(transformedNormal.xyz, directionalVector), 0.0);
+    vLighting = ambientLight + (directionalLightColor * directional);
+  }
+</script>
+
+ +

Une fois que la position du sommet est calculée, et que nous obtenons les coordonnées des texels (tas de pixel pour une texture) correspondant au sommet, nous pouvons travailler sur le calcul de l'ombre de chaque sommet.

+ +

La première chose que nous allons faire est de transformer la base normale sur la position actuelle et l'orientation du cube, en calculant les normales des sommets par la matrice normale. Nous pouvons alors calculer la quantité d'éclairage qui doit être appliquée au sommet en calculant le produit de la normale transformée et du vecteur directionnel (la direction d'où la lumière vient). Si le résultat est inférieur à zéro, alors on le met à 0. Car une lumière négative n'a pas de sens dans notre cas.

+ +

Une fois la quantité de lumière directionnelle calculée, nous pouvons générer la valeur d'éclairage en prenant l'éclairage ambiant et en y ajoutant le produit de la couleur de la lumière directionnelle, et aussi la quantité de la lumière directionnelle à fournir. Comme résultat, nous avons maintenant une valeur RGB qui sera utilisé par le fragment shader pour ajuster la couleur de chaque pixel.

+ +

Le fragment shader

+ +

Le fragment shader a maintenant besoin d'être mis à jour en prenant en compte la quantité de lumière calculée précédemment par le vertex shader:

+ +
<script id="shader-fs" type="x-shader/x-fragment">
+  varying highp vec2 vTextureCoord;
+  varying highp vec3 vLighting;
+
+  uniform sampler2D uSampler;
+
+  void main(void) {
+    mediump vec4 texelColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));
+
+    gl_FragColor = vec4(texelColor.rgb * vLighting, texelColor.a);
+  }
+</script>
+
+ +

Ici nous récupérons la couleur de chaque texel (tas de pixel pour une texture) , comme nous avons fait pour l'exemple précédent, mais avant d'ajuster la couleur du fragment, nous multiplions la couleur des pixels par la quantité de lumière, pour appliquer l'effet d'éclairage.

+ +

Et c'est tout !

+ +

 

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample7/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

Exercices

+ +

Évidemment, ceci est un simple exemple, une implémentation basique de calcul de lumière par sommet. Pour aller plus loin, nous voulons implémenter un calcul de lumière par pixel, mais ceci vous mènera dans la bonne direction. 

+ +

Vous pouvez aussi implémenter avec la direction de source de lumière, la couleur de la source, la distance, etc..

+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL", "Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html new file mode 100644 index 0000000000..2bd786c015 --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html @@ -0,0 +1,117 @@ +--- +title: Ajouter des couleurs avec les nuanceurs +slug: Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders +tags: + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context", "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL")}}

+ +

Dans la démonstration précédente, nous avons créé un carré 2D, la prochaine étape évidente consiste à lui appliquer de la couleur. Nous allons faire cela en révisant les nuanceurs.

+ +

Application de couleur aux sommets

+ +

En WebGL, les objets sont construits en utilisant des sommets, chacun d'entre eux ayant une position et une couleur ; par défaut, les couleurs des autres sommets (et tous leurs autres attributs, incluant leur position) sont calculés en utilisant une interpolation linéaire, créant ainsi automatiquement des dégradés. Précédemment, notre nuanceur de sommet n'appliquait aucunes couleurs spécifiques aux sommets ; entre cela et le fait que le nuanceur de fragment assignait la valeur blanche à chaque pixel, le carré entier était rendu en blanc uni.

+ +

Supposons que nous voulions faire un rendu en dégradé dans lequel chaque coin du carré est de couleur différente : rouge, bleu, vert et blanc. La première chose à faire est de définir ces couleurs pour les quatre sommets. Pour ce faire, nous devons d'abord créer un tableau des couleurs des sommets, puis le stocker dans un tampon WebGL ; nous le ferons en ajoutant le code suivant à notre fonction initBuffers() :

+ +
  const colors = [
+    1.0,  1.0,  1.0,  1.0,    // blanc
+    1.0,  0.0,  0.0,  1.0,    // rouge
+    0.0,  1.0,  0.0,  1.0,    // vert
+    0.0,  0.0,  1.0,  1.0,    // bleu
+  ];
+
+  const colorBuffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);
+  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(colors), gl.STATIC_DRAW);
+
+  return {
+    position: positionBuffer,
+    color: colorBuffer,
+  };
+}
+ +

Ce code commence par créer un tableau JavaScript contenant des vecteurs à 4 valeurs, un pour chaque couleur de sommet. Un tampon WebGL est alors alloué pour stocker ces couleurs, et le tableau est converti en flottants et stocké dans le tampon.

+ +

Pour que ces couleurs soient effectivement utilisées, le nuanceur de sommet doit être mis à jour pour extraire la couleur appropriée du tampon des couleurs :

+ +
  const vsSource = `
+    attribute vec4 aVertexPosition;
+    attribute vec4 aVertexColor;
+
+    uniform mat4 uModelViewMatrix;
+    uniform mat4 uProjectionMatrix;
+
+    varying lowp vec4 vColor;
+
+    void main(void) {
+      gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
+      vColor = aVertexColor;
+    }
+  `;
+ +

La différence clé est ici que, pour chaque sommet, nous passons sa couleur au nuanceur de fragment en utilisant un varying.

+ +

Coloriage des fragments

+ +

Pour mémoire, voici à quoi ressemblait précédemment notre nuanceur de fragment :

+ +
  const fsSource = `
+    void main() {
+      gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
+    }
+  `;
+ +

Afin de choisir la couleur interpolée pour chaque pixel, nous devons le changer pour récupérer la valeur depuis le varying vColor :

+ +
  const fsSource = `
+    varying lowp vec4 vColor;
+
+    void main(void) {
+      gl_FragColor = vColor;
+    }
+  `;
+ +

La principale différence ici c'est que pour chaque sommet, on assigne la valeur correspondant à sa couleur dans le tableau.

+ +

Dessiner en utilisant les couleurs

+ +

Ensuite, il est nécessaire d'ajouter le code recherchant les couleurs dans l'emplacement de l'attribut, et de configurer cet attribut pour le programme nuanceur :

+ +
  const programInfo = {
+    program: shaderProgram,
+    attribLocations: {
+      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
+      vertexColor: gl.getAttribLocation(shaderProgram, 'aVertexColor'),
+    },
+    ...
+ +

Ensuite, drawScene() peut être modifié pour utiliser réellement ces couleurs lors du dessin du carré :

+ +
  // Indiquer à WebGL comment transférer les couleurs du tampon des couleurs
+  // dans l'attribut vertexColor.
+  {
+    const numComponents = 4;
+    const type = gl.FLOAT;
+    const normalize = false;
+    const stride = 0;
+    const offset = 0;
+    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.color);
+    gl.vertexAttribPointer(
+        programInfo.attribLocations.vertexColor,
+        numComponents,
+        type,
+        normalize,
+        stride,
+        offset);
+    gl.enableVertexAttribArray(
+        programInfo.attribLocations.vertexColor);
+  }
+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample3/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context", "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html new file mode 100644 index 0000000000..6e1d7bb67d --- /dev/null +++ b/files/fr/web/api/webgl_api/tutorial/using_textures_in_webgl/index.html @@ -0,0 +1,278 @@ +--- +title: Utilisation des textures en WebGL +slug: Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL +tags: + - Tutoriel + - WebGL +translation_of: Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL +--- +

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL", "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

+ +

Maintenant que notre programme peut faire tourner un cube 3D, appliquons lui une texture, au lieu d'avoir des couleurs unies pour ses faces.

+ +

Chargement des textures

+ +

La première chose à faire est d'ajouter le code pour charger les textures. Dans notre cas, nous utiliserons une texture unique, appliquée à chacune des six faces de notre cube en rotation ; mais la même technique peut être utilisée un nombre quelconque de textures.

+ +
Note : il est important de noter que le chargement des textures suit les règles inter-domaines ; donc vous pouvez seulement charger des textures depuis les sites pour lesquels votre contenu a l'approbation CORS. Voir les textures inter-domaines ci-dessous pour plus de détails.
+ +

Le code qui charge la texture ressemble à ce qui suit : 

+ +
//
+// Initialiser une texture et charger une image.
+// Quand le chargement d'une image est terminé, la copier dans la texture.
+//
+function loadTexture(gl, url) {
+  const texture = gl.createTexture();
+  gl.bindTexture(gl.TEXTURE_2D, texture);
+
+  // Du fait que les images doivent être téléchargées depuis l'internet,
+  // il peut s'écouler un certain temps avant qu'elles ne soient prêtes.
+  // Jusque là, mettre un seul pixel dans la texture, de sorte que nous puissions
+  // l'utiliser immédiatement. Quand le téléchargement de la page sera terminé,
+  // nous mettrons à jour la texture avec le contenu de l'image.
+  const level = 0;
+  const internalFormat = gl.RGBA;
+  const width = 1;
+  const height = 1;
+  const border = 0;
+  const srcFormat = gl.RGBA;
+  const srcType = gl.UNSIGNED_BYTE;
+  const pixel = new Uint8Array([0, 0, 255, 255]);  // bleu opaque
+  gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
+                width, height, border, srcFormat, srcType,
+                pixel);
+
+  const image = new Image();
+  image.onload = function() {
+    gl.bindTexture(gl.TEXTURE_2D, texture);
+    gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
+                  srcFormat, srcType, image);
+
+    // WebGL1 a des spécifications différentes pour les images puissances de 2
+    // par rapport aux images non puissances de 2 ; aussi vérifier si l'image est une
+    // puissance de 2 sur chacune de ses dimensions.
+    if (isPowerOf2(image.width) && isPowerOf2(image.height)) {
+       // Oui, c'est une puissance de 2. Générer les mips.
+       gl.generateMipmap(gl.TEXTURE_2D);
+    } else {
+       // Non, ce n'est pas une puissance de 2. Désactiver les mips et définir l'habillage
+       // comme "accrocher au bord"
+       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
+    }
+  };
+  image.src = url;
+
+  return texture;
+}
+
+function isPowerOf2(value) {
+  return (value & (value - 1)) == 0;
+}
+ +

La routine loadTexture() commence par créer un objet texture WebGL texture en appelant la fonction WebGL {{domxref ("WebGLRenderingContext.createTexture()", "createTexture()")}}. Il téléverse ensuite un seul pixel bleu en utilisant {{domxref ("WebGLRenderingContext.texImage2D()", "texImage2D()")}}. Cela rend la texture immédiatement utilisable comme une couleur bleue unie, alors que cela peut prendre quelques instants pour télécharger notre image.

+ +

Pour charger la texture à partir du fichier image, elle crée ensuite un objet Image et en affecte le src à l'URL de l'image que nous souhaitons utiliser comme texture. La fonction que nous affectons à image.onload sera appelée une fois terminé le téléchargement de l'image. À ce stade, nous appelons à nouveau {{domxref ("WebGLRenderingContext.texImage2D()", "texImage2D()")}}, cette fois en utilisant l'image comme source pour la texture. Après cela, nous configurons le filtrage et l'habillage de la texture suivant que l'image que nous téléchargeons a ou non une puissance de 2 selon ses deux dimensions.

+ +

WebGL1 ne peut utiliser que des textures non puissances de 2 avec d'un filtrage défini à NEAREST ou LINEAR, et il ne peut pas générer de mipmap pour elles. Leur mode d'habillage doit également être défini à CLAMP_TO_EDGE. Inversement, si la texture est une puissance de 2 dans les deux dimensions, alors WebGL peut faire un filtrage de meilleure qualité, il peut utiliser mipmap, et il peut définir le mode d'habillage à REPEAT ou MIRRORED_REPEAT.

+ +

Un exemple de texture répétée est le pavage d'une image par quelques briques pour couvrir un mur de briques.

+ +

Le mipmapping et la répétition UV peuvent être désactivés avec {{domxref ("WebGLRenderingContext.texParameter()", "texParameteri()")}}. Cela permettra des textures non-puissances-de-deux (NPOT) au prix du mipmapping, de l'habillage UV, du pavage UV, et de votre contrôle sur la manière dont le périphérique gérera votre texture.

+ +
// gl.NEAREST est aussi permis, au lieu de gl.LINEAR, du fait qu'aucun ne fait de mipmap.
+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
+// Empêcher l'habillage selon la coordonnée s (répétition).
+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
+// Empêcher l'habillage selon la coordonnée t (répétition).
+gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
+ +

A nouveau, avec ces paramètres, les appareils WebGL compatibles accepteront automatiquement toute résolution pour cette texture (jusqu'à leurs dimensions maximum). A défaut de la configuration ci-dessus, WebGL requiert que tous les échantillons de textures NPOT échouent, en retournant du noir transparent : rgba (0,0,0,0).

+ +

Pour charger l'image, ajoutons un appel à notre fonction loadTexture() dans notre fonction main(). Cela peut être ajouté après l'appel initBuffers(gl).

+ +
// Charger la texture
+const texture = loadTexture(gl, 'cubetexture.png');
+
+ +

Application de la texture sur les faces

+ +

À ce stade, la texture est chargée et prête à être utilisée. Mais avant de pouvoir l'utiliser, nous devons définir l'application des coordonnées de texture aux sommets des faces de notre cube. Cela remplace tout le code précédemment existant pour la configuration des couleurs pour chacune des faces du cube dans initBuffers().

+ +
 const textureCoordBuffer = gl.createBuffer();
+  gl.bindBuffer(gl.ARRAY_BUFFER, textureCoordBuffer);
+
+  const textureCoordinates = [
+    // Front
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+    // Back
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+    // Top
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+    // Bottom
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+    // Right
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+    // Left
+    0.0,  0.0,
+    1.0,  0.0,
+    1.0,  1.0,
+    0.0,  1.0,
+  ];
+
+  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(textureCoordinates),
+                gl.STATIC_DRAW);
+
+...
+  return {
+    position: positionBuffer,
+    textureCoord: textureCoordBuffer,
+    indices: indexBuffer,
+  };
+ +

Tout d'abord, ce code crée un tampon WebGL dans lequel nous stockerons les coordonnées de texture pour chaque face, puis nous lions ce tampon comme étant le tableau dans lequel nous allons écrire.

+ +

Le tableau textureCoordinates définit les coordonnées de texture correspondant à chaque sommet de chaque face. Notez que les coordonnées de texture vont de 0,0 à 1,0 ; les dimensions des textures sont normalisées dans une plage de 0,0 à 1,0 quelque soit leur taille réelle, aux fins d'application de la texture.

+ +

Une fois que nous avons mis en place le tableau d'application de la texture, nous l'envoyons dans le tampon, de sorte que WebGL ait ces données prêtes pour son utilisation.

+ +

Mise à jour des shaders

+ +

Le programme shader doit également être mis à jour pour utiliser des textures au lieu de couleurs unies.

+ +

Le shader de sommet

+ +

Nous avons besoin de remplacer le shader de sommet de façon à ce qu'au lieu de récupérer des données de couleur, il récupère à la place des données de coordonnées de texture.

+ +
const vsSource = `
+    attribute vec4 aVertexPosition;
+    attribute vec2 aTextureCoord;
+
+    uniform mat4 uModelViewMatrix;
+    uniform mat4 uProjectionMatrix;
+
+    varying highp vec2 vTextureCoord;
+
+    void main(void) {
+      gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
+      vTextureCoord = aTextureCoord;
+    }
+  `;
+ +

Le changement clé est ici qu'au lieu d'aller chercher la couleur du sommet, nous récupérons les coordonnées de la texture, et nous les transmettons au shader de sommet ; ceci indiquera l'emplacement dans la texture correspondant au sommet.

+ +

Le shader de fragment

+ +

Le shader de fragment doit également être mis à jour :

+ +
const fsSource = `
+    varying highp vec2 vTextureCoord;
+
+    uniform sampler2D uSampler;
+
+    void main(void) {
+      gl_FragColor = texture2D(uSampler, vTextureCoord);
+    }
+  `;
+ +

Au lieu d'attribuer une valeur de couleur à la couleur du fragment, la couleur du fragment est calculée en récupérant le texel (c'est-à-dire, le pixel dans la texture) sur la base de la valeur de vTextureCoord, qui est interpolée comme les sommets.

+ +

Emplacements des attributs et des uniformes

+ +

Du fait que nous avons changé un attribut et ajouté un uniforme, nous devons rechercher leurs emplacements :

+ +
  const programInfo = {
+    program: shaderProgram,
+    attribLocations: {
+      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
+      textureCoord: gl.getAttribLocation(shaderProgram, 'aTextureCoord'),
+    },
+    uniformLocations: {
+      projectionMatrix: gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),
+      modelViewMatrix: gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),
+      uSampler: gl.getUniformLocation(shaderProgram, 'uSampler'),
+    },
+  };
+
+ +

Dessin du cube texturé

+ +

Les modifications apportées à la fonction drawScene() sont simples.

+ +

Tout d'abord, le code pour spécifier le tampon de couleurs a disparu, remplacé par ce qui suit :

+ +
// Indiquer à WebGL comment extraire les coordonnées de texture du tampon
+{
+    const num = 2; // chaque coordonnée est composée de 2 valeurs
+    const type = gl.FLOAT; // les données dans le tampon sont des flottants 32 bits
+    const normalize = false; // ne pas normaliser
+    const stride = 0; // combien d'octets à récupérer entre un jeu et le suivant
+    const offset = 0; // à combien d'octets du début faut-il commencer
+    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.textureCoord);
+    gl.vertexAttribPointer(programInfo.attributeLocations.textureCoord, num, type, normalize, stride, offset);
+    gl.enableVertexAttribArray(programInfo.attributeLocations.textureCoord);
+}
+ +

Ajoutez alors le code pour spécifier la texture à appliquer sur les faces, juste avant de dessiner :

+ +
  // Indiquer à WebGL que nous voulons affecter l'unité de texture 0
+  gl.activeTexture(gl.TEXTURE0);
+
+  // Lier la texture à l'unité de texture 0
+  gl.bindTexture(gl.TEXTURE_2D, texture);
+
+  // Indiquer au shader que nous avons lié la texture à l'unité de texture 0
+  gl.uniform1i(programInfo.uniformLocations.uSampler, 0);
+ +

WebGL fournit un minimum de 8 unités de texture ; la première d'entre elles est gl.TEXTURE0. Nous indiquons à WebGL que nous voulons affecter l'unité 0. Nous appelons alors {{domxref ("WebGLRenderingContext.bindTexture()", "bindTexture()")}}, qui lie la texture au point de liaison TEXTURE_2D de l'unité de texture 0. Nous indiquons alors au shader que pour l'uSampler, il faut utiliser l'unité de texture 0.

+ +

Finalement, ajoutez texture comme paramètre de la fonction drawScene(), où elle est à la fois définie et appelée.

+ +
drawScene(gl, programInfo, buffers, texture, deltaTime);
+...
+function drawScene(gl, programInfo, buffers, texture, deltaTime) {
+ +

Arrivés ce point, le cube en rotation devrait être prêt à fonctionner.

+ +

{{EmbedGHLiveSample('webgl-examples/tutorial/sample6/index.html', 670, 510) }}

+ +

Voir le code complet | Ouvrir cette démo dans une nouvelle page

+ +

Textures inter-domaines

+ +

Le chargement des textures WebGL est soumis aux contrôles d'accès inter-domaines. Pour que votre contenu puisse charger une texture d'un autre domaine, une approbation CORS doit être obtenue. Voir le Contrôle d'accès HTTP pour plus de détails sur CORS.

+ +

Voir cet article sur hacks.mozilla.org pour une explication de l'utilisation des images approuvées CORS comme textures WebGL, avec un exemple complet.

+ +
+

Note : le support CORS pour les texture WebGL et l'attribut crossOrigin pour les éléments image est implémenté dans {{Gecko("8.0")}}.

+
+ +

Les canevas 2D dégradés (en écriture seule) ne peuvent pas être utilisés comme des textures WebGL. Un {{HTMLElement ("canvas")}} 2D devient dégradé par exemple lorsqu'il est utilisé pour dessiner une image inter-domaine.

+ +
+

Note : le support CORS pour drawImage de Canvas 2D est implémenté dans {{Gecko ("9.0")}}. Cela signifie que l'utilisation d'une image inter-domaine ayant l'approbation CORS ne dégrade plus le canevas 2D, de sorte que le canevas 2D reste utilisable comme source d'une texture WebGL.

+
+ +
+

Note : le support CORS pour les vidéos inter-domaines et l'attribut crossorigin pour les éléments {{HTMLElement ("video")}} est implémenté dans {{Gecko ("12.0")}}.

+
+ +

{{PreviousNext("Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL", "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

diff --git a/files/fr/web/api/webgl_api/tutorial/utiliser_les_textures_avec_webgl/index.html b/files/fr/web/api/webgl_api/tutorial/utiliser_les_textures_avec_webgl/index.html deleted file mode 100644 index 6e1d7bb67d..0000000000 --- a/files/fr/web/api/webgl_api/tutorial/utiliser_les_textures_avec_webgl/index.html +++ /dev/null @@ -1,278 +0,0 @@ ---- -title: Utilisation des textures en WebGL -slug: Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL -tags: - - Tutoriel - - WebGL -translation_of: Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL ---- -

{{WebGLSidebar("Tutorial")}} {{PreviousNext("Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL", "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

- -

Maintenant que notre programme peut faire tourner un cube 3D, appliquons lui une texture, au lieu d'avoir des couleurs unies pour ses faces.

- -

Chargement des textures

- -

La première chose à faire est d'ajouter le code pour charger les textures. Dans notre cas, nous utiliserons une texture unique, appliquée à chacune des six faces de notre cube en rotation ; mais la même technique peut être utilisée un nombre quelconque de textures.

- -
Note : il est important de noter que le chargement des textures suit les règles inter-domaines ; donc vous pouvez seulement charger des textures depuis les sites pour lesquels votre contenu a l'approbation CORS. Voir les textures inter-domaines ci-dessous pour plus de détails.
- -

Le code qui charge la texture ressemble à ce qui suit : 

- -
//
-// Initialiser une texture et charger une image.
-// Quand le chargement d'une image est terminé, la copier dans la texture.
-//
-function loadTexture(gl, url) {
-  const texture = gl.createTexture();
-  gl.bindTexture(gl.TEXTURE_2D, texture);
-
-  // Du fait que les images doivent être téléchargées depuis l'internet,
-  // il peut s'écouler un certain temps avant qu'elles ne soient prêtes.
-  // Jusque là, mettre un seul pixel dans la texture, de sorte que nous puissions
-  // l'utiliser immédiatement. Quand le téléchargement de la page sera terminé,
-  // nous mettrons à jour la texture avec le contenu de l'image.
-  const level = 0;
-  const internalFormat = gl.RGBA;
-  const width = 1;
-  const height = 1;
-  const border = 0;
-  const srcFormat = gl.RGBA;
-  const srcType = gl.UNSIGNED_BYTE;
-  const pixel = new Uint8Array([0, 0, 255, 255]);  // bleu opaque
-  gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
-                width, height, border, srcFormat, srcType,
-                pixel);
-
-  const image = new Image();
-  image.onload = function() {
-    gl.bindTexture(gl.TEXTURE_2D, texture);
-    gl.texImage2D(gl.TEXTURE_2D, level, internalFormat,
-                  srcFormat, srcType, image);
-
-    // WebGL1 a des spécifications différentes pour les images puissances de 2
-    // par rapport aux images non puissances de 2 ; aussi vérifier si l'image est une
-    // puissance de 2 sur chacune de ses dimensions.
-    if (isPowerOf2(image.width) && isPowerOf2(image.height)) {
-       // Oui, c'est une puissance de 2. Générer les mips.
-       gl.generateMipmap(gl.TEXTURE_2D);
-    } else {
-       // Non, ce n'est pas une puissance de 2. Désactiver les mips et définir l'habillage
-       // comme "accrocher au bord"
-       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
-       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
-       gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
-    }
-  };
-  image.src = url;
-
-  return texture;
-}
-
-function isPowerOf2(value) {
-  return (value & (value - 1)) == 0;
-}
- -

La routine loadTexture() commence par créer un objet texture WebGL texture en appelant la fonction WebGL {{domxref ("WebGLRenderingContext.createTexture()", "createTexture()")}}. Il téléverse ensuite un seul pixel bleu en utilisant {{domxref ("WebGLRenderingContext.texImage2D()", "texImage2D()")}}. Cela rend la texture immédiatement utilisable comme une couleur bleue unie, alors que cela peut prendre quelques instants pour télécharger notre image.

- -

Pour charger la texture à partir du fichier image, elle crée ensuite un objet Image et en affecte le src à l'URL de l'image que nous souhaitons utiliser comme texture. La fonction que nous affectons à image.onload sera appelée une fois terminé le téléchargement de l'image. À ce stade, nous appelons à nouveau {{domxref ("WebGLRenderingContext.texImage2D()", "texImage2D()")}}, cette fois en utilisant l'image comme source pour la texture. Après cela, nous configurons le filtrage et l'habillage de la texture suivant que l'image que nous téléchargeons a ou non une puissance de 2 selon ses deux dimensions.

- -

WebGL1 ne peut utiliser que des textures non puissances de 2 avec d'un filtrage défini à NEAREST ou LINEAR, et il ne peut pas générer de mipmap pour elles. Leur mode d'habillage doit également être défini à CLAMP_TO_EDGE. Inversement, si la texture est une puissance de 2 dans les deux dimensions, alors WebGL peut faire un filtrage de meilleure qualité, il peut utiliser mipmap, et il peut définir le mode d'habillage à REPEAT ou MIRRORED_REPEAT.

- -

Un exemple de texture répétée est le pavage d'une image par quelques briques pour couvrir un mur de briques.

- -

Le mipmapping et la répétition UV peuvent être désactivés avec {{domxref ("WebGLRenderingContext.texParameter()", "texParameteri()")}}. Cela permettra des textures non-puissances-de-deux (NPOT) au prix du mipmapping, de l'habillage UV, du pavage UV, et de votre contrôle sur la manière dont le périphérique gérera votre texture.

- -
// gl.NEAREST est aussi permis, au lieu de gl.LINEAR, du fait qu'aucun ne fait de mipmap.
-gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
-// Empêcher l'habillage selon la coordonnée s (répétition).
-gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
-// Empêcher l'habillage selon la coordonnée t (répétition).
-gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
- -

A nouveau, avec ces paramètres, les appareils WebGL compatibles accepteront automatiquement toute résolution pour cette texture (jusqu'à leurs dimensions maximum). A défaut de la configuration ci-dessus, WebGL requiert que tous les échantillons de textures NPOT échouent, en retournant du noir transparent : rgba (0,0,0,0).

- -

Pour charger l'image, ajoutons un appel à notre fonction loadTexture() dans notre fonction main(). Cela peut être ajouté après l'appel initBuffers(gl).

- -
// Charger la texture
-const texture = loadTexture(gl, 'cubetexture.png');
-
- -

Application de la texture sur les faces

- -

À ce stade, la texture est chargée et prête à être utilisée. Mais avant de pouvoir l'utiliser, nous devons définir l'application des coordonnées de texture aux sommets des faces de notre cube. Cela remplace tout le code précédemment existant pour la configuration des couleurs pour chacune des faces du cube dans initBuffers().

- -
 const textureCoordBuffer = gl.createBuffer();
-  gl.bindBuffer(gl.ARRAY_BUFFER, textureCoordBuffer);
-
-  const textureCoordinates = [
-    // Front
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-    // Back
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-    // Top
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-    // Bottom
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-    // Right
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-    // Left
-    0.0,  0.0,
-    1.0,  0.0,
-    1.0,  1.0,
-    0.0,  1.0,
-  ];
-
-  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(textureCoordinates),
-                gl.STATIC_DRAW);
-
-...
-  return {
-    position: positionBuffer,
-    textureCoord: textureCoordBuffer,
-    indices: indexBuffer,
-  };
- -

Tout d'abord, ce code crée un tampon WebGL dans lequel nous stockerons les coordonnées de texture pour chaque face, puis nous lions ce tampon comme étant le tableau dans lequel nous allons écrire.

- -

Le tableau textureCoordinates définit les coordonnées de texture correspondant à chaque sommet de chaque face. Notez que les coordonnées de texture vont de 0,0 à 1,0 ; les dimensions des textures sont normalisées dans une plage de 0,0 à 1,0 quelque soit leur taille réelle, aux fins d'application de la texture.

- -

Une fois que nous avons mis en place le tableau d'application de la texture, nous l'envoyons dans le tampon, de sorte que WebGL ait ces données prêtes pour son utilisation.

- -

Mise à jour des shaders

- -

Le programme shader doit également être mis à jour pour utiliser des textures au lieu de couleurs unies.

- -

Le shader de sommet

- -

Nous avons besoin de remplacer le shader de sommet de façon à ce qu'au lieu de récupérer des données de couleur, il récupère à la place des données de coordonnées de texture.

- -
const vsSource = `
-    attribute vec4 aVertexPosition;
-    attribute vec2 aTextureCoord;
-
-    uniform mat4 uModelViewMatrix;
-    uniform mat4 uProjectionMatrix;
-
-    varying highp vec2 vTextureCoord;
-
-    void main(void) {
-      gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
-      vTextureCoord = aTextureCoord;
-    }
-  `;
- -

Le changement clé est ici qu'au lieu d'aller chercher la couleur du sommet, nous récupérons les coordonnées de la texture, et nous les transmettons au shader de sommet ; ceci indiquera l'emplacement dans la texture correspondant au sommet.

- -

Le shader de fragment

- -

Le shader de fragment doit également être mis à jour :

- -
const fsSource = `
-    varying highp vec2 vTextureCoord;
-
-    uniform sampler2D uSampler;
-
-    void main(void) {
-      gl_FragColor = texture2D(uSampler, vTextureCoord);
-    }
-  `;
- -

Au lieu d'attribuer une valeur de couleur à la couleur du fragment, la couleur du fragment est calculée en récupérant le texel (c'est-à-dire, le pixel dans la texture) sur la base de la valeur de vTextureCoord, qui est interpolée comme les sommets.

- -

Emplacements des attributs et des uniformes

- -

Du fait que nous avons changé un attribut et ajouté un uniforme, nous devons rechercher leurs emplacements :

- -
  const programInfo = {
-    program: shaderProgram,
-    attribLocations: {
-      vertexPosition: gl.getAttribLocation(shaderProgram, 'aVertexPosition'),
-      textureCoord: gl.getAttribLocation(shaderProgram, 'aTextureCoord'),
-    },
-    uniformLocations: {
-      projectionMatrix: gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),
-      modelViewMatrix: gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),
-      uSampler: gl.getUniformLocation(shaderProgram, 'uSampler'),
-    },
-  };
-
- -

Dessin du cube texturé

- -

Les modifications apportées à la fonction drawScene() sont simples.

- -

Tout d'abord, le code pour spécifier le tampon de couleurs a disparu, remplacé par ce qui suit :

- -
// Indiquer à WebGL comment extraire les coordonnées de texture du tampon
-{
-    const num = 2; // chaque coordonnée est composée de 2 valeurs
-    const type = gl.FLOAT; // les données dans le tampon sont des flottants 32 bits
-    const normalize = false; // ne pas normaliser
-    const stride = 0; // combien d'octets à récupérer entre un jeu et le suivant
-    const offset = 0; // à combien d'octets du début faut-il commencer
-    gl.bindBuffer(gl.ARRAY_BUFFER, buffers.textureCoord);
-    gl.vertexAttribPointer(programInfo.attributeLocations.textureCoord, num, type, normalize, stride, offset);
-    gl.enableVertexAttribArray(programInfo.attributeLocations.textureCoord);
-}
- -

Ajoutez alors le code pour spécifier la texture à appliquer sur les faces, juste avant de dessiner :

- -
  // Indiquer à WebGL que nous voulons affecter l'unité de texture 0
-  gl.activeTexture(gl.TEXTURE0);
-
-  // Lier la texture à l'unité de texture 0
-  gl.bindTexture(gl.TEXTURE_2D, texture);
-
-  // Indiquer au shader que nous avons lié la texture à l'unité de texture 0
-  gl.uniform1i(programInfo.uniformLocations.uSampler, 0);
- -

WebGL fournit un minimum de 8 unités de texture ; la première d'entre elles est gl.TEXTURE0. Nous indiquons à WebGL que nous voulons affecter l'unité 0. Nous appelons alors {{domxref ("WebGLRenderingContext.bindTexture()", "bindTexture()")}}, qui lie la texture au point de liaison TEXTURE_2D de l'unité de texture 0. Nous indiquons alors au shader que pour l'uSampler, il faut utiliser l'unité de texture 0.

- -

Finalement, ajoutez texture comme paramètre de la fonction drawScene(), où elle est à la fois définie et appelée.

- -
drawScene(gl, programInfo, buffers, texture, deltaTime);
-...
-function drawScene(gl, programInfo, buffers, texture, deltaTime) {
- -

Arrivés ce point, le cube en rotation devrait être prêt à fonctionner.

- -

{{EmbedGHLiveSample('webgl-examples/tutorial/sample6/index.html', 670, 510) }}

- -

Voir le code complet | Ouvrir cette démo dans une nouvelle page

- -

Textures inter-domaines

- -

Le chargement des textures WebGL est soumis aux contrôles d'accès inter-domaines. Pour que votre contenu puisse charger une texture d'un autre domaine, une approbation CORS doit être obtenue. Voir le Contrôle d'accès HTTP pour plus de détails sur CORS.

- -

Voir cet article sur hacks.mozilla.org pour une explication de l'utilisation des images approuvées CORS comme textures WebGL, avec un exemple complet.

- -
-

Note : le support CORS pour les texture WebGL et l'attribut crossOrigin pour les éléments image est implémenté dans {{Gecko("8.0")}}.

-
- -

Les canevas 2D dégradés (en écriture seule) ne peuvent pas être utilisés comme des textures WebGL. Un {{HTMLElement ("canvas")}} 2D devient dégradé par exemple lorsqu'il est utilisé pour dessiner une image inter-domaine.

- -
-

Note : le support CORS pour drawImage de Canvas 2D est implémenté dans {{Gecko ("9.0")}}. Cela signifie que l'utilisation d'une image inter-domaine ayant l'approbation CORS ne dégrade plus le canevas 2D, de sorte que le canevas 2D reste utilisable comme source d'une texture WebGL.

-
- -
-

Note : le support CORS pour les vidéos inter-domaines et l'attribut crossorigin pour les éléments {{HTMLElement ("video")}} est implémenté dans {{Gecko ("12.0")}}.

-
- -

{{PreviousNext("Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL", "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL")}}

diff --git a/files/fr/web/api/webglrenderingcontext/activer/index.html b/files/fr/web/api/webglrenderingcontext/activer/index.html deleted file mode 100644 index 4d3b41d6c0..0000000000 --- a/files/fr/web/api/webglrenderingcontext/activer/index.html +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: WebGLRenderingContext.enable() -slug: Web/API/WebGLRenderingContext/activer -tags: - - API - - Méthode - - Reference - - WebGL - - WebGLRenderingContext -translation_of: Web/API/WebGLRenderingContext/enable ---- -
{{APIRef("WebGL")}}
- -

La méthode WebGLRenderingContext.enable() de l'API WebGL active des fonctionnalités WebGL particulières pour ce contexte.

- -

Syntaxe

- -
void gl.enable(fon);
-
- -

Paramètres

- -
-
fon
-
Un {{domxref("GLenum")}} indiquant quelle fonctionnalité WebGL activer. Valeurs possibles :
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ConstanteDescription
gl.BLENDActive le mélange des valeurs de couleur de fragment calculées. Voir {{domxref("WebGLRenderingContext.blendFunc()")}}.
gl.CULL_FACEActive le masquage des polygones. Voir {{domxref("WebGLRenderingContext.cullFace()")}}.
gl.DEPTH_TESTActive les comparaisons et les mises à jour dans le tampon de profondeur. Voir {{domxref("WebGLRenderingContext.depthFunc()")}}.
gl.DITHERActive le tramage des composantes de couleur avant qu'elles ne soient écrites dans le tampon de couleur.
gl.POLYGON_OFFSET_FILLActive l'ajout d'un décalage aux valeurs de profondeur des fragments de polygone. Voir {{domxref("WebGLRenderingContext.polygonOffset()")}}.
gl.SAMPLE_ALPHA_TO_COVERAGEActive le calcul d'une valeur de couverture temporaire déterminée par la valeur alpha.
gl.SAMPLE_COVERAGEActive le ET de la couverture des fragments avec la valeur de couverture temporaire. Voir {{domxref("WebGLRenderingContext.sampleCoverage()")}}.
gl.SCISSOR_TESTActive le test de détourage qui supprime les fragments se trouvant en dehors du rectangle de détourage. Voir {{domxref("WebGLRenderingContext.scissor()")}}.
gl.STENCIL_TESTActive le test et les mises à jour stencil dans le stencil buffer. Voir {{domxref("WebGLRenderingContext.stencilFunc()")}}.
- Lors de l'utilisation d'un {{domxref("WebGL2RenderingContext", "WebGL 2 context", "", 1)}}, les valeurs suivantes sont en outre disponibles : - - - - - - - - - - - - - - -
ConstanteDescription
gl.RASTERIZER_DISCARDLes primitives sont supprimées immédiatement après l'étape de rastérisation, mais après l'étape de renvoi de transformation optionnelle. Les commandes gl.clear() sont ignorées.
-
-
- -

Valeur retournée

- -

Aucune.

- -

Exemples

- -
gl.enable(gl.DITHER);
-
- -

Pour vérifier que cette fonctionnalité est activée, utilisez la méthode {{domxref("WebGLRenderingContext.isEnabled()")}} :

- -
gl.isEnabled(gl.DITHER);
-// true
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('WebGL', "#5.14.3", "enable")}}{{Spec2('WebGL')}}Définition initiale pour WebGL.
{{SpecName('OpenGL ES 2.0', "glEnable.xml", "glEnable")}}{{Spec2('OpenGL ES 2.0')}}Page man de l'API OpenGL ES 2.0.
{{SpecName('OpenGL ES 3.0', "glEnable.xhtml", "glEnable")}}{{Spec2('OpenGL ES 3.0')}}Page man de l'API OpenGL ES 3.0 API.
- -

Compatibilité des navigateurs

- - - -

{{Compat("api.WebGLRenderingContext.enable")}}

- -

Voir aussi

- - diff --git a/files/fr/web/api/webglrenderingcontext/canevas/index.html b/files/fr/web/api/webglrenderingcontext/canevas/index.html deleted file mode 100644 index 6b7965a1d7..0000000000 --- a/files/fr/web/api/webglrenderingcontext/canevas/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: WebGLRenderingContext.canvas -slug: Web/API/WebGLRenderingContext/canevas -tags: - - Propriété - - WebGL - - WebGLRenderingContext - - lecture seule -translation_of: Web/API/WebGLRenderingContext/canvas ---- -
{{APIRef("WebGL")}}
- -

La propriété WebGLRenderingContext.canvas est une référence en lecture seule à l'objet {{domxref("HTMLCanvasElement")}} ou {{domxref("OffscreenCanvas")}} associé au contexte. Il peut s'agir de {{jsxref("null")}} s'il n'est pas associé à un élément {{HTMLElement("canvas")}} ou à un objet {{domxref("OffscreenCanvas")}}.

- -

Syntaxe

- -
gl.canvas;
- -

Valeur retournée

- -

Soit un objet {{domxref("HTMLCanvasElement")}} ou {{domxref("OffscreenCanvas")}}, soit {{jsxref("null")}}.

- -

Exemples

- -

Élément canevas

- -

Étant donné cet élément {{HTMLElement("canvas")}} :

- -
<canvas id="canevas"></canvas>
-
- -

Vous pouvez en récupérer une référence à partir du WebGLRenderingContext en utilisant la propriété canvas :

- -
var canevas = document.getElementById('canevas');
-var gl = canevas.getContext('webgl');
-gl.canvas; // HTMLCanvasElement
-
- -

Canevas hors écran

- -

Exemple d'utilisation de l'objet expérimental {{domxref("OffscreenCanvas")}}.

- -
var horsEcran = new OffscreenCanvas(256, 256);
-var gl = horsEcran.getContext('webgl');
-gl.canvas; // OffscreenCanvas
- -

Spécifications

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('WebGL', "#DOM-WebGLRenderingContext-canvas", "WebGLRenderingContext.canvas")}}{{Spec2('WebGL')}}Définition initiale.
- -

Compatibilité des navigateurs

- - - -

{{Compat("api.WebGLRenderingContext.canvas")}}

- -

Voir aussi

- - diff --git a/files/fr/web/api/webglrenderingcontext/canvas/index.html b/files/fr/web/api/webglrenderingcontext/canvas/index.html new file mode 100644 index 0000000000..6b7965a1d7 --- /dev/null +++ b/files/fr/web/api/webglrenderingcontext/canvas/index.html @@ -0,0 +1,75 @@ +--- +title: WebGLRenderingContext.canvas +slug: Web/API/WebGLRenderingContext/canevas +tags: + - Propriété + - WebGL + - WebGLRenderingContext + - lecture seule +translation_of: Web/API/WebGLRenderingContext/canvas +--- +
{{APIRef("WebGL")}}
+ +

La propriété WebGLRenderingContext.canvas est une référence en lecture seule à l'objet {{domxref("HTMLCanvasElement")}} ou {{domxref("OffscreenCanvas")}} associé au contexte. Il peut s'agir de {{jsxref("null")}} s'il n'est pas associé à un élément {{HTMLElement("canvas")}} ou à un objet {{domxref("OffscreenCanvas")}}.

+ +

Syntaxe

+ +
gl.canvas;
+ +

Valeur retournée

+ +

Soit un objet {{domxref("HTMLCanvasElement")}} ou {{domxref("OffscreenCanvas")}}, soit {{jsxref("null")}}.

+ +

Exemples

+ +

Élément canevas

+ +

Étant donné cet élément {{HTMLElement("canvas")}} :

+ +
<canvas id="canevas"></canvas>
+
+ +

Vous pouvez en récupérer une référence à partir du WebGLRenderingContext en utilisant la propriété canvas :

+ +
var canevas = document.getElementById('canevas');
+var gl = canevas.getContext('webgl');
+gl.canvas; // HTMLCanvasElement
+
+ +

Canevas hors écran

+ +

Exemple d'utilisation de l'objet expérimental {{domxref("OffscreenCanvas")}}.

+ +
var horsEcran = new OffscreenCanvas(256, 256);
+var gl = horsEcran.getContext('webgl');
+gl.canvas; // OffscreenCanvas
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('WebGL', "#DOM-WebGLRenderingContext-canvas", "WebGLRenderingContext.canvas")}}{{Spec2('WebGL')}}Définition initiale.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.WebGLRenderingContext.canvas")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/webglrenderingcontext/enable/index.html b/files/fr/web/api/webglrenderingcontext/enable/index.html new file mode 100644 index 0000000000..4d3b41d6c0 --- /dev/null +++ b/files/fr/web/api/webglrenderingcontext/enable/index.html @@ -0,0 +1,145 @@ +--- +title: WebGLRenderingContext.enable() +slug: Web/API/WebGLRenderingContext/activer +tags: + - API + - Méthode + - Reference + - WebGL + - WebGLRenderingContext +translation_of: Web/API/WebGLRenderingContext/enable +--- +
{{APIRef("WebGL")}}
+ +

La méthode WebGLRenderingContext.enable() de l'API WebGL active des fonctionnalités WebGL particulières pour ce contexte.

+ +

Syntaxe

+ +
void gl.enable(fon);
+
+ +

Paramètres

+ +
+
fon
+
Un {{domxref("GLenum")}} indiquant quelle fonctionnalité WebGL activer. Valeurs possibles :
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConstanteDescription
gl.BLENDActive le mélange des valeurs de couleur de fragment calculées. Voir {{domxref("WebGLRenderingContext.blendFunc()")}}.
gl.CULL_FACEActive le masquage des polygones. Voir {{domxref("WebGLRenderingContext.cullFace()")}}.
gl.DEPTH_TESTActive les comparaisons et les mises à jour dans le tampon de profondeur. Voir {{domxref("WebGLRenderingContext.depthFunc()")}}.
gl.DITHERActive le tramage des composantes de couleur avant qu'elles ne soient écrites dans le tampon de couleur.
gl.POLYGON_OFFSET_FILLActive l'ajout d'un décalage aux valeurs de profondeur des fragments de polygone. Voir {{domxref("WebGLRenderingContext.polygonOffset()")}}.
gl.SAMPLE_ALPHA_TO_COVERAGEActive le calcul d'une valeur de couverture temporaire déterminée par la valeur alpha.
gl.SAMPLE_COVERAGEActive le ET de la couverture des fragments avec la valeur de couverture temporaire. Voir {{domxref("WebGLRenderingContext.sampleCoverage()")}}.
gl.SCISSOR_TESTActive le test de détourage qui supprime les fragments se trouvant en dehors du rectangle de détourage. Voir {{domxref("WebGLRenderingContext.scissor()")}}.
gl.STENCIL_TESTActive le test et les mises à jour stencil dans le stencil buffer. Voir {{domxref("WebGLRenderingContext.stencilFunc()")}}.
+ Lors de l'utilisation d'un {{domxref("WebGL2RenderingContext", "WebGL 2 context", "", 1)}}, les valeurs suivantes sont en outre disponibles : + + + + + + + + + + + + + + +
ConstanteDescription
gl.RASTERIZER_DISCARDLes primitives sont supprimées immédiatement après l'étape de rastérisation, mais après l'étape de renvoi de transformation optionnelle. Les commandes gl.clear() sont ignorées.
+
+
+ +

Valeur retournée

+ +

Aucune.

+ +

Exemples

+ +
gl.enable(gl.DITHER);
+
+ +

Pour vérifier que cette fonctionnalité est activée, utilisez la méthode {{domxref("WebGLRenderingContext.isEnabled()")}} :

+ +
gl.isEnabled(gl.DITHER);
+// true
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('WebGL', "#5.14.3", "enable")}}{{Spec2('WebGL')}}Définition initiale pour WebGL.
{{SpecName('OpenGL ES 2.0', "glEnable.xml", "glEnable")}}{{Spec2('OpenGL ES 2.0')}}Page man de l'API OpenGL ES 2.0.
{{SpecName('OpenGL ES 3.0', "glEnable.xhtml", "glEnable")}}{{Spec2('OpenGL ES 3.0')}}Page man de l'API OpenGL ES 3.0 API.
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.WebGLRenderingContext.enable")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/webrtc_api/connectivity/index.html b/files/fr/web/api/webrtc_api/connectivity/index.html new file mode 100644 index 0000000000..8b512d7127 --- /dev/null +++ b/files/fr/web/api/webrtc_api/connectivity/index.html @@ -0,0 +1,54 @@ +--- +title: Introduction à l'architecture WebRTC +slug: Web/Guide/API/WebRTC/WebRTC_architecture +tags: + - WebRTC +translation_of: Web/API/WebRTC_API/Connectivity +--- +

(AKA "WebRTC et l'océan des acronymes") WebRTC comporte de nombreuses parties distinctes et cela peut être accablant et source de confusion pour les nouveaux venus. Cet article a pour but d'expliquer quelles sont toutes ses parties, et comment elles s'imbriquent.

+ +

Qu’est-ce que ICE?

+ +

Interactive Connectivity Establishment (ICE) est un cadre qui permet à votre navigateur web de se connecter avec des pairs. Il y a plusieurs raisons pour qu’une connexion directe entre un pair A et un pair B ne fonctionne pas. Il a besoin de contourner les pare-feux qui pourraient empêcher la connexion de s’ouvrir, il doit vous attribuer une adresse unique si votre appareil n'a pas une adresse IP publique comme la plupart du temps et transmettre des données via un serveur si votre routeur ne permet pas de vous connecter directement avec des pairs. ICE utilise certaines des techniques suivantes décrites ci-dessous pour y parvenir :

+ +

Qu’est-ce que STUN?

+ +

Session Traversal Utilities for NAT (STUN) (acronyme dans un acronyme) est un protocole qui permet de découvrir votre adresse publique et de déterminer toute restriction dans votre routeur qui empêcherait une connexion directe avec un pair.

+ +

Le client enverra une demande à un serveur STUN sur internet qui répondra avec l'adresse du client public et informera si le client est accessible derrière un routeur NAT.

+ +

An interaction between two users of a WebRTC application involving a STUN server.

+ +

Qu’est-ce que NAT?

+ +

Network Address Translation (NAT) est utilisé pour donner à votre appareil une adresse IP publique. Un routeur aura une adresse IP publique et chaque périphérique connecté au routeur aura une adresse IP privée. Les demandes seront traduites de l'adresse IP privée de l'appareil vers l'IP publique du routeur avec un port unique. De cette façon, vous n'avez pas besoin d’avoir une adresse IP publique unique pour chaque périphérique, mais pouvez encore être découvert sur internet.

+ +

Certains routeurs auront des restrictions sur ceux qui peuvent se connecter aux dispositifs sur le réseau. Cela peut signifier que, même si nous avons l'adresse IP publique, trouvée par le serveur STUN, tout le monde ne peut pas créer une connexion. Dans ce cas, il faut se tourner vers le TURN.

+ +

Qu’est-ce que TURN?

+ +

Certains routeurs utilisant NAT emploient une restriction appelée ‘Symmetric NAT’. Cela signifie que le routeur n'accepte que les connexions de pairs auxquelles vous vous êtes déjà connecté.

+ +

Traversal Using Relays around NAT (TURN) Doit contourner la restriction de NAT Symétrique en ouvrant une connexion avec un serveur TURN et retransmettre toutes les informations par le biais de ce serveur. Vous devrez créer une connexion avec un serveur TURN et dire à tous les pairs d'envoyer des paquets au serveur qui vous seront alors expédiés. Cela vient évidemment avec une certaine surcharge et n'est donc utilisé que s'il n'y a pas d'autres alternatives.

+ +

Une interaction entre deux utilisateurs d'une application WebRTC impliquant des serveurs STUN et TURN.

+ +

Qu’est-ce que SDP?

+ +

Session Description Protocol (SDP) est une norme décrivant le contenu multimédia de la connexion comprenant la résolution, les formats, les codecs, le cryptage, etc., afin que les deux pairs puissent se comprendre une fois le transfert des données en cours. Ce n'est pas le média lui-même, mais plus les métadonnées.

+ +

Qu’est-ce qu'une Offre/Réponse et un Canal de Signal?

+ +

Malheureusement WebRTC ne peut pas créer de connexions sans une sorte de serveur au milieu. Nous appelons cela le Canal de Signal (Signal Channel). C'est une sorte de canal de communication pour échanger des informations avant de configurer une connexion, que ce soit par e-mail, carte postale ou pigeon voyageur... C’est comme bon vous semble.

+ +

L’information que nous avons besoin d'échanger est l'Offre et la Réponse qui contient juste le SDP mentionné ci-dessus.

+ +

Le pair A, qui sera l'initiateur de la connexion, va créer une offre. Il enverra ensuite cette offre au pair B en utilisant le Canal de Signal choisi. Le pair B recevra l’offre du Canal de Signal et créera la Réponse. Il renverra ensuite tout ceci au pair A via le Canal de Signal.

+ +

Qu’est-ce qu’un candidat ICE?

+ +

Autant que d'échanger des informations sur les médias (cf. Offre/Réponse et SDP), les pairs doivent échanger des informations sur la connexion réseau. Ceci est connu comme étant un candidat ICE et détaille les méthodes disponibles que le pair est en mesure de communiquer (directement ou via un serveur TURN).

+ +

L'échange entier dans un diagramme compliqué

+ +

Un schéma architectural complet montrant l'ensemble du processus WebRTC.

diff --git a/files/fr/web/api/webrtc_api/session_lifetime/index.html b/files/fr/web/api/webrtc_api/session_lifetime/index.html new file mode 100644 index 0000000000..0b14f417fb --- /dev/null +++ b/files/fr/web/api/webrtc_api/session_lifetime/index.html @@ -0,0 +1,21 @@ +--- +title: Introduction à WebRTC +slug: WebRTC/Introduction +translation_of: Web/API/WebRTC_API/Session_lifetime +--- +
+

WebRTC vous permet de faire de la communication pair-à-pair dans une application du navigateur.

+
+

Etablir la connexion

+

La connexion initiale entre les pairs doit être accomplie par un service d'application qui se charge de la découverte des utilisateurs, communication, translation d'adresse réseau (NAT) avec les flux de données.

+

Signalisation

+

La signalisation est le mécanisme par lequel les pairs envoient des messages de contrôle à chacun dans le but d'établir le protocole de communication, le canal et la méthode. Ceux-ci ne sont pas spécifiés dans le standard WebRTC. En fait, le dévelopeur peut choisir n'importe quel protocole de message (comme SIP ou XMPP), et n'importe quel canal de communication duplex (comme WebSocket ou XMLHttpRequest) en tandem avec une API de connexion persistante à un serveur (comme l'API Google Channel) pour AppEngine.

+

Transmission

+

getUserMedia

+

Objet LocalMediaStream

+

Reception

+

Le support WebRTC dans Firefox est caché derrière une préférence. Allez à about:config et positionnez 'media.navigator.enabled' à 'true'.

+
+

Il y a des fichiers de tests dans les sources pour vous donner une idée sur ce qui fonctionne. Voir: dom/media/tests/local_video_test.html. Essayez aussi la demo de service d'appel, sa page source, et son serveur source.

+
+

 

diff --git a/files/fr/web/api/webrtc_api/signaling_and_video_calling/index.html b/files/fr/web/api/webrtc_api/signaling_and_video_calling/index.html new file mode 100644 index 0000000000..e550e4adbb --- /dev/null +++ b/files/fr/web/api/webrtc_api/signaling_and_video_calling/index.html @@ -0,0 +1,360 @@ +--- +title: L’essentiel du WebRTC +slug: Web/Guide/API/WebRTC/WebRTC_basics +tags: + - WebRTC +translation_of: Web/API/WebRTC_API/Signaling_and_video_calling +translation_of_original: Web/API/WebRTC_API/WebRTC_basics +--- +
+

Maintenant que vous comprenez l'architecture WebRTC, vous pouvez passer à cet article, qui vous emmène à travers la création d'une application RTC multi-navigateurs.A la fin de cet article vous devriez pouvoir créer un canal de données et de médias  pair à pair qui fonctionne

+
+ +

Contenu semi-ancien, à partir de RTCPeerConnection

+ +

Les informations ci-dessous proviennent de RTCPeerConnection; elles  pourraient rester ici, comme aller ailleurs. Mais elles ne font pas partie de cette page. Alors pendant que je trie cette page, elles seront ici, jusqu'à ce que je sache où elles appartiennent pour de vrai.

+ +

Usage basique

+ +

l'utilisation de RTCPeerConnection implique la négociation d'une connexion entre votre machine  et une machine distante,et ce, en générant {{interwiki("wikipedia", "Session Description Protocol")}} a échanger entre les deux. L'appelant commence le processus en envoyant une offre à l'appareil distant, qui répond par l'acceptation ou le rejet de la demande de connexion.

+ +

Les deux parties (l'appelant et l'appelé) doivent mettre en place leurs propres instances de RTCPeerConnection pour représenter leurs extrémités de la connexion peer-to-peer:

+ +
var pc = new RTCPeerConnection();
+pc.onaddstream = function(obj) {
+  var vid = document.createElement("video");
+  document.appendChild(vid);
+  vid.srcObject = obj.stream;
+}
+
+// Helper functions
+function endCall() {
+  var videos = document.getElementsByTagName("video");
+  for (var i = 0; i < videos.length; i++) {
+    videos[i].pause();
+  }
+
+  pc.close();
+}
+
+function error(err) {
+  endCall();
+}
+ +

Initialiser un appel

+ +

l'appelant doit utiliser {{domxref("navigator.getUserMedia()")}} pour obtenir un flux vidéo, puis ajouter ce flux à l'instance de RTCPeerConnection. Une fois que cela a été fait, il doit appeler {{domxref("RTCPeerConnection.createOffer()")}} pour créer une offre,puis la configurer et l'envoyer a un serveur faisant office d'intermediaire.

+ +
// recuperer la liste des "amis" a partir du serveur
+// l'utilisateur selectionne un amis avec qui lancer la connection
+navigator.getUserMedia({video: true}, function(stream) {
+  // l'ajout d'un stream locale ne declanche pas onaddstream,
+  // donc il faut l'appeler manuellement.
+  pc.onaddstream = e => video.src = URL.createObjectURL(e.stream);
+  pc.addStream(stream);
+
+  pc.createOffer(function(offer) {
+    pc.setLocalDescription(offer, function() {
+      // envoi de l'offre au serveur qui se charge de la transmettre a "l'ami" choisit precedemment.
+    }, error);
+  }, error);
+});
+ +

Répondre à un appel

+ +

sur l'autre machine, l'ami recevra l'offre à partir du serveur en utilisant le protocole approprié (définit par le serveur). Une fois que l'offre arrive,{{domxref("navigator.getUserMedia()")}} est une fois de plus appelée pour créer le second flux, qui est ajouté à la RTCPeerConnection. Un  objet {{domxref("RTCSessionDescription")}} est créé, et mis en place comme la description du distant en appelant {{domxref("RTCPeerConnection.setRemoteDescription()")}}.

+ +

Ensuite, une réponse est créée en utilisant {{domxref("RTCPeerConnection.createAnswer()")}} et renvoyé au serveur, qui la transmet à l'appelant.

+ +
var offer = getOfferFromFriend();
+navigator.getUserMedia({video: true}, function(stream) {
+  pc.onaddstream = e => video.src = URL.createObjectURL(e.stream);
+  pc.addStream(stream);
+
+  pc.setRemoteDescription(new RTCSessionDescription(offer), function() {
+    pc.createAnswer(function(answer) {
+      pc.setLocalDescription(answer, function() {
+        // envoi de la réponse au serveur qui la transmettra a l'appelant
+      }, error);
+    }, error);
+  }, error);
+});
+ +

Gestion de la réponse

+ +

retour a la première machine, qui recois la reponse. une fois cette dernière arrivée,l'appelant utilise {{domxref("RTCPeerConnection.setRemoteDescription()")}} pour définir la réponse comme la description de l'autre l'extrémité de la connexion. 

+ +
// pc a été déclaré précédemment, lors de l'envoi de l'offre.
+var offer = getResponseFromFriend();
+pc.setRemoteDescription(new RTCSessionDescription(offer), function() { }, error);
+ +

Ancien contenu en approche!

+ +

Tout ce qui est en dessous de ce point est potentiellement obsolète. Il est toujours là en attente d'examen et d'intégration possible dans d'autres parties de la documentation où il serait encore valides.

+ +
+

Ne pas utiliser les examples de cette page. Voir l'article signalisation et appel vidéo ,pour des example mis a jour sur l'utilisation des medias WebRTC.

+
+ +

Note

+ +

Cette page contient des informations périmées selon http://stackoverflow.com/a/25065359/3760500

+ +
+

Peu importe ce que la page de MDN indique, RTPDataChannels est très désuet (faites connaître l'URL). Firefox et Chrome supportent les spec DataChannels maintenant. Idem pour DTLSSRTPKeyAgreement je pense.

+
+ +

Shims (Bibliothèque d’interception d’API)

+ +

Comme vous pouvez l'imaginer, avec une API aussi jeune, vous devez utiliser les préfixes de navigateur et les positionner dans des variables communes.

+ +
var PeerConnection = window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
+var IceCandidate = window.mozRTCIceCandidate || window.RTCIceCandidate;
+var SessionDescription = window.mozRTCSessionDescription || window.RTCSessionDescription;
+navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
+ +

PeerConnection

+ +

C'est le point de départ pour créer une connexion avec un pair. Il accepte des options de configuration sur les serveurs ICE à utiliser pour établir une connexion.

+ +
var pc = new PeerConnection(configuration, options);
+ +

RTCConfiguration

+ +

L'objet {{domxref("RTCConfiguration")}} contient l’information sur les serveurs TURN et/ou STUN à utiliser pour ICE. Ceci est requis pour s'assurer que la plupart des utilisateurs peuvent en fait créer une connexion en évitant les restrictions du NAT et du pare-feu.

+ +
var configuration = {
+    iceServers: [
+        {url: "stun:23.21.150.121"},
+        {url: "stun:stun.l.google.com:19302"},
+        {url: "turn:numb.viagenie.ca", credential: "webrtcdemo", username: "louis%40mozilla.com"}
+    ]
+}
+ +

Google met à disposition un serveur STUN public que nous pouvons utiliser. J'ai également créé un compte chez http://numb.viagenie.ca/ pour un accès gratuit à un serveur TURN. Vous pouvez faire la même chose et les remplacer par vos propres informations d'identification.

+ +

options (Cf. "Note" avant)

+ +

Selon le type de connexion, vous devez passer des options.

+ +
var options = {
+    optional: [
+        {DtlsSrtpKeyAgreement: true},
+        {RtpDataChannels: true}
+    ]
+}
+ +

DtlsSrtpKeyAgreement est exigé pour Chrome et Firefox pour interagir.

+ +

RtpDataChannels est nécessaire si nous voulons utiliser l'API DataChannels sur Firefox.

+ +

ICECandidate

+ +

Après avoir créé la connexion et en passant par les serveurs STUN et TURN disponibles, un événement sera déclenché une fois que le framework ICE aura trouvé certains « candidats » qui permettront de vous connecter avec un pair. Ceci est reconnu comme étant un candidat ICE et exécute une fonction de rappel sur PeerConnection#onicecandidate.

+ +
pc.onicecandidate = function (e) {
+    // candidate exists in e.candidate
+    if (e.candidate == null) { return }
+    send("icecandidate", JSON.stringify(e.candidate));
+    pc.onicecandidate = null;
+};
+ +

Lorsque le rappel est exécuté, nous devons utiliser le canal de signal pour envoyer le Candidat au pair. Sur Chrome, on trouve habituellement plusieurs candidats ICE, nous n’en avons besoin que d'un seul donc j'en envoie généralement une puis supprimer le descripteur. Firefox inclut le Candidat dans l'Offre SDP.

+ +

Canal de Signal

+ +

Maintenant que nous avons un candidat ICE, nous devons l’envoyer à nos pairs afin qu'ils sachent comment se connecter avec nous. Toutefois, cela nous laisse face à une problématique de l’œuf et de la poule; Nous voulons que PeerConnection envoie des données à un pair, mais avant cela, nous devons lui envoyer des métadonnées…

+ +

C'est là qu'intervient le canal de signal. C'est n'importe quel mode de transport de données qui permet aux deux pairs d’échanger des informations. Dans cet article, nous allons utiliser FireBase parce que c'est incroyablement facile à installer et ne nécessite aucun hébergement ou code serveur.

+ +

Pour l'instant imaginez seulement que deux méthodes existent: send() va prendre une clé et lui affecter des données et recv() appelle un descripteur lorsqu'une clé a une valeur.

+ +

La structure de la base de données ressemble à ceci :

+ +
{
+    "": {
+        "candidate:": …
+        "offer": …
+        "answer": …
+    }
+}
+ +

Les connexions sont divisées par un roomId et stockeront 4 éléments d'information, le candidat ICE de l'auteur de l'offre, le candidat ICE du répondeur, l'offre SDP et la réponse SDP.

+ +

Offre

+ +

Une offre SDP (Session Description Protocol) et le méta données qui décrit aux autres pairs le format attendu(video, formats, codecs, cryptage, résolution, taille, etc etc).

+ +

Un échange nécessite une offre d'un pair, alors l'autre pair doit recevoir l'offre et offrir en retour une réponse.

+ +
pc.createOffer(function (offer) {
+    pc.setLocalDescription(offer);
+
+    send("offer", JSON.stringify(offer));
+}, errorHandler, constraints);
+ +

errorHandler

+ +

S'il y avait un problème lors de la génération d’une offre, cette méthode sera exécutée avec les détails de l'erreur comme premier argument.

+ +
var errorHandler = function (err) {
+    console.error(err);
+};
+ +

constraints

+ +

Options pour l'offre SDP.

+ +
var constraints = {
+    mandatory: {
+        OfferToReceiveAudio: true,
+        OfferToReceiveVideo: true
+    }
+};
+ +

OfferToReceiveAudio/Video Dit aux autres pair que vous désirez recevoir de la vidéo ou de l'audio de leur part. Ce n'est pas nécessaire pour DataChannels.

+ +

Une fois que l'offre a été générée nous devons définir le SDP local à la nouvelle offre et l’envoyer par le canal de signal aux autres pairs et attendre leur réponse SDP.

+ +

Réponse

+ +

Une réponse SDP est comme une offre, mais est une réponse ; un peu comme répondre au téléphone. Nous pouvons seulement émettre une réponse qu’après avoir reçu une offre.

+ +
recv("offer", function (offer) {
+    offer = new SessionDescription(JSON.parse(offer))
+    pc.setRemoteDescription(offer);
+
+    pc.createAnswer(function (answer) {
+        pc.setLocalDescription(answer);
+
+        send("answer", JSON.stringify(answer));
+    }, errorHandler, constraints);
+});
+ +

DataChannel

+ +

J'expliquerai d'abord comment utiliser PeerConnection pour l'API DataChannels et le transfert de données arbitraires entre des pairs.

+ +

Note: Au moment de l’écriture de cet article, l'interopérabilité entre Chrome et Firefox n'est pas possible avec DataChannels. Chrome prend en charge un protocole similaire mais privé et soutiendra le protocole standard bientôt.

+ +
var channel = pc.createDataChannel(channelName, channelOptions);
+ +

L'auteur de l'offre doit être le pair qui crée le canal. Le répondeur recevra le canal dans le rappel (callback) ondatachannel dans le PeerConnection. Vous devez appeler createDataChannel() une fois avant de créer l'offre.

+ +

channelName

+ +

Il s'agit d'une chaîne qui agit comme une étiquette pour le nom de votre canal. AVERTISSEMENT : Assurez-vous que votre nom de canal n'a pas d'espaces ou Chrome va échouer sur createAnswer().

+ +

channelOptions

+ +
var channelOptions = {};
+ +

Ces options ne sont pas bien supportées sur Chrome donc vous pouvez laisser ça vide pour l'instant. Vérifiez le RFC pour plus d'informations sur les options.

+ +

Méthodes et événements de canal

+ +

onopen

+ +

Exécuté lorsque la connexion est établie.

+ +

onerror

+ +

Exécuté s'il y a une erreur de création de la connexion. Le premier argument est un objet d'erreur.

+ +
channel.onerror = function (err) {
+    console.error("Channel Error:", err);
+};
+ +

onmessage

+ +
channel.onmessage = function (e) {
+    console.log("Got message:", e.data);
+}
+ +

Le cœur de la connexion. Lorsque vous recevez un message, cette méthode s’exécute. Le premier argument est un objet d'événement qui contient les données, heure de réception et autres informations.

+ +

onclose

+ +

Exécuté si l'autre pair ferme la connexion.

+ +

Lier les événements

+ +

Si vous êtes le créateur du canal(l'auteur de l'offre), vous pouvez lier des événements directement à la DataChannel que vous avez créé avec createChannel. Si vous êtes l'auteur de la réponse, vous devez utiliser le callback ondatachannel dans le PeerConnection afin d'accéder au même canal.

+ +
pc.ondatachannel = function (e) {
+    e.channel.onmessage = function () { … };
+};
+ +

Le canal est disponible dans l’objet événement passé dans le descripteur en tant que e.channel.

+ +

send()

+ +
channel.send("Hi Peer!");
+ +

Cette méthode vous permet d'envoyer des données directement au pair! Incroyable. Vous devez envoyer un String, Blob, ArrayBuffer ou ArrayBufferView, alors assurez-vous de "stringifier" les objets.

+ +

close()

+ +

Ferme le canal une fois que la connexion doit se terminer. Il est recommandé de le faire sur l’ unload de la page.

+ +

Media

+ +

Maintenant nous allons couvrir la transmission de médias tels que l'audio ou la vidéo. Pour afficher la vidéo et l'audio, vous devez inclure un tag <video> dans le document avec l'attribut autoplay.

+ +

Obtenir les médias de l'utilisateur

+ +
<video id="preview" autoplay></video>
+
+var video = document.getElementById("preview");
+navigator.getUserMedia(mediaOptions, function (stream) {
+    video.src = URL.createObjectURL(stream);
+}, errorHandler);
+ +

mediaOptions

+ +

Les contraintes sur les types de médias que vous souhaitez renvoyer de l'utilisateur.

+ +
var mediaOptions = {
+    video: true,
+    audio: true
+};
+ +

Si vous voulez juste une conversation audio, supprimez la clé video.

+ +

errorHandler

+ +

Exécuté s'il y a une erreur retournée par le support demandé.

+ +

Événements Médias et Méthodes

+ +

addStream

+ +

Ajoute le flux de getUserMedia au PeerConnection.

+ +
pc.addStream(stream);
+ +

onaddstream

+ +
<video id="otherPeer" autoplay></video>
+
+var otherPeer = document.getElementById("otherPeer");
+pc.onaddstream = function (e) {
+    otherPeer.src = URL.createObjectURL(e.stream);
+};
+ +

Exécuté lorsque la connexion a été mise en place et que l'autre pair a ajouté le flux de données pour la connexion avec addStream. Vous avez besoin d'un autre tag <video> pour afficher les médias de l'autre pair.

+ +

Le premier argument est un objet d'événement avec les flux de média de l'autre pair.

+ +

Afficher la Source

+ +

Vous pouvez voir la source développée à partir de tous les extraits de code de cet article à mon repo WebRTC.

+ + diff --git a/files/fr/web/api/webrtc_api/taking_still_photos/index.html b/files/fr/web/api/webrtc_api/taking_still_photos/index.html new file mode 100644 index 0000000000..854d0dd3f7 --- /dev/null +++ b/files/fr/web/api/webrtc_api/taking_still_photos/index.html @@ -0,0 +1,161 @@ +--- +title: Prendre des photos avec la webcam +slug: WebRTC/Prendre_des_photos_avec_la_webcam +tags: + - API + - Avancé + - WebRTC + - getusermedia +translation_of: Web/API/WebRTC_API/Taking_still_photos +--- +

Introduction et demo

+

Ceci est un tutoriel rapide pour apprendre comment accéder à la caméra sur votre ordinateur et prendre des photos avec. Vous pouvez voir le code final en action dans JSFiddle. Il y a aussi une version plus avancée pour charger des photos sur imgur en JavaScript, disponible en code source sur GitHub ou en demo.

+

Les balises HTML

+

La première chose dont vous avez besoin pour accéder à la webcam en utilisant WebRTC est un élément {{HTMLElement("video")}} et un élément {{HTMLElement("canvas")}} dans la page. L'élément video reçoit un flux de WebRTC et l'élément canvas est nécessaire pour capture l'image de la vidéo. Nous ajoutons aussi une image qui sera par la suite remplacée par la capture de la webcam.

+
<video id="video"></video>
+<button id="startbutton">Prendre une photo</button>
+<canvas id="canvas"></canvas>
+<img src="http://placekitten.com/g/320/261" id="photo" alt="photo">
+
+

Le script complet

+

Voice le JavaScript complet en un seul morceau. Nous allons expliquer chaque section en détail ci-après.

+
(function() {
+
+  var streaming = false,
+      video        = document.querySelector('#video'),
+      cover        = document.querySelector('#cover'),
+      canvas       = document.querySelector('#canvas'),
+      photo        = document.querySelector('#photo'),
+      startbutton  = document.querySelector('#startbutton'),
+      width = 320,
+      height = 0;
+
+  navigator.getMedia = ( navigator.getUserMedia ||
+                         navigator.webkitGetUserMedia ||
+                         navigator.mozGetUserMedia ||
+                         navigator.msGetUserMedia);
+
+  navigator.getMedia(
+    {
+      video: true,
+      audio: false
+    },
+    function(stream) {
+      if (navigator.mozGetUserMedia) {
+        video.mozSrcObject = stream;
+      } else {
+        var vendorURL = window.URL || window.webkitURL;
+        video.src = vendorURL.createObjectURL(stream);
+      }
+      video.play();
+    },
+    function(err) {
+      console.log("An error occured! " + err);
+    }
+  );
+
+  video.addEventListener('canplay', function(ev){
+    if (!streaming) {
+      height = video.videoHeight / (video.videoWidth/width);
+      video.setAttribute('width', width);
+      video.setAttribute('height', height);
+      canvas.setAttribute('width', width);
+      canvas.setAttribute('height', height);
+      streaming = true;
+    }
+  }, false);
+
+  function takepicture() {
+    canvas.width = width;
+    canvas.height = height;
+    canvas.getContext('2d').drawImage(video, 0, 0, width, height);
+    var data = canvas.toDataURL('image/png');
+    photo.setAttribute('src', data);
+  }
+
+  startbutton.addEventListener('click', function(ev){
+      takepicture();
+    ev.preventDefault();
+  }, false);
+
+})();
+

Les explications pas à pas.

+

Voici ce qui se passe.

+

Fonction anonyme

+
(function() {
+
+  var streaming = false,
+      video        = document.querySelector('#video'),
+      cover        = document.querySelector('#cover'),
+      canvas       = document.querySelector('#canvas'),
+      photo        = document.querySelector('#photo'),
+      startbutton  = document.querySelector('#startbutton'),
+      width = 320,
+      height = 0;
+

Afin d'éviter les variables globales, on encapsule le script dans une fonction anonyme. Nous capturons les éléments du HTML dont nous avons besoin et nous définissons une largeur de vidéo à 320 et une hauteur à 0. La hauteur appropriée sera calculée plus tard.

+
+

À l'heure actuelle, il y a une différence dans les tailles de vidéo offertes par getUserMedia. Firefox Nightly utilise une résolution de 352x288 alors que Opera et Chrome utilisent une résolution de 640x400. Celà changera dans le futur, mais redimensionner avec le rapport comme nous le faisons nous épargnera des mauvaises surprises.

+
+

Obtenir la vidéo

+

Maintenant, nous devons récupérer la vidéo de la webcam. Pour l'instant c'est préfixé par les différents navigateurs, nous devons donc tester quelle forme est supportée:

+
  navigator.getMedia = ( navigator.getUserMedia ||
+                         navigator.webkitGetUserMedia ||
+                         navigator.mozGetUserMedia ||
+                         navigator.msGetUserMedia);
+

Nous demandons au navigateur de nous donner la vidéo sans le son et de récupérer le flux dans une fonction callback:

+
  navigator.getMedia(
+    {
+      video: true,
+      audio: false
+    },
+    function(stream) {
+      if (navigator.mozGetUserMedia) {
+        video.mozSrcObject = stream;
+      } else {
+        var vendorURL = window.URL || window.webkitURL;
+        video.src = vendorURL.createObjectURL(stream);
+      }
+      video.play();
+    },
+    function(err) {
+      console.log("An error occured! " + err);
+    }
+  );
+

Firefox Nightly nécessite de définir la propriété mozSrcObject de l'élément vidéo pour pouvoir le jouer; pour les autres navigateurs, définissez l'attribut src. Alors que Firefox peut utiliser les flux directement, Webkit et Opera ont besoin de créer un objet URL. Cela sera standardisé dans un futur proche.

+

Redimensionner la vidéo

+

Ensuite nous devons redimensionner la vidéo aux bonnes dimensions.

+
  video.addEventListener('canplay', function(ev){
+    if (!streaming) {
+      height = video.videoHeight / (video.videoWidth/width);
+      video.setAttribute('width', width);
+      video.setAttribute('height', height);
+      canvas.setAttribute('width', width);
+      canvas.setAttribute('height', height);
+      streaming = true;
+    }
+  }, false);
+

Nous nous abonnons à l'évènement canplay de la vidéo et lisons ses dimensions en utilisant videoHeight et videoWidth. Elles ne sont pas disponibles de manière fiable avant que l'évènement ne soit déclenché. Nous positionnons streaming à true pour faire cette vérification une seule fois vu que l'évènement canplay se déclenchera à répétition.

+

C'est tout ce qu'il faut pour jouer la vidéo.

+

Prendre une photo

+

Maintenant nous devons capturer la photo en utilisant le canvas. Nous assignons un gestionaire d'événements au bouton de démarrage pour appeler la fonction takepicture function.

+
  startbutton.addEventListener('click', function(ev){
+      takepicture();
+    ev.preventDefault();
+  }, false);
+

Dans cette fonction nous re-assignons la taille du canvas à la taille de la vidéo, ce qui l'efface,  et nous obtenons une image de la vidéo que nous copions sur le canvas. Ensuite nous devons transformer les données du canvas en une URI de données avec un entête PNG, et positionner l'attribut src de la photo à cette URL.

+
  function takepicture() {
+    canvas.width = width;
+    canvas.height = height;
+    canvas.getContext('2d').drawImage(video, 0, 0, width, height);
+    var data = canvas.toDataURL('image/png');
+    photo.setAttribute('src', data);
+  }
+
+})();
+

C'est tout ce qu'il faut pour afficher un flux de la webcam et en prendre une photo, que ce soit sur Chrome, Opera ou Firefox.

+

Support

+

Actuellement, l'accès à la caméra via WebRTC est supporté dans Chrome, Opera et Firefox Nightly 18. Activer WebRTC dans Firefox Nightly demande que vous positionnez une valeur dans la configuration:

+ diff --git a/files/fr/web/api/webvr_api/using_vr_controllers_with_webvr/index.html b/files/fr/web/api/webvr_api/using_vr_controllers_with_webvr/index.html new file mode 100644 index 0000000000..36b68601ff --- /dev/null +++ b/files/fr/web/api/webvr_api/using_vr_controllers_with_webvr/index.html @@ -0,0 +1,257 @@ +--- +title: Utiliser des contrôleurs de réalité virtuelle pour du WebVR +slug: Web/API/WebVR_API/Utiliser_des_contrôleurs_de_realite_virtuelle_pour_du_WebVR +translation_of: Web/API/WebVR_API/Using_VR_controllers_with_WebVR +--- +
{{APIRef("WebVR API")}}
+ +

La plupart des matériels de WebVR possède des contrôleurs qui viennent avec le casque de réalité virtuelle. Ceux-ci peuvent être utilisés dans les application WebVR grâce à l'API Gamepad, et plus spécifiquement avec l'API Gamepad Extensions qui ajoute des API pour accéder, entre autres, à la position du controller, au retour haptique, etc.. Cet article fournit les bases pour utiliser ces API.

+ +

L'API WebVR

+ +

L'API WebVR est jeune mais possède déjà des fonctionnalités très interressantes pour le web et pour que les développeur·euse·s puisse créer des expériences de réalité virtuelle sur le web. Cela est possible grâce à un accès aux données des casques de réalité virtuelle connectés à votre ordinateur. Ceux-ci seront indentifié comme des objets {{domxref("VRDisplay")}},que vous pourrez manipuler pour commencer et arrêter l'affichage dans le casque, récupérer des données de mouvement (orientation, position...) qui pourront être utilisés pour mettre à jour l'affichage d'une animation, par exemple.

+ +

Avant de commencer, vous devriez être déjà avoir des bases de l'API WebVR. Si ce n'est pas le cas, allez lire l'article Utiliser l'API WebVR, vous aurez également des détails sur la compatibilité des navigateurs web ou du matériel nécessaire.

+ +

L'API Gamepad

+ +

L'API Gamepad est une API assez bien compatible, qui donne aux développeur·euse·s l'accès aux manettes de jeu, connectés à leur ordinateur et de les utilisé dans dans applications web. Les contrôleurs peuvent basiquement être accessible comme des objets {{domxref("Gamepad")}}, avec lesquels nous pouvons faire des requêtes pour savoir quels boutons sont appuyés ou quels joystick sont actionnés, etc..

+ +

Vous pouvez avoir plus d'information sur l'usage de API de base des Gamepad avec l'article Utilisez l'API Gamepad, et Implementer des contrôles en utilisant l'API Gamepad.

+ +

Dans cet article, nous allons nous attardez sur les nouvelles fonctionnalités offertes dans l'API {{specname("GamepadExtensions")}}, laquelle donne accès à des informations avancés comme des données de position ou d'orientation, ou encore contrôler les retours haptiques (vibrations), et bien plus. Cette API est toute nouvelle et, pour l'instant, seulement disponible dans les versions Beta ou Nightly de Firefox 55 (et suppérieur).

+ +

Types de contrôlleurs

+ +

Il y a deux principaux types de contrôleurs utilisés pour la réalité virtuelle :

+ + + +

Basic controller access

+ +

Now onto some code. Let's look first at the basics of how we get access to VR controllers with the Gamepad API. There are a few strange nuances to bear in mind here, so it is worth taking a look.

+ +

We've written up a simple example to demonstrate — see our vr-controller-basic-info source code (see it running live here also). This demo simply outputs information on the VR displays and gamepads connected to your computer.

+ +

Getting the display information

+ +

The first notable code is as follows:

+ +
var initialRun = true;
+
+if(navigator.getVRDisplays && navigator.getGamepads) {
+  info.textContent = 'WebVR API and Gamepad API supported.'
+  reportDisplays();
+} else {
+  info.textContent = 'WebVR API and/or Gamepad API not supported by this browser.'
+}
+ +

Here we first use a tracking variable, initialRun, to note that this is the first time we have loaded the page. You'll find out more about this later on. Next, we detect to see if the WebVR and Gamepad APIs are supported by cheking for the existence of the {{domxref("Navigator.getVRDisplays()")}} and {{domxref("Navigator.getGamepads()")}} methods. If so, we run our reportDisplays() custom function to start the process off. This function looks like so:

+ +
function reportDisplays() {
+  navigator.getVRDisplays().then(function(displays) {
+      console.log(displays.length + ' displays');
+    for(var i = 0; i < displays.length; i++) {
+      var cap = displays[i].capabilities;
+      // cap is a VRDisplayCapabilities object
+      var listItem = document.createElement('li');
+      listItem.innerHTML = '<strong>Display ' + (i+1) + '</strong>'
+                   + '<br>VR Display ID: ' + displays[i].displayId
+                   + '<br>VR Display Name: ' + displays[i].displayName
+                   + '<br>Display can present content: ' + cap.canPresent
+                   + '<br>Display is separate from the computer\'s main display: ' + cap.hasExternalDisplay
+                   + '<br>Display can return position info: ' + cap.hasPosition
+                   + '<br>Display can return orientation info: ' + cap.hasOrientation
+                   + '<br>Display max layers: ' + cap.maxLayers;
+      list.appendChild(listItem);
+    }
+
+    setTimeout(reportGamepads, 1000);
+    // For VR, controllers will only be active after their corresponding headset is active
+  });
+}
+ +

This function first uses the promise-based {{domxref("Navigator.getVRDisplays()")}} method, which resolves with an array containing {{domxref("VRDisplay")}} objects representing the connected displays. Next, it prints out each display's {{domxref("VRDisplay.displayId")}} and {{domxref("VRDisplay.displayName")}} values, and a number of useful values contained in the display's associated {{domxref("VRCapabilities")}} object. The most useful of these are {{domxref("VRCapabilities.hasOrientation","hasOrientation")}} and {{domxref("VRCapabilities.hasPosition","hasPosition")}}, which allow you to detect whether the device can return orientation and position data and set up your app accordingly.

+ +

The last line contained in this function is a {{domxref("WindowOrWorkerGlobalScope.setTimeout()")}} call, which runs the reportGamepads() function after a 1 second delay. Why do we need to do this? First of all, VR controllers will only be ready after their associated VR headset is active, so we need to invoke this after getVRDisplays() has been called and returned the display information. Second, the Gamepad API is much older than the WebVR API, and not promise-based. As you'll see later, the getGamepads() method is synchronous, and just returns the Gamepad objects immediately — it doesn't wait for the controller to be ready to report information. Unless you wait for a little while, returned information may not be accurate (at least, this is what we found in our tests).

+ +

Getting the Gamepad information

+ +

The reportGamepads() function looks like this:

+ +
function reportGamepads() {
+    var gamepads = navigator.getGamepads();
+    console.log(gamepads.length + ' controllers');
+    for(var i = 0; i < gamepads.length; ++i) {
+        var gp = gamepads[i];
+    var listItem = document.createElement('li');
+    listItem.classList = 'gamepad';
+    listItem.innerHTML = '<strong>Gamepad ' + gp.index + '</strong> (' + gp.id + ')'
+                 + '<br>Associated with VR Display ID: ' + gp.displayId
+                 + '<br>Gamepad associated with which hand: ' + gp.hand
+                 + '<br>Available haptic actuators: ' + gp.hapticActuators.length
+                 + '<br>Gamepad can return position info: ' + gp.pose.hasPosition
+                 + '<br>Gamepad can return orientation info: ' + gp.pose.hasOrientation;
+    list.appendChild(listItem);
+  }
+  initialRun = false;
+}
+ +

This works in a similar manner to reportDisplays() — we get an array of {{domxref("Gamepad")}} objects using the non-promise-based getGamepads() method, then cycle through each one and print out information on each:

+ + + +

Note that we also gave each list item containing controller information a class name of gamepad. We'll explain what this is for later.

+ +

The last thing to do here is set the initialRun variable to false, as the initial run is now over.

+ +

Gamepad events

+ +

To finish off this section, we'll look at the gamepad-associated events. There are two we need concern ourselves with — {{event("gamepadconnected")}} and {{event("gamepaddisconnected")}} — and it is fairly obvious what they do.

+ +

At the end of our example we first include the removeGamepads() function:

+ +
function removeGamepads() {
+    var gpLi = document.querySelectorAll('.gamepad');
+    for(var i = 0; i < gpLi.length; i++) {
+    list.removeChild(gpLi[i]);
+    }
+
+    reportGamepads();
+}
+ +

This function simply grabs references to all list items with a class name of gamepad, and removes them from the DOM. Then it re-runs reportGamepads() to populate the list with the updated list of connected controllers.

+ +

removeGamepads() will be run each time a gamepad is connected or disconnected, via the following event handlers:

+ +
window.addEventListener('gamepadconnected', function(e) {
+  info.textContent = 'Gamepad ' + e.gamepad.index + ' connected.';
+  if(!initialRun) {
+      setTimeout(removeGamepads, 1000);
+  }
+});
+
+window.addEventListener('gamepaddisconnected', function(e) {
+  info.textContent = 'Gamepad ' + e.gamepad.index + ' disconnected.';
+  setTimeout(removeGamepads, 1000);
+});
+ +

We have setTimeout() calls in place here — like we did with the initialization code at the top of the script — to make sure that the gamepads are ready to report their information when reportGamepads() is called in each case.

+ +

But there's one more thing to note — you'll see that inside the gamepadconnected handler, the timeout is only run if initialRun is false. This is because if your gamepads are connected when the document first loads, gamepadconnected is fired once for each gamepad, therefore removeGamepads()/reportGamepads() will be run several times. This could lead to inaccurate results, therefore we only want to run removeGamepads() inside the gamepadconnected handler after the initial run, not during it. This is what initialRun is for.

+ +

Introducing a real demo

+ +

Now let's look at the Gamepad API being used inside a real WebVR demo. You can find this demo at raw-webgl-controller-example (see it live here also).

+ +

In exactly the same way as our raw-webgl-example (see Using the WebVR API for details), this renders a spinning 3D cube, which you can choose to present in a VR display. The only difference is that, while in VR presenting mode, this demo allows you to move the cube by moving a VR controller (the original demo moves the cube as you move your VR headset).

+ +

We'll explore the code differences in this version below — see webgl-demo.js.

+ +

Accessing the gamepad data

+ +

Inside the drawVRScene() function, you'll find this bit of code:

+ +
var gamepads = navigator.getGamepads();
+var gp = gamepads[0];
+
+if(gp) {
+  var gpPose = gp.pose;
+  var curPos = gpPose.position;
+  var curOrient = gpPose.orientation;
+  if(poseStatsDisplayed) {
+    displayPoseStats(gpPose);
+  }
+}
+ +

Here we get the connected gamepads with {{domxref("Navigator.getGamepads")}}, then store the first gamepad detected in the gp variable. As we only need one gamepad for this demo, we'll just ignore the others.

+ +

The next thing we do is to get the {{domxref("GamepadPose")}} object for the controller stored in gpPose (by querying {{domxref("Gamepad.pose")}}), and also store the current gamepad position and orientation for this frame in variables so they are easuy to access later. We also display the post stats for this frame in the DOM using the displayPoseStats() function. All of this is only done if gp actually has a value (if a gamepad is connected), which stops the demo erroring if we don't have our gamepad connected.

+ +

Slightly later in the code, you can find this block:

+ +
if(gp && gpPose.hasPosition) {
+  mvTranslate([
+                0.0 + (curPos[0] * 15) - (curOrient[1] * 15),
+                0.0 + (curPos[1] * 15) + (curOrient[0] * 15),
+                -15.0 + (curPos[2] * 25)
+             ]);
+} else if(gp) {
+  mvTranslate([
+                0.0 + (curOrient[1] * 15),
+                0.0 + (curOrient[0] * 15),
+                -15.0
+             ]);
+} else {
+  mvTranslate([
+                0.0,
+                0.0,
+                -15.0
+             ]);
+}
+ +

Here we alter the position of the cube on the screen according to the {{domxref("GamepadPose.position","position")}} and {{domxref("GamepadPose.orientation","orientation")}} data received from the connected controller. These values (stored in curPos and curOrient) are {{domxref("Float32Array")}}s containing the X, Y, and Z values (here we are just using [0] which is X, and [1] which is Y).

+ +

If the gp variable has a Gamepad object inside it and it can return position values (gpPose.hasPosition), indicating a 6DoF controller, we modify the cube position using position and orientation values. If only the former is true, indicating a 3DoF controller, we modify the cube position using the orientation values only. If there is no gamepad connected, we don't modify the cube position at all.

+ +

Displaying the gamepad pose data

+ +

In the displayPoseStats() function, we grab all of the data we want to display out of the {{domxref("GamepadPose")}} object passed into it, then print them into the UI panel that exists in the demo for displaying such data:

+ +
function displayPoseStats(pose) {
+  var pos = pose.position;
+  var orient = pose.orientation;
+  var linVel = pose.linearVelocity;
+  var linAcc = pose.linearAcceleration;
+  var angVel = pose.angularVelocity;
+  var angAcc = pose.angularAcceleration;
+
+  if(pose.hasPosition) {
+    posStats.textContent = 'Position: x ' + pos[0].toFixed(3) + ', y ' + pos[1].toFixed(3) + ', z ' + pos[2].toFixed(3);
+  } else {
+    posStats.textContent = 'Position not reported';
+  }
+
+  if(pose.hasOrientation) {
+    orientStats.textContent = 'Orientation: x ' + orient[0].toFixed(3) + ', y ' + orient[1].toFixed(3) + ', z ' + orient[2].toFixed(3);
+  } else {
+    orientStats.textContent = 'Orientation not reported';
+  }
+
+  linVelStats.textContent = 'Linear velocity: x ' + linVel[0].toFixed(3) + ', y ' + linVel[1].toFixed(3) + ', z ' + linVel[2].toFixed(3);
+  angVelStats.textContent = 'Angular velocity: x ' + angVel[0].toFixed(3) + ', y ' + angVel[1].toFixed(3) + ', z ' + angVel[2].toFixed(3);
+
+  if(linAcc) {
+    linAccStats.textContent = 'Linear acceleration: x ' + linAcc[0].toFixed(3) + ', y ' + linAcc[1].toFixed(3) + ', z ' + linAcc[2].toFixed(3);
+  } else {
+    linAccStats.textContent = 'Linear acceleration not reported';
+  }
+
+  if(angAcc) {
+    angAccStats.textContent = 'Angular acceleration: x ' + angAcc[0].toFixed(3) + ', y ' + angAcc[1].toFixed(3) + ', z ' + angAcc[2].toFixed(3);
+  } else {
+    angAccStats.textContent = 'Angular acceleration not reported';
+  }
+}
+ +

Summary

+ +

This article has given you a very basic idea of how to use the Gamepad Extensions to use VR controllers inside WebVR apps. In a real app you'd probably have a much more complex control system in effect, with controls assigned to the buttons on the VR controllers, and the display being affected by both the display pose and the controller poses simultaneously. Here however, we just wanted to isolate the pure Gamepad Extensions parts of that.

+ +

See also

+ + diff --git "a/files/fr/web/api/webvr_api/utiliser_des_contr\303\264leurs_de_realite_virtuelle_pour_du_webvr/index.html" "b/files/fr/web/api/webvr_api/utiliser_des_contr\303\264leurs_de_realite_virtuelle_pour_du_webvr/index.html" deleted file mode 100644 index 36b68601ff..0000000000 --- "a/files/fr/web/api/webvr_api/utiliser_des_contr\303\264leurs_de_realite_virtuelle_pour_du_webvr/index.html" +++ /dev/null @@ -1,257 +0,0 @@ ---- -title: Utiliser des contrôleurs de réalité virtuelle pour du WebVR -slug: Web/API/WebVR_API/Utiliser_des_contrôleurs_de_realite_virtuelle_pour_du_WebVR -translation_of: Web/API/WebVR_API/Using_VR_controllers_with_WebVR ---- -
{{APIRef("WebVR API")}}
- -

La plupart des matériels de WebVR possède des contrôleurs qui viennent avec le casque de réalité virtuelle. Ceux-ci peuvent être utilisés dans les application WebVR grâce à l'API Gamepad, et plus spécifiquement avec l'API Gamepad Extensions qui ajoute des API pour accéder, entre autres, à la position du controller, au retour haptique, etc.. Cet article fournit les bases pour utiliser ces API.

- -

L'API WebVR

- -

L'API WebVR est jeune mais possède déjà des fonctionnalités très interressantes pour le web et pour que les développeur·euse·s puisse créer des expériences de réalité virtuelle sur le web. Cela est possible grâce à un accès aux données des casques de réalité virtuelle connectés à votre ordinateur. Ceux-ci seront indentifié comme des objets {{domxref("VRDisplay")}},que vous pourrez manipuler pour commencer et arrêter l'affichage dans le casque, récupérer des données de mouvement (orientation, position...) qui pourront être utilisés pour mettre à jour l'affichage d'une animation, par exemple.

- -

Avant de commencer, vous devriez être déjà avoir des bases de l'API WebVR. Si ce n'est pas le cas, allez lire l'article Utiliser l'API WebVR, vous aurez également des détails sur la compatibilité des navigateurs web ou du matériel nécessaire.

- -

L'API Gamepad

- -

L'API Gamepad est une API assez bien compatible, qui donne aux développeur·euse·s l'accès aux manettes de jeu, connectés à leur ordinateur et de les utilisé dans dans applications web. Les contrôleurs peuvent basiquement être accessible comme des objets {{domxref("Gamepad")}}, avec lesquels nous pouvons faire des requêtes pour savoir quels boutons sont appuyés ou quels joystick sont actionnés, etc..

- -

Vous pouvez avoir plus d'information sur l'usage de API de base des Gamepad avec l'article Utilisez l'API Gamepad, et Implementer des contrôles en utilisant l'API Gamepad.

- -

Dans cet article, nous allons nous attardez sur les nouvelles fonctionnalités offertes dans l'API {{specname("GamepadExtensions")}}, laquelle donne accès à des informations avancés comme des données de position ou d'orientation, ou encore contrôler les retours haptiques (vibrations), et bien plus. Cette API est toute nouvelle et, pour l'instant, seulement disponible dans les versions Beta ou Nightly de Firefox 55 (et suppérieur).

- -

Types de contrôlleurs

- -

Il y a deux principaux types de contrôleurs utilisés pour la réalité virtuelle :

- - - -

Basic controller access

- -

Now onto some code. Let's look first at the basics of how we get access to VR controllers with the Gamepad API. There are a few strange nuances to bear in mind here, so it is worth taking a look.

- -

We've written up a simple example to demonstrate — see our vr-controller-basic-info source code (see it running live here also). This demo simply outputs information on the VR displays and gamepads connected to your computer.

- -

Getting the display information

- -

The first notable code is as follows:

- -
var initialRun = true;
-
-if(navigator.getVRDisplays && navigator.getGamepads) {
-  info.textContent = 'WebVR API and Gamepad API supported.'
-  reportDisplays();
-} else {
-  info.textContent = 'WebVR API and/or Gamepad API not supported by this browser.'
-}
- -

Here we first use a tracking variable, initialRun, to note that this is the first time we have loaded the page. You'll find out more about this later on. Next, we detect to see if the WebVR and Gamepad APIs are supported by cheking for the existence of the {{domxref("Navigator.getVRDisplays()")}} and {{domxref("Navigator.getGamepads()")}} methods. If so, we run our reportDisplays() custom function to start the process off. This function looks like so:

- -
function reportDisplays() {
-  navigator.getVRDisplays().then(function(displays) {
-      console.log(displays.length + ' displays');
-    for(var i = 0; i < displays.length; i++) {
-      var cap = displays[i].capabilities;
-      // cap is a VRDisplayCapabilities object
-      var listItem = document.createElement('li');
-      listItem.innerHTML = '<strong>Display ' + (i+1) + '</strong>'
-                   + '<br>VR Display ID: ' + displays[i].displayId
-                   + '<br>VR Display Name: ' + displays[i].displayName
-                   + '<br>Display can present content: ' + cap.canPresent
-                   + '<br>Display is separate from the computer\'s main display: ' + cap.hasExternalDisplay
-                   + '<br>Display can return position info: ' + cap.hasPosition
-                   + '<br>Display can return orientation info: ' + cap.hasOrientation
-                   + '<br>Display max layers: ' + cap.maxLayers;
-      list.appendChild(listItem);
-    }
-
-    setTimeout(reportGamepads, 1000);
-    // For VR, controllers will only be active after their corresponding headset is active
-  });
-}
- -

This function first uses the promise-based {{domxref("Navigator.getVRDisplays()")}} method, which resolves with an array containing {{domxref("VRDisplay")}} objects representing the connected displays. Next, it prints out each display's {{domxref("VRDisplay.displayId")}} and {{domxref("VRDisplay.displayName")}} values, and a number of useful values contained in the display's associated {{domxref("VRCapabilities")}} object. The most useful of these are {{domxref("VRCapabilities.hasOrientation","hasOrientation")}} and {{domxref("VRCapabilities.hasPosition","hasPosition")}}, which allow you to detect whether the device can return orientation and position data and set up your app accordingly.

- -

The last line contained in this function is a {{domxref("WindowOrWorkerGlobalScope.setTimeout()")}} call, which runs the reportGamepads() function after a 1 second delay. Why do we need to do this? First of all, VR controllers will only be ready after their associated VR headset is active, so we need to invoke this after getVRDisplays() has been called and returned the display information. Second, the Gamepad API is much older than the WebVR API, and not promise-based. As you'll see later, the getGamepads() method is synchronous, and just returns the Gamepad objects immediately — it doesn't wait for the controller to be ready to report information. Unless you wait for a little while, returned information may not be accurate (at least, this is what we found in our tests).

- -

Getting the Gamepad information

- -

The reportGamepads() function looks like this:

- -
function reportGamepads() {
-    var gamepads = navigator.getGamepads();
-    console.log(gamepads.length + ' controllers');
-    for(var i = 0; i < gamepads.length; ++i) {
-        var gp = gamepads[i];
-    var listItem = document.createElement('li');
-    listItem.classList = 'gamepad';
-    listItem.innerHTML = '<strong>Gamepad ' + gp.index + '</strong> (' + gp.id + ')'
-                 + '<br>Associated with VR Display ID: ' + gp.displayId
-                 + '<br>Gamepad associated with which hand: ' + gp.hand
-                 + '<br>Available haptic actuators: ' + gp.hapticActuators.length
-                 + '<br>Gamepad can return position info: ' + gp.pose.hasPosition
-                 + '<br>Gamepad can return orientation info: ' + gp.pose.hasOrientation;
-    list.appendChild(listItem);
-  }
-  initialRun = false;
-}
- -

This works in a similar manner to reportDisplays() — we get an array of {{domxref("Gamepad")}} objects using the non-promise-based getGamepads() method, then cycle through each one and print out information on each:

- - - -

Note that we also gave each list item containing controller information a class name of gamepad. We'll explain what this is for later.

- -

The last thing to do here is set the initialRun variable to false, as the initial run is now over.

- -

Gamepad events

- -

To finish off this section, we'll look at the gamepad-associated events. There are two we need concern ourselves with — {{event("gamepadconnected")}} and {{event("gamepaddisconnected")}} — and it is fairly obvious what they do.

- -

At the end of our example we first include the removeGamepads() function:

- -
function removeGamepads() {
-    var gpLi = document.querySelectorAll('.gamepad');
-    for(var i = 0; i < gpLi.length; i++) {
-    list.removeChild(gpLi[i]);
-    }
-
-    reportGamepads();
-}
- -

This function simply grabs references to all list items with a class name of gamepad, and removes them from the DOM. Then it re-runs reportGamepads() to populate the list with the updated list of connected controllers.

- -

removeGamepads() will be run each time a gamepad is connected or disconnected, via the following event handlers:

- -
window.addEventListener('gamepadconnected', function(e) {
-  info.textContent = 'Gamepad ' + e.gamepad.index + ' connected.';
-  if(!initialRun) {
-      setTimeout(removeGamepads, 1000);
-  }
-});
-
-window.addEventListener('gamepaddisconnected', function(e) {
-  info.textContent = 'Gamepad ' + e.gamepad.index + ' disconnected.';
-  setTimeout(removeGamepads, 1000);
-});
- -

We have setTimeout() calls in place here — like we did with the initialization code at the top of the script — to make sure that the gamepads are ready to report their information when reportGamepads() is called in each case.

- -

But there's one more thing to note — you'll see that inside the gamepadconnected handler, the timeout is only run if initialRun is false. This is because if your gamepads are connected when the document first loads, gamepadconnected is fired once for each gamepad, therefore removeGamepads()/reportGamepads() will be run several times. This could lead to inaccurate results, therefore we only want to run removeGamepads() inside the gamepadconnected handler after the initial run, not during it. This is what initialRun is for.

- -

Introducing a real demo

- -

Now let's look at the Gamepad API being used inside a real WebVR demo. You can find this demo at raw-webgl-controller-example (see it live here also).

- -

In exactly the same way as our raw-webgl-example (see Using the WebVR API for details), this renders a spinning 3D cube, which you can choose to present in a VR display. The only difference is that, while in VR presenting mode, this demo allows you to move the cube by moving a VR controller (the original demo moves the cube as you move your VR headset).

- -

We'll explore the code differences in this version below — see webgl-demo.js.

- -

Accessing the gamepad data

- -

Inside the drawVRScene() function, you'll find this bit of code:

- -
var gamepads = navigator.getGamepads();
-var gp = gamepads[0];
-
-if(gp) {
-  var gpPose = gp.pose;
-  var curPos = gpPose.position;
-  var curOrient = gpPose.orientation;
-  if(poseStatsDisplayed) {
-    displayPoseStats(gpPose);
-  }
-}
- -

Here we get the connected gamepads with {{domxref("Navigator.getGamepads")}}, then store the first gamepad detected in the gp variable. As we only need one gamepad for this demo, we'll just ignore the others.

- -

The next thing we do is to get the {{domxref("GamepadPose")}} object for the controller stored in gpPose (by querying {{domxref("Gamepad.pose")}}), and also store the current gamepad position and orientation for this frame in variables so they are easuy to access later. We also display the post stats for this frame in the DOM using the displayPoseStats() function. All of this is only done if gp actually has a value (if a gamepad is connected), which stops the demo erroring if we don't have our gamepad connected.

- -

Slightly later in the code, you can find this block:

- -
if(gp && gpPose.hasPosition) {
-  mvTranslate([
-                0.0 + (curPos[0] * 15) - (curOrient[1] * 15),
-                0.0 + (curPos[1] * 15) + (curOrient[0] * 15),
-                -15.0 + (curPos[2] * 25)
-             ]);
-} else if(gp) {
-  mvTranslate([
-                0.0 + (curOrient[1] * 15),
-                0.0 + (curOrient[0] * 15),
-                -15.0
-             ]);
-} else {
-  mvTranslate([
-                0.0,
-                0.0,
-                -15.0
-             ]);
-}
- -

Here we alter the position of the cube on the screen according to the {{domxref("GamepadPose.position","position")}} and {{domxref("GamepadPose.orientation","orientation")}} data received from the connected controller. These values (stored in curPos and curOrient) are {{domxref("Float32Array")}}s containing the X, Y, and Z values (here we are just using [0] which is X, and [1] which is Y).

- -

If the gp variable has a Gamepad object inside it and it can return position values (gpPose.hasPosition), indicating a 6DoF controller, we modify the cube position using position and orientation values. If only the former is true, indicating a 3DoF controller, we modify the cube position using the orientation values only. If there is no gamepad connected, we don't modify the cube position at all.

- -

Displaying the gamepad pose data

- -

In the displayPoseStats() function, we grab all of the data we want to display out of the {{domxref("GamepadPose")}} object passed into it, then print them into the UI panel that exists in the demo for displaying such data:

- -
function displayPoseStats(pose) {
-  var pos = pose.position;
-  var orient = pose.orientation;
-  var linVel = pose.linearVelocity;
-  var linAcc = pose.linearAcceleration;
-  var angVel = pose.angularVelocity;
-  var angAcc = pose.angularAcceleration;
-
-  if(pose.hasPosition) {
-    posStats.textContent = 'Position: x ' + pos[0].toFixed(3) + ', y ' + pos[1].toFixed(3) + ', z ' + pos[2].toFixed(3);
-  } else {
-    posStats.textContent = 'Position not reported';
-  }
-
-  if(pose.hasOrientation) {
-    orientStats.textContent = 'Orientation: x ' + orient[0].toFixed(3) + ', y ' + orient[1].toFixed(3) + ', z ' + orient[2].toFixed(3);
-  } else {
-    orientStats.textContent = 'Orientation not reported';
-  }
-
-  linVelStats.textContent = 'Linear velocity: x ' + linVel[0].toFixed(3) + ', y ' + linVel[1].toFixed(3) + ', z ' + linVel[2].toFixed(3);
-  angVelStats.textContent = 'Angular velocity: x ' + angVel[0].toFixed(3) + ', y ' + angVel[1].toFixed(3) + ', z ' + angVel[2].toFixed(3);
-
-  if(linAcc) {
-    linAccStats.textContent = 'Linear acceleration: x ' + linAcc[0].toFixed(3) + ', y ' + linAcc[1].toFixed(3) + ', z ' + linAcc[2].toFixed(3);
-  } else {
-    linAccStats.textContent = 'Linear acceleration not reported';
-  }
-
-  if(angAcc) {
-    angAccStats.textContent = 'Angular acceleration: x ' + angAcc[0].toFixed(3) + ', y ' + angAcc[1].toFixed(3) + ', z ' + angAcc[2].toFixed(3);
-  } else {
-    angAccStats.textContent = 'Angular acceleration not reported';
-  }
-}
- -

Summary

- -

This article has given you a very basic idea of how to use the Gamepad Extensions to use VR controllers inside WebVR apps. In a real app you'd probably have a much more complex control system in effect, with controls assigned to the buttons on the VR controllers, and the display being affected by both the display pose and the controller poses simultaneously. Here however, we just wanted to isolate the pure Gamepad Extensions parts of that.

- -

See also

- - diff --git a/files/fr/web/api/window/afterprint_event/index.html b/files/fr/web/api/window/afterprint_event/index.html new file mode 100644 index 0000000000..bb62ef775d --- /dev/null +++ b/files/fr/web/api/window/afterprint_event/index.html @@ -0,0 +1,63 @@ +--- +title: afterprint +slug: Web/Events/afterprint +translation_of: Web/API/Window/afterprint_event +--- +

L'événement afterprint est déclenché après que le document associé a été imprimé ou que l'aperçu avant impression a été fermé.

+ +

Informations générales

+ +
+
Spécification
+
HTML5
+
Interface
+
Event
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
DefaultView (<window>)
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
+ +

Evénements liés

+ + diff --git a/files/fr/web/api/window/beforeprint_event/index.html b/files/fr/web/api/window/beforeprint_event/index.html new file mode 100644 index 0000000000..970bfb6580 --- /dev/null +++ b/files/fr/web/api/window/beforeprint_event/index.html @@ -0,0 +1,74 @@ +--- +title: beforeprint +slug: Web/Events/beforeprint +tags: + - Evènement + - Reference +translation_of: Web/API/Window/beforeprint_event +--- +

L'événement beforeprint est déclenché lorsque le document associé est sur le point d'être imprimé ou qu'un "aperçu avant impression" est lancé.

+ +

Informations générales

+ +
+
Spécification
+
HTML5
+
Interface
+
Event
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
DefaultView (<window>)
+
Action par défaut
+
Aucune
+
+ +

Exemples

+ +

En utilisant window.addEventListener() :

+ +
window.addEventListener("beforeprint", (evenement) => {
+  console.log("Before print");
+});
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
+ +

Evénements liés

+ + diff --git a/files/fr/web/api/window/beforeunload_event/index.html b/files/fr/web/api/window/beforeunload_event/index.html new file mode 100644 index 0000000000..c0b22cfb83 --- /dev/null +++ b/files/fr/web/api/window/beforeunload_event/index.html @@ -0,0 +1,139 @@ +--- +title: beforeunload +slug: Web/Events/beforeunload +translation_of: Web/API/Window/beforeunload_event +--- +

L'événement beforeunload est déclenché quand la fênetre, ou le document, et leurs resources sont sur le point d'être déchargés.

+ +

Lorsqu'une chaîne de caractères est assignée à la propriété returnValue de {{domxref("Event")}}, une boîte de dialogue apparaît demandant confirmation avant de quitter la page (voir exemple plus bas). Certains navigateurs affichent la valeur retournée, alors que d'autres affichent leur propre message. Si aucune valeur n'est fournie, l'événement est traité silencieusement.

+ +
+

Note : Afin d'éviter les "pop-ups" indésirables, les navigateurs peuvent ne pas afficher les alertes créées dans les gestionnaires beforeunload.

+
+ +
+

 Attacher un gestionnaire d'événement beforeunload à window ou à document empêche les navigateurs d'utiliser leur mémoire cache ; consulter Utilisation du cache de Firefox 1.5 ou WebKit's Page Cache (en anglais).

+
+ + + + + + + + + + + + + + + + + + + + +
PropagationNon
AnnulableOui
Object cibledefaultView
Interface{{domxref("Event")}}
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{readOnlyInline}}{{domxref("EventTarget")}}La cible de l'événement (la plus haute cible dans l'arbre du DOM).
type {{readOnlyInline}}{{domxref("DOMString")}}Le type de l'événement.
bubbles {{readOnlyInline}}{{jsxref("Boolean")}}Est-ce que l'événement se propage ?
cancelable {{readOnlyInline}}{{jsxref("Boolean")}}Est-il possible d'annuler l'événement ?
returnValue{{domxref("DOMString")}}La valeur de retour de l'événement (le message à afficher à l'utlisateur)
+ +

Exemples

+ +
window.addEventListener("beforeunload", function (event) {
+  event.returnValue = "\o/";
+});
+
+// est équivalent à
+window.addEventListener("beforeunload", function (event) {
+  event.preventDefault();
+});
+ +

Les navigateurs basés sur WebKit ne suivent pas les spécifications pour la boîte de dialogue. Un exemple pratiquement compatible entre les navigateurs serait à peu près comme suit:

+ +
window.addEventListener("beforeunload", function (e) {
+  var confirmationMessage = "\o/";
+
+  e.returnValue = confirmationMessage;     // Gecko, Trident, Chrome 34+
+  return confirmationMessage;              // Gecko, WebKit, Chrome <34
+});
+ +

Notes

+ +

Quand l'événement retourne une valeur non nulle, l'utilisateur est invité à confirmer le déchargement de la page. Dans la plupart des navigateurs, la valeur de retour de l'événement est affiché dans une boîte de dialogue. Dans Firefox 4 et plus, la chaine de caractères retournée n'est pas affiché à l'utilisateur. A la place, Firefox affiche "Cette page demande de confirmer sa fermeture ; des données saisies pourraient ne pas être enregistrées". Voir {{bug("588292")}}.

+ +

Depuis le 25 Mai 2011, la spécification HTML5 indique ques les appels aux méthodes {{domxref("window.alert()")}}, {{domxref("window.confirm()")}} et {{domxref("window.prompt()")}} peuvent être ignorés durant l'événement. Voir specification HTML5 pour plus de détails.

+ +

Noter aussi que de nombreux navigateurs ignorent le résultat  de l'événement (il n'y a donc aucune demande de confirmation). Firefox a une préférence cachée dans about:config pour faire de même. Essentiellement, cela signifie que l'utilisateur confirme toujours silencieusement que le document peut être déchargé.

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName("HTML WHATWG", "indices.html#event-beforeunload", "beforeunload")}}{{Spec2("HTML WHATWG")}}
{{SpecName("HTML5 W3C", "browsers.html#unloading-documents", "beforeunload")}}{{Spec2("HTML5 W3C")}}Première définition
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/window/devicemotion_event/index.html b/files/fr/web/api/window/devicemotion_event/index.html new file mode 100644 index 0000000000..8d58d934f4 --- /dev/null +++ b/files/fr/web/api/window/devicemotion_event/index.html @@ -0,0 +1,97 @@ +--- +title: devicemotion +slug: FUEL/Window/devicemotion_event +translation_of: Web/API/Window/devicemotion_event +--- +

L'événement devicemotion est déclenché à intervalles réguliers et indique la quantité de force physique d'accélération que le périphérique reçoit à ce moment. Il fournit également des informations sur le taux de rotation, si disponible.

+ +

Informations générales

+ +
+
Spécification
+
DeviceOrientation Event
+
Interface
+
DeviceMotionEvent
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
DefaultView (window)
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target Lecture seule EventTargetThe event target (the topmost target in the DOM tree).
type Lecture seule DOMStringThe type of event.
bubbles Lecture seule BooleanWhether the event normally bubbles or not
cancelable Lecture seule BooleanWhether the event is cancellable or not?
acceleration Lecture seule DeviceAccelerationThe acceleration of the device. This value has taken into account the effect of gravity and removed it from the figures. This value may not exist if the hardware doesn't know how to remove gravity from the acceleration data.
accelerationIncludingGravity Lecture seule DeviceAccelerationThe acceleration of the device. This value includes the effect of gravity, and may be the only value available on devices that don't have a gyroscope to allow them to properly remove gravity from the data.
interval Lecture seule doubleThe interval, in milliseconds, at which the DeviceMotionEvent is fired. The next event will be fired in approximately this amount of time.
rotationRate Lecture seule DeviceRotationRateThe rates of rotation of the device about all three axes.
+ +

Exemple

+ +
function handleMotionEvent(event) {
+
+    var x = event.accelerationIncludingGravity.x;
+    var y = event.accelerationIncludingGravity.y;
+    var z = event.accelerationIncludingGravity.z;
+
+    // Faire quelque chose de génial.
+}
+
+window.addEventListener("devicemotion", handleMotionEvent, true);
+
+ +

Evénements liés

+ + diff --git a/files/fr/web/api/window/deviceorientation_event/index.html b/files/fr/web/api/window/deviceorientation_event/index.html new file mode 100644 index 0000000000..2bae31987e --- /dev/null +++ b/files/fr/web/api/window/deviceorientation_event/index.html @@ -0,0 +1,176 @@ +--- +title: deviceorientation +slug: FUEL/Window/deviceorientation +translation_of: Web/API/Window/deviceorientation_event +--- +

L'événement deviceorientation est déclenché lorsque de nouvelles données sont disponibles à partir d'un capteur d'orientation à propos de l'orientation actuelle du dispositif par rapport à la trame de coordonnées terrestres. Ces données sont recueillies à partir d'un magnétomètre à l'intérieur de l'appareil. Voir explications sur les données de mouvements et d'orientations pour plus de détails.

+ +

Informations générales

+ +
+
Spécification
+
DeviceOrientation Event
+
Interface
+
DeviceOrientationEvent
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
DefaultView (window)
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target Lecture seule EventTargetThe event target (the topmost target in the DOM tree).
type Lecture seule DOMStringThe type of event.
bubbles Lecture seule BooleanWhether the event normally bubbles or not
cancelable Lecture seule BooleanWhether the event is cancellable or not?
alpha Lecture seule double (float)The current orientation of the device around the Z axis; that is, how far the device is rotated around a line perpendicular to the device.
beta Lecture seule double (float)The current orientation of the device around the X axis; that is, how far the device is tipped forward or backward.
gamma Lecture seule double (float)The current orientation of the device around the Y axis; that is, how far the device is turned left or right.
absolute Lecture seule booleanThis value is true if the orientation is provided as a difference between the device coordinate frame and the Earth coordinate frame; if the device can't detect the Earth coordinate frame, this value is false.
+ +

Example

+ +
if (window.DeviceOrientationEvent) {
+    window.addEventListener("deviceorientation", function(event) {
+        // alpha: rotation around z-axis
+        var rotateDegrees = event.alpha;
+        // gamma: left to right
+        var leftToRight = event.gamma;
+        // beta: front back motion
+        var frontToBack = event.beta;
+
+        handleOrientationEvent(frontToBack, leftToRight, rotateDegrees);
+    }, true);
+}
+
+var handleOrientationEvent = function(frontToBack, leftToRight, rotateDegrees) {
+    // Faire quelque chose d'étonnant
+};
+
+ +

Compatibilités navigateur

+ +

Nous convertissons les données de compatibilité dans un format JSON. + Ce tableau de compatibilité utilise encore l'ancien format + car nous n'avons pas encore converti les données qu'il contient. + Vous pouvez nous aider en contribuant !
+ +
+ + +

+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support basique7.03.6[1]???
+
+ +
+ + + + + + + + + + + + + + + + + + + +
NavigateurAndroidFirefox Mobile (Gecko)IE PhoneOpera MobileSafari Mobile
Support basique3.03.6[1]Pas de support124.2
+
+ +

[1] Firefox 3.6, 4, et 5 a supporté mozOrientation contre l'événement standard DeviceOrientation.

+ +

Evénements lilés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/window/domcontentloaded_event/index.html b/files/fr/web/api/window/domcontentloaded_event/index.html new file mode 100644 index 0000000000..ce6a198e3e --- /dev/null +++ b/files/fr/web/api/window/domcontentloaded_event/index.html @@ -0,0 +1,84 @@ +--- +title: DOMContentLoaded +slug: Web/Events/DOMContentLoaded +translation_of: Web/API/Window/DOMContentLoaded_event +--- +
{{APIRef}}
+ +

L’évènement DOMContentLoaded est émis lorsque le document HTML initial a été complètement chargé et analysé, sans attendre que les feuilles de style, images et sous-documents aient terminé de charger.

+ + + + + + + + + + + + + + + + + + + + +
BouillonneOui
AnnulableOui (bien que spécifié comme évènement simple non annulable)
Interface{{domxref("Event")}}
Propriété de gestion de l’évènementAucune
+ +

La cible originale pour cet évènement est le {{domxref("Document")}} qui a terminé de charger. Vous pouvez observer cet évènement sur l’interface Window pour le gérer dans les phases de capture ou de bouillonnement. Pour plus de détails, veuillez consulter la page de l’évènement {{domxref("Document/DOMContentLoaded_event", "Document: DOMContent​Loaded event")}}.

+ +

L’évènement load, très différent, doit être utilisé uniquement pour détecter qu’une page est entièrement chargée. C’est une erreur répandue d’utiliser load là où DOMContentLoaded serait beaucoup plus approprié.

+ +
+

Note : Le JavaScript synchrone interromp l’analyse du DOM.

+
+ +
+

Note : Il existe également de nombreuses bibliothèques indépendantes à usage général qui offrent des méthodes multi-navigateur pour détecter quand le DOM est prêt.

+
+ +

Accélérer

+ +

Si vous voulez que le DOM soit analysé aussi rapidement que possible après que l’utilisateur ou l’utilisatrice a demandé la page, vous pouvez rendre votre JavaScript asynchrone et optimiser le chargement des feuilles de style. Ces dernières, sans optimisation, ralentissent le chargement de la page parce qu’elles sont chargées en parallèle, et « subtilisent » de la bande passante au document html principal.

+ +

Exemples

+ +

Utilisation basique

+ +
window.addEventListener("DOMContentLoaded", (event) => {
+    console.log("DOM entièrement chargé et analysé");
+  });
+
+ +

Spécifications

+ + + + + + + + + + + + +
SpécificationStatut
{{SpecName('HTML WHATWG', 'indices.html#event-domcontentloaded')}}{{Spec2('HTML WHATWG')}}
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.Window.DOMContentLoaded_event")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/window/load_event/index.html b/files/fr/web/api/window/load_event/index.html new file mode 100644 index 0000000000..53672aa244 --- /dev/null +++ b/files/fr/web/api/window/load_event/index.html @@ -0,0 +1,92 @@ +--- +title: load +slug: Web/Events/load +tags: + - Event + - Window +translation_of: Web/API/Window/load_event +--- +

L’évènement load est émis lorsqu’une ressource et ses ressources dépendantes sont completement chargées.

+ +

Informations générales

+ +
+
Spécification
+
DOM L3
+
Interface
+
UIEvent
+
Bouillonne
+
Non
+
Annulable
+
Non
+
Cible
+
Document, Element
+
Action par défaut
+
Aucune.
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
targetEventTargetLa cible de l’évènement (la cible la plus haute dans l’arbre DOM)
typeDOMStringLe type de l’évènement
bubblesbooleanSi l’évènement bouillonne ou non
cancelablebooleanSi l’évènement est annulable ou non
viewWindowProxydocument.defaultView (la fenêtre du document)
detaillong (float)0.
+ +

Tous les évènements ci-dessus sont en lecture seule. Vous ne pouvez pas leur affecter de valeur.

+ +

Exemple

+ +
+
<script>
+  window.addEventListener("load", function(event) {
+    console.log("Toutes les ressources sont chargées !");
+  });
+</script>
+
+ +

Évènements liés

+ + diff --git a/files/fr/web/api/window/onresize/index.html b/files/fr/web/api/window/onresize/index.html deleted file mode 100644 index d2c0d6304f..0000000000 --- a/files/fr/web/api/window/onresize/index.html +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: window.onresize -slug: Web/API/Window/onresize -tags: - - API - - DOM - - Gestionnaires d'évènements - - Propriété - - évènements -translation_of: Web/API/GlobalEventHandlers/onresize ---- -

{{ ApiRef() }}

- -

La propriété GlobalEventHandlers.onresize contient un {{domxref("EventHandler")}} (gestionnaire d'évènements) qui survient quand un évènement {{event("resize")}} est reçu.

- -

Syntaxe

- -
window.onresize = funcRef;
-
- -

Paramètres

- - - -

Exemple

- -
window.onresize = doFunc;
-
- -
<html>
-<head>
-
-<title>onresize test</title>
-
-</head>
-
-<body>
-<p>Resize the browser window to fire the resize event.</p>
-
-<p>Window height: <span id="height"></span></p>
-<p>Window width: <span id="width"></span></p>
-
-<script type="text/javascript">
-  var heightOutput = document.querySelector('#height');
-  var widthOutput = document.querySelector('#width');
-
-  function resize() {
-    heightOutput.textContent = window.innerHeight;
-    widthOutput.textContent = window.innerWidth;
-  }
-
-  window.onresize = resize;
-</script>
-</body>
-</html>
- -

Notes

- -

L’événement resize est déclenché après le redimensionnement de la fenêtre.

- -

Spécification

- - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG','webappapis.html#handler-onresize','onresize')}}{{Spec2('HTML WHATWG')}} 
diff --git a/files/fr/web/api/window/pagehide_event/index.html b/files/fr/web/api/window/pagehide_event/index.html new file mode 100644 index 0000000000..8971ae1044 --- /dev/null +++ b/files/fr/web/api/window/pagehide_event/index.html @@ -0,0 +1,69 @@ +--- +title: pagehide +slug: Web/Events/pagehide +translation_of: Web/API/Window/pagehide_event +--- +

L’évènement pagehide est émis lorsqu’une entrée dans un historique de session est sur le point d’être quittée.

+ +

Informations générales

+ +
+
Spécification
+
HTML5
+
Interface
+
PageTransitionEvent
+
Bouillonne
+
Non
+
Annulable
+
Non
+
Cible
+
Document (dispatché sur Window)
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}La cible de l’évènement (la plus haute dans l’arbre DOM).
type {{readonlyInline}}{{domxref("DOMString")}}Le type d’évènement.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement bouillonne en temps normal ou non.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement est annulable ou non.
persisted {{readonlyInline}}{{jsxref("boolean")}}Si l’entrée est chargée depuis le cache ou non.
+ +

Évènements liés

+ + diff --git a/files/fr/web/api/window/pageshow_event/index.html b/files/fr/web/api/window/pageshow_event/index.html new file mode 100644 index 0000000000..ba9e55f03e --- /dev/null +++ b/files/fr/web/api/window/pageshow_event/index.html @@ -0,0 +1,132 @@ +--- +title: pageshow +slug: Web/Events/pageshow +translation_of: Web/API/Window/pageshow_event +--- +

L’évènement pageshow est émis lorsqu’une entrée dans un historique de session est atteinte (cela comprend les boutons précédent / suivant ainsi que l’affichage initial de la page après l’évènement onload).

+ +

Informations générales

+ +
+
Spécification
+
HTML5
+
Interface
+
PageTransitionEvent
+
Bouillonne
+
Non
+
Annulable
+
Non
+
Cible
+
Document (dispatché sur Window)
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}La cible de l’évènement (la plus haute dans l’arbre DOM).
type {{readonlyInline}}{{domxref("DOMString")}}Le type d’évènement.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement bouillonne en temps normal ou non.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Si l’évènement est annulable ou non.
persisted {{readonlyInline}}{{jsxref("boolean")}}Si l’entrée est chargée depuis le cache ou non.
+ +

Exemples

+ +

L’exemple suivant va afficher dans la console des informations sur l’évènement pageshow, qui est émis à l’utilisation des boutons précédent / suivant, et pas uniquement après onload :

+ +
window.addEventListener('pageshow', function(event) {
+    console.log('pageshow:');
+    console.log(event);
+});
+ +

Bien que ce ne soit pas la meilleure pratique, vous pouvez également ajouter l’évènement comme un attribut sur la balise <body>, de la même manière que onload :

+ +
<body onload="myonload()" onpageshow="mypageshowcode()">
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable()}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support de base{{CompatVersionUnknown}}{{CompatGeckoDesktop("1.8")}}11{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatUnknown()}}{{CompatUnknown()}}{{CompatUnknown()}}{{CompatUnknown()}}{{CompatUnknown()}}
+
+ +

Évènements liés

+ + diff --git a/files/fr/web/api/window/unload_event/index.html b/files/fr/web/api/window/unload_event/index.html new file mode 100644 index 0000000000..676b6187e3 --- /dev/null +++ b/files/fr/web/api/window/unload_event/index.html @@ -0,0 +1,156 @@ +--- +title: unload +slug: Web/Events/unload +tags: + - JavaScript + - events +translation_of: Web/API/Window/unload_event +--- +


+ L'événement unload est appelé lorsque le document ou une ressource enfant est en train d'être déchargé.

+ +

Il est lancé après :

+ +
    +
  1. beforeunload (événement annulable)
  2. +
  3. pagehide
  4. +
+ +

Le document se trouve alors dans un état particulier :

+ + + +

Veuiller noter que l'événement unload suit l'ordre du document : le cadre parent est déchargé avant le unload d'un cadre enfant (voir l'exemple ci-dessous).

+ + + + + + + + + + + + + + + + + + + + + + + + +
Événement propageableNon
AnnulableNon
Objets ciblesdefaultView, Document, Element
Interface{{domxref("UIEvent")}} si généré depuis un élément de l'interface utilisateur, {{domxref("Event")}}
Action par défautAucune
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropriétéTypeDescription
target {{readonlyInline}}EventTargetLa cible de l'événement (la cible de plus haut niveau dans le DOM).
type {{readonlyInline}}DOMStringLe type d'événement.
bubbles {{readonlyInline}}BooleanSi l'événement remonte ou non.
cancelable {{readonlyInline}}BooleanSi l'événement est annulable ou non.
view {{readonlyInline}}WindowProxydocument.defaultView (fenêtre du document)
detail {{readonlyInline}}long (float)0.
+ +

Exemple

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <title>Cadre parent</title>
+    <script>
+      window.addEventListener('beforeunload', function(event) {
+        console.log('Je suis le 1er.');
+      });
+      window.addEventListener('unload', function(event) {
+        console.log('Je suis le 3ème.');
+      });
+    </script>
+  </head>
+  <body>
+    <iframe src="child-frame.html"></iframe>
+  </body>
+</html>
+ +

Ci-dessous, le contenu de child-frame.html:

+ +
<!DOCTYPE html>
+<html>
+  <head>
+    <title>Cadre enfant</title>
+    <script>
+      window.addEventListener('beforeunload', function(event) {
+        console.log('Je suis le 2nd.');
+      });
+      window.addEventListener('unload', function(event) {
+        console.log('Je suis le 4ème et dernier…');
+      });
+    </script>
+  </head>
+  <body>
+      ☻
+  </body>
+</html>
+ +

Quand le cadre parent est déchargé, les événements sont lancés dans l'ordre décrit par les messages console.log.

+ +

Événements liés

+ + + +

Spécifications

+ + diff --git a/files/fr/web/api/window/url/index.html b/files/fr/web/api/window/url/index.html deleted file mode 100644 index 223701977c..0000000000 --- a/files/fr/web/api/window/url/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Window.URL -slug: Web/API/Window/URL -translation_of: Web/API/URL -translation_of_original: Web/API/Window/URL ---- -

{{ApiRef("Window")}}{{SeeCompatTable}}

- -

La propriété Window.URL retourne un objet qui fournit les méthodes statiques utilisées pour créer et gérer les objets URLs. On peut aussi l'appeler comme uns constructeur pour instancier des objets {{domxref("URL")}}.

- -

{{AvailableInWorkers}}

- -

Syntax

- -

Utilisation de la méthode statique:

- -
img.src = URL.{{domxref("URL.createObjectURL", "createObjectURL")}}(blob);
- -

Utilisation d'un objet instancié:

- -
var url = new {{domxref("URL.URL", "URL")}}("../cats/", "https://www.example.com/dogs/");
- -

Specification

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('URL', '#dom-url', 'URL')}}{{Spec2('URL')}}Initial definition
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support8.0[2]{{CompatGeckoDesktop("2.0")}}[1]
- {{CompatGeckoDesktop("19.0")}}
10.015.0[2]6.0[2]
- 7.0
-
- -
- - - - - - - - - - - - - - - - - - - -
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}[2]{{CompatGeckoMobile("14.0")}}[1]
- {{CompatGeckoMobile("19.0")}}
{{CompatVersionUnknown}}15.0[2]6.0[2]
-
- -

[1] From Gecko 2 (Firefox 4) to Gecko 18 included, Gecko returned an object with the non-standard nsIDOMMozURLProperty internal type. In practice, this didn't make any difference.

- -

[2] Implemented under the non-standard name webkitURL.

diff --git a/files/fr/web/api/windowbase64/atob/index.html b/files/fr/web/api/windowbase64/atob/index.html deleted file mode 100644 index b04c255040..0000000000 --- a/files/fr/web/api/windowbase64/atob/index.html +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: window.atob -slug: Web/API/WindowBase64/atob -tags: - - API - - DOM - - Reference - - WindowOrWorkerGlobalScope - - atob -translation_of: Web/API/WindowOrWorkerGlobalScope/atob ---- -

{{APIRef ("HTML DOM")}}
- La fonction WindowOrWorkerGlobalScope.atob() décode une chaîne de données qui a été codée en utilisant le codage en base 64. Vous pouvez utiliser la méthode {{domxref("WindowOrWorkerGlobalScope.btoa","btoa()")}} pour encoder et transmettre des données qui pourraient causer des problèmes de communication, puis les transmettre et utiliser la méthode atob() pour décoder les données . Par exemple, vous pouvez coder, transmettre et décoder des caractères de contrôle tels que les valeurs ASCII 0 à 31.

- -

Pour une utilisation avec des chaînes Unicode ou UTF-8, voir cette note sur l'encodage et le décodage Base64 et cette note sur btoa().

- -

Syntaxe

- -
var donneesDecodees = scope.atob(donneesEncodees);
-
- -

Déclenche

- -

Déclenche une {{jsxref("DOMException")}} si la longueur de la chaîne passée en entrée n'est pas un multiple de 4.

- -

Exemple

- -
donneesEncodees = window.btoa('Salut, monde'); // encode une chaîne
-donneesDecodees = window.atob(donneesEncodees); // décode la chaîne
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'webappapis.html#dom-btoa', 'WindowOrWorkerGlobalScope.atob()')}}{{Spec2('HTML WHATWG')}}Méthode déplacée dans le mixin WindowOrWorkerGlobalScope dans la spéc la plus récente.
{{SpecName('HTML WHATWG', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML WHATWG')}}Pas de changement depuis l'instantané le plus récent {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML5.1')}}Instantané de {{SpecName("HTML WHATWG")}}. Pas de changement.
{{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName("HTML WHATWG")}}. Création de WindowBase64 (les propriétés se trouvaient sur la cible avant cela).
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]
- {{CompatGeckoDesktop(27)}}[2]
- {{CompatGeckoDesktop(52)}}[3]
10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}
- {{CompatGeckoDesktop(52)}}[3]
{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
- -

[1] atob() est aussi disponible pour les composants XPCOM implémentés en JavaScript, même si window n'est pas l'objet global dans les composants.

- -

[2] A partir de Firefox 27atob() ignore tous les caractères espace dans l'argument pour se conformer à la spéc HTML5 la plus récente (voir {{bug(711180)}}).

- -

[3] atob() maintenant définie dans le mixin {{domxref("WindowOrWorkerGlobalScope")}}.

- -

Voir aussi

- - diff --git a/files/fr/web/api/windowbase64/btoa/index.html b/files/fr/web/api/windowbase64/btoa/index.html deleted file mode 100644 index 7d993f35fa..0000000000 --- a/files/fr/web/api/windowbase64/btoa/index.html +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: WindowBase64.btoa() -slug: Web/API/WindowBase64/btoa -tags: - - API - - DOM - - Méthode - - Reference - - Web - - WindowOrWorkerGlobalScope - - btoa - - chaînes - - données -translation_of: Web/API/WindowOrWorkerGlobalScope/btoa ---- -
{{APIRef("HTML DOM")}}
- -

La méthode WindowOrWorkerGlobalScope.btoa() crée une chaîne ASCII codée en base 64 à partir d'un objet {{jsxref ("String")}} dans lequel chaque caractère de la chaîne est traité comme un octet de données binaires.

- -
-

Note : étant donné que cette fonction traite chaque caractère comme un octet de données binaires, quel que soit le nombre d'octets composant le caractère, une exception InvalidCharacterError est déclenchée si le {{Glossary("code point")}} d'un caractère quelconque est en dehors de la plage 0x00 à 0xFF. Voir {{anch("Chaînes Unicode")}} pour un exemple montrant comment encoder des chaînes avec des caractères en dehors de la plage 0x00 à 0xFF.

-
- -

Syntaxe

- -
var donneesEncodees = scope.btoa(chaineAEncoder);
-
- -

Paramètres

- -
-
chaineAEncoder
-
Une chaîne dont les caractères représentent chacun un octet unique de données binaires à encoder en ASCII.
-
- -

Valeur retournée

- -

Une chaîne contenant la représentation Base64 de la chaineAEncoder.

- -

Exceptions

- -

Exemple

- -
var donneesEncodees = window.btoa('Salut, monde'); // encode une chaîne
-var donneesDecodees = window.atob(donneesEncodees); // décode la chaîne
-
- -

Notes

- -

Vous pouvez utiliser cette méthode pour encoder des données qui, autrement, pourraient engendrer des problèmes de communication, les transmettre et utiliser alors la méthode {{domxref("WindowOrWorkerGlobalScope.atob","atob()")}} pour décoder les données à nouveau. Par exemple, vous pouvez encoder des caractères de contrôle tels que les valeurs ASCII de 0 à 31.

- -

btoa() est également disponible pour les composants XPCOM implémentés en JavaScript, même si {domxref("Window")}} n'est pas l'objet global dans les composants.

- -

Chaînes Unicode

- -

Dans la plupart des navigateurs, l'appel de btoa() sur une chaîne Unicode engendrera une exception InvalidCharacterError.

- -

Une option est d'échapper tous les caractères étendus, de telle sorte que la chaîne que vous voulez en fait encoder soit une représentation ASCII de l'original. Voyez cet exemple, noté par Johan Sundström :

- -
// Chaîne ucs-2 en ascii encodé en base64
-function uena(chn) {
-    return window.btoa(unescape(encodeURIComponent(chn)));
-}
-// Ascii encodé en base64 en chaîne ucs-2
-function aenu(chn) {
-    return decodeURIComponent(escape(window.atob(chn)));
-}
-// Usage :
-uena('✓ à la mode'); // 4pyTIMOgIGxhIG1vZGU=
-aenu('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
-
-uena('I \u2661 Unicode!'); // SSDimaEgVW5pY29kZSE=
-aenu('SSDimaEgVW5pY29kZSE='); // "I ♡ Unicode!"
- -

Une solution meilleure, plus fiable et moins coûteuse consiste à utiliser des tableaux typés pour faire la conversion.

- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'webappapis.html#dom-btoa', 'WindowOrWorkerGlobalScope.btoa()')}}{{Spec2('HTML WHATWG')}}Méthode déplacée dans le mixin WindowOrWorkerGlobalScope dans la spéc la plus récente.
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}Pas de changement depuis le dernier instantané, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Instantané de {{SpecName("HTML WHATWG")}}. Pas de changement.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName("HTML WHATWG")}}. Création de WindowBase64 (les propriétés se trouvaient sur la cible avant cela).
- -

Compatibilité des navigateurs

- -

{{CompatibilityTable}}

- - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]
- {{CompatGeckoDesktop(52)}}[2]
10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- - - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}
- {{CompatGeckoMobile(52)}}
{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
- -

[1] btoa() est aussi pour les composants XPCOM implémentés en JavaScript, même si window n'est pas l'objet global dans les composants.

- -

[2] btoa() maintenant défini dans le mixin {{domxref("WindowOrWorkerGlobalScope")}}.

- -

Voir aussi

- - diff --git "a/files/fr/web/api/windowbase64/d\303\251coder_encoder_en_base64/index.html" "b/files/fr/web/api/windowbase64/d\303\251coder_encoder_en_base64/index.html" deleted file mode 100644 index ae762bf333..0000000000 --- "a/files/fr/web/api/windowbase64/d\303\251coder_encoder_en_base64/index.html" +++ /dev/null @@ -1,343 +0,0 @@ ---- -title: Décoder et encoder en base64 -slug: Web/API/WindowBase64/Décoder_encoder_en_base64 -tags: - - Advanced - - Base64 - - JavaScript - - Reference - - Typed Arrays - - URI - - URL - - Unicode Problem - - atob() - - btoa() -translation_of: Glossary/Base64 ---- -

Base64 est un groupe de schéma pour encoder des données binaires sous forme d'un texte au format ASCII grâce à la représentation de ces données en base 64. Le terme base64 vient à l'origine de l'encodage utilisé pour transférer certains contenus MIME.

- -

Les schémas d'encodage en base64 sont principalement utilisés lorsqu'il s'agit d'enregistrer ou d'envoyer des données binaires via un media qui a été conçu pour gérer du texte. Cette transformation permet de conserver l'intégrité et la véracité des données envoyées lors du transport. Base64 est utilisé par plusieurs applications, notamment celles qui gèrent les courriels avec MIME, et le stockage de données complexes en XML.

- -

Pour JavaScript, il existe deux fonctions utilisées pour encoder et décoder des chaînes en base64 :

- - - -

La fonction atob() permet de décoder des données encodées en une chaîne de caractères en base 64. La fonction btoa(), quant à elle, permet de créer une chaîne ASCII en base64 à partir d'une « chaîne » de données binaires.

- -

Les deux méthodes, atob() et btoa(), fonctionnent sur des chaînes de caractères. Si vous voulez utiliser des ArrayBuffers, lisez ce paragraphe.

- - - - - - - - -
-

Documentation

- -
-
URIs de données
-
Les URIs de données, définies par la RFC 2397, permettent aux créateurs de contenus d'intégrer des fichiers en ligne dans des documents.
-
Base64
-
Article Wikipédia sur l'encodage en base64.
-
{{domxref("window.atob","atob()")}}
-
Méthode permettant de décoder une chaîne de donnée qui a été encodée en base64.
-
{{domxref("window.btoa","btoa()")}}
-
Méthode permettant de créer une chaîne ASCII en base64 à partir d'une « chaîne » de données binaires.
-
Le « problème Unicode »
-
Pour la plupart des navigateurs, l'utilisation de btoa() sur une chaîne de caractères Unicode entraînera une exception Character Out Of Range. Ce paragraphe indique quelques solutions.
-
URIScheme
-
Une liste de schémas URI supportés par Mozilla.
-
StringView
-
Dans cet article, nous publions une bibliothèque dont les buts sont : -
    -
  • de créer une interface pour les chaînes de caractères à la façon du langage C (i.e. un tableau de code de caractères — ArrayBufferView en JavaScript) basée sur l'interface JavaScript ArrayBuffer,
  • -
  • de créer un ensemble de méthodes pour ces objets qui fonctionnent sur des tableaux de nombres plutôt que sur chaînes de caractères JavaScript immuables,
  • -
  • de travailler avec d'autres encodages Unicode, y compris ceux différent d'UTF-16 qui est l'encodage par défaut de JavaScript pour les DOMString.
  • -
-
-
- -

Voir toutes les pages sur base64...

-
-

Outils

- - - -

Voir toutes les pages sur base64...

- - - - -
- -

Le « problème Unicode »

- -

Les objets DOMString sont des chaînes de caractères encodées sur 16 bits. Pour la plupart des navigateurs, lorsqu'on appelle window.btoa sur une chaîne Unicode, cela entraîne une exception Character Out Of Range si la représentation du caractère dépasse les 8 bits ASCII. Deux méthodes existent pour résoudre le problème :

- - - -

Voici ces deux méthodes :

- -

Première solution  – échapper la chaîne avant de l'encoder

- -
function utf8_to_b64( str ) {
-  return window.btoa(unescape(encodeURIComponent( str )));
-}
-
-function b64_to_utf8( str ) {
-  return decodeURIComponent(escape(window.atob( str )));
-}
-
-// Usage:
-utf8_to_b64('✓ à la mode'); // "4pyTIMOgIGxhIG1vZGU="
-b64_to_utf8('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
- -

Cette solution a été proposée dans un article de Johan Sundström.

- -

Seconde solution – réécrire atob() et btoa() en utilisant des TypedArray avec de l'UTF-8

- -
Note : Le code suivant peut également être utilisé pour obtenir un ArrayBuffer depuis une chaîne en base 64 (et vice-versa, voir ci-après). Pour un article concernant une bibliothèque complète sur les tableaux typés, voir cet article.
- -
"use strict";
-
-/*\
-|*|
-|*|  utilitairezs de manipulations de chaînes base 64 / binaires / UTF-8
-|*|
-|*|  https://developer.mozilla.org/fr/docs/Décoder_encoder_en_base64
-|*|
-\*/
-
-/* Décoder un tableau d'octets depuis une chaîne en base64 */
-
-function b64ToUint6 (nChr) {
-
-  return nChr > 64 && nChr < 91 ?
-      nChr - 65
-    : nChr > 96 && nChr < 123 ?
-      nChr - 71
-    : nChr > 47 && nChr < 58 ?
-      nChr + 4
-    : nChr === 43 ?
-      62
-    : nChr === 47 ?
-      63
-    :
-      0;
-
-}
-
-function base64DecToArr (sBase64, nBlocksSize) {
-
-  var
-    sB64Enc = sBase64.replace(/[^A-Za-z0-9\+\/]/g, ""), nInLen = sB64Enc.length,
-    nOutLen = nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize : nInLen * 3 + 1 >> 2, taBytes = new Uint8Array(nOutLen);
-
-  for (var nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {
-    nMod4 = nInIdx & 3;
-    nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;
-    if (nMod4 === 3 || nInLen - nInIdx === 1) {
-      for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {
-        taBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;
-      }
-      nUint24 = 0;
-
-    }
-  }
-
-  return taBytes;
-}
-
-/* encodage d'un tableau en une chaîne en base64 */
-
-function uint6ToB64 (nUint6) {
-
-  return nUint6 < 26 ?
-      nUint6 + 65
-    : nUint6 < 52 ?
-      nUint6 + 71
-    : nUint6 < 62 ?
-      nUint6 - 4
-    : nUint6 === 62 ?
-      43
-    : nUint6 === 63 ?
-      47
-    :
-      65;
-
-}
-
-function base64EncArr (aBytes) {
-
-  var nMod3 = 2, sB64Enc = "";
-
-  for (var nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {
-    nMod3 = nIdx % 3;
-    if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += "\r\n"; }
-    nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);
-    if (nMod3 === 2 || aBytes.length - nIdx === 1) {
-      sB64Enc += String.fromCharCode(uint6ToB64(nUint24 >>> 18 & 63), uint6ToB64(nUint24 >>> 12 & 63), uint6ToB64(nUint24 >>> 6 & 63), uint6ToB64(nUint24 & 63));
-      nUint24 = 0;
-    }
-  }
-
-  return sB64Enc.substr(0, sB64Enc.length - 2 + nMod3) + (nMod3 === 2 ? '' : nMod3 === 1 ? '=' : '==');
-
-}
-
-/* Tableau UTF-8 en DOMString et vice versa */
-
-function UTF8ArrToStr (aBytes) {
-
-  var sView = "";
-
-  for (var nPart, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {
-    nPart = aBytes[nIdx];
-    sView += String.fromCharCode(
-      nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */
-        /* (nPart - 252 << 32) n'est pas possible pour ECMAScript donc, on utilise un contournement... : */
-        (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128
-      : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */
-        (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128
-      : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */
-        (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128
-      : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */
-        (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128
-      : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */
-        (nPart - 192 << 6) + aBytes[++nIdx] - 128
-      : /* nPart < 127 ? */ /* one byte */
-        nPart
-    );
-  }
-
-  return sView;
-
-}
-
-function strToUTF8Arr (sDOMStr) {
-
-  var aBytes, nChr, nStrLen = sDOMStr.length, nArrLen = 0;
-
-  /* mapping... */
-
-  for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {
-    nChr = sDOMStr.charCodeAt(nMapIdx);
-    nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;
-  }
-
-  aBytes = new Uint8Array(nArrLen);
-
-  /* transcription... */
-
-  for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {
-    nChr = sDOMStr.charCodeAt(nChrIdx);
-    if (nChr < 128) {
-      /* one byte */
-      aBytes[nIdx++] = nChr;
-    } else if (nChr < 0x800) {
-      /* two bytes */
-      aBytes[nIdx++] = 192 + (nChr >>> 6);
-      aBytes[nIdx++] = 128 + (nChr & 63);
-    } else if (nChr < 0x10000) {
-      /* three bytes */
-      aBytes[nIdx++] = 224 + (nChr >>> 12);
-      aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);
-      aBytes[nIdx++] = 128 + (nChr & 63);
-    } else if (nChr < 0x200000) {
-      /* four bytes */
-      aBytes[nIdx++] = 240 + (nChr >>> 18);
-      aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);
-      aBytes[nIdx++] = 128 + (nChr & 63);
-    } else if (nChr < 0x4000000) {
-      /* five bytes */
-      aBytes[nIdx++] = 248 + (nChr >>> 24);
-      aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);
-      aBytes[nIdx++] = 128 + (nChr & 63);
-    } else /* if (nChr <= 0x7fffffff) */ {
-      /* six bytes */
-      aBytes[nIdx++] = 252 + /* (nChr >>> 32) is not possible in ECMAScript! So...: */ (nChr / 1073741824);
-      aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);
-      aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);
-      aBytes[nIdx++] = 128 + (nChr & 63);
-    }
-  }
-
-  return aBytes;
-
-}
-
- -

Tests

- -
/* Tests */
-
-var entréeChaîne = "base64 \u2014 Mozilla Developer Network";
-
-var entréeUTF8 = strToUTF8Arr(entréeChaîne);
-
-var base64 = base64EncArr(entréeUTF8);
-
-alert(base64);
-
-var sortieUT8 = base64DecToArr(base64);
-
-var sortieChaîne = UTF8ArrToStr(sortieUT8);
-
-alert(sortieChaîne);
- -

Annexe : Décoder une chaîne en base64 en un objet Uint8Array ou ArrayBuffer

- -

Ces fonctions permettent de créer des objets uint8Arrays ou arrayBuffers à partir de chaînes en base64 :

- -
var monTableau = base64DecToArr("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw=="); // "Base 64 \u2014 Mozilla Developer Network"
-
-var monBuffer = base64DecToArr("QmFzZSA2NCDigJQgTW96aWxsYSBEZXZlbG9wZXIgTmV0d29yaw==").buffer; // "Base 64 \u2014 Mozilla Developer Network"
-
-alert(monBuffer.byteLength);
- -
Note : La fonction base64DecToArr(sBase64[, nTailleBloc]) renvoie un uint8Array d'octets. Si vous souhaitez utiliser un tampon mémoire de 16 bits, 32 bits, 64 bits pour les données brutes, utilisez l'argument nTailleBloc, qui représente le nombre d'octets dont la propriété uint8Array.buffer.bytesLength doit être un multiple (1 ou pas de paramètre pour l'ASCII, les chaînes binaires ou les chaînes encodées UTF-8, 2 pour les chaînes UTF-16, 4 pour les chaînes UTF-32).
- -

Pour une bibliothèque plus complète, voir StringView – une représentation des chaînes de caractères semblable à celle du langage C, basée sur les tableaux typés

- -

Voir aussi

- - diff --git a/files/fr/web/api/windoworworkerglobalscope/atob/index.html b/files/fr/web/api/windoworworkerglobalscope/atob/index.html new file mode 100644 index 0000000000..b04c255040 --- /dev/null +++ b/files/fr/web/api/windoworworkerglobalscope/atob/index.html @@ -0,0 +1,132 @@ +--- +title: window.atob +slug: Web/API/WindowBase64/atob +tags: + - API + - DOM + - Reference + - WindowOrWorkerGlobalScope + - atob +translation_of: Web/API/WindowOrWorkerGlobalScope/atob +--- +

{{APIRef ("HTML DOM")}}
+ La fonction WindowOrWorkerGlobalScope.atob() décode une chaîne de données qui a été codée en utilisant le codage en base 64. Vous pouvez utiliser la méthode {{domxref("WindowOrWorkerGlobalScope.btoa","btoa()")}} pour encoder et transmettre des données qui pourraient causer des problèmes de communication, puis les transmettre et utiliser la méthode atob() pour décoder les données . Par exemple, vous pouvez coder, transmettre et décoder des caractères de contrôle tels que les valeurs ASCII 0 à 31.

+ +

Pour une utilisation avec des chaînes Unicode ou UTF-8, voir cette note sur l'encodage et le décodage Base64 et cette note sur btoa().

+ +

Syntaxe

+ +
var donneesDecodees = scope.atob(donneesEncodees);
+
+ +

Déclenche

+ +

Déclenche une {{jsxref("DOMException")}} si la longueur de la chaîne passée en entrée n'est pas un multiple de 4.

+ +

Exemple

+ +
donneesEncodees = window.btoa('Salut, monde'); // encode une chaîne
+donneesDecodees = window.atob(donneesEncodees); // décode la chaîne
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'webappapis.html#dom-btoa', 'WindowOrWorkerGlobalScope.atob()')}}{{Spec2('HTML WHATWG')}}Méthode déplacée dans le mixin WindowOrWorkerGlobalScope dans la spéc la plus récente.
{{SpecName('HTML WHATWG', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML WHATWG')}}Pas de changement depuis l'instantané le plus récent {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-atob', 'WindowBase64.atob()')}}{{Spec2('HTML5.1')}}Instantané de {{SpecName("HTML WHATWG")}}. Pas de changement.
{{SpecName("HTML5 W3C", "#dom-windowbase64-atob", "WindowBase64.atob()")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName("HTML WHATWG")}}. Création de WindowBase64 (les propriétés se trouvaient sur la cible avant cela).
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]
+ {{CompatGeckoDesktop(27)}}[2]
+ {{CompatGeckoDesktop(52)}}[3]
10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}
+ {{CompatGeckoDesktop(52)}}[3]
{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
+ +

[1] atob() est aussi disponible pour les composants XPCOM implémentés en JavaScript, même si window n'est pas l'objet global dans les composants.

+ +

[2] A partir de Firefox 27atob() ignore tous les caractères espace dans l'argument pour se conformer à la spéc HTML5 la plus récente (voir {{bug(711180)}}).

+ +

[3] atob() maintenant définie dans le mixin {{domxref("WindowOrWorkerGlobalScope")}}.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/windoworworkerglobalscope/btoa/index.html b/files/fr/web/api/windoworworkerglobalscope/btoa/index.html new file mode 100644 index 0000000000..7d993f35fa --- /dev/null +++ b/files/fr/web/api/windoworworkerglobalscope/btoa/index.html @@ -0,0 +1,174 @@ +--- +title: WindowBase64.btoa() +slug: Web/API/WindowBase64/btoa +tags: + - API + - DOM + - Méthode + - Reference + - Web + - WindowOrWorkerGlobalScope + - btoa + - chaînes + - données +translation_of: Web/API/WindowOrWorkerGlobalScope/btoa +--- +
{{APIRef("HTML DOM")}}
+ +

La méthode WindowOrWorkerGlobalScope.btoa() crée une chaîne ASCII codée en base 64 à partir d'un objet {{jsxref ("String")}} dans lequel chaque caractère de la chaîne est traité comme un octet de données binaires.

+ +
+

Note : étant donné que cette fonction traite chaque caractère comme un octet de données binaires, quel que soit le nombre d'octets composant le caractère, une exception InvalidCharacterError est déclenchée si le {{Glossary("code point")}} d'un caractère quelconque est en dehors de la plage 0x00 à 0xFF. Voir {{anch("Chaînes Unicode")}} pour un exemple montrant comment encoder des chaînes avec des caractères en dehors de la plage 0x00 à 0xFF.

+
+ +

Syntaxe

+ +
var donneesEncodees = scope.btoa(chaineAEncoder);
+
+ +

Paramètres

+ +
+
chaineAEncoder
+
Une chaîne dont les caractères représentent chacun un octet unique de données binaires à encoder en ASCII.
+
+ +

Valeur retournée

+ +

Une chaîne contenant la représentation Base64 de la chaineAEncoder.

+ +

Exceptions

+ +

Exemple

+ +
var donneesEncodees = window.btoa('Salut, monde'); // encode une chaîne
+var donneesDecodees = window.atob(donneesEncodees); // décode la chaîne
+
+ +

Notes

+ +

Vous pouvez utiliser cette méthode pour encoder des données qui, autrement, pourraient engendrer des problèmes de communication, les transmettre et utiliser alors la méthode {{domxref("WindowOrWorkerGlobalScope.atob","atob()")}} pour décoder les données à nouveau. Par exemple, vous pouvez encoder des caractères de contrôle tels que les valeurs ASCII de 0 à 31.

+ +

btoa() est également disponible pour les composants XPCOM implémentés en JavaScript, même si {domxref("Window")}} n'est pas l'objet global dans les composants.

+ +

Chaînes Unicode

+ +

Dans la plupart des navigateurs, l'appel de btoa() sur une chaîne Unicode engendrera une exception InvalidCharacterError.

+ +

Une option est d'échapper tous les caractères étendus, de telle sorte que la chaîne que vous voulez en fait encoder soit une représentation ASCII de l'original. Voyez cet exemple, noté par Johan Sundström :

+ +
// Chaîne ucs-2 en ascii encodé en base64
+function uena(chn) {
+    return window.btoa(unescape(encodeURIComponent(chn)));
+}
+// Ascii encodé en base64 en chaîne ucs-2
+function aenu(chn) {
+    return decodeURIComponent(escape(window.atob(chn)));
+}
+// Usage :
+uena('✓ à la mode'); // 4pyTIMOgIGxhIG1vZGU=
+aenu('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
+
+uena('I \u2661 Unicode!'); // SSDimaEgVW5pY29kZSE=
+aenu('SSDimaEgVW5pY29kZSE='); // "I ♡ Unicode!"
+ +

Une solution meilleure, plus fiable et moins coûteuse consiste à utiliser des tableaux typés pour faire la conversion.

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('HTML WHATWG', 'webappapis.html#dom-btoa', 'WindowOrWorkerGlobalScope.btoa()')}}{{Spec2('HTML WHATWG')}}Méthode déplacée dans le mixin WindowOrWorkerGlobalScope dans la spéc la plus récente.
{{SpecName('HTML WHATWG', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML WHATWG')}}Pas de changement depuis le dernier instantané, {{SpecName("HTML5.1")}}.
{{SpecName('HTML5.1', '#dom-windowbase64-btoa', 'WindowBase64.btoa()')}}{{Spec2('HTML5.1')}}Instantané de {{SpecName("HTML WHATWG")}}. Pas de changement.
{{SpecName("HTML5 W3C", "#dom-windowbase64-btoa", "WindowBase64.btoa()")}}{{Spec2('HTML5 W3C')}}Instantané de {{SpecName("HTML WHATWG")}}. Création de WindowBase64 (les propriétés se trouvaient sur la cible avant cela).
+ +

Compatibilité des navigateurs

+ +

{{CompatibilityTable}}

+ + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoDesktop(1)}}[1]
+ {{CompatGeckoDesktop(52)}}[2]
10{{CompatVersionUnknown}}{{CompatVersionUnknown}}
+ + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support de base{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile(1)}}
+ {{CompatGeckoMobile(52)}}
{{CompatNo}}{{CompatUnknown}}{{CompatVersionUnknown}}
+ +

[1] btoa() est aussi pour les composants XPCOM implémentés en JavaScript, même si window n'est pas l'objet global dans les composants.

+ +

[2] btoa() maintenant défini dans le mixin {{domxref("WindowOrWorkerGlobalScope")}}.

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/windoworworkerglobalscope/clearinterval/index.html b/files/fr/web/api/windoworworkerglobalscope/clearinterval/index.html new file mode 100644 index 0000000000..8041342b1d --- /dev/null +++ b/files/fr/web/api/windoworworkerglobalscope/clearinterval/index.html @@ -0,0 +1,73 @@ +--- +title: WindowOrWorkerGlobalScope.clearInterval() +slug: Web/API/WindowTimers/clearInterval +tags: + - API + - Méthode + - Reference + - WindowOrWorkerGlobalScope + - clearInterval +translation_of: Web/API/WindowOrWorkerGlobalScope/clearInterval +--- +
{{APIRef("HTML DOM")}}
+ +

La méthode clearInterval(), rattachée au mixin {{domxref("WindowOrWorkerGlobalScope")}}, permet d'annuler une action répétée minutée initiée via un appel à {{domxref("WindowOrWorkerGlobalScope.setInterval", "setInterval()")}}.

+ +

Syntaxe

+ +
scope.clearInterval(intervalID)
+
+ +

Paramètres

+ +
+
intervalID
+
L'identifiant de l'intervalle de répétition qu'on souhaite annuler. Cet identifiant est renvoyé lorsqu'on appelle setInterval() pour définir l'intervalle de répétition.
+
+ +

On notera que l'ensemble des identifiants utilisés est commun entre ceux fournis par {{domxref("WindowOrWorkerGlobalScope.setInterval", "setInterval()")}} et ceux fournis par {{domxref("WindowOrWorkerGlobalScope.setTimeout", "setTimeout()")}}. Cela signifie qu'on peut, techniquement, utiliser clearInterval() et {{domxref("WindowOrWorkerGlobalScope.clearTimeout", "clearTimeout()")}} de façon interchangeable. C'est toutefois une mauvaise pratique, qui nuit à la lisibilité du code et à sa maintenabilité.

+ +

Valeur de retour

+ +

{{jsxref("undefined")}}

+ +

Exemples

+ +

Voir l'exemple setInterval().

+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('HTML WHATWG', 'webappapis.html#dom-clearinterval', 'WindowOrWorkerGlobalScope.clearInterval()')}}{{Spec2("HTML WHATWG")}}Cette méthode a été déplacée sur le mixin WindowOrWorkerGlobalScope.
{{SpecName('HTML WHATWG', 'webappapis.html#dom-clearinterval', 'clearInterval()')}}{{Spec2('HTML WHATWG')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("api.WindowOrWorkerGlobalScope.clearInterval")}}

+ +

Voir aussi

+ + diff --git a/files/fr/web/api/windowtimers/clearinterval/index.html b/files/fr/web/api/windowtimers/clearinterval/index.html deleted file mode 100644 index 8041342b1d..0000000000 --- a/files/fr/web/api/windowtimers/clearinterval/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: WindowOrWorkerGlobalScope.clearInterval() -slug: Web/API/WindowTimers/clearInterval -tags: - - API - - Méthode - - Reference - - WindowOrWorkerGlobalScope - - clearInterval -translation_of: Web/API/WindowOrWorkerGlobalScope/clearInterval ---- -
{{APIRef("HTML DOM")}}
- -

La méthode clearInterval(), rattachée au mixin {{domxref("WindowOrWorkerGlobalScope")}}, permet d'annuler une action répétée minutée initiée via un appel à {{domxref("WindowOrWorkerGlobalScope.setInterval", "setInterval()")}}.

- -

Syntaxe

- -
scope.clearInterval(intervalID)
-
- -

Paramètres

- -
-
intervalID
-
L'identifiant de l'intervalle de répétition qu'on souhaite annuler. Cet identifiant est renvoyé lorsqu'on appelle setInterval() pour définir l'intervalle de répétition.
-
- -

On notera que l'ensemble des identifiants utilisés est commun entre ceux fournis par {{domxref("WindowOrWorkerGlobalScope.setInterval", "setInterval()")}} et ceux fournis par {{domxref("WindowOrWorkerGlobalScope.setTimeout", "setTimeout()")}}. Cela signifie qu'on peut, techniquement, utiliser clearInterval() et {{domxref("WindowOrWorkerGlobalScope.clearTimeout", "clearTimeout()")}} de façon interchangeable. C'est toutefois une mauvaise pratique, qui nuit à la lisibilité du code et à sa maintenabilité.

- -

Valeur de retour

- -

{{jsxref("undefined")}}

- -

Exemples

- -

Voir l'exemple setInterval().

- -

Spécifications

- - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('HTML WHATWG', 'webappapis.html#dom-clearinterval', 'WindowOrWorkerGlobalScope.clearInterval()')}}{{Spec2("HTML WHATWG")}}Cette méthode a été déplacée sur le mixin WindowOrWorkerGlobalScope.
{{SpecName('HTML WHATWG', 'webappapis.html#dom-clearinterval', 'clearInterval()')}}{{Spec2('HTML WHATWG')}} 
- -

Compatibilité des navigateurs

- - - -

{{Compat("api.WindowOrWorkerGlobalScope.clearInterval")}}

- -

Voir aussi

- - diff --git a/files/fr/web/api/worker/functions_and_classes_available_to_workers/index.html b/files/fr/web/api/worker/functions_and_classes_available_to_workers/index.html deleted file mode 100644 index 379f86edd6..0000000000 --- a/files/fr/web/api/worker/functions_and_classes_available_to_workers/index.html +++ /dev/null @@ -1,240 +0,0 @@ ---- -title: Fonctions et classes disponibles dans les Web Workers -slug: Web/API/Worker/Functions_and_classes_available_to_workers -translation_of: Web/API/Web_Workers_API/Functions_and_classes_available_to_workers ---- -

En plus de l'ensemble des fonctions standard JavaScript (telles que {{jsxref("Global_Objects/String", "String")}}, {{jsxref("Global_Objects/Array", "Array")}}, {{jsxref("Global_Objects/Object", "Object")}}, {{jsxref("Global_Objects/JSON", "JSON")}} etc), des fonctions du DOM restent disponibles pour les workers. Cet article en fournit la liste.

- -

Les workers s'exécutent dans un contexte global, {{domxref("DedicatedWorkerGlobalScope")}} différent du contexte de la fenêtre courante. Par défaut les méthodes et propriétés de {{domxref("Window")}} ne leur sont pas disponibles, mais {{domxref("DedicatedWorkerGlobalScope")}}, comme Window, implémente {{domxref("WindowTimers")}} et {{domxref("WindowBase64")}}.

- -

Comparaison des propriétés et méthodes des différents types de workers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionsWorkers dédiésWorkers partagésService workersChrome workers {{Non-standard_inline}}En dehors des  workers
{{domxref("WindowBase64.atob", "atob()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowBase64.btoa", "btoa()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.clearInterval", "clearInterval()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.clearTimeout", "clearTimeout()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("Window.dump()", "dump()")}} {{non-standard_inline}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.setInterval", "setInterval()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WindowTimers.setTimeout", "setTimeout()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("Window")}}
{{domxref("WorkerGlobalScope.importScripts", "importScripts()")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}non
{{domxref("WorkerGlobalScope.close", "close()")}} {{non-standard_inline}}oui, sur {{domxref("WorkerGlobalScope")}}oui, sur {{domxref("WorkerGlobalScope")}}oui, mais sans effetInconnunon
{{domxref("DedicatedWorkerGlobalScope.postMessage", "postMessage()")}}oui, sur {{domxref("DedicatedWorkerGlobalScope")}}nonnonInconnunon
- -

APIs disponibles dans les workers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionFonctionnalitéSupport dans Gecko (Firefox)Support dans IESupport dans Blink (Chrome et Opera)Support dans WebKit (Safari)
XMLHttpRequestCrée et retourne un nouvel objet {{domxref("XMLHttpRequest")}}; il imite le comportement du constructeur standard XMLHttpRequest(). Remarquez que les attributs responseXML et channel de XMLHttpRequest retourne toujours null. -

Basique : {{CompatGeckoDesktop("1.9.1")}}

- -

{{domxref("XMLHttpRequest.response", "response")}} et {{domxref("XMLHttpRequest.responseType", "responseType")}} sont disponibles depuis {{CompatGeckoDesktop("10")}}

- -

{{domxref("XMLHttpRequest.timeout", "timeout")}} et {{domxref("XMLHttpRequest.ontimeout", "ontimeout")}} sont disponibles depuis {{CompatGeckoDesktop("13")}}

-
{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
WorkerCrée un nouveau {{ domxref("Worker") }}. Oui, les workers peuvent engendrer des workers supplémentaires.{{CompatGeckoDesktop("1.9.1")}}10.0{{CompatNo}} Voir crbug.com/31666{{CompatNo}}
{{ domxref("URL") }}Les workers peuvent utiliser les méthodes statiques URL.createObjectURL et URL.revokeObjectURL avec les objets {{domxref("Blob")}} accessibles au worker.
- Les workers peuvent aussi créer une nouvelle URL en utilisant le constructeur {{domxref("URL.URL", "URL()")}} et appeler n'importe quelle méthode normale sur l'objet retourné.
{{CompatGeckoDesktop(21)}} et {{CompatGeckoDesktop(26)}} pour le constructeur URL(){{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("TextEncoder")}} and {{domxref("TextDecoder")}}Crée et retourne un nouveau {{domxref("TextEncoder")}}, ou respectivement {{domxref("TextDecoder")}}, permettant d'encoder ou de décoder des chaînes de caractère dans un encodage spécifique.{{CompatGeckoDesktop(20)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("WorkerNavigator")}}Le sous-ensemble de l'interface {{domxref("Navigator")}} disponible aux workers.Implémentation basique {{CompatVersionUnknown}}
- {{domxref("NavigatorID.appCodeName", "appCodeName")}}, {{domxref("NavigatorID.product", "product")}}, {{domxref("NavigatorID.taintEnabled", "taintEnabled()")}}: {{CompatGeckoDesktop(28)}}
- {{domxref("WorkerNavigator.onLine", "onLine")}}: {{CompatGeckoDesktop(29)}}
- {{domxref("NavigatorLanguage")}}: {{CompatNo}}
{{domxref("NavigatorID.appName", "appName")}}, {{domxref("NavigatorID.appVersion", "appName")}}, {{domxref("WorkerNavigator.onLine", "onLine")}}, {{domxref("NavigatorID.platform", "platform")}}, {{domxref("NavigatorID.userAgent", "userAgent")}}: 10.0
- Autre : {{CompatNo}}
{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("WorkerLocation")}}Le sous-ensemble de l'interface {{domxref("Location")}} disponible aux workers.{{CompatGeckoDesktop(1.9.2)}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("WorkerGlobalScope")}}Le contexte global des workers. Cet objet définit les fonctions spécifiques aux workers.{{CompatVersionUnknown}}10.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
{{domxref("ImageData")}}Les données en pixels sous-jacentes à une zone d'un élément {{domxref("canvas")}}. Manipuler de telles données peut être une tâche complexe qu'il est plus approprié de déléguer à un web worker.{{CompatGeckoDesktop(25)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("FileReaderSync")}}Cette API permet la lecture synchrone d'objets {{domxref("Blob")}} et {{domxref("File")}}. C'est une API qui fonctionne uniquement au sein des workers.{{CompatGeckoDesktop(8)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
{{domxref("IndexedDB_API", "IndexedDB")}}Une base de données pour stocker des enregistrements contenant des valeurs simples et des objets hiérarchiques.{{CompatGeckoDesktop(37)}}10.0{{CompatVersionUnknown}}{{CompatNo}}
{{domxref("WebSocket")}}Crée et retourne un nouvel objet {{domxref("WebSocket")}}; Il imite le comportement d'un constructeur WebSocket() standard.{{CompatGeckoDesktop(36)}}11.0{{CompatVersionUnknown}}{{CompatVersionUnknown}}
Data Store APIUn mécanisme de stockage puissant et flexible pour de multiples applications Firefox OS qui ont l'habitude de stocker et d'échanger des données entre elles de manière rapide, efficace et sécurisée.Seulement dans les applications internes (certifiées) de Firefox OS, deuis v1.0.1.{{CompatNo}}{{CompatNo}}{{CompatNo}}
PromisesLes objets JavaScript qui vous permettent d'écrire des fonctions asynchrones.{{CompatGeckoDesktop(28)}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
- -

Voir aussi

- - diff --git a/files/fr/web/api/xmlhttprequest/abort_event/index.html b/files/fr/web/api/xmlhttprequest/abort_event/index.html new file mode 100644 index 0000000000..0585331ebe --- /dev/null +++ b/files/fr/web/api/xmlhttprequest/abort_event/index.html @@ -0,0 +1,89 @@ +--- +title: abort +slug: Web/Events/abort_(ProgressEvent) +translation_of: Web/API/XMLHttpRequest/abort_event +--- +

L'événement abort est déclenché lorsque la progression a été interompue (Non causé par une erreur)

+ +

Informations générales

+ +
+
Spécification
+
Progress
+
Interface
+
ProgressEvent
+
Propagation
+
Non
+
Annulable
+
Non
+
Cible
+
Element
+
Action par défaut
+
Aucune
+
+ +

Propriétés

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyTypeDescription
target {{readonlyInline}}{{domxref("EventTarget")}}The event target (the topmost target in the DOM tree).
type {{readonlyInline}}{{domxref("DOMString")}}The type of event.
bubbles {{readonlyInline}}{{jsxref("Boolean")}}Whether the event normally bubbles or not.
cancelable {{readonlyInline}}{{jsxref("Boolean")}}Whether the event is cancellable or not.
lengthComputable {{readonlyInline}}{{jsxref("Boolean")}}Specifies whether or not the total size of the transfer is known. Read only.
loaded {{readonlyInline}}unsigned long (long)The number of bytes transferred since the beginning of the operation. This doesn't include headers and other overhead, but only the content itself. Read only.
total {{readonlyInline}}unsigned long (long)The total number of bytes of content that will be transferred during the operation. If the total size is unknown, this value is zero. Read only.
+ +

Evénements liés

+ + + +

Voir aussi

+ + diff --git a/files/fr/web/api/xmlhttprequest/using_xmlhttprequest/index.html b/files/fr/web/api/xmlhttprequest/using_xmlhttprequest/index.html new file mode 100644 index 0000000000..fc3bb319ee --- /dev/null +++ b/files/fr/web/api/xmlhttprequest/using_xmlhttprequest/index.html @@ -0,0 +1,755 @@ +--- +title: Utiliser XMLHttpRequest +slug: Web/API/XMLHttpRequest/Utiliser_XMLHttpRequest +tags: + - AJAX + - File API + - FormData + - JXON + - Progression + - Téléchargement + - XML + - XMLHttpRequest + - upload +translation_of: Web/API/XMLHttpRequest/Using_XMLHttpRequest +--- +

 

+ +

XMLHttpRequest permet d'envoyer des requêtes HTTP de manière très simple.  Il suffit de créer une instance de l'objet, d'ouvrir une URL, et d'envoyer la requête.  Le status HTTP du résultat, tout comme le contenu de la réponse, sont disponibles dans l'objet de la requête quand la transaction est terminée. Cette page présente quelques-uns des cas d'utilisation communs et même un peu obscurs pour cet objet JavaScript puissant.

+ +
function reqListener () {
+  console.log(this.responseText);
+}
+
+var oReq = new XMLHttpRequest();
+oReq.onload = reqListener;
+oReq.open("get", "yourFile.txt", true);
+oReq.send();
+ +

Types de requêtes

+ +

Une demande faite via XMLHttpRequest peut récupérer les données dans l'une des deux façons, de manière asynchrone ou synchrone. Le type de demande est dictée par l'argument optionnel async (le troisième argument) qui est mis sur la méthode open() XMLHttpRequest (). Si cet argument est true ou non spécifié, l'objet XMLHttpRequest est traitée de manière asynchrone, sinon le processus est effectué de façon synchrone. Une discussion détaillée et des démonstrations de ces deux types de demandes peuvent être trouvés sur la page des requêtes synchrones et asynchrones. En général, vous devriez rarement, voire jamais, utiliser requêtes synchrones.

+ +
Note: A partir de Gecko 30.0 {{ geckoRelease("30.0") }}, les requêtes synchrones sur le processus principal ont été dépréciées en raison de l'effet négatif sur l'expérience utilisateur.
+ +

Gérer les réponses

+ +

Il existe plusieurs types d'attributs de réponse définies par la spécification W3C pour XMLHttpRequest. Ceci indique que le client faisant l'objet XMLHttpRequest des informations importantes sur l'état ​​de la réponse. Certains cas où, traitant de types de réponse non-texte peuvent impliquer une certaine manipulation et l'analyse comme indiqué dans les sections suivantes.

+ +

Analyser et manipuler la propriété responseXML

+ +

Si vous utlisez XMLHttpRequest pour obtenir le contenu d'un fichier XML distant, la propriété responseXML sera un Objet DOM contenant le document XML parsé, qui peut être difficile à manipuler et analyser. Il y a quatres moyens principaux d'analyser ce document XML :

+ +
    +
  1. Utiliser XPath pour localiser des parties.
  2. +
  3. Utiliser JXON pour le convertir en Objet structuré JavaScript.
  4. +
  5. Manuellement parser et serializer le XML en chaînes de caractères ou en objets.
  6. +
  7. Utiliser XMLSerializer pour serializer le DOM en chaînes ou en fichiers.
  8. +
  9. RegExp peut être utlisé si vous connaissez à l'avance le contenu du document XML. Vous pouvez supprimer les sauts de ligne, si vous utlisez RegExp en prenant en compte ces sauts. Toutefois, cette méthode est un "dernier recours", car si le code XML change légèrement, la méthode échouera probablement.
  10. +
+ +

Analyser et manipuler une propriété responseText contenant un document HTML

+ +
Note: La spécification W3C XMLHttpRequest  autorise le HTML a être parsé via la propritété XMLHttpRequest.responseXML. Lisez l'article à propos du HTML dans XMLHttpRequest pour plus de détails.
+ +

Si vous utilisez XMLHttpRequest pour récupérer le contenu d'une page HTML distante, la propriété responseText est une chaîne de caractères contenant une "soupe" de tous les tags HTML, qui peut être difficile à manipuler et à analyser. Il y a trois moyens principaux d'analyser cette soupe de HTML :

+ +
    +
  1. Utiliser la propriété XMLHttpRequest.responseXML.
  2. +
  3. Injecter le contenu dans le body d'un fragment de document via fragment.body.innerHTML et traverser le DOM du fragment.
  4. +
  5. RegExp peut être utlisé si vous connaissez à l'avance le contenu du document HTML dans responseText. Vous pouvez supprimer les sauts de ligne, si vous utlisez RegExp en prenant en compte ces sauts. Toutefois, cette méthode est un "dernier recours", car si le code XML change légèrement, la méthode échouera probablement.
  6. +
+ +

Gérer les données binaires

+ +

Bien que XMLHttpRequest est le plus souvent utilisé pour envoyer et recevoir des données textuelles, on peut l'utiliser pour envoyer et recevoir du contenu binaire.Il existe plusieurs méthodes éprouvées pour contraindre la réponse d'un XMLHttpRequest en l'envoi de données binaires. Celles-ci impliquent d'utiliser la méthode .overrideMimeType() sur l'objet XMLHttpRequest, ce qui est une solution viable.

+ +
var oReq = new XMLHttpRequest();
+oReq.open("GET", url, true);
+// récupérer les données non traitées comme une chaîne binaire
+oReq.overrideMimeType("text/plain; charset=x-user-defined");
+/* ... */
+
+ +

La Spécification XMLHttpRequest Niveau 2 ajoute de nouveaux attributs responseType qui permettent d'envoyer et de recevoir des données binaires plus facilement.

+ +
var oReq = new XMLHttpRequest();
+
+oReq.open("GET", url, true);
+oReq.responseType = "arraybuffer";
+oReq.onload = function(e) {
+  var arraybuffer = oReq.response; // n'est pas responseText
+  /* ... */
+}
+oReq.send();
+
+ +

Pour plus d'exemples, jettez un oeil à la page Envoyer et recevoir des données binaires

+ +

Surveiller la progression

+ +

XMLHttpRequest fournit la possibilité d'écouter différents évènements qui peuvent se produire pendant que la requête est traitée. Cela inclu des notifications de progression périodiques, des notifications d'erreur, ainsi de suite.

+ +

Le support des évènements de progression DOM de XMLHttpRequest suit l'API web de spécifications des évènements de progression: ils implémentent l'interface {{domxref("ProgressEvent")}}.

+ +
var oReq = new XMLHttpRequest();
+
+oReq.addEventListener("progress", updateProgress, false);
+oReq.addEventListener("load", transferComplete, false);
+oReq.addEventListener("error", transferFailed, false);
+oReq.addEventListener("abort", transferCanceled, false);
+
+oReq.open();
+
+// ...
+
+// progression des transferts depuis le serveur jusqu'au client (téléchargement)
+function updateProgress (oEvent) {
+  if (oEvent.lengthComputable) {
+    var percentComplete = oEvent.loaded / oEvent.total;
+    // ...
+  } else {
+    // Impossible de calculer la progression puisque la taille totale est inconnue
+  }
+}
+
+function transferComplete(evt) {
+  alert("Le transfert est terminé.");
+}
+
+function transferFailed(evt) {
+  alert("Une erreur est survenue pendant le transfert du fichier.");
+}
+
+function transferCanceled(evt) {
+  alert("Le transfert a été annulé par l'utilisateur.");
+}
+ +

Les lignes 3-6 ajoutent des écouteurs pour les différents évènements lancés pendant la transfert de données d'une XMLHttpRequest.

+ +
Note: Vous devez ajouter les écouteurs avant d'appeler open() sur la requête. Sinon, les évènements de progression ne seront pas lancés.
+ +

Le gestionnaire de progression, spécifié par la fonction updateProgress() dans cet exemple, reçoit le nombre total de bytes à transférer ainsi que le nombre de bytes déjà transférés dans les champs total et loaded.  Cependant, si le champ lengthComputable est false, la taille totale est inconnue et sera zéro.

+ +

Les évènements de progression sont disponibles pour l'envoi et la réception de données. Les évènements de téléchargement sont lancés sur l'objet XMLHttpRequest lui-même, comme montré dans l'exemple ci-dessus. Les évènements d'envoi (upload) sont lancés sur l'objet XMLHttpRequest.upload, comme montré ci-dessous:

+ +
var oReq = new XMLHttpRequest();
+
+oReq.upload.addEventListener("progress", updateProgress, false);
+oReq.upload.addEventListener("load", transferComplete, false);
+oReq.upload.addEventListener("error", transferFailed, false);
+oReq.upload.addEventListener("abort", transferCanceled, false);
+
+oReq.open();
+
+ +
Note: Les évènements de progression ne sont pas disponibles sur le protocole file:.
+ +
Note: Actuellement, il y a encore des bugs ouverts pour les évènements de progression qui affectent la version 25 de Firefox sur OS X et Linux.
+ +
+

Note: A partir de {{Gecko("9.0")}}, les évènements de progression peuvent désormais être assurément présents pour chaque morceau de données reçu, y compris le dernier morceau dans les cas où le dernier paquet est reçu et la connexion fermée avant que l'évènement ne soit lancé. Dans ce cas, l'évènement de progression est automatiquement lancé quand l'évènement load se produit pour ce paquet. Cela vous permet de surveiller fiablement la progression grâce à son évènement.

+
+ +
+

Note: Dans {{Gecko("12.0")}}, si votre évènement de progression est appelé avec un responseType "moz-blob", la valeur de la réponse est un {{domxref("Blob")}} contenant les données reçues jusqu'à présent.

+
+ +

Une fonction peut aussi être appelée peu importe le status de fin de la requête (abort, load, ou error) en utilisant l'évènement loadend :

+ +
req.addEventListener("loadend", loadEnd, false);
+
+function loadEnd(e) {
+  alert("Le transfert est terminé (même si l'on ne sait pas si ça a fonctionné ou pas).");
+}
+
+ +

Notez qu'il n'y a pas moyen d'être certain des informations reçues dans l'évènement  loadend event comme la condition qui a causé la fin de l'opération; toutefois, vous pouvez utiliser cet évènement pour gérer les tâches qui doivent être exécutées dans tous les cas une fois un transfert terminé.

+ +

Envoyer des formulaires et uploader des fichiers

+ +

Les instances de XMLHttpRequest peuvent être utilisées pour envoyer des formulaires de deux façons :

+ + + +

La seconde solution (utiliser l'API FormData) est la plus simple et la plus rapide, mais a le désavantage que les données collectées ne peuvent pas être chainifiées.
+ La première solution est plutôt la plus complexe, mais se prête à être plus flexible et puissante.

+ +

Rien de plus que XMLHttpRequest

+ +

Envoyer des formulaires sans l'API FormData ne demande rien de plus, si ce n'est l'API FileReader, mais seulement si vous voulez envoyer un fichier ou plus.

+ +

Une brève introduction au méthodes de submission

+ +

Un élément HTML {{ HTMLElement("form") }} peut être envoyé de quatre manières :

+ + + +

Maintenant, considérons qu'on envoie un formulaire contenant seulement deux champs, nommées foo et baz. Si vous utilisez la méthode POST, le serveur va recevoir une chaîne similaire à l'un des trois suivantes, en fonction de l'encodage que vous utilisez :

+ + + +

Si vous utilisez la méthode GET à la place, une chaîne comme celle-ci sera simplement ajoutée à l'URL :

+ +
?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.
+ +

Un petit framework vanilla

+ +

Tout celà est fait automatiquement par le serveur quand vous envoyez un {{ HTMLElement("form") }}. Mais si vous voulez faire la même chose en utilisant JavaScript vous devez tout dire à l'interprète. Pour celà, la manière d'envoyer des formulaires en pure AJAX est trop compliquée pour être expliquée ici. Pour cette raison, nous avons posté un framework complet (mais tout de  même didactique), qui est capable d'utiliser les quatres méthodes de submit , et aussi de transférer des fichiers:

+ +
+
<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Sending forms with pure AJAX &ndash; MDN</title>
+<script type="text/javascript">
+
+"use strict";
+
+/*\
+|*|
+|*|  :: XMLHttpRequest.prototype.sendAsBinary() Polyfill ::
+|*|
+|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()
+\*/
+
+if (!XMLHttpRequest.prototype.sendAsBinary) {
+  XMLHttpRequest.prototype.sendAsBinary = function(sData) {
+    var nBytes = sData.length, ui8Data = new Uint8Array(nBytes);
+    for (var nIdx = 0; nIdx < nBytes; nIdx++) {
+      ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff;
+    }
+    /* send as ArrayBufferView...: */
+    this.send(ui8Data);
+    /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */
+  };
+}
+
+/*\
+|*|
+|*|  :: AJAX Form Submit Framework ::
+|*|
+|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
+|*|
+|*|  This framework is released under the GNU Public License, version 3 or later.
+|*|  http://www.gnu.org/licenses/gpl-3.0-standalone.html
+|*|
+|*|  Syntax:
+|*|
+|*|   AJAXSubmit(HTMLFormElement);
+\*/
+
+var AJAXSubmit = (function () {
+
+  function ajaxSuccess () {
+    /* console.log("AJAXSubmit - Success!"); */
+    alert(this.responseText);
+    /* you can get the serialized data through the "submittedData" custom property: */
+    /* alert(JSON.stringify(this.submittedData)); */
+  }
+
+  function submitData (oData) {
+    /* the AJAX request... */
+    var oAjaxReq = new XMLHttpRequest();
+    oAjaxReq.submittedData = oData;
+    oAjaxReq.onload = ajaxSuccess;
+    if (oData.technique === 0) {
+      /* method is GET */
+      oAjaxReq.open("get", oData.receiver.replace(/(?:\?.*)?$/, oData.segments.length > 0 ? "?" + oData.segments.join("&") : ""), true);
+      oAjaxReq.send(null);
+    } else {
+      /* method is POST */
+      oAjaxReq.open("post", oData.receiver, true);
+      if (oData.technique === 3) {
+        /* enctype is multipart/form-data */
+        var sBoundary = "---------------------------" + Date.now().toString(16);
+        oAjaxReq.setRequestHeader("Content-Type", "multipart\/form-data; boundary=" + sBoundary);
+        oAjaxReq.sendAsBinary("--" + sBoundary + "\r\n" + oData.segments.join("--" + sBoundary + "\r\n") + "--" + sBoundary + "--\r\n");
+      } else {
+        /* enctype is application/x-www-form-urlencoded or text/plain */
+        oAjaxReq.setRequestHeader("Content-Type", oData.contentType);
+        oAjaxReq.send(oData.segments.join(oData.technique === 2 ? "\r\n" : "&"));
+      }
+    }
+  }
+
+  function processStatus (oData) {
+    if (oData.status > 0) { return; }
+    /* the form is now totally serialized! do something before sending it to the server... */
+    /* doSomething(oData); */
+    /* console.log("AJAXSubmit - The form is now serialized. Submitting..."); */
+    submitData (oData);
+  }
+
+  function pushSegment (oFREvt) {
+    this.owner.segments[this.segmentIdx] += oFREvt.target.result + "\r\n";
+    this.owner.status--;
+    processStatus(this.owner);
+  }
+
+  function plainEscape (sText) {
+    /* how should I treat a text/plain form encoding? what characters are not allowed? this is what I suppose...: */
+    /* "4\3\7 - Einstein said E=mc2" ----> "4\\3\\7\ -\ Einstein\ said\ E\=mc2" */
+    return sText.replace(/[\s\=\\]/g, "\\$&");
+  }
+
+  function SubmitRequest (oTarget) {
+    var nFile, sFieldType, oField, oSegmReq, oFile, bIsPost = oTarget.method.toLowerCase() === "post";
+    /* console.log("AJAXSubmit - Serializing form..."); */
+    this.contentType = bIsPost && oTarget.enctype ? oTarget.enctype : "application\/x-www-form-urlencoded";
+    this.technique = bIsPost ? this.contentType === "multipart\/form-data" ? 3 : this.contentType === "text\/plain" ? 2 : 1 : 0;
+    this.receiver = oTarget.action;
+    this.status = 0;
+    this.segments = [];
+    var fFilter = this.technique === 2 ? plainEscape : escape;
+    for (var nItem = 0; nItem < oTarget.elements.length; nItem++) {
+      oField = oTarget.elements[nItem];
+      if (!oField.hasAttribute("name")) { continue; }
+      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
+      if (sFieldType === "FILE" && oField.files.length > 0) {
+        if (this.technique === 3) {
+          /* enctype is multipart/form-data */
+          for (nFile = 0; nFile < oField.files.length; nFile++) {
+            oFile = oField.files[nFile];
+            oSegmReq = new FileReader();
+            /* (custom properties:) */
+            oSegmReq.segmentIdx = this.segments.length;
+            oSegmReq.owner = this;
+            /* (end of custom properties) */
+            oSegmReq.onload = pushSegment;
+            this.segments.push("Content-Disposition: form-data; name=\"" + oField.name + "\"; filename=\""+ oFile.name + "\"\r\nContent-Type: " + oFile.type + "\r\n\r\n");
+            this.status++;
+            oSegmReq.readAsBinaryString(oFile);
+          }
+        } else {
+          /* enctype is application/x-www-form-urlencoded or text/plain or method is GET: files will not be sent! */
+          for (nFile = 0; nFile < oField.files.length; this.segments.push(fFilter(oField.name) + "=" + fFilter(oField.files[nFile++].name)));
+        }
+      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
+        /* field type is not FILE or is FILE but is empty */
+        this.segments.push(
+          this.technique === 3 ? /* enctype is multipart/form-data */
+            "Content-Disposition: form-data; name=\"" + oField.name + "\"\r\n\r\n" + oField.value + "\r\n"
+          : /* enctype is application/x-www-form-urlencoded or text/plain or method is GET */
+            fFilter(oField.name) + "=" + fFilter(oField.value)
+        );
+      }
+    }
+    processStatus(this);
+  }
+
+  return function (oFormElement) {
+    if (!oFormElement.action) { return; }
+    new SubmitRequest(oFormElement);
+  };
+
+})();
+
+</script>
+</head>
+<body>
+
+<h1>Sending forms with pure AJAX</h1>
+
+<h2>Using the GET method</h2>
+
+<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h2>Using the POST method</h2>
+<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
+
+<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: text/plain</h3>
+
+<form action="register.php" method="post" enctype="text/plain" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      Your name: <input type="text" name="user" />
+    </p>
+    <p>
+      Your message:<br />
+      <textarea name="message" cols="40" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: multipart/form-data</h3>
+
+<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Upload example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" /><br />
+      Sex:
+      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
+      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
+      Password: <input type="password" name="secret" /><br />
+      What do you prefer:
+      <select name="image_type">
+        <option>Books</option>
+        <option>Cinema</option>
+        <option>TV</option>
+      </select>
+    </p>
+    <p>
+      Post your photos:
+      <input type="file" multiple name="photos[]">
+    </p>
+    <p>
+      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
+      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
+    </p>
+    <p>
+      Describe yourself:<br />
+      <textarea name="description" cols="50" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+</body>
+</html>
+
+ +

Pour le tester, créez une page nommée register.php (qui est l'attribut action des formulaires d'exemple) et mettez y ce contenu minimaliste:

+ +
<?php
+/* register.php */
+
+header("Content-type: text/plain");
+
+/*
+NOTE: You should never use `print_r()` in production scripts, or
+otherwise output client-submitted data without sanitizing it first.
+Failing to sanitize can lead to cross-site scripting vulnerabilities.
+*/
+
+echo ":: data received via GET ::\n\n";
+print_r($_GET);
+
+echo "\n\n:: Data received via POST ::\n\n";
+print_r($_POST);
+
+echo "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
+if (isset($HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }
+
+echo "\n\n:: Files received ::\n\n";
+print_r($_FILES);
+
+
+ +

La syntaxe de ce script est la suivante:

+ +
AJAXSubmit(myForm);
+ +
Note: Ce framework utilise l'API FileReader pour transmettre les fichiers uploadés. C'est une API récente qui n'est pas implémentée dans IE9 ou inférieur. Pour cette raison, l'upload via AJAX uniquement est une technique expérimentale. Si vous n'avez pas besoin de transférer des fichiers binaires, ce framework fonctionne bien dans la majorité des navigateurs.
+ +
Note: La meilleure façon d'envoyer du contenu binaire est de passer par ArrayBuffers ou Blobs en conjonction avec la méthode send() et possiblement avec la méthode readAsArrayBuffer() de l'API FileReader. Mais dans la mesure où le but de ce script est de fonctionner avec des données chaînifiable, nous avons utilisé la méthode sendAsBinary() en conjonction avec la méthode readAsBinaryString() de l'API FileReader. Du coup, le script ci-dessous n'a de sens que quand vous voulez transférer de petits fichiers. Si vous n'avez pas l'intention de transférer des données binaires, songez plutôt à utilisez l'API FormData.
+ +
Note: La méthode non-strandard sendAsBinary est dépréciée à partir de Gecko 31 {{ geckoRelease(31) }} et sera prochainement supprimée. La méthode standard send(Blob data) peut être utilisée à la place.
+ +

Utiliser les objets FormData

+ +

Le constructeur de FormData vous permet de compiler des paires de clé/valeur à envoyer via XMLHttpRequest. Il est principalement prévu pour être utilisé dans l'envoi de formulaires, mais il peut être utilisé indépendemment des formulaires dans le but de transmettre des données associées. Les données transmises sont de même format que la méthode submit() d'un formulaire utiliserait pour envoyer les données si l'encodage du formulaire était configuré à "multipart/form-data". Les objets FormData peuvent être utilisés de nombreuses manières avec XMLHttpRequest. Pour des exemples et des explications sur la manière d'utiliser FormData avec une XMLHttpRequest, jettez un oeil sur la page Utiliser les Objets FormData. Pour des raisons didactiques seulement, nous postons ici une traduction du précédent exemple transformé pour utiliser l'API FormData. Notez la brièveté du code :

+ +
+
<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Sending forms with FormData &ndash; MDN</title>
+<script type="text/javascript">
+"use strict";
+
+function ajaxSuccess () {
+  alert(this.responseText);
+}
+
+function AJAXSubmit (oFormElement) {
+  if (!oFormElement.action) { return; }
+  var oReq = new XMLHttpRequest();
+  oReq.onload = ajaxSuccess;
+  if (oFormElement.method.toLowerCase() === "post") {
+    oReq.open("post", oFormElement.action, true);
+    oReq.send(new FormData(oFormElement));
+  } else {
+    var oField, sFieldType, nFile, sSearch = "";
+    for (var nItem = 0; nItem < oFormElement.elements.length; nItem++) {
+      oField = oFormElement.elements[nItem];
+      if (!oField.hasAttribute("name")) { continue; }
+      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
+      if (sFieldType === "FILE") {
+        for (nFile = 0; nFile < oField.files.length; sSearch += "&" + escape(oField.name) + "=" + escape(oField.files[nFile++].name));
+      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
+        sSearch += "&" + escape(oField.name) + "=" + escape(oField.value);
+      }
+    }
+    oReq.open("get", oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&/, "?")), true);
+    oReq.send(null);
+  }
+}
+</script>
+</head>
+<body>
+
+<h1>Sending forms with FormData</h1>
+
+<h2>Using the GET method</h2>
+
+<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h2>Using the POST method</h2>
+<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
+
+<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Registration example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" />
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+<h3>Enctype: text/plain</h3>
+
+<p>The text/plain encoding is not supported by the FormData API.</p>
+
+<h3>Enctype: multipart/form-data</h3>
+
+<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
+  <fieldset>
+    <legend>Upload example</legend>
+    <p>
+      First name: <input type="text" name="firstname" /><br />
+      Last name: <input type="text" name="lastname" /><br />
+      Sex:
+      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
+      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
+      Password: <input type="password" name="secret" /><br />
+      What do you prefer:
+      <select name="image_type">
+        <option>Books</option>
+        <option>Cinema</option>
+        <option>TV</option>
+      </select>
+    </p>
+    <p>
+      Post your photos:
+      <input type="file" multiple name="photos[]">
+    </p>
+    <p>
+      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
+      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
+    </p>
+    <p>
+      Describe yourself:<br />
+      <textarea name="description" cols="50" rows="8"></textarea>
+    </p>
+    <p>
+      <input type="submit" value="Submit" />
+    </p>
+  </fieldset>
+</form>
+
+</body>
+</html>
+
+ +
Note: Comme déjà dit, les objets {{domxref("FormData")}} ne sont pas des objets chainifiables. Si vous voulez chainifier les données soumises, utilisez l'exemple précédent en pure-AJAX. Notez également que, bien que dans cet exemple il y a quelques champs file {{ HTMLElement("input") }}, quand vous soumettez un formulaire via l'API FormData vous n'avez pas besoin d'utiliser l'API FileReader également : les fichiers sont automatiquement chargés et transférés.
+ +

Récupérer la date de modification

+ +
function getHeaderTime () {
+  alert(this.getResponseHeader("Last-Modified"));  /* Une chaine valide GMTString ou null */
+}
+
+var oReq = new XMLHttpRequest();
+oReq.open("HEAD" /* utilisez HEAD seulement si vous ne voulez que les headers ! */, "mapage.html", true);
+oReq.onload = getHeaderTime;
+oReq.send();
+ +

Faire quelque chose quand la date de dernière modification change

+ +

Créons deux fonctions:

+ +
function getHeaderTime () {
+
+  var
+    nLastVisit = parseFloat(window.localStorage.getItem('lm_' + this.filepath)),
+    nLastModif = Date.parse(this.getResponseHeader("Last-Modified"));
+
+  if (isNaN(nLastVisit) || nLastModif > nLastVisit) {
+    window.localStorage.setItem('lm_' + this.filepath, Date.now());
+    isFinite(nLastVisit) && this.callback(nLastModif, nLastVisit);
+  }
+
+}
+
+function ifHasChanged(sURL, fCallback) {
+  var oReq = new XMLHttpRequest();
+  oReq.open("HEAD" /* utilisons HEAD - nous ne voulons que les Headers ! */, sURL, true);
+  oReq.callback = fCallback;
+  oReq.filepath = sURL;
+  oReq.onload = getHeaderTime;
+  oReq.send();
+}
+ +

Test:

+ +
/* Testons le fichier "mapage.html"... */
+
+ifHasChanged("mapage.html", function (nModif, nVisit) {
+  alert("La page '" + this.filepath + "' a été changée le " + (new Date(nModif)).toLocaleString() + "!");
+});
+ +

Si vous voulez savoir si la page courante a changée, lisez l'article à propos de la propriété document.lastModified.

+ +

Cross-site XMLHttpRequest

+ +

Les navigateurs récents supportent les requêtes cross-site en implémentant le Standard Access Control for Cross-Site Requests (Web Application Working Group).  Tant que le serveur est configuré pour autoriser les requêtes depuis l'origine de votre web application, XMLHttpRequest fonctionnera. Sinon, une exception INVALID_ACCESS_ERR sera lancée.

+ +

Contourner le cache

+ +

Une approche cross-browser pour contourner le cache est d'ajouter le timestamp à l'URL, en étant sûr d'inclure un "?" ou un "&" selon les cas. Par exemple :

+ +
http://foo.com/bar.html -> http://foo.com/bar.html?12345
+http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&12345
+
+ +

Comme le cache local est indexé selon les URL, celà permet à toutes les requêtes d'être uniques, et du coup de contourner le cache.

+ +

Vous pouvez automatiquement ajuster les URL en utilisant le code suivant :

+ +
var oReq = new XMLHttpRequest();
+
+oReq.open("GET", url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
+oReq.send(null);
+ +

Sécurité

+ +

{{fx_minversion_note(3, "Les versions de Firefox avant Firefox 3 autorisaient à mettre les préférences capability.policy.<policyname>.XMLHttpRequest.open</policyname> à allAccess pour donner l'accès cross-sites à des sites spécifiques. Cela n'est plus possible.")}}

+ +

{{fx_minversion_note(5, "Les versions de Firefox avant Firefox 5 pouvaient utiliser netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\"); pour demander un accès cross-site. Ce n'est plus supporté, me^me si cela ne produit aucun avertissement et que la demande de permission est toujours présente.")}}

+ +

La manière recommandée d'activer les requêtes cross-sites est d'utiliser le header HTTP Access-Control-Allow-Origin dans la réponse du XMLHttpRequest.

+ +

XMLHttpRequests stoppées

+ +

Si vous vous retrouvez avec une XMLHttpRequest ayant status=0 et statusText=null, cela signifie que la requête n'a pas été autorisée à être effectuée. Elle a été UNSENT. Une cause probable est lorsque l'origine XMLHttpRequest  (lors de la création de l'objet XMLHttpRequest) a changé quand l'objet XMLHttpRequest est déjà open(). Ce cas peut se produire par exemple lorsque l'on a une XMLHttpRequest qui est lancée sur un évènement onunload d'une fenêtre: l'objet XMLHttpRequest est en fait créé lorsque la fenêtre sur le point de se fermer est toujours là, et la demande est envoyée (c'est à dire open()) lorsque cette fenêtre a perdu son focus et une autre fenêtre a potentiellement pris le focus. La manière d'éviter ce problème est de fixer un écouteur sur l'évènement "activate" de la nouvelle fenêtre qui se lance quand l'ancienne fenêtre a son événement "unload" lancé.

+ +

Utiliser XMLHttpRequest depuis un module JavaScript / un composant XPCOM

+ +

Instancier une XMLHttpRequest depuis un module JavaScript ou un composant XPCOM fonctionne un peu différemment; on ne peut pas l'instancier via le constructeur XMLHttpRequest(). Le constructeur n'est pas défini dans le composant et le code retourne une erreur. Le meilleur moyen de fixer le problème est d'utiliser le constructeur du composant XPCOM.

+ +
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
+
+ +

Malheureusement dans les versions de Gecko avant Gecko 16 il y a un bug : les requêtes créées ainsi peuvent être annulées sans raison. Si votre code doit marcher sur Gecko 15 ou moins, vous pouvez utiliser le constructeur XMLHttpRequest depuis le DOM caché de la fenêtre comme ceci :

+ +
const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
+                                     .getService(Components.interfaces.nsIAppShellService)
+                                     .hiddenDOMWindow;
+var oReq = new XMLHttpRequest();
+ +

Voir aussi

+ +
    +
  1. MDN AJAX introduction
  2. +
  3. HTTP access control
  4. +
  5. How to check the security state of an XMLHTTPRequest over SSL
  6. +
  7. XMLHttpRequest - REST and the Rich User Experience
  8. +
  9. Microsoft documentation
  10. +
  11. Apple developers' reference
  12. +
  13. "Using the XMLHttpRequest Object" (jibbering.com)
  14. +
  15. The XMLHttpRequest Object: W3C Specification
  16. +
  17. Web Progress Events specification
  18. +
  19. XMLHttpRequest (Référence Web API)
  20. +
diff --git a/files/fr/web/api/xmlhttprequest/utiliser_xmlhttprequest/index.html b/files/fr/web/api/xmlhttprequest/utiliser_xmlhttprequest/index.html deleted file mode 100644 index fc3bb319ee..0000000000 --- a/files/fr/web/api/xmlhttprequest/utiliser_xmlhttprequest/index.html +++ /dev/null @@ -1,755 +0,0 @@ ---- -title: Utiliser XMLHttpRequest -slug: Web/API/XMLHttpRequest/Utiliser_XMLHttpRequest -tags: - - AJAX - - File API - - FormData - - JXON - - Progression - - Téléchargement - - XML - - XMLHttpRequest - - upload -translation_of: Web/API/XMLHttpRequest/Using_XMLHttpRequest ---- -

 

- -

XMLHttpRequest permet d'envoyer des requêtes HTTP de manière très simple.  Il suffit de créer une instance de l'objet, d'ouvrir une URL, et d'envoyer la requête.  Le status HTTP du résultat, tout comme le contenu de la réponse, sont disponibles dans l'objet de la requête quand la transaction est terminée. Cette page présente quelques-uns des cas d'utilisation communs et même un peu obscurs pour cet objet JavaScript puissant.

- -
function reqListener () {
-  console.log(this.responseText);
-}
-
-var oReq = new XMLHttpRequest();
-oReq.onload = reqListener;
-oReq.open("get", "yourFile.txt", true);
-oReq.send();
- -

Types de requêtes

- -

Une demande faite via XMLHttpRequest peut récupérer les données dans l'une des deux façons, de manière asynchrone ou synchrone. Le type de demande est dictée par l'argument optionnel async (le troisième argument) qui est mis sur la méthode open() XMLHttpRequest (). Si cet argument est true ou non spécifié, l'objet XMLHttpRequest est traitée de manière asynchrone, sinon le processus est effectué de façon synchrone. Une discussion détaillée et des démonstrations de ces deux types de demandes peuvent être trouvés sur la page des requêtes synchrones et asynchrones. En général, vous devriez rarement, voire jamais, utiliser requêtes synchrones.

- -
Note: A partir de Gecko 30.0 {{ geckoRelease("30.0") }}, les requêtes synchrones sur le processus principal ont été dépréciées en raison de l'effet négatif sur l'expérience utilisateur.
- -

Gérer les réponses

- -

Il existe plusieurs types d'attributs de réponse définies par la spécification W3C pour XMLHttpRequest. Ceci indique que le client faisant l'objet XMLHttpRequest des informations importantes sur l'état ​​de la réponse. Certains cas où, traitant de types de réponse non-texte peuvent impliquer une certaine manipulation et l'analyse comme indiqué dans les sections suivantes.

- -

Analyser et manipuler la propriété responseXML

- -

Si vous utlisez XMLHttpRequest pour obtenir le contenu d'un fichier XML distant, la propriété responseXML sera un Objet DOM contenant le document XML parsé, qui peut être difficile à manipuler et analyser. Il y a quatres moyens principaux d'analyser ce document XML :

- -
    -
  1. Utiliser XPath pour localiser des parties.
  2. -
  3. Utiliser JXON pour le convertir en Objet structuré JavaScript.
  4. -
  5. Manuellement parser et serializer le XML en chaînes de caractères ou en objets.
  6. -
  7. Utiliser XMLSerializer pour serializer le DOM en chaînes ou en fichiers.
  8. -
  9. RegExp peut être utlisé si vous connaissez à l'avance le contenu du document XML. Vous pouvez supprimer les sauts de ligne, si vous utlisez RegExp en prenant en compte ces sauts. Toutefois, cette méthode est un "dernier recours", car si le code XML change légèrement, la méthode échouera probablement.
  10. -
- -

Analyser et manipuler une propriété responseText contenant un document HTML

- -
Note: La spécification W3C XMLHttpRequest  autorise le HTML a être parsé via la propritété XMLHttpRequest.responseXML. Lisez l'article à propos du HTML dans XMLHttpRequest pour plus de détails.
- -

Si vous utilisez XMLHttpRequest pour récupérer le contenu d'une page HTML distante, la propriété responseText est une chaîne de caractères contenant une "soupe" de tous les tags HTML, qui peut être difficile à manipuler et à analyser. Il y a trois moyens principaux d'analyser cette soupe de HTML :

- -
    -
  1. Utiliser la propriété XMLHttpRequest.responseXML.
  2. -
  3. Injecter le contenu dans le body d'un fragment de document via fragment.body.innerHTML et traverser le DOM du fragment.
  4. -
  5. RegExp peut être utlisé si vous connaissez à l'avance le contenu du document HTML dans responseText. Vous pouvez supprimer les sauts de ligne, si vous utlisez RegExp en prenant en compte ces sauts. Toutefois, cette méthode est un "dernier recours", car si le code XML change légèrement, la méthode échouera probablement.
  6. -
- -

Gérer les données binaires

- -

Bien que XMLHttpRequest est le plus souvent utilisé pour envoyer et recevoir des données textuelles, on peut l'utiliser pour envoyer et recevoir du contenu binaire.Il existe plusieurs méthodes éprouvées pour contraindre la réponse d'un XMLHttpRequest en l'envoi de données binaires. Celles-ci impliquent d'utiliser la méthode .overrideMimeType() sur l'objet XMLHttpRequest, ce qui est une solution viable.

- -
var oReq = new XMLHttpRequest();
-oReq.open("GET", url, true);
-// récupérer les données non traitées comme une chaîne binaire
-oReq.overrideMimeType("text/plain; charset=x-user-defined");
-/* ... */
-
- -

La Spécification XMLHttpRequest Niveau 2 ajoute de nouveaux attributs responseType qui permettent d'envoyer et de recevoir des données binaires plus facilement.

- -
var oReq = new XMLHttpRequest();
-
-oReq.open("GET", url, true);
-oReq.responseType = "arraybuffer";
-oReq.onload = function(e) {
-  var arraybuffer = oReq.response; // n'est pas responseText
-  /* ... */
-}
-oReq.send();
-
- -

Pour plus d'exemples, jettez un oeil à la page Envoyer et recevoir des données binaires

- -

Surveiller la progression

- -

XMLHttpRequest fournit la possibilité d'écouter différents évènements qui peuvent se produire pendant que la requête est traitée. Cela inclu des notifications de progression périodiques, des notifications d'erreur, ainsi de suite.

- -

Le support des évènements de progression DOM de XMLHttpRequest suit l'API web de spécifications des évènements de progression: ils implémentent l'interface {{domxref("ProgressEvent")}}.

- -
var oReq = new XMLHttpRequest();
-
-oReq.addEventListener("progress", updateProgress, false);
-oReq.addEventListener("load", transferComplete, false);
-oReq.addEventListener("error", transferFailed, false);
-oReq.addEventListener("abort", transferCanceled, false);
-
-oReq.open();
-
-// ...
-
-// progression des transferts depuis le serveur jusqu'au client (téléchargement)
-function updateProgress (oEvent) {
-  if (oEvent.lengthComputable) {
-    var percentComplete = oEvent.loaded / oEvent.total;
-    // ...
-  } else {
-    // Impossible de calculer la progression puisque la taille totale est inconnue
-  }
-}
-
-function transferComplete(evt) {
-  alert("Le transfert est terminé.");
-}
-
-function transferFailed(evt) {
-  alert("Une erreur est survenue pendant le transfert du fichier.");
-}
-
-function transferCanceled(evt) {
-  alert("Le transfert a été annulé par l'utilisateur.");
-}
- -

Les lignes 3-6 ajoutent des écouteurs pour les différents évènements lancés pendant la transfert de données d'une XMLHttpRequest.

- -
Note: Vous devez ajouter les écouteurs avant d'appeler open() sur la requête. Sinon, les évènements de progression ne seront pas lancés.
- -

Le gestionnaire de progression, spécifié par la fonction updateProgress() dans cet exemple, reçoit le nombre total de bytes à transférer ainsi que le nombre de bytes déjà transférés dans les champs total et loaded.  Cependant, si le champ lengthComputable est false, la taille totale est inconnue et sera zéro.

- -

Les évènements de progression sont disponibles pour l'envoi et la réception de données. Les évènements de téléchargement sont lancés sur l'objet XMLHttpRequest lui-même, comme montré dans l'exemple ci-dessus. Les évènements d'envoi (upload) sont lancés sur l'objet XMLHttpRequest.upload, comme montré ci-dessous:

- -
var oReq = new XMLHttpRequest();
-
-oReq.upload.addEventListener("progress", updateProgress, false);
-oReq.upload.addEventListener("load", transferComplete, false);
-oReq.upload.addEventListener("error", transferFailed, false);
-oReq.upload.addEventListener("abort", transferCanceled, false);
-
-oReq.open();
-
- -
Note: Les évènements de progression ne sont pas disponibles sur le protocole file:.
- -
Note: Actuellement, il y a encore des bugs ouverts pour les évènements de progression qui affectent la version 25 de Firefox sur OS X et Linux.
- -
-

Note: A partir de {{Gecko("9.0")}}, les évènements de progression peuvent désormais être assurément présents pour chaque morceau de données reçu, y compris le dernier morceau dans les cas où le dernier paquet est reçu et la connexion fermée avant que l'évènement ne soit lancé. Dans ce cas, l'évènement de progression est automatiquement lancé quand l'évènement load se produit pour ce paquet. Cela vous permet de surveiller fiablement la progression grâce à son évènement.

-
- -
-

Note: Dans {{Gecko("12.0")}}, si votre évènement de progression est appelé avec un responseType "moz-blob", la valeur de la réponse est un {{domxref("Blob")}} contenant les données reçues jusqu'à présent.

-
- -

Une fonction peut aussi être appelée peu importe le status de fin de la requête (abort, load, ou error) en utilisant l'évènement loadend :

- -
req.addEventListener("loadend", loadEnd, false);
-
-function loadEnd(e) {
-  alert("Le transfert est terminé (même si l'on ne sait pas si ça a fonctionné ou pas).");
-}
-
- -

Notez qu'il n'y a pas moyen d'être certain des informations reçues dans l'évènement  loadend event comme la condition qui a causé la fin de l'opération; toutefois, vous pouvez utiliser cet évènement pour gérer les tâches qui doivent être exécutées dans tous les cas une fois un transfert terminé.

- -

Envoyer des formulaires et uploader des fichiers

- -

Les instances de XMLHttpRequest peuvent être utilisées pour envoyer des formulaires de deux façons :

- - - -

La seconde solution (utiliser l'API FormData) est la plus simple et la plus rapide, mais a le désavantage que les données collectées ne peuvent pas être chainifiées.
- La première solution est plutôt la plus complexe, mais se prête à être plus flexible et puissante.

- -

Rien de plus que XMLHttpRequest

- -

Envoyer des formulaires sans l'API FormData ne demande rien de plus, si ce n'est l'API FileReader, mais seulement si vous voulez envoyer un fichier ou plus.

- -

Une brève introduction au méthodes de submission

- -

Un élément HTML {{ HTMLElement("form") }} peut être envoyé de quatre manières :

- - - -

Maintenant, considérons qu'on envoie un formulaire contenant seulement deux champs, nommées foo et baz. Si vous utilisez la méthode POST, le serveur va recevoir une chaîne similaire à l'un des trois suivantes, en fonction de l'encodage que vous utilisez :

- - - -

Si vous utilisez la méthode GET à la place, une chaîne comme celle-ci sera simplement ajoutée à l'URL :

- -
?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.
- -

Un petit framework vanilla

- -

Tout celà est fait automatiquement par le serveur quand vous envoyez un {{ HTMLElement("form") }}. Mais si vous voulez faire la même chose en utilisant JavaScript vous devez tout dire à l'interprète. Pour celà, la manière d'envoyer des formulaires en pure AJAX est trop compliquée pour être expliquée ici. Pour cette raison, nous avons posté un framework complet (mais tout de  même didactique), qui est capable d'utiliser les quatres méthodes de submit , et aussi de transférer des fichiers:

- -
-
<!doctype html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<title>Sending forms with pure AJAX &ndash; MDN</title>
-<script type="text/javascript">
-
-"use strict";
-
-/*\
-|*|
-|*|  :: XMLHttpRequest.prototype.sendAsBinary() Polyfill ::
-|*|
-|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()
-\*/
-
-if (!XMLHttpRequest.prototype.sendAsBinary) {
-  XMLHttpRequest.prototype.sendAsBinary = function(sData) {
-    var nBytes = sData.length, ui8Data = new Uint8Array(nBytes);
-    for (var nIdx = 0; nIdx < nBytes; nIdx++) {
-      ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff;
-    }
-    /* send as ArrayBufferView...: */
-    this.send(ui8Data);
-    /* ...or as ArrayBuffer (legacy)...: this.send(ui8Data.buffer); */
-  };
-}
-
-/*\
-|*|
-|*|  :: AJAX Form Submit Framework ::
-|*|
-|*|  https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
-|*|
-|*|  This framework is released under the GNU Public License, version 3 or later.
-|*|  http://www.gnu.org/licenses/gpl-3.0-standalone.html
-|*|
-|*|  Syntax:
-|*|
-|*|   AJAXSubmit(HTMLFormElement);
-\*/
-
-var AJAXSubmit = (function () {
-
-  function ajaxSuccess () {
-    /* console.log("AJAXSubmit - Success!"); */
-    alert(this.responseText);
-    /* you can get the serialized data through the "submittedData" custom property: */
-    /* alert(JSON.stringify(this.submittedData)); */
-  }
-
-  function submitData (oData) {
-    /* the AJAX request... */
-    var oAjaxReq = new XMLHttpRequest();
-    oAjaxReq.submittedData = oData;
-    oAjaxReq.onload = ajaxSuccess;
-    if (oData.technique === 0) {
-      /* method is GET */
-      oAjaxReq.open("get", oData.receiver.replace(/(?:\?.*)?$/, oData.segments.length > 0 ? "?" + oData.segments.join("&") : ""), true);
-      oAjaxReq.send(null);
-    } else {
-      /* method is POST */
-      oAjaxReq.open("post", oData.receiver, true);
-      if (oData.technique === 3) {
-        /* enctype is multipart/form-data */
-        var sBoundary = "---------------------------" + Date.now().toString(16);
-        oAjaxReq.setRequestHeader("Content-Type", "multipart\/form-data; boundary=" + sBoundary);
-        oAjaxReq.sendAsBinary("--" + sBoundary + "\r\n" + oData.segments.join("--" + sBoundary + "\r\n") + "--" + sBoundary + "--\r\n");
-      } else {
-        /* enctype is application/x-www-form-urlencoded or text/plain */
-        oAjaxReq.setRequestHeader("Content-Type", oData.contentType);
-        oAjaxReq.send(oData.segments.join(oData.technique === 2 ? "\r\n" : "&"));
-      }
-    }
-  }
-
-  function processStatus (oData) {
-    if (oData.status > 0) { return; }
-    /* the form is now totally serialized! do something before sending it to the server... */
-    /* doSomething(oData); */
-    /* console.log("AJAXSubmit - The form is now serialized. Submitting..."); */
-    submitData (oData);
-  }
-
-  function pushSegment (oFREvt) {
-    this.owner.segments[this.segmentIdx] += oFREvt.target.result + "\r\n";
-    this.owner.status--;
-    processStatus(this.owner);
-  }
-
-  function plainEscape (sText) {
-    /* how should I treat a text/plain form encoding? what characters are not allowed? this is what I suppose...: */
-    /* "4\3\7 - Einstein said E=mc2" ----> "4\\3\\7\ -\ Einstein\ said\ E\=mc2" */
-    return sText.replace(/[\s\=\\]/g, "\\$&");
-  }
-
-  function SubmitRequest (oTarget) {
-    var nFile, sFieldType, oField, oSegmReq, oFile, bIsPost = oTarget.method.toLowerCase() === "post";
-    /* console.log("AJAXSubmit - Serializing form..."); */
-    this.contentType = bIsPost && oTarget.enctype ? oTarget.enctype : "application\/x-www-form-urlencoded";
-    this.technique = bIsPost ? this.contentType === "multipart\/form-data" ? 3 : this.contentType === "text\/plain" ? 2 : 1 : 0;
-    this.receiver = oTarget.action;
-    this.status = 0;
-    this.segments = [];
-    var fFilter = this.technique === 2 ? plainEscape : escape;
-    for (var nItem = 0; nItem < oTarget.elements.length; nItem++) {
-      oField = oTarget.elements[nItem];
-      if (!oField.hasAttribute("name")) { continue; }
-      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
-      if (sFieldType === "FILE" && oField.files.length > 0) {
-        if (this.technique === 3) {
-          /* enctype is multipart/form-data */
-          for (nFile = 0; nFile < oField.files.length; nFile++) {
-            oFile = oField.files[nFile];
-            oSegmReq = new FileReader();
-            /* (custom properties:) */
-            oSegmReq.segmentIdx = this.segments.length;
-            oSegmReq.owner = this;
-            /* (end of custom properties) */
-            oSegmReq.onload = pushSegment;
-            this.segments.push("Content-Disposition: form-data; name=\"" + oField.name + "\"; filename=\""+ oFile.name + "\"\r\nContent-Type: " + oFile.type + "\r\n\r\n");
-            this.status++;
-            oSegmReq.readAsBinaryString(oFile);
-          }
-        } else {
-          /* enctype is application/x-www-form-urlencoded or text/plain or method is GET: files will not be sent! */
-          for (nFile = 0; nFile < oField.files.length; this.segments.push(fFilter(oField.name) + "=" + fFilter(oField.files[nFile++].name)));
-        }
-      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
-        /* field type is not FILE or is FILE but is empty */
-        this.segments.push(
-          this.technique === 3 ? /* enctype is multipart/form-data */
-            "Content-Disposition: form-data; name=\"" + oField.name + "\"\r\n\r\n" + oField.value + "\r\n"
-          : /* enctype is application/x-www-form-urlencoded or text/plain or method is GET */
-            fFilter(oField.name) + "=" + fFilter(oField.value)
-        );
-      }
-    }
-    processStatus(this);
-  }
-
-  return function (oFormElement) {
-    if (!oFormElement.action) { return; }
-    new SubmitRequest(oFormElement);
-  };
-
-})();
-
-</script>
-</head>
-<body>
-
-<h1>Sending forms with pure AJAX</h1>
-
-<h2>Using the GET method</h2>
-
-<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Registration example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" />
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-<h2>Using the POST method</h2>
-<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
-
-<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Registration example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" />
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-<h3>Enctype: text/plain</h3>
-
-<form action="register.php" method="post" enctype="text/plain" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Registration example</legend>
-    <p>
-      Your name: <input type="text" name="user" />
-    </p>
-    <p>
-      Your message:<br />
-      <textarea name="message" cols="40" rows="8"></textarea>
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-<h3>Enctype: multipart/form-data</h3>
-
-<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Upload example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" /><br />
-      Sex:
-      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
-      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
-      Password: <input type="password" name="secret" /><br />
-      What do you prefer:
-      <select name="image_type">
-        <option>Books</option>
-        <option>Cinema</option>
-        <option>TV</option>
-      </select>
-    </p>
-    <p>
-      Post your photos:
-      <input type="file" multiple name="photos[]">
-    </p>
-    <p>
-      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
-      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
-    </p>
-    <p>
-      Describe yourself:<br />
-      <textarea name="description" cols="50" rows="8"></textarea>
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-</body>
-</html>
-
- -

Pour le tester, créez une page nommée register.php (qui est l'attribut action des formulaires d'exemple) et mettez y ce contenu minimaliste:

- -
<?php
-/* register.php */
-
-header("Content-type: text/plain");
-
-/*
-NOTE: You should never use `print_r()` in production scripts, or
-otherwise output client-submitted data without sanitizing it first.
-Failing to sanitize can lead to cross-site scripting vulnerabilities.
-*/
-
-echo ":: data received via GET ::\n\n";
-print_r($_GET);
-
-echo "\n\n:: Data received via POST ::\n\n";
-print_r($_POST);
-
-echo "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
-if (isset($HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }
-
-echo "\n\n:: Files received ::\n\n";
-print_r($_FILES);
-
-
- -

La syntaxe de ce script est la suivante:

- -
AJAXSubmit(myForm);
- -
Note: Ce framework utilise l'API FileReader pour transmettre les fichiers uploadés. C'est une API récente qui n'est pas implémentée dans IE9 ou inférieur. Pour cette raison, l'upload via AJAX uniquement est une technique expérimentale. Si vous n'avez pas besoin de transférer des fichiers binaires, ce framework fonctionne bien dans la majorité des navigateurs.
- -
Note: La meilleure façon d'envoyer du contenu binaire est de passer par ArrayBuffers ou Blobs en conjonction avec la méthode send() et possiblement avec la méthode readAsArrayBuffer() de l'API FileReader. Mais dans la mesure où le but de ce script est de fonctionner avec des données chaînifiable, nous avons utilisé la méthode sendAsBinary() en conjonction avec la méthode readAsBinaryString() de l'API FileReader. Du coup, le script ci-dessous n'a de sens que quand vous voulez transférer de petits fichiers. Si vous n'avez pas l'intention de transférer des données binaires, songez plutôt à utilisez l'API FormData.
- -
Note: La méthode non-strandard sendAsBinary est dépréciée à partir de Gecko 31 {{ geckoRelease(31) }} et sera prochainement supprimée. La méthode standard send(Blob data) peut être utilisée à la place.
- -

Utiliser les objets FormData

- -

Le constructeur de FormData vous permet de compiler des paires de clé/valeur à envoyer via XMLHttpRequest. Il est principalement prévu pour être utilisé dans l'envoi de formulaires, mais il peut être utilisé indépendemment des formulaires dans le but de transmettre des données associées. Les données transmises sont de même format que la méthode submit() d'un formulaire utiliserait pour envoyer les données si l'encodage du formulaire était configuré à "multipart/form-data". Les objets FormData peuvent être utilisés de nombreuses manières avec XMLHttpRequest. Pour des exemples et des explications sur la manière d'utiliser FormData avec une XMLHttpRequest, jettez un oeil sur la page Utiliser les Objets FormData. Pour des raisons didactiques seulement, nous postons ici une traduction du précédent exemple transformé pour utiliser l'API FormData. Notez la brièveté du code :

- -
-
<!doctype html>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<title>Sending forms with FormData &ndash; MDN</title>
-<script type="text/javascript">
-"use strict";
-
-function ajaxSuccess () {
-  alert(this.responseText);
-}
-
-function AJAXSubmit (oFormElement) {
-  if (!oFormElement.action) { return; }
-  var oReq = new XMLHttpRequest();
-  oReq.onload = ajaxSuccess;
-  if (oFormElement.method.toLowerCase() === "post") {
-    oReq.open("post", oFormElement.action, true);
-    oReq.send(new FormData(oFormElement));
-  } else {
-    var oField, sFieldType, nFile, sSearch = "";
-    for (var nItem = 0; nItem < oFormElement.elements.length; nItem++) {
-      oField = oFormElement.elements[nItem];
-      if (!oField.hasAttribute("name")) { continue; }
-      sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
-      if (sFieldType === "FILE") {
-        for (nFile = 0; nFile < oField.files.length; sSearch += "&" + escape(oField.name) + "=" + escape(oField.files[nFile++].name));
-      } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
-        sSearch += "&" + escape(oField.name) + "=" + escape(oField.value);
-      }
-    }
-    oReq.open("get", oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&/, "?")), true);
-    oReq.send(null);
-  }
-}
-</script>
-</head>
-<body>
-
-<h1>Sending forms with FormData</h1>
-
-<h2>Using the GET method</h2>
-
-<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Registration example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" />
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-<h2>Using the POST method</h2>
-<h3>Enctype: application/x-www-form-urlencoded (default)</h3>
-
-<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Registration example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" />
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-<h3>Enctype: text/plain</h3>
-
-<p>The text/plain encoding is not supported by the FormData API.</p>
-
-<h3>Enctype: multipart/form-data</h3>
-
-<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;">
-  <fieldset>
-    <legend>Upload example</legend>
-    <p>
-      First name: <input type="text" name="firstname" /><br />
-      Last name: <input type="text" name="lastname" /><br />
-      Sex:
-      <input id="sex_male" type="radio" name="sex" value="male" /> <label for="sex_male">Male</label>
-      <input id="sex_female" type="radio" name="sex" value="female" /> <label for="sex_female">Female</label><br />
-      Password: <input type="password" name="secret" /><br />
-      What do you prefer:
-      <select name="image_type">
-        <option>Books</option>
-        <option>Cinema</option>
-        <option>TV</option>
-      </select>
-    </p>
-    <p>
-      Post your photos:
-      <input type="file" multiple name="photos[]">
-    </p>
-    <p>
-      <input id="vehicle_bike" type="checkbox" name="vehicle[]" value="Bike" /> <label for="vehicle_bike">I have a bike</label><br />
-      <input id="vehicle_car" type="checkbox" name="vehicle[]" value="Car" /> <label for="vehicle_car">I have a car</label>
-    </p>
-    <p>
-      Describe yourself:<br />
-      <textarea name="description" cols="50" rows="8"></textarea>
-    </p>
-    <p>
-      <input type="submit" value="Submit" />
-    </p>
-  </fieldset>
-</form>
-
-</body>
-</html>
-
- -
Note: Comme déjà dit, les objets {{domxref("FormData")}} ne sont pas des objets chainifiables. Si vous voulez chainifier les données soumises, utilisez l'exemple précédent en pure-AJAX. Notez également que, bien que dans cet exemple il y a quelques champs file {{ HTMLElement("input") }}, quand vous soumettez un formulaire via l'API FormData vous n'avez pas besoin d'utiliser l'API FileReader également : les fichiers sont automatiquement chargés et transférés.
- -

Récupérer la date de modification

- -
function getHeaderTime () {
-  alert(this.getResponseHeader("Last-Modified"));  /* Une chaine valide GMTString ou null */
-}
-
-var oReq = new XMLHttpRequest();
-oReq.open("HEAD" /* utilisez HEAD seulement si vous ne voulez que les headers ! */, "mapage.html", true);
-oReq.onload = getHeaderTime;
-oReq.send();
- -

Faire quelque chose quand la date de dernière modification change

- -

Créons deux fonctions:

- -
function getHeaderTime () {
-
-  var
-    nLastVisit = parseFloat(window.localStorage.getItem('lm_' + this.filepath)),
-    nLastModif = Date.parse(this.getResponseHeader("Last-Modified"));
-
-  if (isNaN(nLastVisit) || nLastModif > nLastVisit) {
-    window.localStorage.setItem('lm_' + this.filepath, Date.now());
-    isFinite(nLastVisit) && this.callback(nLastModif, nLastVisit);
-  }
-
-}
-
-function ifHasChanged(sURL, fCallback) {
-  var oReq = new XMLHttpRequest();
-  oReq.open("HEAD" /* utilisons HEAD - nous ne voulons que les Headers ! */, sURL, true);
-  oReq.callback = fCallback;
-  oReq.filepath = sURL;
-  oReq.onload = getHeaderTime;
-  oReq.send();
-}
- -

Test:

- -
/* Testons le fichier "mapage.html"... */
-
-ifHasChanged("mapage.html", function (nModif, nVisit) {
-  alert("La page '" + this.filepath + "' a été changée le " + (new Date(nModif)).toLocaleString() + "!");
-});
- -

Si vous voulez savoir si la page courante a changée, lisez l'article à propos de la propriété document.lastModified.

- -

Cross-site XMLHttpRequest

- -

Les navigateurs récents supportent les requêtes cross-site en implémentant le Standard Access Control for Cross-Site Requests (Web Application Working Group).  Tant que le serveur est configuré pour autoriser les requêtes depuis l'origine de votre web application, XMLHttpRequest fonctionnera. Sinon, une exception INVALID_ACCESS_ERR sera lancée.

- -

Contourner le cache

- -

Une approche cross-browser pour contourner le cache est d'ajouter le timestamp à l'URL, en étant sûr d'inclure un "?" ou un "&" selon les cas. Par exemple :

- -
http://foo.com/bar.html -> http://foo.com/bar.html?12345
-http://foo.com/bar.html?foobar=baz -> http://foo.com/bar.html?foobar=baz&12345
-
- -

Comme le cache local est indexé selon les URL, celà permet à toutes les requêtes d'être uniques, et du coup de contourner le cache.

- -

Vous pouvez automatiquement ajuster les URL en utilisant le code suivant :

- -
var oReq = new XMLHttpRequest();
-
-oReq.open("GET", url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime(), true);
-oReq.send(null);
- -

Sécurité

- -

{{fx_minversion_note(3, "Les versions de Firefox avant Firefox 3 autorisaient à mettre les préférences capability.policy.<policyname>.XMLHttpRequest.open</policyname> à allAccess pour donner l'accès cross-sites à des sites spécifiques. Cela n'est plus possible.")}}

- -

{{fx_minversion_note(5, "Les versions de Firefox avant Firefox 5 pouvaient utiliser netscape.security.PrivilegeManager.enablePrivilege(\"UniversalBrowserRead\"); pour demander un accès cross-site. Ce n'est plus supporté, me^me si cela ne produit aucun avertissement et que la demande de permission est toujours présente.")}}

- -

La manière recommandée d'activer les requêtes cross-sites est d'utiliser le header HTTP Access-Control-Allow-Origin dans la réponse du XMLHttpRequest.

- -

XMLHttpRequests stoppées

- -

Si vous vous retrouvez avec une XMLHttpRequest ayant status=0 et statusText=null, cela signifie que la requête n'a pas été autorisée à être effectuée. Elle a été UNSENT. Une cause probable est lorsque l'origine XMLHttpRequest  (lors de la création de l'objet XMLHttpRequest) a changé quand l'objet XMLHttpRequest est déjà open(). Ce cas peut se produire par exemple lorsque l'on a une XMLHttpRequest qui est lancée sur un évènement onunload d'une fenêtre: l'objet XMLHttpRequest est en fait créé lorsque la fenêtre sur le point de se fermer est toujours là, et la demande est envoyée (c'est à dire open()) lorsque cette fenêtre a perdu son focus et une autre fenêtre a potentiellement pris le focus. La manière d'éviter ce problème est de fixer un écouteur sur l'évènement "activate" de la nouvelle fenêtre qui se lance quand l'ancienne fenêtre a son événement "unload" lancé.

- -

Utiliser XMLHttpRequest depuis un module JavaScript / un composant XPCOM

- -

Instancier une XMLHttpRequest depuis un module JavaScript ou un composant XPCOM fonctionne un peu différemment; on ne peut pas l'instancier via le constructeur XMLHttpRequest(). Le constructeur n'est pas défini dans le composant et le code retourne une erreur. Le meilleur moyen de fixer le problème est d'utiliser le constructeur du composant XPCOM.

- -
const XMLHttpRequest = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");
-
- -

Malheureusement dans les versions de Gecko avant Gecko 16 il y a un bug : les requêtes créées ainsi peuvent être annulées sans raison. Si votre code doit marcher sur Gecko 15 ou moins, vous pouvez utiliser le constructeur XMLHttpRequest depuis le DOM caché de la fenêtre comme ceci :

- -
const { XMLHttpRequest } = Components.classes["@mozilla.org/appshell/appShellService;1"]
-                                     .getService(Components.interfaces.nsIAppShellService)
-                                     .hiddenDOMWindow;
-var oReq = new XMLHttpRequest();
- -

Voir aussi

- -
    -
  1. MDN AJAX introduction
  2. -
  3. HTTP access control
  4. -
  5. How to check the security state of an XMLHTTPRequest over SSL
  6. -
  7. XMLHttpRequest - REST and the Rich User Experience
  8. -
  9. Microsoft documentation
  10. -
  11. Apple developers' reference
  12. -
  13. "Using the XMLHttpRequest Object" (jibbering.com)
  14. -
  15. The XMLHttpRequest Object: W3C Specification
  16. -
  17. Web Progress Events specification
  18. -
  19. XMLHttpRequest (Référence Web API)
  20. -
diff --git a/files/fr/web/api/xmlserializer/index.html b/files/fr/web/api/xmlserializer/index.html new file mode 100644 index 0000000000..feb76df6e0 --- /dev/null +++ b/files/fr/web/api/xmlserializer/index.html @@ -0,0 +1,54 @@ +--- +title: XMLSerializer +slug: XMLSerializer +tags: + - XML +translation_of: Web/API/XMLSerializer +--- +

 

+

XMLSerializer sert à convertir des sous-arborescence DOM ou des documents DOM en texte. XMLSerializer est accessible aux scripts sans privilèges.

+
+

XMLSerializer sert le plus souvent aux applications et extensions basées sur la plateforme Mozilla. Bien qu'il soit utilisable par les pages Web, il ne fait partie d'aucun standard et son niveau de support dans les autres navigateurs est inconnu.

+
+

Méthodes

+
+
+ serializeToString
+
+ Retourne la sous-arborescence sérialisée sous la forme d'une chaîne de caractères
+
+ serializeToStream
+
+ La sous-arborescence débutant par l'élément spécifié est sérialisée en un flux d'octets en utilisant l'encodage de caractères indiqué.
+
+

Exemple

+
 var s = new XMLSerializer();
+ var d = document;
+ var str = s.serializeToString(d);
+ alert(str);
+
+
 var s = new XMLSerializer();
+ var stream = {
+   close : function()
+   {
+     alert("Flux fermé");
+   },
+   flush : function()
+   {
+   },
+   write : function(string, count)
+   {
+     alert("'" + string + "'\n nb d'octets : " + count + "");
+   }
+ };
+ s.serializeToStream(document, stream, "UTF-8");
+
+

Voir également

+ diff --git a/files/fr/web/api/xsltprocessor/basic_example/index.html b/files/fr/web/api/xsltprocessor/basic_example/index.html new file mode 100644 index 0000000000..8d78422777 --- /dev/null +++ b/files/fr/web/api/xsltprocessor/basic_example/index.html @@ -0,0 +1,65 @@ +--- +title: Exemple basique +slug: XSLT_dans_Gecko/Exemple_basique +translation_of: Web/API/XSLTProcessor/Basic_Example +--- +

    +
  1. Introduction
  2. +
  3. Exemple basique
  4. +
  5. Génération de HTML
  6. +
  7. Différences entre les navigateurs
  8. +
  9. Ressources
  10. +

+ +

Exemple basique

+ +

Ce premier exemple présente les bases de l'utilisation d'une transformation XSLT dans un navigateur. L'exemple utilise un document XML qui contient des informations (titre, liste d'auteurs et corps de texte) à propos d'un article pour en tirer une version lisible par un humain.

+ +

La figure 1 montre le code source de l'exemple XSLT. Le document XML (exemple.xml) contient les informations à propos de l'article. En utilisant l'instruction de traitement ?xml-stylesheet?, il est lié à la feuille de style XSLT (exemple.xsl) via son attribut href.

+ +

Une feuille de style XSLT débute par l'élément xsl:stylesheet, qui contient tous les modèles utilisés pour créer le résultat final. L'exemple de la figure 1 possède deux modèles - un qui s'applique au nœud racine et un aux nœuds Author. Le modèle correspondant au nœud racine produit en sortie le titre de l'article puis déclenche le traitement de tous les autres modèles (via apply-templates) correspondant aux nœuds Author qui sont les descendants du nœud Authors.

+ +

Figure 1 : exemple XSLT simple

+ +

Document XML (exemple.xml) :

+ +
  <?xml version="1.0"?>
+  <?xml-stylesheet type="text/xsl" href="exemple.xsl"?>
+  <Article>
+    <Title>Mon article</Title>
+    <Authors>
+      <Author>M. Foo</Author>
+      <Author>M. Bar</Author>
+    </Authors>
+    <Body>Ceci est le texte de mon article.</Body>
+  </Article>
+
+ +

Feuille de style XSL (exemple.xsl) :

+ +
  <?xml version="1.0"?>
+  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+    <xsl:output method="text"/>
+
+    <xsl:template match="/">
+      Article - <xsl:value-of select="/Article/Title"/>
+      Auteurs : <xsl:apply-templates select="/Article/Authors/Author"/>
+    </xsl:template>
+
+    <xsl:template match="Author">
+      - <xsl:value-of select="." />
+    </xsl:template>
+
+  </xsl:stylesheet>
+
+ +

Sortie dans le navigateur :

+ +
  Article - Mon article
+  Auteurs :
+  - M. Foo
+  - M. Bar
+
+ +

{{PreviousNext("XSLT dans Gecko", "XSLT dans Gecko:Génération de HTML")}}

diff --git a/files/fr/web/api/xsltprocessor/browser_differences/index.html b/files/fr/web/api/xsltprocessor/browser_differences/index.html new file mode 100644 index 0000000000..5b5a0c99c3 --- /dev/null +++ b/files/fr/web/api/xsltprocessor/browser_differences/index.html @@ -0,0 +1,22 @@ +--- +title: Différences entre les navigateurs +slug: XSLT_dans_Gecko/Différences_entre_les_navigateurs +translation_of: Web/API/XSLTProcessor/Browser_Differences +--- +

    +
  1. Introduction
  2. +
  3. Exemple basique
  4. +
  5. Génération de HTML
  6. +
  7. Différences entre les navigateurs
  8. +
  9. Ressources
  10. +

+ +

Différences entre les navigateurs

+ + + +

{{PreviousNext("XSLT dans Gecko:Génération de HTML", "XSLT dans Gecko:Ressources")}}

diff --git a/files/fr/web/api/xsltprocessor/generating_html/index.html b/files/fr/web/api/xsltprocessor/generating_html/index.html new file mode 100644 index 0000000000..ca333bb2ac --- /dev/null +++ b/files/fr/web/api/xsltprocessor/generating_html/index.html @@ -0,0 +1,190 @@ +--- +title: Génération de HTML +slug: XSLT_dans_Gecko/Génération_de_HTML +translation_of: Web/API/XSLTProcessor/Generating_HTML +--- +

    +
  1. Introduction
  2. +
  3. Exemple basique
  4. +
  5. Génération de HTML
  6. +
  7. Différences entre les navigateurs
  8. +
  9. Ressources
  10. +

+ +

Génération de HTML

+ +

Une application courante de XSLT dans les navigateurs est la transformation de code XML en HTML du coté du client. Le second exemple va transformer un document d'entrée (example2.xml), qui contient des informations à propos d'un article, en un document HTML.

+ +

L'élément <body> de l'article contient maintenant des éléments HTML (des balises <strong> et <em>, voir la figure 2). Le document XML contient à la fois des éléments HTML et éléments XML, mais un seul espace de nommage est nécessaire, pour les éléments XML. Comme il n'existe pas d'espace de nommage HTML, et que l'utilisation de l'espace de nommage XHTML forcerait le XSL à créer un document XML qui pourrait ne pas se comporter comme un document HTML, le nœud xsl:output de la feuille de style assure que le document résultant sera bien traité comme du HTML. Pour les éléments XML, nous avons besoin de notre propre espace de nommage, http://devedge.netscape.com/2002/de, à qui nous donnons le préfixe myNS (xmlns:myNS="http://devedge.netscape.com/2002/de").

+ +

Figure 2 : fichier XML (example2.xml)voir l'exemple | voir le source Document XML (example2.xml): <div style="background: #EEE; font-size: 1.1em; line-height: 1.1em; border: dashed #666 1px; padding: 15px 20px 15px 20px; overflow: auto;">

+ +
<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="example.xsl"?>
+  <myNS:Article xmlns:myNS="http://devedge.netscape.com/2002/de">
+    <myNS:Title>Mon article</myNS:Title>
+    <myNS:Authors>
+      <myNS:Author company="Foopy Corp.">M. Foo</myNS:Author>
+      <myNS:Author>M. Bar</myNS:Author>
+    </myNS:Authors>
+    <myNS:Body>
+      En <em>Espagne</em>, les <strong>pluies</strong> se concentrent
+      principalement dans les plaines.
+    </myNS:Body>
+  </myNS:Article>
+
+ +

La feuille de style XSL utilisée aura besoin de deux espaces de nommage - un pour les éléments XSLT et un pour nos propres éléments XML utilisés dans le document XML. La sortie de la feuille de style XSL est définie à HTML à l'aide de l'élément xsl:output. En définissant la sortie comme étant du code HTML et en n'ayant pas d'espace de nommage pour les éléments résultants (coloré en bleu), ces éléments seront traités comme des éléments HTML.

+ +

Figure 3 : feuille de style XSL avec 2 espaces de nommage (example2.xsl) feuille de style XSL (example2.xsl):

+ +
  <?xml version="1.0"?>
+  <xsl:stylesheet version="1.0"
+                           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                           xmlns:myNS="http://devedge.netscape.com/2002/de">
+
+    <xsl:output method="html"/>
+    ...
+  </xsl:stylesheet>
+
+ +

Un modèle s'appliquant au nœud racine du document XML est créé et utilisé pour créer la structure de base de la page HTML.

+ +

Figure 4 : Création du document HTML de base feuille de style XSL (example2.xsl):

+ +
  ...
+  <xsl:template match="/">
+  <html>
+
+    <head>
+
+      <title>
+        <xsl:value-of select="/myNS:Article/myNS:Title"/>
+      </title>
+
+      <style type="text/css">
+        .myBox {margin:10px 155px 0 50px; border: 1px dotted #639ACE; padding:0 5px 0 5px;}
+      </style>
+
+    </head>
+
+    <body>
+      <p class="myBox">
+        <span class="title">
+          <xsl:value-of select="/myNS:Article/myNS:Title"/>
+        </span> <br />
+
+        Auteurs :   <br />
+          <xsl:apply-templates select="/myNS:Article/myNS:Authors/myNS:Author"/>
+      </p>
+
+      <p class="myBox">
+        <xsl:apply-templates select="//myNS:Body"/>
+      </p>
+
+    </body>
+
+  </html>
+  </xsl:template>
+  ...
+
+ +

Nous avons besoin de trois xsl:template supplémentaires pour parachever l'exemple. Le premier xsl:template est utilisé pour les nœuds Author, alors que le deuxième traite le nœud body. Le troisième possède une règle de correspondance générale qui lui permet de s'appliquer à chaque nœud et chaque attribut. Cela est nécessaire afin de préserver les éléments HTML présents dans le document XML : il s'appliquant à tous, et les recopie dans le document HTML créé par la transformation.

+ +

Figure 5 : Les 3 modèles finaux feuille de style XSL (example2.xsl):

+ +
  ...
+  <xsl:template match="myNS:Author">
+     --   <xsl:value-of select="." />
+
+    <xsl:if test="@company">
+     ::   <strong>  <xsl:value-of select="@company" />  </strong>
+    </xsl:if>
+
+    <br />
+  </xsl:template>
+
+  <xsl:template match="myNS:Body">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()"/>
+    </xsl:copy>
+  </xsl:template>
+  ...
+
+ +

La feuille de style XSLT finale est donc :

+ +

Figure 6 : feuille de style XSLT finale voir l'exemple | voir le source feuille de style XSL :

+ +
  <?xml version="1.0"?>
+  <xsl:stylesheet version="1.0"
+                           xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                           xmlns:myNS="http://devedge.netscape.com/2002/de">
+
+    <xsl:output method="html" />
+
+    <xsl:template match="/">
+      <html>
+
+        <head>
+
+          <title>
+            <xsl:value-of select="/myNS:Article/myNS:Title"/>
+          </title>
+
+          <style type="text/css">
+            .myBox {margin:10px 155px 0 50px; border: 1px dotted #639ACE; padding:0 5px 0 5px;}
+          </style>
+
+        </head>
+
+        <body>
+          <p class="myBox">
+            <span class="title">
+              <xsl:value-of select="/myNS:Article/myNS:Title"/>
+            </span> <br />
+
+            Authors:   <br />
+              <xsl:apply-templates select="/myNS:Article/myNS:Authors/myNS:Author"/>
+            </p>
+
+          <p class="myBox">
+            <xsl:apply-templates select="//myNS:Body"/>
+          </p>
+
+        </body>
+
+      </html>
+    </xsl:template>
+
+    <xsl:template match="myNS:Author">
+       --   <xsl:value-of select="." />
+
+      <xsl:if test="@company">
+       ::   <b>  <xsl:value-of select="@company" />  </b>
+      </xsl:if>
+
+      <br />
+    </xsl:template>
+
+    <xsl:template match="myNS:Body">
+      <xsl:copy>
+        <xsl:apply-templates select="@*|node()"/>
+      </xsl:copy>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+          <xsl:apply-templates select="@*|node()"/>
+        </xsl:copy>
+    </xsl:template>
+  </xsl:stylesheet>
+
+ +

{{PreviousNext("XSLT dans Gecko:Exemple basique", "XSLT dans Gecko:Différences entre les navigateurs")}}

diff --git a/files/fr/web/api/xsltprocessor/xsl_transformations_in_mozilla_faq/index.html b/files/fr/web/api/xsltprocessor/xsl_transformations_in_mozilla_faq/index.html new file mode 100644 index 0000000000..16413c5d89 --- /dev/null +++ b/files/fr/web/api/xsltprocessor/xsl_transformations_in_mozilla_faq/index.html @@ -0,0 +1,60 @@ +--- +title: FAQ sur les transformations XSL dans Mozilla +slug: FAQ_sur_les_transformations_XSL_dans_Mozilla +tags: + - XSLT +translation_of: Web/API/XSLTProcessor/XSL_Transformations_in_Mozilla_FAQ +--- +

+

+

Pourquoi ma feuille de style ne s'applique pas ?

+

Vérifiez que le type MIME du document source et de la feuille de style est bien un type MIME XML, à savoir text/xml ou application/xml. L'espace de nommage XSLT est http://www.w3.org/1999/XSL/Transform. Utilisez l'instruction de traitement <?xml-stylesheet ?> plutôt que l'élément non standard xml:stylesheet. Le problème le plus courant est la gestion du type MIME. Pour savoir quel type MIME est envoyé par votre serveur, consultez les Informations sur la page, utilisez une extension telle que LiveHTTPHeaders (en) ou un gestionnaire de téléchargements comme wget. Mozilla ne chargera pas les feuilles de style XSLT depuis un domaine différent pour des raisons de sécurité. +

+

Cela fonctione dans IE, mais pas dans Mozilla ?

+

Il y a plus que cette "simple" différence. Nous suspectons que la plupart des différences proviennent de ce que fait IE après la transformation. IE (pour autant que l'on puisse dire) sérialise et analyse la sortie avant de générer ce qu'il rend. Mozilla, au contraire, rend exactement le résultat du votre transformation. +

+

Puis-je désactiver l'échappement de la sortie avec disable-output-escaping ?

+

Cette question est en fait très proche de la précédente. Pour faire court, non. Désactiver l'échappement en sortie nécessite que nous ajoutions une étape d'analyse à la génération de notre sortie, ce que nous ne voulons pas. Dans la plupart des cas, il existe des contournements assez facile à mettre en œuvre. Les seuls cas d'utilisation que nous ayons vu jusqu'à présent sont du mauvais XML, du mauvais XSLT, ou les flux RSS. Ce dernier est pour nous le seul problème, et nous sommes désolé de ne pouvoir le supporter, mais mélanger l'analyse avec le XSLT est à risque et nous préférons ne pas le supporter d-o-e plutôt que de provoquer des crashes ou de ralentir le processus. +

+

Que dire de document.write ?

+

Tout comme pour le XHTML, document.write n'est pas supporté pendant les transformations XSLT. Malheureusement, les compilations actuelles ne retournent pas d'erreur, mais donnent simplement des résultats inattendus, comme des crashes ({{ Bug(202765) }}). Dans la plupart des cas il n'y a en fait aucune raison de l'utiliser. Si vous avez besoin d'employer du code ou une feuille de style spécifique à une plate-forme, utilisez ce qui suit : +

+
      <xsl:if test="system-property('xsl:vendor')='Transformiix'">
+        <!-- Balisage propre à Mozilla -->
+      </xsl:if>
+      <xsl:if test="system-property('xsl:vendor')='Microsoft'">
+        <!-- Balisage propre à IE -->
+      </xsl:if>
+
+

Vérifiez system-properties.xml pour les propriétés de votre système favori. MSXML possède une propriété supplémentaire : +

+
      <xsl:if xmlns:msxsl="urn:schemas-microsoft-com:xslt"
+              test="system-property('msxsl:version')=3">
+        <!-- MSXML3 specific markup -->
+      </xsl:if>
+
+

Que dire de media="print"?

+

Lors de l'impression d'un document, Mozilla tente de produire une page imprimée aussi proche que possible de l'affichage à l'écran, en incluant par exemple le texte saisi dans des champs de formulaire, et tout autre changement dynamique. Pour cela, on imprime l'arbre DOM actuel. Utiliser une feuille de style XSLT spécifique à un media particulier requiererait une nouvelle transformation du document XML source original, ce qui pourrait produire une sortie différant de ce à quoi l'utilisateur s'attend. Aussi, l'utilisation de media dans <?xml-stylesheet ?> est fortement déconseillée. Les futures compilations pourraient ne charger une feuille de style XSLT que si media n'est pas spécifié, ou si le media spécifié comporte screen. +

Ceci n'affecte pas les feuilles de style CSS chargées depuis le DOM généré, qui emploient media comme les pages sans XSLT. +

+

Comment faire transformNode?

+

Il existe transformToDocument et transformToFragment depuis Mozilla 1.2, voir Utilisation de l'interface JavaScript de Mozilla pour les transformations XSL. +

+

Pourquoi Internet Explorer requiert-il un espace de nommage différent de celui de Mozilla ?

+

Jusqu'à sa version 6, IE requiert un espace de nommage déprécié issu d'un brouillon XSLT, merci d'utiliser Mozilla ;-), IE6+ ou MSXML3+, qui ne posent pas ce problème. Comme les différences entre XSLT 1.0 et l'implémentation dans IE de ce brouillon sont significatives, nous n'offrons pas de support. +

+

Comment compiler une version autonome de TransforMiiX ?

+

Voir l'article sur Compilation de TransforMiiX. +

+
+

Informations sur le document original

+ +
+

Interwiki Languages Links +

+
+
+{{ languages( { "en": "en/XSL_Transformations_in_Mozilla_FAQ", "ja": "ja/XSL_Transformations_in_Mozilla_FAQ" } ) }} -- cgit v1.2.3-54-g00ecf From 7766d67593cf81cc5d15a77b6dcad98d1b98f6aa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:30 +0100 Subject: unslug fr: modify --- files/fr/_redirects.txt | 6272 ++- files/fr/_wikihistory.json | 51684 +++++++++---------- files/fr/conflicting/glossary/chrome/index.html | 3 +- files/fr/conflicting/glossary/doctype/index.html | 3 +- files/fr/conflicting/glossary/dom/index.html | 3 +- .../set_up_a_local_testing_server/index.html | 3 +- .../cascade_and_inheritance/index.html | 5 +- .../learn/css/building_blocks/index.html | 5 +- .../learn/css/building_blocks/selectors/index.html | 3 +- .../index.html | 6 +- .../css/building_blocks/styling_tables/index.html | 5 +- .../building_blocks/values_and_units/index.html | 5 +- .../fr/conflicting/learn/css/css_layout/index.html | 5 +- .../learn/css/css_layout/introduction/index.html | 3 +- .../first_steps/how_css_is_structured/index.html | 5 +- .../learn/css/first_steps/how_css_works/index.html | 3 +- .../index.html | 6 +- .../index.html | 4 +- .../index.html | 6 +- .../index.html | 6 +- .../conflicting/learn/css/first_steps/index.html | 5 +- .../learn/css/styling_text/fundamentals/index.html | 3 +- .../index.html | 6 +- .../index.html | 4 +- .../css/styling_text/styling_lists/index.html | 3 +- .../index.html | 6 +- .../dealing_with_files/index.html | 3 +- .../learn/getting_started_with_the_web/index.html | 3 +- .../javascript_basics/index.html | 3 +- .../advanced_text_formatting/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../creating_hyperlinks/index.html | 3 +- .../index.html | 4 +- .../document_and_website_structure/index.html | 3 +- .../getting_started/index.html | 3 +- .../html_text_fundamentals/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../learn/html/introduction_to_html/index.html | 3 +- .../images_in_html/index.html | 3 +- .../index.html | 4 +- .../other_embedding_technologies/index.html | 3 +- .../index.html | 4 +- .../video_and_audio_content/index.html | 3 +- .../index.html | 4 +- files/fr/conflicting/learn/index.html | 3 +- .../manipulating_documents/index.html | 5 +- .../learn/javascript/objects/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- files/fr/conflicting/mdn/contribute/index.html | 3 +- files/fr/conflicting/mdn/tools/index.html | 3 +- .../api/menus/overridecontext/index.html | 3 +- .../registereduserscript/unregister/index.html | 4 +- .../how_to/set_watch_expressions/index.html | 7 +- .../tools/memory/basic_operations/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../tools/page_inspector/ui_tour/index.html | 5 +- .../tools/performance/waterfall/index.html | 3 +- .../tools/responsive_design_mode/index.html | 3 +- files/fr/conflicting/web/accessibility/index.html | 3 +- .../web/api/canvas_api/tutorial/index.html | 3 +- .../web/api/document/createevent/index.html | 3 +- .../web/api/document_object_model/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../api/formdata/using_formdata_objects/index.html | 3 +- .../api/globaleventhandlers/onresize/index.html | 3 +- .../api/htmlmediaelement/abort_event/index.html | 3 +- .../api/htmlmediaelement/ended_event/index.html | 3 +- files/fr/conflicting/web/api/index.html | 3 +- .../web/api/node/getrootnode/index.html | 3 +- files/fr/conflicting/web/api/node/index.html | 3 +- .../index.html | 3 +- files/fr/conflicting/web/api/selection/index.html | 3 +- files/fr/conflicting/web/api/url/index.html | 3 +- .../conflicting/web/api/web_storage_api/index.html | 3 +- .../web_workers_api/using_web_workers/index.html | 3 +- files/fr/conflicting/web/api/webrtc_api/index.html | 3 +- .../index.html | 3 +- .../web/api/window/localstorage/index.html | 3 +- .../conflicting/web/api/xsltprocessor/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- files/fr/conflicting/web/css/@viewport/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- files/fr/conflicting/web/css/_colon_is/index.html | 7 +- .../web/css/_colon_placeholder-shown/index.html | 7 +- .../web/css/_doublecolon_placeholder/index.html | 7 +- .../conflicting/web/css/border-collapse/index.html | 3 +- .../web/css/box-ordinal-group/index.html | 3 +- .../fr/conflicting/web/css/color_value/index.html | 3 +- files/fr/conflicting/web/css/column-gap/index.html | 3 +- .../web/css/css_backgrounds_and_borders/index.html | 3 +- files/fr/conflicting/web/css/css_color/index.html | 3 +- .../backwards_compatibility_of_flexbox/index.html | 3 +- .../typical_use_cases_of_flexbox/index.html | 3 +- files/fr/conflicting/web/css/cursor/index.html | 3 +- .../conflicting/web/css/filter_effects/index.html | 3 +- files/fr/conflicting/web/css/float/index.html | 3 +- .../fr/conflicting/web/css/font-variant/index.html | 3 +- files/fr/conflicting/web/css/index.html | 3 +- files/fr/conflicting/web/css/mask-image/index.html | 3 +- .../web/css/mozilla_extensions/index.html | 3 +- .../conflicting/web/css/pseudo-classes/index.html | 3 +- .../web/css/scroll-snap-type/index.html | 3 +- .../conflicting/web/css/shape-outside/index.html | 3 +- files/fr/conflicting/web/css/url()/index.html | 3 +- .../index.html | 3 +- .../fr/conflicting/web/css/user-select/index.html | 3 +- files/fr/conflicting/web/css/width/index.html | 3 +- .../creating_and_triggering_events/index.html | 3 +- files/fr/conflicting/web/guide/index.html | 3 +- files/fr/conflicting/web/html/element/index.html | 3 +- .../web/html/global_attributes/index.html | 3 +- .../web/http/basics_of_http/mime_types/index.html | 3 +- .../equality_comparisons_and_sameness/index.html | 3 +- .../fr/conflicting/web/javascript/guide/index.html | 3 +- .../web/javascript/guide/introduction/index.html | 3 +- .../index.html | 3 +- .../regular_expressions/assertions/index.html | 3 +- .../inheritance_and_the_prototype_chain/index.html | 3 +- .../global_objects/arraybuffer/index.html | 3 +- .../reference/global_objects/boolean/index.html | 3 +- .../reference/global_objects/dataview/index.html | 3 +- .../reference/global_objects/date/index.html | 3 +- .../global_objects/date/tostring/index.html | 3 +- .../reference/global_objects/error/index.html | 3 +- .../reference/global_objects/evalerror/index.html | 3 +- .../reference/global_objects/function/index.html | 3 +- .../global_objects/generatorfunction/index.html | 3 +- .../global_objects/internalerror/index.html | 3 +- .../global_objects/intl/collator/index.html | 3 +- .../global_objects/intl/datetimeformat/index.html | 3 +- .../global_objects/intl/listformat/index.html | 3 +- .../global_objects/intl/locale/index.html | 3 +- .../global_objects/intl/numberformat/index.html | 3 +- .../global_objects/intl/pluralrules/index.html | 3 +- .../intl/relativetimeformat/index.html | 3 +- .../reference/global_objects/json/index.html | 3 +- .../reference/global_objects/map/index.html | 3 +- .../reference/global_objects/number/index.html | 3 +- .../reference/global_objects/object/index.html | 3 +- .../global_objects/object/tosource/index.html | 3 +- .../reference/global_objects/promise/index.html | 3 +- .../reference/global_objects/rangeerror/index.html | 3 +- .../global_objects/referenceerror/index.html | 3 +- .../reference/global_objects/regexp/index.html | 3 +- .../reference/global_objects/set/index.html | 3 +- .../global_objects/sharedarraybuffer/index.html | 3 +- .../reference/global_objects/string/index.html | 3 +- .../reference/global_objects/symbol/index.html | 3 +- .../global_objects/syntaxerror/index.html | 3 +- .../reference/global_objects/typedarray/index.html | 3 +- .../reference/global_objects/typeerror/index.html | 3 +- .../reference/global_objects/urierror/index.html | 3 +- .../reference/global_objects/weakmap/index.html | 3 +- .../reference/global_objects/weakset/index.html | 3 +- .../global_objects/webassembly/global/index.html | 3 +- .../global_objects/webassembly/instance/index.html | 3 +- .../global_objects/webassembly/memory/index.html | 3 +- .../global_objects/webassembly/module/index.html | 3 +- .../global_objects/webassembly/table/index.html | 3 +- .../reference/lexical_grammar/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../reference/statements/switch/index.html | 3 +- .../web/progressive_web_apps/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- files/fr/games/anatomy/index.html | 3 +- files/fr/games/examples/index.html | 3 +- files/fr/games/index.html | 3 +- files/fr/games/index/index.html | 3 +- files/fr/games/introduction/index.html | 3 +- .../index.html | 3 +- .../publishing_games/game_monetization/index.html | 3 +- files/fr/games/publishing_games/index.html | 3 +- .../tutorials/2d_breakout_game_phaser/index.html | 3 +- .../bounce_off_the_walls/index.html | 5 +- .../build_the_brick_field/index.html | 3 +- .../collision_detection/index.html | 3 +- .../create_the_canvas_and_draw_on_it/index.html | 4 +- .../finishing_up/index.html | 3 +- .../game_over/index.html | 3 +- .../2d_breakout_game_pure_javascript/index.html | 3 +- .../mouse_controls/index.html | 3 +- .../move_the_ball/index.html | 3 +- .../paddle_and_keyboard_controls/index.html | 3 +- .../track_the_score_and_win/index.html | 3 +- .../index.html | 3 +- files/fr/games/tutorials/index.html | 3 +- files/fr/glossary/404/index.html | 3 +- files/fr/glossary/502/index.html | 3 +- files/fr/glossary/abstraction/index.html | 3 +- files/fr/glossary/accessibility/index.html | 3 +- files/fr/glossary/adobe_flash/index.html | 3 +- files/fr/glossary/ajax/index.html | 5 +- files/fr/glossary/algorithm/index.html | 3 +- files/fr/glossary/alignment_container/index.html | 3 +- files/fr/glossary/alignment_subject/index.html | 3 +- files/fr/glossary/alpn/index.html | 3 +- files/fr/glossary/api/index.html | 3 +- files/fr/glossary/apple_safari/index.html | 3 +- files/fr/glossary/application_context/index.html | 3 +- files/fr/glossary/argument/index.html | 3 +- files/fr/glossary/aria/index.html | 3 +- files/fr/glossary/arpa/index.html | 3 +- files/fr/glossary/arpanet/index.html | 3 +- files/fr/glossary/array/index.html | 3 +- files/fr/glossary/ascii/index.html | 3 +- files/fr/glossary/asynchronous/index.html | 3 +- files/fr/glossary/atag/index.html | 3 +- files/fr/glossary/attribute/index.html | 3 +- files/fr/glossary/bandwidth/index.html | 3 +- files/fr/glossary/base64/index.html | 3 +- files/fr/glossary/baseline/index.html | 3 +- files/fr/glossary/beacon/index.html | 3 +- files/fr/glossary/bidi/index.html | 3 +- files/fr/glossary/bigint/index.html | 3 +- files/fr/glossary/blink/index.html | 3 +- files/fr/glossary/block/css/index.html | 3 +- .../block_cipher_mode_of_operation/index.html | 3 +- files/fr/glossary/boolean/index.html | 3 +- files/fr/glossary/boot2gecko/index.html | 3 +- files/fr/glossary/bootstrap/index.html | 3 +- files/fr/glossary/bounding_box/index.html | 3 +- files/fr/glossary/breadcrumb/index.html | 3 +- files/fr/glossary/brotli_compression/index.html | 3 +- files/fr/glossary/browser/index.html | 3 +- files/fr/glossary/browsing_context/index.html | 3 +- files/fr/glossary/buffer/index.html | 3 +- "files/fr/glossary/b\303\251zier_curve/index.html" | 3 +- files/fr/glossary/cache/index.html | 3 +- files/fr/glossary/cacheable/index.html | 3 +- files/fr/glossary/caldav/index.html | 3 +- files/fr/glossary/call_stack/index.html | 3 +- files/fr/glossary/callback_function/index.html | 3 +- files/fr/glossary/canonical_order/index.html | 3 +- files/fr/glossary/canvas/index.html | 3 +- files/fr/glossary/card_sorting/index.html | 3 +- files/fr/glossary/carddav/index.html | 3 +- files/fr/glossary/caret/index.html | 3 +- files/fr/glossary/cdn/index.html | 3 +- files/fr/glossary/certificate_authority/index.html | 3 +- files/fr/glossary/certified/index.html | 3 +- files/fr/glossary/challenge/index.html | 3 +- files/fr/glossary/character/index.html | 3 +- files/fr/glossary/character_encoding/index.html | 3 +- files/fr/glossary/chrome/index.html | 3 +- files/fr/glossary/cia/index.html | 3 +- files/fr/glossary/cipher/index.html | 3 +- files/fr/glossary/cipher_suite/index.html | 3 +- files/fr/glossary/ciphertext/index.html | 3 +- files/fr/glossary/class/index.html | 3 +- files/fr/glossary/closure/index.html | 3 +- files/fr/glossary/cms/index.html | 3 +- files/fr/glossary/codec/index.html | 3 +- files/fr/glossary/compile/index.html | 3 +- files/fr/glossary/compile_time/index.html | 3 +- files/fr/glossary/computer_programming/index.html | 3 +- files/fr/glossary/conditional/index.html | 3 +- files/fr/glossary/constant/index.html | 3 +- files/fr/glossary/constructor/index.html | 3 +- files/fr/glossary/control_flow/index.html | 3 +- files/fr/glossary/cookie/index.html | 3 +- files/fr/glossary/copyleft/index.html | 3 +- files/fr/glossary/cors/index.html | 3 +- files/fr/glossary/crawler/index.html | 3 +- files/fr/glossary/crlf/index.html | 3 +- files/fr/glossary/cross-site_scripting/index.html | 3 +- files/fr/glossary/cross_axis/index.html | 3 +- files/fr/glossary/crud/index.html | 3 +- files/fr/glossary/cryptanalysis/index.html | 3 +- .../cryptographic_hash_function/index.html | 3 +- files/fr/glossary/cryptography/index.html | 3 +- files/fr/glossary/csp/index.html | 3 +- files/fr/glossary/csrf/index.html | 3 +- files/fr/glossary/css/index.html | 5 +- files/fr/glossary/css_pixel/index.html | 3 +- files/fr/glossary/css_preprocessor/index.html | 3 +- files/fr/glossary/css_selector/index.html | 3 +- files/fr/glossary/data_structure/index.html | 3 +- files/fr/glossary/decryption/index.html | 3 +- files/fr/glossary/delta/index.html | 3 +- files/fr/glossary/denial_of_service/index.html | 3 +- files/fr/glossary/descriptor_(css)/index.html | 3 +- files/fr/glossary/deserialization/index.html | 3 +- files/fr/glossary/developer_tools/index.html | 3 +- files/fr/glossary/dhtml/index.html | 3 +- files/fr/glossary/digest/index.html | 3 +- files/fr/glossary/digital_certificate/index.html | 3 +- .../distributed_denial_of_service/index.html | 3 +- files/fr/glossary/dmz/index.html | 3 +- files/fr/glossary/dns/index.html | 3 +- files/fr/glossary/doctype/index.html | 3 +- files/fr/glossary/document_directive/index.html | 3 +- files/fr/glossary/document_environment/index.html | 3 +- files/fr/glossary/dom/index.html | 3 +- files/fr/glossary/domain/index.html | 3 +- files/fr/glossary/domain_name/index.html | 3 +- files/fr/glossary/dominator/index.html | 3 +- files/fr/glossary/dos_attack/index.html | 3 +- files/fr/glossary/dtmf/index.html | 3 +- .../dynamic_programming_language/index.html | 3 +- files/fr/glossary/dynamic_typing/index.html | 3 +- files/fr/glossary/ecma/index.html | 3 +- files/fr/glossary/ecmascript/index.html | 3 +- files/fr/glossary/element/index.html | 3 +- files/fr/glossary/empty_element/index.html | 3 +- files/fr/glossary/encapsulation/index.html | 3 +- files/fr/glossary/encryption/index.html | 3 +- files/fr/glossary/endianness/index.html | 3 +- files/fr/glossary/engine/index.html | 3 +- files/fr/glossary/entity/index.html | 3 +- files/fr/glossary/entity_header/index.html | 3 +- files/fr/glossary/event/index.html | 3 +- files/fr/glossary/exception/index.html | 3 +- files/fr/glossary/expando/index.html | 3 +- files/fr/glossary/falsy/index.html | 3 +- files/fr/glossary/favicon/index.html | 3 +- files/fr/glossary/fetch_directive/index.html | 3 +- files/fr/glossary/firefox_os/index.html | 3 +- files/fr/glossary/firewall/index.html | 3 +- files/fr/glossary/first-class_function/index.html | 3 +- .../fr/glossary/first_contentful_paint/index.html | 3 +- .../fr/glossary/first_meaningful_paint/index.html | 3 +- files/fr/glossary/flex/index.html | 3 +- files/fr/glossary/flex_container/index.html | 3 +- files/fr/glossary/flex_item/index.html | 3 +- files/fr/glossary/flexbox/index.html | 3 +- files/fr/glossary/forbidden_header_name/index.html | 3 +- .../forbidden_response_header_name/index.html | 3 +- files/fr/glossary/fork/index.html | 3 +- files/fr/glossary/ftp/index.html | 3 +- files/fr/glossary/ftu/index.html | 3 +- files/fr/glossary/function/index.html | 3 +- files/fr/glossary/gaia/index.html | 3 +- files/fr/glossary/garbage_collection/index.html | 3 +- files/fr/glossary/gecko/index.html | 3 +- files/fr/glossary/general_header/index.html | 3 +- files/fr/glossary/gif/index.html | 3 +- files/fr/glossary/gij/index.html | 3 +- files/fr/glossary/git/index.html | 3 +- files/fr/glossary/global_object/index.html | 3 +- files/fr/glossary/global_scope/index.html | 3 +- files/fr/glossary/global_variable/index.html | 3 +- files/fr/glossary/glyph/index.html | 3 +- files/fr/glossary/gonk/index.html | 3 +- files/fr/glossary/google_chrome/index.html | 3 +- files/fr/glossary/gpl/index.html | 3 +- files/fr/glossary/gpu/index.html | 3 +- files/fr/glossary/graceful_degradation/index.html | 3 +- files/fr/glossary/grid/index.html | 3 +- files/fr/glossary/grid_areas/index.html | 3 +- files/fr/glossary/grid_axis/index.html | 3 +- files/fr/glossary/grid_cell/index.html | 3 +- files/fr/glossary/grid_column/index.html | 3 +- files/fr/glossary/grid_container/index.html | 3 +- files/fr/glossary/grid_lines/index.html | 3 +- files/fr/glossary/grid_rows/index.html | 3 +- files/fr/glossary/grid_tracks/index.html | 3 +- files/fr/glossary/guard/index.html | 3 +- files/fr/glossary/gutters/index.html | 3 +- files/fr/glossary/gzip_compression/index.html | 3 +- files/fr/glossary/hash/index.html | 3 +- files/fr/glossary/head/index.html | 3 +- .../high-level_programming_language/index.html | 3 +- files/fr/glossary/hmac/index.html | 3 +- files/fr/glossary/hoisting/index.html | 3 +- files/fr/glossary/host/index.html | 3 +- files/fr/glossary/hotlink/index.html | 3 +- files/fr/glossary/houdini/index.html | 3 +- files/fr/glossary/hpkp/index.html | 3 +- files/fr/glossary/hsts/index.html | 3 +- files/fr/glossary/html/index.html | 5 +- files/fr/glossary/html5/index.html | 3 +- files/fr/glossary/http/index.html | 3 +- files/fr/glossary/http_2/index.html | 5 +- files/fr/glossary/http_3/index.html | 3 +- files/fr/glossary/http_header/index.html | 3 +- files/fr/glossary/https/index.html | 3 +- files/fr/glossary/hyperlink/index.html | 3 +- files/fr/glossary/hypertext/index.html | 3 +- files/fr/glossary/i18n/index.html | 3 +- files/fr/glossary/iana/index.html | 3 +- files/fr/glossary/icann/index.html | 3 +- files/fr/glossary/ice/index.html | 3 +- files/fr/glossary/ide/index.html | 3 +- files/fr/glossary/idempotent/index.html | 3 +- files/fr/glossary/identifier/index.html | 3 +- files/fr/glossary/idl/index.html | 3 +- files/fr/glossary/ietf/index.html | 3 +- files/fr/glossary/iife/index.html | 3 +- files/fr/glossary/imap/index.html | 3 +- files/fr/glossary/immutable/index.html | 3 +- files/fr/glossary/index.html | 3 +- files/fr/glossary/index/index.html | 3 +- files/fr/glossary/indexeddb/index.html | 3 +- .../glossary/information_architecture/index.html | 3 +- files/fr/glossary/inheritance/index.html | 3 +- files/fr/glossary/input_method_editor/index.html | 3 +- files/fr/glossary/instance/index.html | 3 +- .../index.html | 3 +- files/fr/glossary/internet/index.html | 3 +- files/fr/glossary/ip_address/index.html | 3 +- files/fr/glossary/ipv4/index.html | 3 +- files/fr/glossary/ipv6/index.html | 3 +- files/fr/glossary/irc/index.html | 3 +- files/fr/glossary/iso/index.html | 3 +- files/fr/glossary/isp/index.html | 3 +- files/fr/glossary/itu/index.html | 3 +- files/fr/glossary/jank/index.html | 3 +- files/fr/glossary/java/index.html | 3 +- files/fr/glossary/javascript/index.html | 5 +- files/fr/glossary/jpeg/index.html | 3 +- files/fr/glossary/jquery/index.html | 3 +- files/fr/glossary/json/index.html | 3 +- files/fr/glossary/key/index.html | 3 +- files/fr/glossary/keyword/index.html | 3 +- files/fr/glossary/latency/index.html | 3 +- files/fr/glossary/lazy_load/index.html | 3 +- files/fr/glossary/lgpl/index.html | 3 +- files/fr/glossary/ligature/index.html | 3 +- files/fr/glossary/local_scope/index.html | 3 +- files/fr/glossary/local_variable/index.html | 3 +- files/fr/glossary/locale/index.html | 3 +- files/fr/glossary/localization/index.html | 3 +- files/fr/glossary/loop/index.html | 3 +- files/fr/glossary/lossless_compression/index.html | 3 +- files/fr/glossary/lossy_compression/index.html | 3 +- files/fr/glossary/ltr/index.html | 3 +- files/fr/glossary/main_axis/index.html | 3 +- files/fr/glossary/mathml/index.html | 3 +- files/fr/glossary/media/css/index.html | 3 +- files/fr/glossary/media/index.html | 3 +- files/fr/glossary/metadata/index.html | 3 +- files/fr/glossary/method/index.html | 3 +- files/fr/glossary/microsoft_edge/index.html | 3 +- .../microsoft_internet_explorer/index.html | 3 +- files/fr/glossary/middleware/index.html | 3 +- files/fr/glossary/mime/index.html | 3 +- files/fr/glossary/mime_type/index.html | 3 +- files/fr/glossary/minification/index.html | 3 +- files/fr/glossary/mitm/index.html | 3 +- files/fr/glossary/mixin/index.html | 3 +- files/fr/glossary/mobile_first/index.html | 3 +- files/fr/glossary/modem/index.html | 3 +- files/fr/glossary/modern_web_apps/index.html | 3 +- files/fr/glossary/modularity/index.html | 3 +- files/fr/glossary/mozilla_firefox/index.html | 3 +- files/fr/glossary/mutable/index.html | 3 +- files/fr/glossary/mvc/index.html | 3 +- files/fr/glossary/namespace/index.html | 3 +- files/fr/glossary/nan/index.html | 3 +- files/fr/glossary/nat/index.html | 3 +- files/fr/glossary/native/index.html | 3 +- files/fr/glossary/navigation_directive/index.html | 3 +- files/fr/glossary/netscape_navigator/index.html | 3 +- files/fr/glossary/nntp/index.html | 3 +- files/fr/glossary/node.js/index.html | 3 +- files/fr/glossary/node/networking/index.html | 3 +- files/fr/glossary/non-normative/index.html | 3 +- files/fr/glossary/normative/index.html | 3 +- files/fr/glossary/null/index.html | 3 +- files/fr/glossary/number/index.html | 3 +- files/fr/glossary/object/index.html | 3 +- files/fr/glossary/object_reference/index.html | 3 +- files/fr/glossary/oop/index.html | 3 +- files/fr/glossary/opengl/index.html | 3 +- files/fr/glossary/openssl/index.html | 3 +- files/fr/glossary/opera_browser/index.html | 3 +- files/fr/glossary/operand/index.html | 3 +- files/fr/glossary/operator/index.html | 3 +- files/fr/glossary/origin/index.html | 3 +- files/fr/glossary/ota/index.html | 3 +- files/fr/glossary/owasp/index.html | 3 +- files/fr/glossary/p2p/index.html | 3 +- files/fr/glossary/pac/index.html | 3 +- files/fr/glossary/packet/index.html | 3 +- files/fr/glossary/parameter/index.html | 3 +- files/fr/glossary/parent_object/index.html | 3 +- files/fr/glossary/parse/index.html | 3 +- files/fr/glossary/parser/index.html | 3 +- files/fr/glossary/pdf/index.html | 3 +- files/fr/glossary/percent-encoding/index.html | 3 +- files/fr/glossary/php/index.html | 3 +- files/fr/glossary/pixel/index.html | 3 +- files/fr/glossary/placeholder_names/index.html | 3 +- files/fr/glossary/plaintext/index.html | 3 +- files/fr/glossary/png/index.html | 3 +- files/fr/glossary/polyfill/index.html | 3 +- files/fr/glossary/polymorphism/index.html | 3 +- files/fr/glossary/pop/index.html | 3 +- files/fr/glossary/port/index.html | 3 +- files/fr/glossary/preflight_request/index.html | 3 +- files/fr/glossary/presto/index.html | 3 +- files/fr/glossary/primitive/index.html | 3 +- files/fr/glossary/privileged/index.html | 3 +- files/fr/glossary/privileged_code/index.html | 3 +- .../fr/glossary/progressive_enhancement/index.html | 3 +- files/fr/glossary/progressive_web_apps/index.html | 3 +- files/fr/glossary/promise/index.html | 3 +- files/fr/glossary/property/css/index.html | 3 +- files/fr/glossary/protocol/index.html | 3 +- .../prototype-based_programming/index.html | 3 +- files/fr/glossary/prototype/index.html | 3 +- files/fr/glossary/proxy_server/index.html | 3 +- files/fr/glossary/pseudo-class/index.html | 3 +- files/fr/glossary/pseudo-element/index.html | 3 +- files/fr/glossary/pseudocode/index.html | 3 +- files/fr/glossary/python/index.html | 3 +- files/fr/glossary/quality_values/index.html | 3 +- files/fr/glossary/quic/index.html | 3 +- files/fr/glossary/rail/index.html | 3 +- files/fr/glossary/raster_image/index.html | 3 +- files/fr/glossary/rdf/index.html | 3 +- files/fr/glossary/real_user_monitoring/index.html | 3 +- files/fr/glossary/recursion/index.html | 3 +- files/fr/glossary/reference/index.html | 3 +- files/fr/glossary/reflow/index.html | 3 +- files/fr/glossary/regular_expression/index.html | 3 +- files/fr/glossary/rendering_engine/index.html | 3 +- files/fr/glossary/repo/index.html | 3 +- files/fr/glossary/reporting_directive/index.html | 3 +- files/fr/glossary/request_header/index.html | 3 +- files/fr/glossary/response_header/index.html | 3 +- files/fr/glossary/responsive_web_design/index.html | 3 +- files/fr/glossary/rest/index.html | 3 +- files/fr/glossary/rgb/index.html | 3 +- files/fr/glossary/ril/index.html | 3 +- files/fr/glossary/rng/index.html | 3 +- files/fr/glossary/robots.txt/index.html | 3 +- files/fr/glossary/rss/index.html | 3 +- files/fr/glossary/rtf/index.html | 3 +- files/fr/glossary/rtl/index.html | 3 +- files/fr/glossary/rtp/index.html | 3 +- files/fr/glossary/ruby/index.html | 3 +- files/fr/glossary/safe/index.html | 3 +- files/fr/glossary/same-origin_policy/index.html | 3 +- files/fr/glossary/scm/index.html | 3 +- files/fr/glossary/scope/index.html | 3 +- .../glossary/script-supporting_element/index.html | 3 +- files/fr/glossary/sctp/index.html | 3 +- files/fr/glossary/sdp/index.html | 3 +- files/fr/glossary/search_engine/index.html | 3 +- files/fr/glossary/second-level_domain/index.html | 3 +- .../self-executing_anonymous_function/index.html | 3 +- files/fr/glossary/semantics/index.html | 3 +- files/fr/glossary/seo/index.html | 3 +- files/fr/glossary/serialization/index.html | 3 +- files/fr/glossary/server/index.html | 3 +- files/fr/glossary/session_hijacking/index.html | 3 +- files/fr/glossary/sgml/index.html | 3 +- files/fr/glossary/shim/index.html | 3 +- files/fr/glossary/signature/function/index.html | 3 +- files/fr/glossary/signature/index.html | 3 +- files/fr/glossary/signature/security/index.html | 3 +- files/fr/glossary/simd/index.html | 3 +- files/fr/glossary/simple_header/index.html | 3 +- .../fr/glossary/simple_response_header/index.html | 3 +- files/fr/glossary/sisd/index.html | 3 +- files/fr/glossary/site/index.html | 3 +- files/fr/glossary/site_map/index.html | 3 +- files/fr/glossary/sld/index.html | 3 +- files/fr/glossary/sloppy_mode/index.html | 3 +- files/fr/glossary/slug/index.html | 3 +- files/fr/glossary/smoke_test/index.html | 3 +- files/fr/glossary/smtp/index.html | 3 +- files/fr/glossary/soap/index.html | 3 +- files/fr/glossary/specification/index.html | 3 +- files/fr/glossary/speculative_parsing/index.html | 3 +- files/fr/glossary/sql/index.html | 3 +- files/fr/glossary/sql_injection/index.html | 3 +- files/fr/glossary/sri/index.html | 3 +- files/fr/glossary/ssl/index.html | 3 +- files/fr/glossary/stacking_context/index.html | 3 +- files/fr/glossary/state_machine/index.html | 3 +- files/fr/glossary/statement/index.html | 3 +- files/fr/glossary/static_typing/index.html | 3 +- files/fr/glossary/string/index.html | 3 +- files/fr/glossary/stun/index.html | 3 +- files/fr/glossary/svg/index.html | 3 +- files/fr/glossary/svn/index.html | 3 +- files/fr/glossary/symbol/index.html | 3 +- files/fr/glossary/synchronous/index.html | 3 +- files/fr/glossary/syntax/index.html | 3 +- files/fr/glossary/syntax_error/index.html | 3 +- files/fr/glossary/tag/index.html | 3 +- files/fr/glossary/tcp/index.html | 3 +- files/fr/glossary/tcp_handshake/index.html | 3 +- files/fr/glossary/tcp_slow_start/index.html | 3 +- files/fr/glossary/telnet/index.html | 3 +- files/fr/glossary/texel/index.html | 3 +- files/fr/glossary/three_js/index.html | 3 +- files/fr/glossary/time_to_interactive/index.html | 3 +- files/fr/glossary/tld/index.html | 3 +- files/fr/glossary/tls/index.html | 3 +- files/fr/glossary/tofu/index.html | 3 +- .../transmission_control_protocol_(tcp)/index.html | 3 +- files/fr/glossary/tree_shaking/index.html | 3 +- files/fr/glossary/trident/index.html | 3 +- files/fr/glossary/truthy/index.html | 3 +- files/fr/glossary/ttl/index.html | 3 +- files/fr/glossary/turn/index.html | 3 +- files/fr/glossary/type/index.html | 3 +- files/fr/glossary/type_coercion/index.html | 3 +- files/fr/glossary/type_conversion/index.html | 3 +- files/fr/glossary/udp/index.html | 3 +- files/fr/glossary/ui/index.html | 3 +- files/fr/glossary/undefined/index.html | 3 +- files/fr/glossary/unicode/index.html | 3 +- files/fr/glossary/uri/index.html | 3 +- files/fr/glossary/url/index.html | 3 +- files/fr/glossary/urn/index.html | 3 +- files/fr/glossary/usenet/index.html | 3 +- files/fr/glossary/user_agent/index.html | 3 +- files/fr/glossary/utf-8/index.html | 3 +- files/fr/glossary/ux/index.html | 3 +- files/fr/glossary/validator/index.html | 3 +- files/fr/glossary/value/index.html | 3 +- files/fr/glossary/variable/index.html | 3 +- files/fr/glossary/vendor_prefix/index.html | 3 +- files/fr/glossary/viewport/index.html | 3 +- files/fr/glossary/voip/index.html | 3 +- files/fr/glossary/w3c/index.html | 3 +- files/fr/glossary/wai/index.html | 3 +- files/fr/glossary/wcag/index.html | 3 +- files/fr/glossary/web_server/index.html | 3 +- files/fr/glossary/web_standards/index.html | 3 +- files/fr/glossary/webdav/index.html | 3 +- files/fr/glossary/webextensions/index.html | 3 +- files/fr/glossary/webgl/index.html | 3 +- files/fr/glossary/webidl/index.html | 3 +- files/fr/glossary/webkit/index.html | 3 +- files/fr/glossary/webm/index.html | 3 +- files/fr/glossary/webp/index.html | 3 +- files/fr/glossary/webrtc/index.html | 3 +- files/fr/glossary/websockets/index.html | 3 +- files/fr/glossary/webvtt/index.html | 3 +- files/fr/glossary/whatwg/index.html | 3 +- files/fr/glossary/whitespace/index.html | 3 +- files/fr/glossary/world_wide_web/index.html | 3 +- files/fr/glossary/wrapper/index.html | 3 +- files/fr/glossary/xforms/index.html | 3 +- files/fr/glossary/xhr_(xmlhttprequest)/index.html | 3 +- files/fr/glossary/xhtml/index.html | 3 +- files/fr/glossary/xinclude/index.html | 3 +- files/fr/glossary/xlink/index.html | 3 +- files/fr/glossary/xml/index.html | 3 +- files/fr/glossary/xpath/index.html | 3 +- files/fr/glossary/xquery/index.html | 3 +- files/fr/glossary/xslt/index.html | 3 +- .../accessibility_troubleshooting/index.html | 3 +- .../accessibility/css_and_javascript/index.html | 3 +- files/fr/learn/accessibility/html/index.html | 3 +- files/fr/learn/accessibility/index.html | 3 +- files/fr/learn/accessibility/mobile/index.html | 3 +- files/fr/learn/accessibility/multimedia/index.html | 3 +- .../learn/accessibility/wai-aria_basics/index.html | 3 +- .../accessibility/what_is_accessibility/index.html | 3 +- .../available_text_editors/index.html | 5 +- .../index.html | 3 +- .../common_questions/common_web_layouts/index.html | 3 +- .../design_for_all_types_of_users/index.html | 3 +- .../how_does_the_internet_work/index.html | 3 +- .../how_much_does_it_cost/index.html | 3 +- files/fr/learn/common_questions/index.html | 3 +- .../index.html | 3 +- .../set_up_a_local_testing_server/index.html | 3 +- .../thinking_before_coding/index.html | 3 +- .../upload_files_to_a_web_server/index.html | 3 +- .../common_questions/using_github_pages/index.html | 3 +- .../what_are_browser_developer_tools/index.html | 3 +- .../what_are_hyperlinks/index.html | 3 +- .../what_is_a_domain_name/index.html | 3 +- .../common_questions/what_is_a_url/index.html | 3 +- .../what_is_a_web_server/index.html | 3 +- .../what_is_accessibility/index.html | 3 +- .../what_software_do_i_need/index.html | 3 +- .../building_blocks/a_cool_looking_box/index.html | 3 +- .../advanced_styling_effects/index.html | 3 +- .../backgrounds_and_borders/index.html | 3 +- .../cascade_and_inheritance/index.html | 3 +- .../creating_fancy_letterheaded_paper/index.html | 3 +- .../css/building_blocks/debugging_css/index.html | 3 +- .../fundamental_css_comprehension/index.html | 3 +- .../handling_different_text_directions/index.html | 3 +- files/fr/learn/css/building_blocks/index.html | 3 +- .../building_blocks/overflowing_content/index.html | 3 +- .../selectors/attribute_selectors/index.html | 3 +- .../selectors/combinators/index.html | 3 +- .../learn/css/building_blocks/selectors/index.html | 3 +- .../pseudo-classes_and_pseudo-elements/index.html | 3 +- .../type_class_and_id_selectors/index.html | 5 +- .../building_blocks/sizing_items_in_css/index.html | 3 +- .../css/building_blocks/styling_tables/index.html | 3 +- .../css/building_blocks/the_box_model/index.html | 3 +- .../building_blocks/values_and_units/index.html | 3 +- files/fr/learn/css/css_layout/flexbox/index.html | 3 +- .../learn/css/css_layout/flexbox_skills/index.html | 3 +- files/fr/learn/css/css_layout/floats/index.html | 3 +- .../fundamental_layout_comprehension/index.html | 3 +- files/fr/learn/css/css_layout/grids/index.html | 3 +- files/fr/learn/css/css_layout/index.html | 3 +- .../learn/css/css_layout/introduction/index.html | 3 +- .../css_layout/legacy_layout_methods/index.html | 3 +- .../learn/css/css_layout/media_queries/index.html | 3 +- .../css_layout/multiple-column_layout/index.html | 3 +- .../fr/learn/css/css_layout/normal_flow/index.html | 3 +- .../fr/learn/css/css_layout/positioning/index.html | 3 +- .../practical_positioning_examples/index.html | 3 +- .../css/css_layout/responsive_design/index.html | 3 +- .../supporting_older_browsers/index.html | 3 +- .../learn/css/first_steps/what_is_css/index.html | 3 +- .../learn/css/howto/create_fancy_boxes/index.html | 3 +- files/fr/learn/css/howto/css_faq/index.html | 3 +- .../learn/css/howto/generated_content/index.html | 5 +- files/fr/learn/css/howto/index.html | 3 +- files/fr/learn/css/index.html | 3 +- .../learn/css/styling_text/fundamentals/index.html | 3 +- .../css/styling_text/styling_links/index.html | 3 +- .../learn/forms/advanced_form_styling/index.html | 3 +- .../forms/basic_native_form_controls/index.html | 3 +- files/fr/learn/forms/form_validation/index.html | 3 +- .../example_1/index.html | 5 +- .../example_2/index.html | 5 +- .../example_3/index.html | 5 +- .../example_4/index.html | 5 +- .../example_5/index.html | 5 +- .../how_to_build_custom_form_controls/index.html | 5 +- .../how_to_structure_a_web_form/example/index.html | 3 +- .../forms/how_to_structure_a_web_form/index.html | 3 +- .../forms/html_forms_in_legacy_browsers/index.html | 3 +- files/fr/learn/forms/index.html | 3 +- .../index.html | 3 +- .../sending_and_retrieving_form_data/index.html | 3 +- .../sending_forms_through_javascript/index.html | 3 +- files/fr/learn/forms/styling_web_forms/index.html | 3 +- .../learn/forms/your_first_form/example/index.html | 3 +- files/fr/learn/forms/your_first_form/index.html | 3 +- files/fr/learn/front-end_web_developer/index.html | 3 +- .../css_basics/index.html | 3 +- .../dealing_with_files/index.html | 3 +- .../how_the_web_works/index.html | 3 +- .../html_basics/index.html | 3 +- .../learn/getting_started_with_the_web/index.html | 3 +- .../installing_basic_software/index.html | 3 +- .../javascript_basics/index.html | 3 +- .../publishing_your_website/index.html | 3 +- .../the_web_and_web_standards/index.html | 3 +- .../what_will_your_website_look_like/index.html | 3 +- files/fr/learn/html/cheatsheet/index.html | 3 +- .../add_a_hit_map_on_top_of_an_image/index.html | 3 +- .../author_fast-loading_html_pages/index.html | 3 +- .../html/howto/define_terms_with_html/index.html | 3 +- files/fr/learn/html/howto/index.html | 3 +- .../html/howto/use_data_attributes/index.html | 3 +- .../use_javascript_within_a_webpage/index.html | 3 +- files/fr/learn/html/index.html | 3 +- .../advanced_text_formatting/index.html | 3 +- .../creating_hyperlinks/index.html | 3 +- .../introduction_to_html/debugging_html/index.html | 3 +- .../document_and_website_structure/index.html | 3 +- .../getting_started/index.html | 3 +- .../html_text_fundamentals/index.html | 3 +- .../fr/learn/html/introduction_to_html/index.html | 3 +- .../marking_up_a_letter/index.html | 3 +- .../structuring_a_page_of_content/index.html | 3 +- .../the_head_metadata_in_html/index.html | 3 +- .../adding_vector_graphics_to_the_web/index.html | 3 +- .../images_in_html/index.html | 3 +- .../learn/html/multimedia_and_embedding/index.html | 3 +- .../mozilla_splash_page/index.html | 3 +- .../other_embedding_technologies/index.html | 3 +- .../responsive_images/index.html | 3 +- .../video_and_audio_content/index.html | 3 +- files/fr/learn/html/tables/advanced/index.html | 3 +- files/fr/learn/html/tables/basics/index.html | 3 +- files/fr/learn/html/tables/index.html | 3 +- .../html/tables/structuring_planet_data/index.html | 3 +- files/fr/learn/index.html | 3 +- files/fr/learn/index/index.html | 3 +- .../build_your_own_function/index.html | 3 +- .../building_blocks/conditionals/index.html | 3 +- .../javascript/building_blocks/events/index.html | 3 +- .../building_blocks/functions/index.html | 3 +- .../building_blocks/image_gallery/index.html | 5 +- .../fr/learn/javascript/building_blocks/index.html | 3 +- .../building_blocks/looping_code/index.html | 5 +- .../building_blocks/return_values/index.html | 3 +- .../client-side_storage/index.html | 3 +- .../drawing_graphics/index.html | 3 +- .../client-side_web_apis/fetching_data/index.html | 3 +- .../javascript/client-side_web_apis/index.html | 3 +- .../client-side_web_apis/introduction/index.html | 3 +- .../manipulating_documents/index.html | 3 +- .../third_party_apis/index.html | 3 +- .../video_and_audio_apis/index.html | 3 +- .../learn/javascript/first_steps/arrays/index.html | 3 +- .../test_your_skills_colon__arrays/index.html | 5 +- .../first_steps/useful_string_methods/index.html | 3 +- files/fr/learn/javascript/index.html | 3 +- .../adding_bouncing_balls_features/index.html | 5 +- .../javascript/objects/inheritance/index.html | 3 +- .../objects/object-oriented_js/index.html | 3 +- .../objects/object_building_practice/index.html | 3 +- .../objects/object_prototypes/index.html | 3 +- .../performance/why_web_performance/index.html | 3 +- .../server-side/django/generic_views/index.html | 3 +- .../first_steps/client-server_overview/index.html | 3 +- files/fr/learn/server-side/first_steps/index.html | 3 +- .../first_steps/introduction/index.html | 3 +- .../first_steps/web_frameworks/index.html | 3 +- .../first_steps/website_security/index.html | 3 +- .../cross_browser_testing/accessibility/index.html | 3 +- .../cross_browser_testing/html_and_css/index.html | 3 +- files/fr/learn/tools_and_testing/github/index.html | 3 +- files/fr/learn/tools_and_testing/index.html | 3 +- .../command_line/index.html | 3 +- files/fr/mdn/about/index.html | 3 +- files/fr/mdn/at_ten/history_of_mdn/index.html | 3 +- files/fr/mdn/at_ten/index.html | 3 +- .../convert_code_samples_to_be_live/index.html | 3 +- .../index.html | 3 +- files/fr/mdn/guidelines/code_guidelines/index.html | 3 +- .../mdn/structures/compatibility_tables/index.html | 3 +- files/fr/mdn/structures/live_samples/index.html | 3 +- files/fr/mdn/yari/index.html | 5 +- .../add_a_button_to_the_toolbar/index.html | 3 +- .../api/devtools/inspectedwindow/eval/index.html | 3 +- .../api/devtools/inspectedwindow/index.html | 3 +- .../api/devtools/inspectedwindow/reload/index.html | 3 +- .../api/devtools/inspectedwindow/tabid/index.html | 3 +- .../api/devtools/network/gethar/index.html | 3 +- .../webextensions/api/devtools/network/index.html | 3 +- .../api/devtools/network/onnavigated/index.html | 3 +- .../devtools/network/onrequestfinished/index.html | 3 +- .../api/devtools/panels/create/index.html | 3 +- .../api/devtools/panels/elements/index.html | 3 +- .../elementspanel/createsidebarpane/index.html | 4 +- .../api/devtools/panels/elementspanel/index.html | 3 +- .../elementspanel/onselectionchanged/index.html | 4 +- .../api/devtools/panels/extensionpanel/index.html | 3 +- .../panels/extensionsidebarpane/index.html | 3 +- .../extensionsidebarpane/onhidden/index.html | 4 +- .../panels/extensionsidebarpane/onshown/index.html | 3 +- .../extensionsidebarpane/setexpression/index.html | 4 +- .../extensionsidebarpane/setobject/index.html | 4 +- .../panels/extensionsidebarpane/setpage/index.html | 3 +- .../webextensions/api/devtools/panels/index.html | 3 +- .../api/devtools/panels/onthemechanged/index.html | 3 +- .../api/devtools/panels/themename/index.html | 3 +- .../webextensions/api/proxy/onerror/index.html | 3 +- .../webextensions/api/proxy/settings/index.html | 3 +- .../working_with_userscripts/index.html | 3 +- .../browser_support_for_javascript_apis/index.html | 3 +- .../build_a_cross_browser_extension/index.html | 3 +- .../chrome_incompatibilities/index.html | 3 +- .../debugging_(before_firefox_50)/index.html | 3 +- .../index.html | 3 +- .../add-ons/webextensions/examples/index.html | 3 +- .../extending_the_developer_tools/index.html | 3 +- .../implement_a_settings_page/index.html | 3 +- .../interact_with_the_clipboard/index.html | 3 +- .../intercept_http_requests/index.html | 3 +- .../webextensions/manifest.json/author/index.html | 3 +- .../manifest.json/background/index.html | 3 +- .../manifest.json/theme_experiment/index.html | 3 +- .../webextensions/native_manifests/index.html | 3 +- .../index.html | 5 +- .../sharing_objects_with_page_scripts/index.html | 3 +- .../user_interface/context_menu_items/index.html | 3 +- .../user_interface/devtools_panels/index.html | 3 +- .../user_interface/extension_pages/index.html | 3 +- .../user_interface/sidebars/index.html | 3 +- .../add-ons/webextensions/what_next_/index.html | 3 +- .../work_with_contextual_identities/index.html | 3 +- .../work_with_the_cookies_api/index.html | 3 +- .../working_with_the_tabs_api/index.html | 3 +- .../developer_guide/build_instructions/index.html | 3 +- .../developer_guide/introduction/index.html | 3 +- .../so_you_just_built_firefox/index.html | 3 +- .../index.html | 3 +- files/fr/mozilla/firefox/releases/1.5/index.html | 3 +- .../1.5/using_firefox_1.5_caching/index.html | 3 +- files/fr/mozilla/firefox/releases/11/index.html | 3 +- files/fr/mozilla/firefox/releases/12/index.html | 3 +- files/fr/mozilla/firefox/releases/13/index.html | 3 +- files/fr/mozilla/firefox/releases/15/index.html | 3 +- files/fr/mozilla/firefox/releases/16/index.html | 3 +- files/fr/mozilla/firefox/releases/17/index.html | 3 +- .../releases/17/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/18/index.html | 3 +- .../releases/18/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/19/index.html | 3 +- .../releases/19/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/2/index.html | 3 +- .../firefox/releases/2/security_changes/index.html | 3 +- .../releases/2/updating_extensions/index.html | 3 +- files/fr/mozilla/firefox/releases/20/index.html | 3 +- .../releases/20/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/21/index.html | 3 +- .../releases/21/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/22/index.html | 3 +- .../releases/22/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/23/index.html | 3 +- .../releases/23/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/24/index.html | 3 +- .../releases/24/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/3.5/index.html | 3 +- files/fr/mozilla/firefox/releases/3.6/index.html | 3 +- .../firefox/releases/3/dom_improvements/index.html | 3 +- .../firefox/releases/3/full_page_zoom/index.html | 3 +- files/fr/mozilla/firefox/releases/3/index.html | 3 +- .../releases/3/notable_bugs_fixed/index.html | 3 +- .../releases/3/site_compatibility/index.html | 3 +- .../firefox/releases/3/svg_improvements/index.html | 3 +- .../releases/3/updating_extensions/index.html | 3 +- .../3/updating_web_applications/index.html | 3 +- .../3/xul_improvements_in_firefox_3/index.html | 3 +- files/fr/mozilla/firefox/releases/35/index.html | 3 +- .../releases/35/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/4/index.html | 3 +- files/fr/mozilla/firefox/releases/40/index.html | 3 +- .../releases/40/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/41/index.html | 3 +- .../releases/41/site_compatibility/index.html | 3 +- files/fr/mozilla/firefox/releases/5/index.html | 3 +- files/fr/mozilla/firefox/releases/50/index.html | 3 +- files/fr/mozilla/firefox/releases/59/index.html | 3 +- files/fr/mozilla/firefox/releases/6/index.html | 3 +- files/fr/mozilla/firefox/releases/63/index.html | 3 +- files/fr/mozilla/firefox/releases/65/index.html | 3 +- files/fr/mozilla/firefox/releases/68/index.html | 3 +- files/fr/mozilla/firefox/releases/69/index.html | 3 +- files/fr/mozilla/firefox/releases/7/index.html | 3 +- files/fr/mozilla/firefox/releases/70/index.html | 3 +- files/fr/mozilla/firefox/releases/76/index.html | 3 +- files/fr/mozilla/firefox/releases/77/index.html | 3 +- files/fr/mozilla/firefox/releases/8/index.html | 3 +- files/fr/mozilla/firefox/releases/9/index.html | 3 +- files/fr/mozilla/firefox/releases/index.html | 3 +- .../certificats_et_authentification/index.html" | 4 +- .../index.html" | 4 +- .../gestion_des_certificats/index.html" | 4 +- .../index.html" | 4 +- .../signatures_num\303\251riques/index.html" | 3 +- .../fr/orphaned/learn/how_to_contribute/index.html | 3 +- .../mdn/community/conversations/index.html | 3 +- .../orphaned/mdn/community/doc_sprints/index.html | 3 +- files/fr/orphaned/mdn/community/index.html | 3 +- .../mdn/community/whats_happening/index.html | 3 +- .../howto/create_an_mdn_account/index.html | 3 +- .../howto/do_a_technical_review/index.html | 3 +- .../howto/do_an_editorial_review/index.html | 3 +- .../howto/set_the_summary_for_a_page/index.html | 3 +- .../howto/tag_javascript_pages/index.html | 3 +- .../index.html | 3 +- .../mdn/editor/basics/attachments/index.html | 3 +- files/fr/orphaned/mdn/editor/basics/index.html | 3 +- files/fr/orphaned/mdn/editor/index.html | 3 +- .../orphaned/mdn/tools/template_editing/index.html | 3 +- .../api/userscripts/apiscript/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../comparison_with_the_add-on_sdk/index.html | 3 +- .../webextensions/developer_accounts/index.html | 3 +- .../add-ons_for_desktop_apps/index.html | 4 +- .../add-ons_in_the_enterprise/index.html | 4 +- .../webextensions/distribution_options/index.html | 3 +- .../sideloading_add-ons/index.html | 4 +- .../package_your_extension_/index.html | 3 +- .../porting_a_legacy_firefox_add-on/index.html | 3 +- .../request_the_right_permissions/index.html | 3 +- .../security_best_practices/index.html | 3 +- .../temporary_installation_in_firefox/index.html | 3 +- .../test_permission_requests/index.html | 3 +- .../index.html | 5 +- .../user_experience_best_practices/index.html | 3 +- .../accessibility_guidelines/index.html | 5 +- .../index.html | 4 +- .../index.html | 3 +- .../dom_inspector/dom_inspector_faq/index.html | 3 +- .../tools/add-ons/dom_inspector/index.html | 13 +- .../add-ons/dom_inspector/internals/index.html | 3 +- .../introduction_to_dom_inspector/index.html | 3 +- files/fr/orphaned/tools/add-ons/index.html | 3 +- files/fr/orphaned/tools/css_coverage/index.html | 3 +- .../limitations_of_the_new_debugger/index.html | 3 +- .../disable_breakpoints/index.html | 3 +- .../how_to/access_debugging_in_add-ons/index.html | 3 +- .../how_to/black_box_a_source/index.html | 3 +- .../how_to/break_on_a_dom_event/index.html | 3 +- .../how_to/debug_eval_sources/index.html | 3 +- .../how_to/disable_breakpoints/index.html | 3 +- .../index.html | 6 +- .../highlight_and_inspect_dom_nodes/index.html | 4 +- .../debugger_(before_firefox_52)/how_to/index.html | 3 +- .../how_to/open_the_debugger/index.html | 3 +- .../how_to/pretty-print_a_minified_file/index.html | 4 +- .../how_to/search_and_filter/index.html | 3 +- .../how_to/set_a_breakpoint/index.html | 3 +- .../how_to/set_a_conditional_breakpoint/index.html | 4 +- .../how_to/step_through_code/index.html | 3 +- .../how_to/use_a_source_map/index.html | 3 +- .../tools/debugger_(before_firefox_52)/index.html | 3 +- .../keyboard_shortcuts/index.html | 3 +- .../settings/index.html | 3 +- .../ui_tour/index.html | 3 +- files/fr/orphaned/web/api/entity/index.html | 3 +- .../fr/orphaned/web/api/entityreference/index.html | 3 +- files/fr/orphaned/web/api/namelist/index.html | 3 +- files/fr/orphaned/web/css/@media/index/index.html | 3 +- files/fr/orphaned/web/css/index/index.html | 3 +- .../orphaned/web/html/element/command/index.html | 3 +- .../orphaned/web/html/element/element/index.html | 3 +- .../web/html/global_attributes/dropzone/index.html | 3 +- .../global_objects/array/prototype/index.html | 3 +- .../asyncfunction/prototype/index.html | 3 +- .../global_objects/bigint/prototype/index.html | 3 +- .../information_security_basics/index.html | 3 +- .../objet_components/index.html | 3 +- .../reference/standard_xpcom_components/index.html | 3 +- files/fr/plugins/guide/constants/index.html | 3 +- files/fr/tools/3d_view/index.html | 3 +- .../index.html | 7 +- files/fr/tools/about_colon_debugging/index.html | 7 +- files/fr/tools/accessibility_inspector/index.html | 3 +- .../accessibility_inspector/simulation/index.html | 3 +- .../tools/accessing_the_developer_tools/index.html | 3 +- files/fr/tools/browser_console/index.html | 5 +- files/fr/tools/browser_toolbox/index.html | 3 +- .../debugger/break_on_dom_mutation/index.html | 3 +- .../how_to/access_debugging_in_add-ons/index.html | 3 +- .../how_to/breaking_on_exceptions/index.html | 3 +- .../debugger/how_to/debug_eval_sources/index.html | 3 +- .../debugger/how_to/disable_breakpoints/index.html | 3 +- .../highlight_and_inspect_dom_nodes/index.html | 3 +- .../debugger/how_to/ignore_a_source/index.html | 3 +- files/fr/tools/debugger/how_to/index.html | 3 +- .../debugger/how_to/open_the_debugger/index.html | 3 +- .../how_to/pretty-print_a_minified_file/index.html | 3 +- files/fr/tools/debugger/how_to/search/index.html | 3 +- .../debugger/how_to/set_a_breakpoint/index.html | 3 +- .../how_to/set_a_conditional_breakpoint/index.html | 3 +- .../how_to/set_watch_expressions/index.html | 3 +- .../debugger/how_to/step_through_code/index.html | 3 +- .../debugger/how_to/use_a_source_map/index.html | 3 +- files/fr/tools/debugger/index.html | 3 +- .../tools/debugger/keyboard_shortcuts/index.html | 3 +- .../debugger/set_an_xhr_breakpoint/index.html | 3 +- .../fr/tools/debugger/source_map_errors/index.html | 3 +- files/fr/tools/debugger/ui_tour/index.html | 3 +- files/fr/tools/devtoolsapi/index.html | 3 +- files/fr/tools/devtoolscolors/index.html | 3 +- files/fr/tools/dom_property_viewer/index.html | 3 +- files/fr/tools/eyedropper/index.html | 5 +- .../fr/tools/firefox_os_simulator_clone/index.html | 3 +- files/fr/tools/index.html | 5 +- files/fr/tools/index/index.html | 3 +- files/fr/tools/json_viewer/index.html | 3 +- files/fr/tools/keyboard_shortcuts/index.html | 3 +- .../tools/measure_a_portion_of_the_page/index.html | 3 +- files/fr/tools/memory/aggregate_view/index.html | 3 +- files/fr/tools/memory/basic_operations/index.html | 3 +- .../tools/memory/dom_allocation_example/index.html | 3 +- files/fr/tools/memory/dominators/index.html | 3 +- files/fr/tools/memory/dominators_view/index.html | 3 +- files/fr/tools/memory/index.html | 3 +- files/fr/tools/memory/monster_example/index.html | 3 +- files/fr/tools/memory/tree_map_view/index.html | 3 +- files/fr/tools/migrating_from_firebug/index.html | 3 +- files/fr/tools/network_monitor/index.html | 3 +- .../performance_analysis/index.html | 3 +- .../fr/tools/network_monitor/recording/index.html | 3 +- .../network_monitor/request_details/index.html | 3 +- .../tools/network_monitor/request_list/index.html | 3 +- .../fr/tools/network_monitor/throttling/index.html | 3 +- files/fr/tools/network_monitor/toolbar/index.html | 5 +- .../fr/tools/page_inspector/3-pane_mode/index.html | 3 +- .../how_to/edit_css_filters/index.html | 3 +- .../how_to/examine_and_edit_css/index.html | 3 +- .../how_to/examine_and_edit_html/index.html | 3 +- .../examine_and_edit_the_box_model/index.html | 3 +- .../how_to/examine_event_listeners/index.html | 3 +- .../how_to/examine_grid_layouts/index.html | 3 +- files/fr/tools/page_inspector/how_to/index.html | 3 +- .../how_to/inspect_and_select_colors/index.html | 3 +- .../how_to/open_the_inspector/index.html | 3 +- .../reposition_elements_in_the_page/index.html | 3 +- .../how_to/select_an_element/index.html | 3 +- .../select_and_highlight_elements/index.html | 3 +- .../how_to/use_the_inspector_api/index.html | 3 +- .../index.html | 3 +- .../how_to/view_background_images/index.html | 3 +- .../how_to/visualize_transforms/index.html | 3 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../how_to/work_with_animations/index.html | 3 +- files/fr/tools/page_inspector/index.html | 3 +- .../page_inspector/keyboard_shortcuts/index.html | 3 +- files/fr/tools/page_inspector/ui_tour/index.html | 3 +- files/fr/tools/paint_flashing_tool/index.html | 3 +- files/fr/tools/performance/allocations/index.html | 3 +- files/fr/tools/performance/call_tree/index.html | 3 +- files/fr/tools/performance/examples/index.html | 3 +- .../sorting_algorithms_comparison/index.html | 3 +- files/fr/tools/performance/flame_chart/index.html | 3 +- files/fr/tools/performance/frame_rate/index.html | 3 +- files/fr/tools/performance/how_to/index.html | 3 +- files/fr/tools/performance/index.html | 3 +- .../scenarios/animating_css_properties/index.html | 3 +- files/fr/tools/performance/scenarios/index.html | 3 +- .../scenarios/intensive_javascript/index.html | 3 +- files/fr/tools/performance/ui_tour/index.html | 3 +- files/fr/tools/performance/waterfall/index.html | 3 +- .../remote_debugging/chrome_desktop/index.html | 3 +- .../debugging_firefox_desktop/index.html | 3 +- .../index.html | 3 +- files/fr/tools/remote_debugging/index.html | 3 +- .../tools/remote_debugging/thunderbird/index.html | 3 +- files/fr/tools/responsive_design_mode/index.html | 3 +- files/fr/tools/rulers/index.html | 3 +- files/fr/tools/settings/index.html | 3 +- files/fr/tools/shader_editor/index.html | 3 +- files/fr/tools/style_editor/index.html | 5 +- files/fr/tools/taking_screenshots/index.html | 3 +- files/fr/tools/tips/index.html | 3 +- files/fr/tools/tools_toolbox/index.html | 3 +- files/fr/tools/validators/index.html | 3 +- files/fr/tools/view_source/index.html | 3 +- files/fr/tools/web_audio_editor/index.html | 3 +- .../tools/web_console/console_messages/index.html | 3 +- files/fr/tools/web_console/helpers/index.html | 3 +- files/fr/tools/web_console/index.html | 5 +- .../web_console/keyboard_shortcuts/index.html | 3 +- files/fr/tools/web_console/rich_output/index.html | 3 +- .../fr/tools/web_console/split_console/index.html | 3 +- .../the_command_line_interpreter/index.html | 3 +- files/fr/tools/web_console/ui_tour/index.html | 3 +- files/fr/tools/working_with_iframes/index.html | 3 +- .../index.html | 5 +- .../web/accessibility/aria/aria_guides/index.html | 3 +- .../aria/aria_live_regions/index.html | 3 +- .../aria_technique_template/index.html | 3 +- .../accessibility/aria/aria_techniques/index.html | 3 +- .../using_the_alert_role/index.html | 3 +- .../using_the_alertdialog_role/index.html | 3 +- .../index.html | 3 +- .../using_the_aria-invalid_attribute/index.html | 3 +- .../using_the_aria-label_attribute/index.html | 3 +- .../using_the_aria-labelledby_attribute/index.html | 3 +- .../index.html | 3 +- .../using_the_aria-relevant_attribute/index.html | 3 +- .../using_the_aria-required_attribute/index.html | 3 +- .../using_the_aria-valuemax_attribute/index.html | 3 +- .../using_the_aria-valuemin_attribute/index.html | 3 +- .../using_the_aria-valuenow_attribute/index.html | 3 +- .../using_the_aria-valuetext_attribute/index.html | 3 +- .../using_the_article_role/index.html | 3 +- .../using_the_group_role/index.html | 3 +- .../aria_techniques/using_the_link_role/index.html | 3 +- .../aria_techniques/using_the_log_role/index.html | 3 +- .../using_the_presentation_role/index.html | 3 +- .../using_the_progressbar_role/index.html | 3 +- .../using_the_radio_role/index.html | 3 +- .../using_the_slider_role/index.html | 3 +- .../using_the_status_role/index.html | 3 +- .../using_the_toolbar_role/index.html | 3 +- .../web/accessibility/aria/forms/alerts/index.html | 3 +- .../aria/forms/basic_form_hints/index.html | 3 +- files/fr/web/accessibility/aria/forms/index.html | 3 +- .../aria/forms/multipart_labels/index.html | 3 +- .../aria/how_to_file_aria-related_bugs/index.html | 3 +- files/fr/web/accessibility/aria/index.html | 3 +- .../aria/roles/banner_role/index.html | 3 +- .../aria/roles/button_role/index.html | 3 +- .../aria/roles/checkbox_role/index.html | 3 +- .../aria/roles/dialog_role/index.html | 3 +- .../aria/roles/listbox_role/index.html | 3 +- .../aria/roles/switch_role/index.html | 3 +- .../aria/roles/textbox_role/index.html | 3 +- .../aria/web_applications_and_aria_faq/index.html | 3 +- files/fr/web/accessibility/community/index.html | 3 +- files/fr/web/accessibility/index.html | 3 +- .../index.html | 3 +- .../mobile_accessibility_checklist/index.html | 3 +- .../perceivable/color_contrast/index.html | 3 +- files/fr/web/api/ambient_light_events/index.html | 3 +- .../web/api/baseaudiocontext/creategain/index.html | 3 +- .../api/canvas_api/a_basic_ray-caster/index.html | 3 +- .../manipulating_video_using_canvas/index.html | 3 +- .../tutorial/advanced_animations/index.html | 3 +- .../tutorial/applying_styles_and_colors/index.html | 3 +- .../tutorial/basic_animations/index.html | 3 +- .../api/canvas_api/tutorial/basic_usage/index.html | 3 +- .../tutorial/compositing/example/index.html | 3 +- .../api/canvas_api/tutorial/compositing/index.html | 3 +- .../canvas_api/tutorial/drawing_shapes/index.html | 3 +- .../canvas_api/tutorial/drawing_text/index.html | 3 +- .../hit_regions_and_accessibility/index.html | 3 +- files/fr/web/api/canvas_api/tutorial/index.html | 3 +- .../tutorial/optimizing_canvas/index.html | 3 +- .../pixel_manipulation_with_canvas/index.html | 3 +- .../canvas_api/tutorial/transformations/index.html | 3 +- .../canvas_api/tutorial/using_images/index.html | 3 +- files/fr/web/api/crypto/getrandomvalues/index.html | 3 +- .../api/detecting_device_orientation/index.html | 3 +- .../devicemotioneventrotationrate/alpha/index.html | 3 +- .../devicemotioneventrotationrate/beta/index.html | 3 +- .../devicemotioneventrotationrate/gamma/index.html | 3 +- .../api/devicemotioneventrotationrate/index.html | 3 +- .../api/deviceorientationevent/absolute/index.html | 3 +- files/fr/web/api/document/anchors/index.html | 3 +- .../api/document/readystatechange_event/index.html | 3 +- .../api/document_object_model/events/index.html | 3 +- .../api/document_object_model/examples/index.html | 3 +- .../how_to_create_a_dom_tree/index.html | 3 +- .../index.html | 5 +- .../index.html | 4 +- .../example/index.html | 3 +- .../using_the_w3c_dom_level_1_core/index.html | 3 +- .../documentorshadowroot/activeelement/index.html | 3 +- .../elementfrompoint/index.html | 3 +- .../documentorshadowroot/getselection/index.html | 3 +- .../documentorshadowroot/stylesheets/index.html | 3 +- files/fr/web/api/dommatrix/index.html | 3 +- files/fr/web/api/effecttiming/delay/index.html | 3 +- files/fr/web/api/effecttiming/index.html | 3 +- .../api/element/compositionend_event/index.html | 3 +- .../api/element/compositionstart_event/index.html | 3 +- .../api/element/compositionupdate_event/index.html | 3 +- files/fr/web/api/element/copy_event/index.html | 3 +- files/fr/web/api/element/error_event/index.html | 3 +- files/fr/web/api/element/focusin_event/index.html | 3 +- files/fr/web/api/element/focusout_event/index.html | 3 +- files/fr/web/api/element/innerhtml/index.html | 3 +- .../web/api/elementcssinlinestyle/style/index.html | 3 +- .../event/comparison_of_event_targets/index.html | 3 +- .../api/file_and_directory_entries_api/index.html | 3 +- .../api/formdata/using_formdata_objects/index.html | 3 +- files/fr/web/api/fullscreen_api/index.html | 3 +- .../gamepad_api/using_the_gamepad_api/index.html | 3 +- .../web/api/globaleventhandlers/onwheel/index.html | 3 +- files/fr/web/api/history_api/example/index.html | 3 +- files/fr/web/api/history_api/index.html | 3 +- .../drag_operations/index.html | 3 +- files/fr/web/api/html_drag_and_drop_api/index.html | 3 +- files/fr/web/api/htmlelement/accesskey/index.html | 3 +- .../api/htmlelement/animationend_event/index.html | 3 +- .../animationiteration_event/index.html | 3 +- .../htmlelement/animationstart_event/index.html | 3 +- files/fr/web/api/htmlelement/innertext/index.html | 3 +- .../api/htmlelement/transitionend_event/index.html | 3 +- .../api/htmlformelement/submit_event/index.html | 3 +- .../web/api/htmlhyperlinkelementutils/index.html | 3 +- .../web/api/htmlorforeignelement/blur/index.html | 3 +- .../api/htmlorforeignelement/dataset/index.html | 3 +- .../web/api/htmlorforeignelement/focus/index.html | 3 +- .../api/htmlorforeignelement/tabindex/index.html | 3 +- .../api/idbopendbrequest/blocked_event/index.html | 3 +- .../basic_concepts_behind_indexeddb/index.html | 3 +- .../index.html | 3 +- files/fr/web/api/indexeddb_api/index.html | 3 +- .../api/indexeddb_api/using_indexeddb/index.html | 3 +- files/fr/web/api/media_streams_api/index.html | 3 +- files/fr/web/api/navigator/getusermedia/index.html | 3 +- .../online_and_offline_events/index.html | 3 +- .../fr/web/api/network_information_api/index.html | 3 +- .../using_the_notifications_api/index.html | 3 +- .../offlineaudiocontext/complete_event/index.html | 3 +- .../pointer_events/pinch_zoom_gestures/index.html | 3 +- files/fr/web/api/pointer_lock_api/index.html | 3 +- files/fr/web/api/proximity_events/index.html | 3 +- .../audioprocess_event/index.html | 3 +- files/fr/web/api/touch_events/index.html | 3 +- .../index.html | 5 +- .../index.html | 3 +- .../structured_clone_algorithm/index.html | 3 +- .../web_workers_api/using_web_workers/index.html | 3 +- .../by_example/basic_scissoring/index.html | 3 +- .../webgl_api/by_example/boilerplate_1/index.html | 3 +- .../by_example/canvas_size_and_webgl/index.html | 3 +- .../by_example/clearing_by_clicking/index.html | 3 +- .../by_example/clearing_with_colors/index.html | 3 +- .../webgl_api/by_example/color_masking/index.html | 3 +- .../webgl_api/by_example/detect_webgl/index.html | 3 +- .../by_example/hello_vertex_attributes/index.html | 3 +- .../by_example/raining_rectangles/index.html | 3 +- .../by_example/scissor_animation/index.html | 3 +- .../by_example/simple_color_animation/index.html | 3 +- .../by_example/textures_from_code/index.html | 3 +- .../webgl_api/by_example/video_textures/index.html | 3 +- files/fr/web/api/webgl_api/data/index.html | 3 +- .../index.html | 3 +- .../animating_objects_with_webgl/index.html | 3 +- .../animating_textures_in_webgl/index.html | 3 +- .../creating_3d_objects_using_webgl/index.html | 3 +- .../tutorial/getting_started_with_webgl/index.html | 3 +- .../tutorial/lighting_in_webgl/index.html | 3 +- .../index.html | 3 +- .../tutorial/using_textures_in_webgl/index.html | 3 +- .../api/webglrenderingcontext/canvas/index.html | 3 +- .../api/webglrenderingcontext/enable/index.html | 3 +- .../fr/web/api/webrtc_api/connectivity/index.html | 3 +- .../web/api/webrtc_api/session_lifetime/index.html | 3 +- .../signaling_and_video_calling/index.html | 3 +- .../api/webrtc_api/taking_still_photos/index.html | 3 +- .../using_vr_controllers_with_webvr/index.html | 3 +- .../fr/web/api/window/afterprint_event/index.html | 3 +- .../fr/web/api/window/beforeprint_event/index.html | 3 +- .../web/api/window/beforeunload_event/index.html | 3 +- .../web/api/window/devicemotion_event/index.html | 3 +- .../api/window/deviceorientation_event/index.html | 3 +- .../api/window/domcontentloaded_event/index.html | 3 +- files/fr/web/api/window/load_event/index.html | 3 +- files/fr/web/api/window/pagehide_event/index.html | 3 +- files/fr/web/api/window/pageshow_event/index.html | 3 +- files/fr/web/api/window/unload_event/index.html | 3 +- .../api/windoworworkerglobalscope/atob/index.html | 3 +- .../api/windoworworkerglobalscope/btoa/index.html | 3 +- .../clearinterval/index.html | 3 +- .../web/api/xmlhttprequest/abort_event/index.html | 3 +- .../xmlhttprequest/using_xmlhttprequest/index.html | 3 +- files/fr/web/api/xmlserializer/index.html | 3 +- .../web/api/xsltprocessor/basic_example/index.html | 3 +- .../xsltprocessor/browser_differences/index.html | 3 +- .../api/xsltprocessor/generating_html/index.html | 3 +- .../xsl_transformations_in_mozilla_faq/index.html | 3 +- .../fr/web/css/@media/-ms-high-contrast/index.html | 3 +- .../fr/web/css/_colon_-moz-list-bullet/index.html | 5 +- .../fr/web/css/_colon_-moz-list-number/index.html | 5 +- files/fr/web/css/_colon_autofill/index.html | 5 +- files/fr/web/css/_colon_user-invalid/index.html | 5 +- .../_doublecolon_file-selector-button/index.html | 5 +- files/fr/web/css/actual_value/index.html | 3 +- .../web/css/adjacent_sibling_combinator/index.html | 3 +- .../fr/web/css/alternative_style_sheets/index.html | 3 +- files/fr/web/css/at-rule/index.html | 3 +- files/fr/web/css/attribute_selectors/index.html | 3 +- files/fr/web/css/child_combinator/index.html | 3 +- files/fr/web/css/class_selectors/index.html | 3 +- files/fr/web/css/color_value/index.html | 3 +- files/fr/web/css/column_combinator/index.html | 3 +- files/fr/web/css/computed_value/index.html | 3 +- files/fr/web/css/containing_block/index.html | 3 +- .../fr/web/css/css_animated_properties/index.html | 3 +- .../detecting_css_animation_support/index.html | 3 +- files/fr/web/css/css_animations/index.html | 3 +- files/fr/web/css/css_animations/tips/index.html | 3 +- .../css_animations/using_css_animations/index.html | 3 +- .../border-image_generator/index.html | 3 +- .../border-radius_generator/index.html | 3 +- .../box-shadow_generator/index.html | 3 +- .../resizing_background_images/index.html | 3 +- .../using_multiple_backgrounds/index.html | 3 +- .../index.html | 3 +- .../index.html | 3 +- .../box_alignment_in_flexbox/index.html | 3 +- .../box_alignment_in_grid_layout/index.html | 3 +- .../index.html | 3 +- files/fr/web/css/css_box_model/index.html | 3 +- .../mastering_margin_collapsing/index.html | 3 +- files/fr/web/css/css_charsets/index.html | 3 +- .../css/css_colors/color_picker_tool/index.html | 3 +- .../basic_concepts_of_multicol/index.html | 3 +- .../handling_content_breaks_in_multicol/index.html | 3 +- .../handling_overflow_in_multicol/index.html | 3 +- .../css/css_columns/spanning_columns/index.html | 3 +- .../web/css/css_columns/styling_columns/index.html | 3 +- .../using_multi-column_layouts/index.html | 3 +- .../using_feature_queries/index.html | 5 +- files/fr/web/css/css_containment/index.html | 3 +- .../aligning_items_in_a_flex_container/index.html | 5 +- .../backwards_compatibility_of_flexbox/index.html | 3 +- .../basic_concepts_of_flexbox/index.html | 3 +- .../index.html | 4 +- .../mastering_wrapping_of_flex_items/index.html | 5 +- .../ordering_flex_items/index.html | 3 +- .../index.html | 4 +- .../typical_use_cases_of_flexbox/index.html | 3 +- .../index.html | 3 +- .../flow_layout_and_overflow/index.html | 3 +- .../flow_layout_and_writing_modes/index.html | 3 +- .../in_flow_and_out_of_flow/index.html | 3 +- .../intro_to_formatting_contexts/index.html | 3 +- .../css/css_fonts/opentype_fonts_guide/index.html | 3 +- .../css/css_fonts/variable_fonts_guide/index.html | 3 +- .../auto-placement_in_css_grid_layout/index.html | 3 +- .../basic_concepts_of_grid_layout/index.html | 3 +- .../box_alignment_in_css_grid_layout/index.html | 3 +- .../index.html | 3 +- .../css_grid_layout_and_accessibility/index.html | 3 +- .../index.html | 9 +- .../css_grid_layout/grid_template_areas/index.html | 3 +- .../layout_using_named_grid_lines/index.html | 3 +- .../line-based_placement_with_css_grid/index.html | 3 +- .../index.html | 5 +- .../relationship_of_grid_layout/index.html | 3 +- .../implementing_image_sprites_in_css/index.html | 3 +- .../css/css_images/using_css_gradients/index.html | 3 +- .../consistent_list_indentation/index.html | 3 +- files/fr/web/css/css_lists_and_counters/index.html | 3 +- .../using_css_counters/index.html | 3 +- .../basic_concepts/index.html | 3 +- .../floating_and_positioning/index.html | 3 +- .../margins_borders_padding/index.html | 7 +- .../css/css_logical_properties/sizing/index.html | 3 +- files/fr/web/css/css_masking/index.html | 3 +- files/fr/web/css/css_motion_path/index.html | 3 +- .../adding_z-index/index.html | 3 +- .../understanding_z_index/index.html | 3 +- .../stacking_and_float/index.html | 3 +- .../stacking_context_example_1/index.html | 3 +- .../stacking_context_example_2/index.html | 3 +- .../stacking_context_example_3/index.html | 3 +- .../stacking_without_z-index/index.html | 3 +- .../the_stacking_context/index.html | 3 +- .../css/css_scroll_snap/basic_concepts/index.html | 3 +- .../css/css_scroll_snap/browser_compat/index.html | 3 +- files/fr/web/css/css_selectors/index.html | 3 +- .../index.html | 7 +- .../fr/web/css/css_shapes/basic_shapes/index.html | 3 +- .../web/css/css_shapes/from_box_values/index.html | 3 +- .../css_shapes/overview_of_css_shapes/index.html | 3 +- .../css/css_shapes/shapes_from_images/index.html | 3 +- .../css_transforms/using_css_transforms/index.html | 3 +- .../using_css_transitions/index.html | 3 +- files/fr/web/css/css_types/index.html | 3 +- files/fr/web/css/css_values_and_units/index.html | 3 +- .../css/cssom_view/coordinate_systems/index.html | 3 +- files/fr/web/css/descendant_combinator/index.html | 3 +- files/fr/web/css/easing-function/index.html | 3 +- .../web/css/general_sibling_combinator/index.html | 3 +- files/fr/web/css/id_selectors/index.html | 3 +- files/fr/web/css/inheritance/index.html | 3 +- files/fr/web/css/initial_value/index.html | 3 +- .../web/css/inline_formatting_context/index.html | 3 +- files/fr/web/css/inset-block-end/index.html | 3 +- files/fr/web/css/inset-block-start/index.html | 3 +- files/fr/web/css/inset-inline-end/index.html | 3 +- files/fr/web/css/inset-inline-start/index.html | 3 +- .../breadcrumb_navigation/index.html | 3 +- files/fr/web/css/layout_cookbook/card/index.html | 3 +- .../layout_cookbook/center_an_element/index.html | 3 +- .../css/layout_cookbook/column_layouts/index.html | 3 +- .../cookbook_template/index.html | 3 +- .../layout_cookbook/contribute_a_recipe/index.html | 3 +- .../list_group_with_badges/index.html | 3 +- .../layout_cookbook/split_navigation/index.html | 3 +- .../css/layout_cookbook/sticky_footers/index.html | 3 +- files/fr/web/css/layout_mode/index.html | 3 +- .../list_of_proprietary_css_features/index.html | 3 +- files/fr/web/css/media_queries/index.html | 3 +- .../media_queries/testing_media_queries/index.html | 3 +- .../media_queries/using_media_queries/index.html | 3 +- .../index.html | 3 +- files/fr/web/css/microsoft_extensions/index.html | 3 +- files/fr/web/css/mozilla_extensions/index.html | 3 +- .../guide_to_scroll_anchoring/index.html | 3 +- files/fr/web/css/paged_media/index.html | 3 +- files/fr/web/css/position_value/index.html | 3 +- .../index.html | 7 +- files/fr/web/css/pseudo-elements/index.html | 3 +- files/fr/web/css/replaced_element/index.html | 3 +- files/fr/web/css/resolved_value/index.html | 3 +- .../web/css/scaling_of_svg_backgrounds/index.html | 3 +- files/fr/web/css/shorthand_properties/index.html | 3 +- files/fr/web/css/specified_value/index.html | 3 +- .../css/tools/cubic_bezier_generator/index.html | 3 +- files/fr/web/css/tools/index.html | 3 +- .../css/tools/linear-gradient_generator/index.html | 3 +- files/fr/web/css/type_selectors/index.html | 3 +- files/fr/web/css/universal_selectors/index.html | 3 +- files/fr/web/css/used_value/index.html | 3 +- .../fr/web/css/value_definition_syntax/index.html | 3 +- files/fr/web/css/viewport_concepts/index.html | 3 +- .../fr/web/css/visual_formatting_model/index.html | 3 +- .../web/demos_of_open_web_technologies/index.html | 3 +- files/fr/web/guide/ajax/community/index.html | 3 +- files/fr/web/guide/ajax/getting_started/index.html | 3 +- .../index.html | 3 +- .../guide/css/block_formatting_context/index.html | 3 +- .../creating_and_triggering_events/index.html | 3 +- files/fr/web/guide/events/index.html | 3 +- files/fr/web/guide/events/media_events/index.html | 3 +- .../index.html | 3 +- .../web/guide/html/content_categories/index.html | 3 +- .../fr/web/guide/html/editable_content/index.html | 3 +- .../html/html5/introduction_to_html5/index.html | 3 +- .../using_html_sections_and_outlines/index.html | 3 +- .../introduction_to_web_development/index.html | 3 +- .../writing_forward-compatible_websites/index.html | 3 +- files/fr/web/html/applying_color/index.html | 3 +- .../fr/web/html/attributes/autocomplete/index.html | 3 +- .../fr/web/html/attributes/crossorigin/index.html | 3 +- files/fr/web/html/attributes/index.html | 3 +- files/fr/web/html/attributes/pattern/index.html | 3 +- files/fr/web/html/block-level_elements/index.html | 3 +- files/fr/web/html/cors_enabled_image/index.html | 3 +- files/fr/web/html/date_and_time_formats/index.html | 3 +- .../html/global_attributes/accesskey/index.html | 3 +- .../global_attributes/autocapitalize/index.html | 3 +- .../fr/web/html/global_attributes/class/index.html | 3 +- .../global_attributes/contenteditable/index.html | 3 +- .../html/global_attributes/contextmenu/index.html | 3 +- .../html/global_attributes/data-_star_/index.html | 3 +- files/fr/web/html/global_attributes/dir/index.html | 3 +- .../html/global_attributes/draggable/index.html | 3 +- .../web/html/global_attributes/hidden/index.html | 3 +- files/fr/web/html/global_attributes/id/index.html | 3 +- files/fr/web/html/global_attributes/index.html | 3 +- .../html/global_attributes/inputmode/index.html | 3 +- files/fr/web/html/global_attributes/is/index.html | 3 +- .../web/html/global_attributes/itemid/index.html | 3 +- .../web/html/global_attributes/itemprop/index.html | 3 +- .../web/html/global_attributes/itemref/index.html | 3 +- .../html/global_attributes/itemscope/index.html | 3 +- .../web/html/global_attributes/itemtype/index.html | 3 +- .../fr/web/html/global_attributes/lang/index.html | 3 +- .../fr/web/html/global_attributes/slot/index.html | 3 +- .../html/global_attributes/spellcheck/index.html | 3 +- .../fr/web/html/global_attributes/style/index.html | 3 +- .../web/html/global_attributes/tabindex/index.html | 3 +- .../fr/web/html/global_attributes/title/index.html | 3 +- .../html/global_attributes/translate/index.html | 3 +- .../x-ms-acceleratorkey/index.html | 3 +- .../x-ms-format-detection/index.html | 3 +- files/fr/web/html/inline_elements/index.html | 3 +- files/fr/web/html/link_types/index.html | 3 +- files/fr/web/html/microdata/index.html | 3 +- files/fr/web/html/preloading_content/index.html | 3 +- .../html/using_the_application_cache/index.html | 3 +- .../index.html | 3 +- .../identifying_resources_on_the_web/index.html | 3 +- .../http/basics_of_http/resource_urls/index.html | 3 +- .../index.html | 3 +- files/fr/web/http/caching/index.html | 3 +- files/fr/web/http/conditional_requests/index.html | 3 +- .../corsalloworiginnotmatchingorigin/index.html | 3 +- .../http/cors/errors/corsdidnotsucceed/index.html | 3 +- .../web/http/cors/errors/corsdisabled/index.html | 3 +- .../cors/errors/corsmissingalloworigin/index.html | 3 +- files/fr/web/http/headers/server/index.html | 3 +- files/fr/web/http/link_prefetching_faq/index.html | 3 +- files/fr/web/http/methods/connect/index.html | 3 +- files/fr/web/http/methods/delete/index.html | 3 +- files/fr/web/http/methods/get/index.html | 3 +- files/fr/web/http/methods/head/index.html | 3 +- files/fr/web/http/methods/index.html | 3 +- files/fr/web/http/methods/options/index.html | 3 +- files/fr/web/http/methods/patch/index.html | 3 +- files/fr/web/http/methods/post/index.html | 3 +- files/fr/web/http/methods/put/index.html | 3 +- files/fr/web/http/methods/trace/index.html | 3 +- files/fr/web/http/overview/index.html | 3 +- files/fr/web/http/public_key_pinning/index.html | 3 +- .../a_re-introduction_to_javascript/index.html | 3 +- .../fr/web/javascript/about_javascript/index.html | 3 +- files/fr/web/javascript/data_structures/index.html | 3 +- .../index.html | 3 +- .../equality_comparisons_and_sameness/index.html | 3 +- files/fr/web/javascript/eventloop/index.html | 3 +- .../control_flow_and_error_handling/index.html | 3 +- .../guide/details_of_the_object_model/index.html | 3 +- .../guide/expressions_and_operators/index.html | 3 +- files/fr/web/javascript/guide/functions/index.html | 3 +- .../javascript/guide/grammar_and_types/index.html | 3 +- .../guide/indexed_collections/index.html | 3 +- .../guide/iterators_and_generators/index.html | 3 +- .../javascript/guide/keyed_collections/index.html | 3 +- .../guide/loops_and_iteration/index.html | 3 +- .../javascript/guide/meta_programming/index.html | 3 +- .../javascript/guide/numbers_and_dates/index.html | 3 +- .../regular_expressions/assertions/index.html | 3 +- .../character_classes/index.html | 3 +- .../groups_and_ranges/index.html | 3 +- .../guide/regular_expressions/index.html | 3 +- .../regular_expressions/quantifiers/index.html | 3 +- .../unicode_property_escapes/index.html | 3 +- .../javascript/guide/text_formatting/index.html | 5 +- .../web/javascript/guide/using_promises/index.html | 3 +- .../guide/working_with_objects/index.html | 3 +- .../inheritance_and_the_prototype_chain/index.html | 3 +- .../fr/web/javascript/memory_management/index.html | 3 +- files/fr/web/javascript/reference/about/index.html | 3 +- .../classes/public_class_fields/index.html | 3 +- .../deprecated_and_obsolete_features/index.html | 3 +- .../the_legacy_iterator_protocol/index.html | 4 +- .../reference/errors/already_has_pragma/index.html | 3 +- .../errors/array_sort_argument/index.html | 3 +- .../reference/errors/bad_octal/index.html | 3 +- .../reference/errors/bad_radix/index.html | 3 +- .../reference/errors/bad_regexp_flag/index.html | 3 +- .../errors/bad_return_or_yield/index.html | 3 +- .../errors/called_on_incompatible_type/index.html | 3 +- .../index.html | 3 +- .../errors/cant_access_property/index.html | 3 +- .../errors/cant_assign_to_property/index.html | 3 +- .../index.html | 3 +- .../reference/errors/cant_delete/index.html | 3 +- .../errors/cant_redefine_property/index.html | 3 +- .../errors/cyclic_object_value/index.html | 3 +- .../reference/errors/dead_object/index.html | 3 +- .../errors/delete_in_strict_mode/index.html | 3 +- .../index.html | 3 +- .../deprecated_expression_closures/index.html | 3 +- .../reference/errors/deprecated_octal/index.html | 3 +- .../errors/deprecated_source_map_pragma/index.html | 3 +- .../errors/deprecated_string_generics/index.html | 3 +- .../errors/deprecated_tolocaleformat/index.html | 3 +- .../reference/errors/equal_as_assign/index.html | 3 +- .../for-each-in_loops_are_deprecated/index.html | 3 +- .../reference/errors/getter_only/index.html | 3 +- .../errors/identifier_after_number/index.html | 3 +- .../reference/errors/illegal_character/index.html | 3 +- .../errors/in_operator_no_object/index.html | 3 +- .../fr/web/javascript/reference/errors/index.html | 3 +- .../errors/invalid_array_length/index.html | 3 +- .../invalid_assignment_left-hand_side/index.html | 3 +- .../errors/invalid_const_assignment/index.html | 3 +- .../reference/errors/invalid_date/index.html | 3 +- .../errors/invalid_for-in_initializer/index.html | 3 +- .../errors/invalid_for-of_initializer/index.html | 3 +- .../index.html | 3 +- .../reference/errors/is_not_iterable/index.html | 3 +- .../reference/errors/json_bad_parse/index.html | 3 +- .../errors/malformed_formal_parameter/index.html | 3 +- .../reference/errors/malformed_uri/index.html | 3 +- .../errors/missing_bracket_after_list/index.html | 3 +- .../missing_colon_after_property_id/index.html | 3 +- .../missing_curly_after_function_body/index.html | 3 +- .../missing_curly_after_property_list/index.html | 3 +- .../errors/missing_formal_parameter/index.html | 3 +- .../errors/missing_initializer_in_const/index.html | 3 +- .../missing_name_after_dot_operator/index.html | 3 +- .../index.html | 3 +- .../missing_parenthesis_after_condition/index.html | 3 +- .../missing_semicolon_before_statement/index.html | 3 +- .../errors/more_arguments_needed/index.html | 3 +- .../errors/negative_repetition_count/index.html | 3 +- .../reference/errors/no_non-null_object/index.html | 3 +- .../reference/errors/no_properties/index.html | 3 +- .../reference/errors/no_variable_name/index.html | 3 +- .../non_configurable_array_element/index.html | 3 +- .../reference/errors/not_a_codepoint/index.html | 3 +- .../reference/errors/not_a_constructor/index.html | 3 +- .../reference/errors/not_a_function/index.html | 3 +- .../reference/errors/not_defined/index.html | 3 +- .../reference/errors/precision_range/index.html | 3 +- .../errors/property_access_denied/index.html | 3 +- .../reference/errors/read-only/index.html | 3 +- .../errors/redeclared_parameter/index.html | 3 +- .../index.html | 3 +- .../errors/reserved_identifier/index.html | 3 +- .../errors/resulting_string_too_large/index.html | 3 +- .../reference/errors/stmt_after_return/index.html | 3 +- .../errors/strict_non_simple_params/index.html | 3 +- .../reference/errors/too_much_recursion/index.html | 3 +- .../typed_array_invalid_arguments/index.html | 3 +- .../reference/errors/undeclared_var/index.html | 3 +- .../reference/errors/undefined_prop/index.html | 3 +- .../reference/errors/unexpected_token/index.html | 3 +- .../reference/errors/unexpected_type/index.html | 3 +- .../errors/unnamed_function_statement/index.html | 3 +- .../errors/unterminated_string_literal/index.html | 3 +- .../reference/errors/var_hides_argument/index.html | 3 +- .../functions/arguments/@@iterator/index.html | 5 +- .../functions/arguments/callee/index.html | 3 +- .../reference/functions/arguments/index.html | 3 +- .../functions/arguments/length/index.html | 3 +- .../reference/functions/arrow_functions/index.html | 3 +- .../functions/default_parameters/index.html | 3 +- .../javascript/reference/functions/get/index.html | 3 +- .../web/javascript/reference/functions/index.html | 3 +- .../functions/method_definitions/index.html | 3 +- .../reference/functions/rest_parameters/index.html | 3 +- .../javascript/reference/functions/set/index.html | 3 +- .../global_objects/aggregateerror/index.html | 3 +- .../global_objects/array/@@iterator/index.html | 5 +- .../global_objects/array/@@species/index.html | 5 +- .../global_objects/array/@@unscopables/index.html | 5 +- .../global_objects/array/array/index.html | 3 +- .../global_objects/array/concat/index.html | 3 +- .../global_objects/array/copywithin/index.html | 3 +- .../global_objects/array/entries/index.html | 3 +- .../global_objects/array/every/index.html | 3 +- .../reference/global_objects/array/fill/index.html | 3 +- .../global_objects/array/filter/index.html | 3 +- .../reference/global_objects/array/find/index.html | 3 +- .../global_objects/array/findindex/index.html | 3 +- .../reference/global_objects/array/flat/index.html | 3 +- .../global_objects/array/flatmap/index.html | 3 +- .../global_objects/array/foreach/index.html | 3 +- .../reference/global_objects/array/from/index.html | 3 +- .../global_objects/array/includes/index.html | 3 +- .../reference/global_objects/array/index.html | 3 +- .../global_objects/array/indexof/index.html | 3 +- .../global_objects/array/isarray/index.html | 3 +- .../reference/global_objects/array/join/index.html | 3 +- .../reference/global_objects/array/keys/index.html | 3 +- .../global_objects/array/lastindexof/index.html | 3 +- .../global_objects/array/length/index.html | 3 +- .../reference/global_objects/array/map/index.html | 3 +- .../reference/global_objects/array/of/index.html | 3 +- .../reference/global_objects/array/pop/index.html | 3 +- .../reference/global_objects/array/push/index.html | 3 +- .../global_objects/array/reduce/index.html | 3 +- .../global_objects/array/reduceright/index.html | 3 +- .../global_objects/array/reverse/index.html | 3 +- .../global_objects/array/shift/index.html | 3 +- .../global_objects/array/slice/index.html | 3 +- .../reference/global_objects/array/some/index.html | 3 +- .../reference/global_objects/array/sort/index.html | 3 +- .../global_objects/array/splice/index.html | 3 +- .../global_objects/array/tolocalestring/index.html | 3 +- .../global_objects/array/tosource/index.html | 3 +- .../global_objects/array/tostring/index.html | 3 +- .../global_objects/array/unshift/index.html | 3 +- .../global_objects/array/values/index.html | 3 +- .../arraybuffer/@@species/index.html | 5 +- .../arraybuffer/bytelength/index.html | 3 +- .../global_objects/arraybuffer/index.html | 3 +- .../global_objects/arraybuffer/isview/index.html | 3 +- .../global_objects/arraybuffer/slice/index.html | 3 +- .../global_objects/asyncfunction/index.html | 3 +- .../global_objects/atomics/add/index.html | 3 +- .../global_objects/atomics/and/index.html | 3 +- .../atomics/compareexchange/index.html | 3 +- .../global_objects/atomics/exchange/index.html | 3 +- .../reference/global_objects/atomics/index.html | 3 +- .../global_objects/atomics/islockfree/index.html | 3 +- .../global_objects/atomics/load/index.html | 3 +- .../global_objects/atomics/notify/index.html | 3 +- .../reference/global_objects/atomics/or/index.html | 3 +- .../global_objects/atomics/store/index.html | 3 +- .../global_objects/atomics/sub/index.html | 3 +- .../global_objects/atomics/wait/index.html | 3 +- .../global_objects/atomics/xor/index.html | 3 +- .../global_objects/bigint/asintn/index.html | 3 +- .../global_objects/bigint/asuintn/index.html | 3 +- .../reference/global_objects/bigint/index.html | 3 +- .../bigint/tolocalestring/index.html | 3 +- .../global_objects/bigint/tostring/index.html | 3 +- .../global_objects/bigint/valueof/index.html | 3 +- .../global_objects/bigint64array/index.html | 3 +- .../global_objects/biguint64array/index.html | 3 +- .../reference/global_objects/boolean/index.html | 3 +- .../global_objects/boolean/tosource/index.html | 3 +- .../global_objects/boolean/tostring/index.html | 3 +- .../global_objects/boolean/valueof/index.html | 3 +- .../global_objects/dataview/buffer/index.html | 3 +- .../global_objects/dataview/bytelength/index.html | 3 +- .../global_objects/dataview/byteoffset/index.html | 3 +- .../global_objects/dataview/getbigint64/index.html | 3 +- .../dataview/getbiguint64/index.html | 3 +- .../global_objects/dataview/getfloat32/index.html | 3 +- .../global_objects/dataview/getfloat64/index.html | 3 +- .../global_objects/dataview/getint16/index.html | 3 +- .../global_objects/dataview/getint32/index.html | 3 +- .../global_objects/dataview/getint8/index.html | 3 +- .../global_objects/dataview/getuint16/index.html | 3 +- .../global_objects/dataview/getuint32/index.html | 3 +- .../global_objects/dataview/getuint8/index.html | 3 +- .../reference/global_objects/dataview/index.html | 3 +- .../global_objects/dataview/setbigint64/index.html | 3 +- .../dataview/setbiguint64/index.html | 3 +- .../global_objects/dataview/setfloat32/index.html | 3 +- .../global_objects/dataview/setfloat64/index.html | 3 +- .../global_objects/dataview/setint16/index.html | 3 +- .../global_objects/dataview/setint32/index.html | 3 +- .../global_objects/dataview/setint8/index.html | 3 +- .../global_objects/dataview/setuint16/index.html | 3 +- .../global_objects/dataview/setuint32/index.html | 3 +- .../global_objects/dataview/setuint8/index.html | 3 +- .../global_objects/date/@@toprimitive/index.html | 5 +- .../global_objects/date/getdate/index.html | 3 +- .../global_objects/date/getday/index.html | 3 +- .../global_objects/date/getfullyear/index.html | 3 +- .../global_objects/date/gethours/index.html | 3 +- .../global_objects/date/getmilliseconds/index.html | 3 +- .../global_objects/date/getminutes/index.html | 3 +- .../global_objects/date/getmonth/index.html | 3 +- .../global_objects/date/getseconds/index.html | 3 +- .../global_objects/date/gettime/index.html | 3 +- .../date/gettimezoneoffset/index.html | 3 +- .../global_objects/date/getutcdate/index.html | 3 +- .../global_objects/date/getutcday/index.html | 3 +- .../global_objects/date/getutcfullyear/index.html | 3 +- .../global_objects/date/getutchours/index.html | 3 +- .../date/getutcmilliseconds/index.html | 3 +- .../global_objects/date/getutcminutes/index.html | 3 +- .../global_objects/date/getutcmonth/index.html | 3 +- .../global_objects/date/getutcseconds/index.html | 3 +- .../global_objects/date/getyear/index.html | 3 +- .../reference/global_objects/date/index.html | 3 +- .../reference/global_objects/date/now/index.html | 3 +- .../reference/global_objects/date/parse/index.html | 3 +- .../global_objects/date/setdate/index.html | 3 +- .../global_objects/date/setfullyear/index.html | 3 +- .../global_objects/date/sethours/index.html | 3 +- .../global_objects/date/setmilliseconds/index.html | 3 +- .../global_objects/date/setminutes/index.html | 3 +- .../global_objects/date/setmonth/index.html | 3 +- .../global_objects/date/setseconds/index.html | 3 +- .../global_objects/date/settime/index.html | 3 +- .../global_objects/date/setutcdate/index.html | 3 +- .../global_objects/date/setutcfullyear/index.html | 3 +- .../global_objects/date/setutchours/index.html | 3 +- .../date/setutcmilliseconds/index.html | 3 +- .../global_objects/date/setutcminutes/index.html | 3 +- .../global_objects/date/setutcmonth/index.html | 3 +- .../global_objects/date/setutcseconds/index.html | 3 +- .../global_objects/date/setyear/index.html | 3 +- .../global_objects/date/todatestring/index.html | 3 +- .../global_objects/date/togmtstring/index.html | 3 +- .../global_objects/date/toisostring/index.html | 3 +- .../global_objects/date/tojson/index.html | 3 +- .../date/tolocaledatestring/index.html | 3 +- .../global_objects/date/tolocalestring/index.html | 3 +- .../date/tolocaletimestring/index.html | 3 +- .../global_objects/date/tosource/index.html | 3 +- .../global_objects/date/tostring/index.html | 3 +- .../global_objects/date/totimestring/index.html | 3 +- .../global_objects/date/toutcstring/index.html | 3 +- .../reference/global_objects/date/utc/index.html | 3 +- .../global_objects/date/valueof/index.html | 3 +- .../reference/global_objects/decodeuri/index.html | 3 +- .../global_objects/decodeuricomponent/index.html | 3 +- .../reference/global_objects/encodeuri/index.html | 3 +- .../global_objects/encodeuricomponent/index.html | 3 +- .../global_objects/error/columnnumber/index.html | 3 +- .../global_objects/error/filename/index.html | 3 +- .../reference/global_objects/error/index.html | 3 +- .../global_objects/error/linenumber/index.html | 3 +- .../global_objects/error/message/index.html | 3 +- .../reference/global_objects/error/name/index.html | 3 +- .../global_objects/error/stack/index.html | 3 +- .../global_objects/error/tosource/index.html | 3 +- .../global_objects/error/tostring/index.html | 3 +- .../reference/global_objects/escape/index.html | 3 +- .../reference/global_objects/eval/index.html | 3 +- .../reference/global_objects/evalerror/index.html | 3 +- .../global_objects/float32array/index.html | 3 +- .../global_objects/float64array/index.html | 3 +- .../global_objects/function/apply/index.html | 3 +- .../global_objects/function/arguments/index.html | 3 +- .../global_objects/function/bind/index.html | 3 +- .../global_objects/function/call/index.html | 3 +- .../global_objects/function/caller/index.html | 3 +- .../global_objects/function/displayname/index.html | 3 +- .../reference/global_objects/function/index.html | 3 +- .../global_objects/function/length/index.html | 3 +- .../global_objects/function/name/index.html | 3 +- .../global_objects/function/tosource/index.html | 3 +- .../global_objects/function/tostring/index.html | 3 +- .../reference/global_objects/generator/index.html | 3 +- .../global_objects/generator/next/index.html | 3 +- .../global_objects/generator/return/index.html | 3 +- .../global_objects/generator/throw/index.html | 3 +- .../global_objects/generatorfunction/index.html | 3 +- .../reference/global_objects/globalthis/index.html | 3 +- .../javascript/reference/global_objects/index.html | 3 +- .../reference/global_objects/infinity/index.html | 3 +- .../reference/global_objects/int16array/index.html | 3 +- .../reference/global_objects/int32array/index.html | 3 +- .../reference/global_objects/int8array/index.html | 3 +- .../global_objects/internalerror/index.html | 3 +- .../intl/collator/compare/index.html | 3 +- .../global_objects/intl/collator/index.html | 3 +- .../intl/collator/resolvedoptions/index.html | 3 +- .../intl/collator/supportedlocalesof/index.html | 3 +- .../intl/datetimeformat/format/index.html | 3 +- .../intl/datetimeformat/formatrange/index.html | 3 +- .../datetimeformat/formatrangetoparts/index.html | 3 +- .../intl/datetimeformat/formattoparts/index.html | 3 +- .../global_objects/intl/datetimeformat/index.html | 3 +- .../intl/datetimeformat/resolvedoptions/index.html | 3 +- .../datetimeformat/supportedlocalesof/index.html | 3 +- .../intl/getcanonicallocales/index.html | 3 +- .../reference/global_objects/intl/index.html | 3 +- .../intl/listformat/format/index.html | 3 +- .../intl/listformat/formattoparts/index.html | 3 +- .../global_objects/intl/listformat/index.html | 3 +- .../intl/listformat/resolvedoptions/index.html | 3 +- .../intl/listformat/supportedlocalesof/index.html | 3 +- .../global_objects/intl/locale/basename/index.html | 3 +- .../global_objects/intl/locale/calendar/index.html | 3 +- .../intl/locale/casefirst/index.html | 3 +- .../intl/locale/collation/index.html | 3 +- .../intl/locale/hourcycle/index.html | 3 +- .../global_objects/intl/locale/index.html | 3 +- .../global_objects/intl/locale/language/index.html | 3 +- .../global_objects/intl/locale/maximize/index.html | 3 +- .../global_objects/intl/locale/minimize/index.html | 3 +- .../intl/locale/numberingsystem/index.html | 3 +- .../global_objects/intl/locale/numeric/index.html | 3 +- .../global_objects/intl/locale/region/index.html | 3 +- .../global_objects/intl/locale/script/index.html | 3 +- .../global_objects/intl/locale/tostring/index.html | 3 +- .../intl/numberformat/format/index.html | 3 +- .../intl/numberformat/formattoparts/index.html | 3 +- .../global_objects/intl/numberformat/index.html | 3 +- .../intl/numberformat/resolvedoptions/index.html | 3 +- .../numberformat/supportedlocalesof/index.html | 3 +- .../global_objects/intl/pluralrules/index.html | 3 +- .../intl/pluralrules/resolvedoptions/index.html | 3 +- .../intl/pluralrules/select/index.html | 3 +- .../intl/pluralrules/supportedlocalesof/index.html | 3 +- .../intl/relativetimeformat/format/index.html | 3 +- .../relativetimeformat/formattoparts/index.html | 3 +- .../intl/relativetimeformat/index.html | 3 +- .../relativetimeformat/resolvedoptions/index.html | 4 +- .../supportedlocalesof/index.html | 4 +- .../reference/global_objects/isfinite/index.html | 3 +- .../reference/global_objects/isnan/index.html | 3 +- .../reference/global_objects/json/index.html | 3 +- .../reference/global_objects/json/parse/index.html | 3 +- .../global_objects/json/stringify/index.html | 3 +- .../global_objects/map/@@iterator/index.html | 5 +- .../global_objects/map/@@species/index.html | 5 +- .../global_objects/map/@@tostringtag/index.html | 5 +- .../reference/global_objects/map/clear/index.html | 3 +- .../reference/global_objects/map/delete/index.html | 3 +- .../global_objects/map/entries/index.html | 3 +- .../global_objects/map/foreach/index.html | 3 +- .../reference/global_objects/map/get/index.html | 3 +- .../reference/global_objects/map/has/index.html | 3 +- .../reference/global_objects/map/index.html | 3 +- .../reference/global_objects/map/keys/index.html | 3 +- .../reference/global_objects/map/set/index.html | 3 +- .../reference/global_objects/map/size/index.html | 3 +- .../reference/global_objects/map/values/index.html | 3 +- .../reference/global_objects/math/abs/index.html | 3 +- .../reference/global_objects/math/acos/index.html | 3 +- .../reference/global_objects/math/acosh/index.html | 3 +- .../reference/global_objects/math/asin/index.html | 3 +- .../reference/global_objects/math/asinh/index.html | 3 +- .../reference/global_objects/math/atan/index.html | 3 +- .../reference/global_objects/math/atan2/index.html | 3 +- .../reference/global_objects/math/atanh/index.html | 3 +- .../reference/global_objects/math/cbrt/index.html | 3 +- .../reference/global_objects/math/ceil/index.html | 3 +- .../reference/global_objects/math/clz32/index.html | 3 +- .../reference/global_objects/math/cos/index.html | 3 +- .../reference/global_objects/math/cosh/index.html | 3 +- .../reference/global_objects/math/e/index.html | 3 +- .../reference/global_objects/math/exp/index.html | 3 +- .../reference/global_objects/math/expm1/index.html | 3 +- .../reference/global_objects/math/floor/index.html | 3 +- .../global_objects/math/fround/index.html | 3 +- .../reference/global_objects/math/hypot/index.html | 3 +- .../reference/global_objects/math/imul/index.html | 3 +- .../reference/global_objects/math/index.html | 3 +- .../reference/global_objects/math/ln10/index.html | 3 +- .../reference/global_objects/math/ln2/index.html | 3 +- .../reference/global_objects/math/log/index.html | 3 +- .../reference/global_objects/math/log10/index.html | 3 +- .../global_objects/math/log10e/index.html | 3 +- .../reference/global_objects/math/log1p/index.html | 3 +- .../reference/global_objects/math/log2/index.html | 3 +- .../reference/global_objects/math/log2e/index.html | 3 +- .../reference/global_objects/math/max/index.html | 3 +- .../reference/global_objects/math/min/index.html | 3 +- .../reference/global_objects/math/pi/index.html | 3 +- .../reference/global_objects/math/pow/index.html | 3 +- .../global_objects/math/random/index.html | 3 +- .../reference/global_objects/math/round/index.html | 3 +- .../reference/global_objects/math/sign/index.html | 3 +- .../reference/global_objects/math/sin/index.html | 3 +- .../reference/global_objects/math/sinh/index.html | 3 +- .../reference/global_objects/math/sqrt/index.html | 3 +- .../global_objects/math/sqrt1_2/index.html | 3 +- .../reference/global_objects/math/sqrt2/index.html | 3 +- .../reference/global_objects/math/tan/index.html | 3 +- .../reference/global_objects/math/tanh/index.html | 3 +- .../reference/global_objects/math/trunc/index.html | 3 +- .../reference/global_objects/nan/index.html | 3 +- .../reference/global_objects/null/index.html | 3 +- .../global_objects/number/epsilon/index.html | 3 +- .../reference/global_objects/number/index.html | 3 +- .../global_objects/number/isfinite/index.html | 3 +- .../global_objects/number/isinteger/index.html | 3 +- .../global_objects/number/isnan/index.html | 3 +- .../global_objects/number/issafeinteger/index.html | 3 +- .../number/max_safe_integer/index.html | 3 +- .../global_objects/number/max_value/index.html | 3 +- .../number/min_safe_integer/index.html | 3 +- .../global_objects/number/min_value/index.html | 3 +- .../reference/global_objects/number/nan/index.html | 3 +- .../number/negative_infinity/index.html | 3 +- .../global_objects/number/parsefloat/index.html | 3 +- .../global_objects/number/parseint/index.html | 3 +- .../number/positive_infinity/index.html | 3 +- .../global_objects/number/toexponential/index.html | 3 +- .../global_objects/number/tofixed/index.html | 3 +- .../number/tolocalestring/index.html | 3 +- .../global_objects/number/toprecision/index.html | 3 +- .../global_objects/number/tosource/index.html | 3 +- .../global_objects/number/tostring/index.html | 3 +- .../global_objects/number/valueof/index.html | 3 +- .../object/__definegetter__/index.html | 3 +- .../object/__definesetter__/index.html | 3 +- .../object/__lookupgetter__/index.html | 3 +- .../object/__lookupsetter__/index.html | 3 +- .../global_objects/object/assign/index.html | 3 +- .../global_objects/object/constructor/index.html | 3 +- .../global_objects/object/create/index.html | 3 +- .../object/defineproperties/index.html | 3 +- .../object/defineproperty/index.html | 3 +- .../global_objects/object/entries/index.html | 3 +- .../global_objects/object/freeze/index.html | 3 +- .../global_objects/object/fromentries/index.html | 3 +- .../object/getownpropertydescriptor/index.html | 3 +- .../object/getownpropertydescriptors/index.html | 3 +- .../object/getownpropertynames/index.html | 3 +- .../object/getownpropertysymbols/index.html | 3 +- .../object/getprototypeof/index.html | 3 +- .../object/hasownproperty/index.html | 3 +- .../reference/global_objects/object/index.html | 3 +- .../reference/global_objects/object/is/index.html | 3 +- .../global_objects/object/isextensible/index.html | 3 +- .../global_objects/object/isfrozen/index.html | 3 +- .../global_objects/object/isprototypeof/index.html | 3 +- .../global_objects/object/issealed/index.html | 3 +- .../global_objects/object/keys/index.html | 3 +- .../object/preventextensions/index.html | 3 +- .../object/propertyisenumerable/index.html | 3 +- .../global_objects/object/proto/index.html | 3 +- .../global_objects/object/seal/index.html | 3 +- .../object/setprototypeof/index.html | 3 +- .../object/tolocalestring/index.html | 3 +- .../global_objects/object/tosource/index.html | 3 +- .../global_objects/object/tostring/index.html | 3 +- .../global_objects/object/valueof/index.html | 3 +- .../global_objects/object/values/index.html | 3 +- .../reference/global_objects/parsefloat/index.html | 3 +- .../reference/global_objects/parseint/index.html | 3 +- .../global_objects/promise/all/index.html | 3 +- .../global_objects/promise/allsettled/index.html | 3 +- .../global_objects/promise/any/index.html | 3 +- .../global_objects/promise/catch/index.html | 3 +- .../global_objects/promise/finally/index.html | 3 +- .../reference/global_objects/promise/index.html | 3 +- .../global_objects/promise/race/index.html | 3 +- .../global_objects/promise/reject/index.html | 3 +- .../global_objects/promise/resolve/index.html | 3 +- .../global_objects/promise/then/index.html | 3 +- .../reference/global_objects/proxy/index.html | 3 +- .../global_objects/proxy/proxy/apply/index.html | 3 +- .../proxy/proxy/construct/index.html | 3 +- .../proxy/proxy/defineproperty/index.html | 3 +- .../proxy/proxy/deleteproperty/index.html | 3 +- .../global_objects/proxy/proxy/get/index.html | 3 +- .../proxy/getownpropertydescriptor/index.html | 3 +- .../proxy/proxy/getprototypeof/index.html | 3 +- .../global_objects/proxy/proxy/has/index.html | 3 +- .../global_objects/proxy/proxy/index.html | 3 +- .../proxy/proxy/isextensible/index.html | 3 +- .../global_objects/proxy/proxy/ownkeys/index.html | 3 +- .../proxy/proxy/preventextensions/index.html | 3 +- .../global_objects/proxy/proxy/set/index.html | 3 +- .../proxy/proxy/setprototypeof/index.html | 3 +- .../global_objects/proxy/revocable/index.html | 3 +- .../reference/global_objects/rangeerror/index.html | 3 +- .../global_objects/referenceerror/index.html | 3 +- .../global_objects/reflect/apply/index.html | 3 +- .../index.html | 4 +- .../global_objects/reflect/construct/index.html | 3 +- .../reflect/defineproperty/index.html | 3 +- .../reflect/deleteproperty/index.html | 3 +- .../global_objects/reflect/get/index.html | 3 +- .../reflect/getownpropertydescriptor/index.html | 3 +- .../reflect/getprototypeof/index.html | 3 +- .../global_objects/reflect/has/index.html | 3 +- .../reference/global_objects/reflect/index.html | 3 +- .../global_objects/reflect/isextensible/index.html | 3 +- .../global_objects/reflect/ownkeys/index.html | 3 +- .../reflect/preventextensions/index.html | 3 +- .../global_objects/reflect/set/index.html | 3 +- .../reflect/setprototypeof/index.html | 3 +- .../global_objects/regexp/@@match/index.html | 5 +- .../global_objects/regexp/@@matchall/index.html | 5 +- .../global_objects/regexp/@@replace/index.html | 5 +- .../global_objects/regexp/@@search/index.html | 5 +- .../global_objects/regexp/@@species/index.html | 5 +- .../global_objects/regexp/@@split/index.html | 5 +- .../global_objects/regexp/compile/index.html | 3 +- .../global_objects/regexp/dotall/index.html | 3 +- .../global_objects/regexp/exec/index.html | 3 +- .../global_objects/regexp/flags/index.html | 3 +- .../global_objects/regexp/global/index.html | 3 +- .../global_objects/regexp/ignorecase/index.html | 3 +- .../reference/global_objects/regexp/index.html | 3 +- .../global_objects/regexp/input/index.html | 3 +- .../global_objects/regexp/lastindex/index.html | 3 +- .../global_objects/regexp/lastmatch/index.html | 3 +- .../global_objects/regexp/lastparen/index.html | 3 +- .../global_objects/regexp/leftcontext/index.html | 3 +- .../global_objects/regexp/multiline/index.html | 3 +- .../reference/global_objects/regexp/n/index.html | 3 +- .../global_objects/regexp/rightcontext/index.html | 3 +- .../global_objects/regexp/source/index.html | 3 +- .../global_objects/regexp/sticky/index.html | 3 +- .../global_objects/regexp/test/index.html | 3 +- .../global_objects/regexp/tosource/index.html | 3 +- .../global_objects/regexp/tostring/index.html | 3 +- .../global_objects/regexp/unicode/index.html | 3 +- .../global_objects/set/@@iterator/index.html | 5 +- .../global_objects/set/@@species/index.html | 5 +- .../reference/global_objects/set/add/index.html | 3 +- .../reference/global_objects/set/clear/index.html | 3 +- .../reference/global_objects/set/delete/index.html | 3 +- .../global_objects/set/entries/index.html | 3 +- .../global_objects/set/foreach/index.html | 3 +- .../reference/global_objects/set/has/index.html | 3 +- .../reference/global_objects/set/index.html | 3 +- .../reference/global_objects/set/size/index.html | 3 +- .../reference/global_objects/set/values/index.html | 3 +- .../sharedarraybuffer/bytelength/index.html | 3 +- .../global_objects/sharedarraybuffer/index.html | 3 +- .../sharedarraybuffer/slice/index.html | 3 +- .../global_objects/string/@@iterator/index.html | 5 +- .../global_objects/string/anchor/index.html | 3 +- .../reference/global_objects/string/big/index.html | 3 +- .../global_objects/string/blink/index.html | 3 +- .../global_objects/string/bold/index.html | 3 +- .../global_objects/string/charat/index.html | 3 +- .../global_objects/string/charcodeat/index.html | 3 +- .../global_objects/string/codepointat/index.html | 3 +- .../global_objects/string/concat/index.html | 3 +- .../global_objects/string/endswith/index.html | 3 +- .../global_objects/string/fixed/index.html | 3 +- .../global_objects/string/fontcolor/index.html | 3 +- .../global_objects/string/fontsize/index.html | 3 +- .../global_objects/string/fromcharcode/index.html | 3 +- .../global_objects/string/fromcodepoint/index.html | 3 +- .../global_objects/string/includes/index.html | 3 +- .../reference/global_objects/string/index.html | 3 +- .../global_objects/string/indexof/index.html | 3 +- .../global_objects/string/italics/index.html | 3 +- .../global_objects/string/lastindexof/index.html | 3 +- .../global_objects/string/length/index.html | 3 +- .../global_objects/string/link/index.html | 3 +- .../global_objects/string/localecompare/index.html | 3 +- .../global_objects/string/match/index.html | 3 +- .../global_objects/string/matchall/index.html | 3 +- .../global_objects/string/normalize/index.html | 3 +- .../global_objects/string/padend/index.html | 3 +- .../global_objects/string/padstart/index.html | 3 +- .../reference/global_objects/string/raw/index.html | 3 +- .../global_objects/string/repeat/index.html | 3 +- .../global_objects/string/replace/index.html | 3 +- .../global_objects/string/replaceall/index.html | 3 +- .../global_objects/string/search/index.html | 3 +- .../global_objects/string/slice/index.html | 3 +- .../global_objects/string/small/index.html | 3 +- .../global_objects/string/split/index.html | 3 +- .../global_objects/string/startswith/index.html | 3 +- .../global_objects/string/strike/index.html | 3 +- .../reference/global_objects/string/sub/index.html | 3 +- .../global_objects/string/substr/index.html | 3 +- .../global_objects/string/substring/index.html | 3 +- .../reference/global_objects/string/sup/index.html | 3 +- .../string/tolocalelowercase/index.html | 3 +- .../string/tolocaleuppercase/index.html | 3 +- .../global_objects/string/tolowercase/index.html | 3 +- .../global_objects/string/tosource/index.html | 3 +- .../global_objects/string/tostring/index.html | 3 +- .../global_objects/string/touppercase/index.html | 3 +- .../global_objects/string/trim/index.html | 3 +- .../global_objects/string/trimend/index.html | 3 +- .../global_objects/string/trimstart/index.html | 3 +- .../global_objects/string/valueof/index.html | 3 +- .../global_objects/symbol/@@toprimitive/index.html | 5 +- .../global_objects/symbol/asynciterator/index.html | 3 +- .../global_objects/symbol/description/index.html | 3 +- .../reference/global_objects/symbol/for/index.html | 3 +- .../global_objects/symbol/hasinstance/index.html | 3 +- .../reference/global_objects/symbol/index.html | 3 +- .../symbol/isconcatspreadable/index.html | 3 +- .../global_objects/symbol/iterator/index.html | 3 +- .../global_objects/symbol/keyfor/index.html | 3 +- .../global_objects/symbol/match/index.html | 3 +- .../global_objects/symbol/matchall/index.html | 3 +- .../global_objects/symbol/replace/index.html | 3 +- .../global_objects/symbol/search/index.html | 3 +- .../global_objects/symbol/species/index.html | 3 +- .../global_objects/symbol/split/index.html | 3 +- .../global_objects/symbol/toprimitive/index.html | 3 +- .../global_objects/symbol/tosource/index.html | 3 +- .../global_objects/symbol/tostring/index.html | 3 +- .../global_objects/symbol/tostringtag/index.html | 3 +- .../global_objects/symbol/unscopables/index.html | 3 +- .../global_objects/symbol/valueof/index.html | 3 +- .../global_objects/syntaxerror/index.html | 3 +- .../typedarray/@@iterator/index.html | 5 +- .../global_objects/typedarray/@@species/index.html | 5 +- .../global_objects/typedarray/buffer/index.html | 3 +- .../typedarray/bytelength/index.html | 3 +- .../typedarray/byteoffset/index.html | 3 +- .../typedarray/bytes_per_element/index.html | 3 +- .../typedarray/copywithin/index.html | 3 +- .../global_objects/typedarray/entries/index.html | 3 +- .../global_objects/typedarray/every/index.html | 3 +- .../global_objects/typedarray/fill/index.html | 3 +- .../global_objects/typedarray/filter/index.html | 3 +- .../global_objects/typedarray/find/index.html | 3 +- .../global_objects/typedarray/findindex/index.html | 3 +- .../global_objects/typedarray/foreach/index.html | 3 +- .../global_objects/typedarray/from/index.html | 3 +- .../global_objects/typedarray/includes/index.html | 3 +- .../reference/global_objects/typedarray/index.html | 3 +- .../global_objects/typedarray/indexof/index.html | 3 +- .../global_objects/typedarray/join/index.html | 3 +- .../global_objects/typedarray/keys/index.html | 3 +- .../typedarray/lastindexof/index.html | 3 +- .../global_objects/typedarray/length/index.html | 3 +- .../global_objects/typedarray/map/index.html | 3 +- .../global_objects/typedarray/name/index.html | 3 +- .../global_objects/typedarray/of/index.html | 3 +- .../global_objects/typedarray/reduce/index.html | 3 +- .../typedarray/reduceright/index.html | 3 +- .../global_objects/typedarray/reverse/index.html | 3 +- .../global_objects/typedarray/set/index.html | 3 +- .../global_objects/typedarray/slice/index.html | 3 +- .../global_objects/typedarray/some/index.html | 3 +- .../global_objects/typedarray/sort/index.html | 3 +- .../global_objects/typedarray/subarray/index.html | 3 +- .../typedarray/tolocalestring/index.html | 3 +- .../global_objects/typedarray/tostring/index.html | 3 +- .../global_objects/typedarray/values/index.html | 3 +- .../reference/global_objects/typeerror/index.html | 3 +- .../global_objects/uint16array/index.html | 3 +- .../global_objects/uint32array/index.html | 3 +- .../reference/global_objects/uint8array/index.html | 3 +- .../global_objects/uint8clampedarray/index.html | 3 +- .../reference/global_objects/undefined/index.html | 3 +- .../reference/global_objects/unescape/index.html | 3 +- .../reference/global_objects/uneval/index.html | 3 +- .../reference/global_objects/urierror/index.html | 3 +- .../global_objects/weakmap/clear/index.html | 3 +- .../global_objects/weakmap/delete/index.html | 3 +- .../global_objects/weakmap/get/index.html | 3 +- .../global_objects/weakmap/has/index.html | 3 +- .../reference/global_objects/weakmap/index.html | 3 +- .../global_objects/weakmap/set/index.html | 3 +- .../global_objects/weakset/add/index.html | 3 +- .../global_objects/weakset/clear/index.html | 3 +- .../global_objects/weakset/delete/index.html | 3 +- .../global_objects/weakset/has/index.html | 3 +- .../reference/global_objects/weakset/index.html | 3 +- .../global_objects/webassembly/compile/index.html | 3 +- .../webassembly/compileerror/index.html | 3 +- .../webassembly/compilestreaming/index.html | 3 +- .../global_objects/webassembly/global/index.html | 3 +- .../global_objects/webassembly/index.html | 3 +- .../webassembly/instance/exports/index.html | 3 +- .../global_objects/webassembly/instance/index.html | 3 +- .../webassembly/instantiate/index.html | 3 +- .../webassembly/instantiatestreaming/index.html | 3 +- .../webassembly/linkerror/index.html | 3 +- .../webassembly/memory/buffer/index.html | 3 +- .../webassembly/memory/grow/index.html | 3 +- .../global_objects/webassembly/memory/index.html | 3 +- .../webassembly/module/customsections/index.html | 3 +- .../webassembly/module/exports/index.html | 3 +- .../webassembly/module/imports/index.html | 3 +- .../global_objects/webassembly/module/index.html | 3 +- .../webassembly/runtimeerror/index.html | 3 +- .../webassembly/table/get/index.html | 3 +- .../webassembly/table/grow/index.html | 3 +- .../global_objects/webassembly/table/index.html | 3 +- .../webassembly/table/length/index.html | 3 +- .../webassembly/table/set/index.html | 3 +- .../global_objects/webassembly/validate/index.html | 3 +- .../reference/iteration_protocols/index.html | 3 +- .../reference/lexical_grammar/index.html | 3 +- .../reference/operators/addition/index.html | 3 +- .../operators/addition_assignment/index.html | 3 +- .../reference/operators/assignment/index.html | 3 +- .../reference/operators/async_function/index.html | 3 +- .../reference/operators/await/index.html | 3 +- .../reference/operators/class/index.html | 3 +- .../reference/operators/comma_operator/index.html | 3 +- .../operators/conditional_operator/index.html | 3 +- .../reference/operators/delete/index.html | 3 +- .../operators/destructuring_assignment/index.html | 3 +- .../reference/operators/function/index.html | 3 +- .../reference/operators/function_star_/index.html | 3 +- .../reference/operators/grouping/index.html | 3 +- .../javascript/reference/operators/in/index.html | 3 +- .../web/javascript/reference/operators/index.html | 3 +- .../reference/operators/instanceof/index.html | 3 +- .../reference/operators/new.target/index.html | 3 +- .../javascript/reference/operators/new/index.html | 3 +- .../nullish_coalescing_operator/index.html | 3 +- .../operators/object_initializer/index.html | 3 +- .../operators/operator_precedence/index.html | 3 +- .../operators/optional_chaining/index.html | 3 +- .../operators/pipeline_operator/index.html | 3 +- .../operators/property_accessors/index.html | 3 +- .../reference/operators/spread_syntax/index.html | 3 +- .../reference/operators/super/index.html | 3 +- .../javascript/reference/operators/this/index.html | 3 +- .../reference/operators/typeof/index.html | 3 +- .../javascript/reference/operators/void/index.html | 3 +- .../reference/operators/yield/index.html | 3 +- .../reference/operators/yield_star_/index.html | 3 +- .../reference/statements/async_function/index.html | 3 +- .../reference/statements/block/index.html | 3 +- .../reference/statements/break/index.html | 3 +- .../reference/statements/class/index.html | 3 +- .../reference/statements/const/index.html | 3 +- .../reference/statements/continue/index.html | 3 +- .../reference/statements/debugger/index.html | 3 +- .../reference/statements/do...while/index.html | 3 +- .../reference/statements/empty/index.html | 3 +- .../reference/statements/export/index.html | 3 +- .../reference/statements/for-await...of/index.html | 3 +- .../reference/statements/for...in/index.html | 3 +- .../reference/statements/for...of/index.html | 3 +- .../javascript/reference/statements/for/index.html | 3 +- .../reference/statements/function/index.html | 3 +- .../reference/statements/function_star_/index.html | 3 +- .../reference/statements/if...else/index.html | 3 +- .../reference/statements/import.meta/index.html | 3 +- .../reference/statements/import/index.html | 3 +- .../web/javascript/reference/statements/index.html | 3 +- .../reference/statements/label/index.html | 3 +- .../javascript/reference/statements/let/index.html | 3 +- .../reference/statements/return/index.html | 3 +- .../reference/statements/switch/index.html | 3 +- .../reference/statements/throw/index.html | 3 +- .../reference/statements/try...catch/index.html | 3 +- .../javascript/reference/statements/var/index.html | 3 +- .../reference/statements/while/index.html | 3 +- .../reference/statements/with/index.html | 3 +- .../transitioning_to_strict_mode/index.html | 3 +- .../reference/template_literals/index.html | 3 +- .../reference/trailing_commas/index.html | 3 +- .../index.html | 5 +- files/fr/web/javascript/typed_arrays/index.html | 3 +- files/fr/web/mathml/attribute/values/index.html | 3 +- .../deriving_the_quadratic_formula/index.html | 3 +- files/fr/web/mathml/examples/index.html | 3 +- .../examples/mathml_pythagorean_theorem/index.html | 3 +- .../index.html | 3 +- files/fr/web/media/formats/image_types/index.html | 3 +- .../fr/web/media/formats/support_issues/index.html | 3 +- .../web/performance/performance_budgets/index.html | 3 +- .../add_to_home_screen/index.html | 3 +- .../fr/web/progressive_web_apps/loading/index.html | 3 +- .../re-engageable_notifications_push/index.html | 3 +- .../responsive/media_types/index.html | 5 +- .../responsive_design_building_blocks/index.html | 3 +- .../fr/web/security/same-origin_policy/index.html | 3 +- .../index.html | 3 +- files/fr/web/svg/compatibility_sources/index.html | 3 +- .../web/svg/svg_1.1_support_in_firefox/index.html | 3 +- files/fr/web/svg/svg_as_an_image/index.html | 3 +- files/fr/web/svg/tutorial/basic_shapes/index.html | 3 +- .../svg/tutorial/basic_transformations/index.html | 5 +- .../svg/tutorial/clipping_and_masking/index.html | 5 +- .../web/svg/tutorial/fills_and_strokes/index.html | 5 +- .../fr/web/svg/tutorial/filter_effects/index.html | 5 +- .../fr/web/svg/tutorial/getting_started/index.html | 5 +- files/fr/web/svg/tutorial/gradients/index.html | 5 +- files/fr/web/svg/tutorial/index.html | 5 +- files/fr/web/svg/tutorial/introduction/index.html | 5 +- .../svg/tutorial/other_content_in_svg/index.html | 3 +- files/fr/web/svg/tutorial/paths/index.html | 5 +- files/fr/web/svg/tutorial/patterns/index.html | 5 +- files/fr/web/svg/tutorial/positions/index.html | 5 +- files/fr/web/svg/tutorial/svg_and_css/index.html | 5 +- files/fr/web/svg/tutorial/svg_fonts/index.html | 3 +- files/fr/web/svg/tutorial/svg_image_tag/index.html | 3 +- .../tutorial/svg_in_html_introduction/index.html | 3 +- files/fr/web/svg/tutorial/texts/index.html | 5 +- files/fr/web/svg/tutorial/tools_for_svg/index.html | 3 +- files/fr/web/tutorials/index.html | 3 +- .../using_templates_and_slots/index.html | 3 +- files/fr/web/xml/xml_introduction/index.html | 3 +- .../xpath/comparison_with_css_selectors/index.html | 3 +- files/fr/web/xpath/functions/boolean/index.html | 3 +- files/fr/web/xpath/functions/ceiling/index.html | 3 +- files/fr/web/xpath/functions/concat/index.html | 3 +- files/fr/web/xpath/functions/contains/index.html | 3 +- files/fr/web/xpath/functions/count/index.html | 3 +- files/fr/web/xpath/functions/current/index.html | 3 +- files/fr/web/xpath/functions/document/index.html | 3 +- .../xpath/functions/element-available/index.html | 3 +- files/fr/web/xpath/functions/false/index.html | 3 +- files/fr/web/xpath/functions/floor/index.html | 3 +- .../web/xpath/functions/format-number/index.html | 3 +- .../xpath/functions/function-available/index.html | 3 +- .../fr/web/xpath/functions/generate-id/index.html | 3 +- files/fr/web/xpath/functions/id/index.html | 3 +- files/fr/web/xpath/functions/index.html | 3 +- files/fr/web/xpath/functions/key/index.html | 3 +- files/fr/web/xpath/functions/lang/index.html | 3 +- files/fr/web/xpath/functions/last/index.html | 3 +- files/fr/web/xpath/functions/local-name/index.html | 3 +- files/fr/web/xpath/functions/name/index.html | 3 +- .../web/xpath/functions/namespace-uri/index.html | 3 +- .../web/xpath/functions/normalize-space/index.html | 3 +- files/fr/web/xpath/functions/not/index.html | 3 +- files/fr/web/xpath/functions/number/index.html | 3 +- files/fr/web/xpath/functions/position/index.html | 3 +- files/fr/web/xpath/functions/round/index.html | 3 +- .../fr/web/xpath/functions/starts-with/index.html | 3 +- .../web/xpath/functions/string-length/index.html | 3 +- files/fr/web/xpath/functions/string/index.html | 3 +- .../web/xpath/functions/substring-after/index.html | 3 +- .../xpath/functions/substring-before/index.html | 3 +- files/fr/web/xpath/functions/substring/index.html | 3 +- files/fr/web/xpath/functions/sum/index.html | 3 +- .../web/xpath/functions/system-property/index.html | 3 +- files/fr/web/xpath/functions/translate/index.html | 3 +- files/fr/web/xpath/functions/true/index.html | 3 +- .../xpath/functions/unparsed-entity-url/index.html | 3 +- .../index.html | 3 +- files/fr/web/xslt/element/apply-imports/index.html | 3 +- .../fr/web/xslt/element/apply-templates/index.html | 3 +- files/fr/web/xslt/element/attribute-set/index.html | 3 +- files/fr/web/xslt/element/attribute/index.html | 3 +- files/fr/web/xslt/element/call-template/index.html | 3 +- files/fr/web/xslt/element/choose/index.html | 3 +- files/fr/web/xslt/element/comment/index.html | 3 +- files/fr/web/xslt/element/copy-of/index.html | 3 +- files/fr/web/xslt/element/copy/index.html | 3 +- .../fr/web/xslt/element/decimal-format/index.html | 3 +- files/fr/web/xslt/element/fallback/index.html | 3 +- files/fr/web/xslt/element/for-each/index.html | 3 +- files/fr/web/xslt/element/if/index.html | 3 +- files/fr/web/xslt/element/import/index.html | 3 +- files/fr/web/xslt/element/include/index.html | 3 +- files/fr/web/xslt/element/key/index.html | 3 +- files/fr/web/xslt/element/message/index.html | 3 +- .../fr/web/xslt/element/namespace-alias/index.html | 3 +- files/fr/web/xslt/element/number/index.html | 3 +- files/fr/web/xslt/element/otherwise/index.html | 3 +- files/fr/web/xslt/element/output/index.html | 3 +- files/fr/web/xslt/element/param/index.html | 3 +- .../fr/web/xslt/element/preserve-space/index.html | 3 +- .../xslt/element/processing-instruction/index.html | 3 +- files/fr/web/xslt/element/sort/index.html | 3 +- files/fr/web/xslt/element/strip-space/index.html | 3 +- files/fr/web/xslt/element/stylesheet/index.html | 3 +- files/fr/web/xslt/element/template/index.html | 3 +- files/fr/web/xslt/element/text/index.html | 3 +- files/fr/web/xslt/element/transform/index.html | 3 +- files/fr/web/xslt/element/value-of/index.html | 3 +- files/fr/web/xslt/element/variable/index.html | 3 +- files/fr/web/xslt/element/when/index.html | 3 +- files/fr/web/xslt/element/with-param/index.html | 3 +- files/fr/web/xslt/index/index.html | 3 +- files/fr/web/xslt/pi_parameters/index.html | 3 +- .../an_overview/index.html | 3 +- .../for_further_reading/index.html | 3 +- .../web/xslt/transforming_xml_with_xslt/index.html | 3 +- .../the_netscape_xslt_xpath_reference/index.html | 3 +- .../index.html | 5 +- .../advanced_example/index.html | 3 +- .../basic_example/index.html | 3 +- .../web/xslt/xslt_js_interface_in_gecko/index.html | 3 +- .../javascript_xslt_bindings/index.html | 3 +- .../resources/index.html | 3 +- .../setting_parameters/index.html | 3 +- 2492 files changed, 35332 insertions(+), 30388 deletions(-) (limited to 'files/fr/web/api') diff --git a/files/fr/_redirects.txt b/files/fr/_redirects.txt index 6127907542..0ce3dc3125 100644 --- a/files/fr/_redirects.txt +++ b/files/fr/_redirects.txt @@ -1,36 +1,127 @@ # FROM-URL TO-URL /fr/docs/AJAX /fr/docs/Web/Guide/AJAX -/fr/docs/AJAX/Communauté /fr/docs/Web/Guide/AJAX/Communauté -/fr/docs/AJAX/Premiers_pas /fr/docs/Web/Guide/AJAX/Premiers_pas -/fr/docs/AJAX:Communauté /fr/docs/Web/Guide/AJAX/Communauté -/fr/docs/AJAX:Premiers_pas /fr/docs/Web/Guide/AJAX/Premiers_pas +/fr/docs/AJAX/Communauté /fr/docs/Web/Guide/AJAX/Community +/fr/docs/AJAX/Premiers_pas /fr/docs/Web/Guide/AJAX/Getting_Started +/fr/docs/AJAX:Communauté /fr/docs/Web/Guide/AJAX/Community +/fr/docs/AJAX:Premiers_pas /fr/docs/Web/Guide/AJAX/Getting_Started /fr/docs/API_d'accès_au_contenu_de_flux /fr/docs/Feed_content_access_API /fr/docs/API_d_acces_au_contenu_de_flux /fr/docs/Feed_content_access_API /fr/docs/API_du_toolkit:Références_officielles /fr/docs/API_du_toolkit/Références_officielles -/fr/docs/ARIA /fr/docs/Accessibilité/ARIA -/fr/docs/ARIA/Accessible_Rich_Internet_Applications /fr/docs/Accessibilité/ARIA -/fr/docs/ARIA/Applications_riches_Internet_accessibles /fr/docs/Accessibilité/ARIA -/fr/docs/ARIA:_Accessible_Rich_Internet_Applications /fr/docs/Accessibilité/ARIA -/fr/docs/ARIA_:_Applications_riches_Internet_accessibles /fr/docs/Accessibilité/ARIA -/fr/docs/Accessibilité/ARIA/Accessible_Rich_Internet_Applications /fr/docs/Accessibilité/ARIA -/fr/docs/Accessibilité/ARIA/Applications_riches_Internet_accessibles /fr/docs/Accessibilité/ARIA -/fr/docs/Accessibilité/An_overview_of_accessible_web_applications_and_widgets /fr/docs/Accessibilité/Aperçu_d_applications_Web_et_de_composants_dynamiques_accessibles -/fr/docs/Accessibilité:Communauté /fr/docs/Accessibilité/Communauté +/fr/docs/ARIA /fr/docs/Web/Accessibility/ARIA +/fr/docs/ARIA/Accessible_Rich_Internet_Applications /fr/docs/Web/Accessibility/ARIA +/fr/docs/ARIA/Applications_riches_Internet_accessibles /fr/docs/Web/Accessibility/ARIA +/fr/docs/ARIA:_Accessible_Rich_Internet_Applications /fr/docs/Web/Accessibility/ARIA +/fr/docs/ARIA_:_Applications_riches_Internet_accessibles /fr/docs/Web/Accessibility/ARIA +/fr/docs/Accessibilité /fr/docs/Web/Accessibility +/fr/docs/Accessibilité/ARIA /fr/docs/Web/Accessibility/ARIA +/fr/docs/Accessibilité/ARIA/Accessible_Rich_Internet_Applications /fr/docs/Web/Accessibility/ARIA +/fr/docs/Accessibilité/ARIA/Applications_riches_Internet_accessibles /fr/docs/Web/Accessibility/ARIA +/fr/docs/Accessibilité/ARIA/Comment_deposer_un_bug_lie_a_ARIA /fr/docs/Web/Accessibility/ARIA/How_to_file_ARIA-related_bugs +/fr/docs/Accessibilité/ARIA/FAQ_Applications_Web_et_ARIA /fr/docs/Web/Accessibility/ARIA/Web_applications_and_ARIA_FAQ +/fr/docs/Accessibilité/ARIA/Guides_ARIA /fr/docs/Web/Accessibility/ARIA/ARIA_Guides +/fr/docs/Accessibilité/ARIA/Techniques_ARIA /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Modele_Technique_ARIA /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/ARIA_Technique_Template +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utilisation_du_groupe_rôle /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utilisation_du_groupe_switch /fr/docs/Web/Accessibility/ARIA/Roles/Switch_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-describedby /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-invalid /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-label /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-labelledby /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-orientation /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-relevant /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-relevant_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-required /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-required_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuemax /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemax_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuemin /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuenow /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuenow_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuetext /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuetext_attribute +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_alertdialog /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_banner /fr/docs/Web/Accessibility/ARIA/Roles/Banner_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_checkbox /fr/docs/Web/Accessibility/ARIA/Roles/checkbox_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_group /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_link /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_listbox /fr/docs/Web/Accessibility/ARIA/Roles/listbox_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_log /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_presentation /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_progressbar /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_slider /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_status /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_textbox /fr/docs/Web/Accessibility/ARIA/Roles/textbox_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_toolbar /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_alert /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_article /fr/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_article_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_button /fr/docs/Web/Accessibility/ARIA/Roles/button_role +/fr/docs/Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_dialog /fr/docs/Web/Accessibility/ARIA/Roles/dialog_role +/fr/docs/Accessibilité/ARIA/Zones_live_ARIA /fr/docs/Web/Accessibility/ARIA/ARIA_Live_Regions +/fr/docs/Accessibilité/ARIA/formulaires /fr/docs/Web/Accessibility/ARIA/forms +/fr/docs/Accessibilité/ARIA/formulaires/Alertes /fr/docs/Web/Accessibility/ARIA/forms/alerts +/fr/docs/Accessibilité/ARIA/formulaires/Indications_elementaires_pour_les_formulaires /fr/docs/Web/Accessibility/ARIA/forms/Basic_form_hints +/fr/docs/Accessibilité/ARIA/formulaires/Labels_multi-options /fr/docs/Web/Accessibility/ARIA/forms/Multipart_labels +/fr/docs/Accessibilité/An_overview_of_accessible_web_applications_and_widgets /fr/docs/Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets +/fr/docs/Accessibilité/Aperçu_d_applications_Web_et_de_composants_dynamiques_accessibles /fr/docs/Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets +/fr/docs/Accessibilité/Checklist_accessibilite_mobile /fr/docs/Web/Accessibility/Mobile_accessibility_checklist +/fr/docs/Accessibilité/Communauté /fr/docs/Web/Accessibility/Community +/fr/docs/Accessibilité/Développement_Web /fr/docs/conflicting/Web/Accessibility +/fr/docs/Accessibilité:Communauté /fr/docs/Web/Accessibility/Community /fr/docs/Accueil /fr/docs/Web /fr/docs/Accéder_à_des_services_web_avec_Mozilla_en_utilisant_un_proxy_WSDL /fr/docs/Services_Web_XML/Accéder_à_des_services_web_avec_Mozilla_en_utilisant_un_proxy_WSDL +/fr/docs/Adaptation_des_applications_XUL_pour_Firefox_1.5 /fr/docs/Mozilla/Firefox/Releases/1.5/Adapting_XUL_Applications_for_Firefox_1.5 +/fr/docs/Améliorations_DOM_dans_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/DOM_improvements +/fr/docs/Améliorations_SVG_dans_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/SVG_improvements +/fr/docs/Améliorations_XUL_dans_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/XUL_improvements_in_Firefox_3 /fr/docs/Applications/Design/Building_Blocks /fr/docs/Web/Apps/Design/Building_Blocks /fr/docs/Applications/Design/Building_Blocks/Buton /fr/docs/Web/Apps/Design/Building_Blocks/Buton /fr/docs/Applications/Design/Building_Blocks/Confirmation /fr/docs/Web/Apps/Design/Building_Blocks/Confirmation /fr/docs/Applications/Design/Building_Blocks/Filtre /fr/docs/Web/Apps/Design/Building_Blocks/Filtre /fr/docs/Applications/Design/Building_Blocks/menu_action /fr/docs/Web/Apps/Design/Building_Blocks/menu_action /fr/docs/Applications/Design/Building_Blocks/zone_saisie /fr/docs/Web/Apps/Design/Building_Blocks/zone_saisie +/fr/docs/Apprendre /fr/docs/Learn +/fr/docs/Apprendre/Accessibilité /fr/docs/Learn/Common_questions/What_is_accessibility +/fr/docs/Apprendre/CSS /fr/docs/Learn/CSS /fr/docs/Apprendre/CSS/Basics /en-US/docs/Learn/CSS/First_steps -/fr/docs/Apprendre/CSS/CSS_properties /fr/docs/Apprendre/CSS/Les_propriétés_CSS +/fr/docs/Apprendre/CSS/Building_blocks /fr/docs/Learn/CSS/Building_blocks +/fr/docs/Apprendre/CSS/Building_blocks/Advanced_styling_effects /fr/docs/Learn/CSS/Building_blocks/Advanced_styling_effects +/fr/docs/Apprendre/CSS/Building_blocks/Backgrounds_and_borders /fr/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders +/fr/docs/Apprendre/CSS/Building_blocks/Cascade_et_heritage /fr/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance +/fr/docs/Apprendre/CSS/Building_blocks/Debugging_CSS /fr/docs/Learn/CSS/Building_blocks/Debugging_CSS +/fr/docs/Apprendre/CSS/Building_blocks/Handling_different_text_directions /fr/docs/Learn/CSS/Building_blocks/Handling_different_text_directions +/fr/docs/Apprendre/CSS/Building_blocks/Le_modele_de_boite /fr/docs/Learn/CSS/Building_blocks/The_box_model +/fr/docs/Apprendre/CSS/Building_blocks/Overflowing_content /fr/docs/Learn/CSS/Building_blocks/Overflowing_content +/fr/docs/Apprendre/CSS/Building_blocks/Selectors /fr/docs/Learn/CSS/Building_blocks/Selectors +/fr/docs/Apprendre/CSS/Building_blocks/Selectors/Combinateurs /fr/docs/Learn/CSS/Building_blocks/Selectors/Combinators +/fr/docs/Apprendre/CSS/Building_blocks/Selectors/Pseudo-classes_et_pseudo-éléments /fr/docs/Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +/fr/docs/Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_d_atrribut /fr/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors +/fr/docs/Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_de_type_classe_ID /fr/docs/Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +/fr/docs/Apprendre/CSS/Building_blocks/Sizing_items_in_CSS /fr/docs/Learn/CSS/Building_blocks/Sizing_items_in_CSS +/fr/docs/Apprendre/CSS/Building_blocks/Styling_tables /fr/docs/Learn/CSS/Building_blocks/Styling_tables +/fr/docs/Apprendre/CSS/Building_blocks/Values_and_units /fr/docs/Learn/CSS/Building_blocks/Values_and_units +/fr/docs/Apprendre/CSS/CSS_layout /fr/docs/Learn/CSS/CSS_layout +/fr/docs/Apprendre/CSS/CSS_layout/Exemples_pratiques_de_positionnement /fr/docs/Learn/CSS/CSS_layout/Practical_positioning_examples +/fr/docs/Apprendre/CSS/CSS_layout/Flexbox /fr/docs/Learn/CSS/CSS_layout/Flexbox +/fr/docs/Apprendre/CSS/CSS_layout/Flexbox_skills /fr/docs/Learn/CSS/CSS_layout/Flexbox_skills +/fr/docs/Apprendre/CSS/CSS_layout/Floats /fr/docs/Learn/CSS/CSS_layout/Floats +/fr/docs/Apprendre/CSS/CSS_layout/Fundamental_Layout_Comprehension /fr/docs/Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension +/fr/docs/Apprendre/CSS/CSS_layout/Grids /fr/docs/Learn/CSS/CSS_layout/Grids +/fr/docs/Apprendre/CSS/CSS_layout/Introduction /fr/docs/Learn/CSS/CSS_layout/Introduction +/fr/docs/Apprendre/CSS/CSS_layout/Le_positionnement /fr/docs/Learn/CSS/CSS_layout/Positioning +/fr/docs/Apprendre/CSS/CSS_layout/Legacy_Layout_Methods /fr/docs/Learn/CSS/CSS_layout/Legacy_Layout_Methods +/fr/docs/Apprendre/CSS/CSS_layout/Media_queries /fr/docs/Learn/CSS/CSS_layout/Media_queries +/fr/docs/Apprendre/CSS/CSS_layout/Multiple-column_Layout /fr/docs/Learn/CSS/CSS_layout/Multiple-column_Layout +/fr/docs/Apprendre/CSS/CSS_layout/Normal_Flow /fr/docs/Learn/CSS/CSS_layout/Normal_Flow +/fr/docs/Apprendre/CSS/CSS_layout/Prise_En_Charge_Des_Anciens_Navigateurs /fr/docs/Learn/CSS/CSS_layout/Supporting_Older_Browsers +/fr/docs/Apprendre/CSS/CSS_layout/Responsive_Design /fr/docs/Learn/CSS/CSS_layout/Responsive_Design +/fr/docs/Apprendre/CSS/CSS_properties /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors +/fr/docs/Apprendre/CSS/Comment /fr/docs/Learn/CSS/Howto +/fr/docs/Apprendre/CSS/Comment/Créer_de_belles_boîtes /fr/docs/Learn/CSS/Howto/create_fancy_boxes +/fr/docs/Apprendre/CSS/Comment/Generated_content /fr/docs/Learn/CSS/Howto/Generated_content +/fr/docs/Apprendre/CSS/Comment/Mettre_en_forme_du_texte /fr/docs/conflicting/Learn/CSS/Styling_text/Fundamentals +/fr/docs/Apprendre/CSS/Comment/personnaliser_une_liste /fr/docs/conflicting/Learn/CSS/Styling_text/Styling_lists /fr/docs/Apprendre/CSS/Introduction_à_CSS /en-US/docs/Learn/CSS/First_steps /fr/docs/Apprendre/CSS/Introduction_à_CSS/Attribute_selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors/Attribute_selectors /fr/docs/Apprendre/CSS/Introduction_à_CSS/Combinators_and_multiple_selectors /en-US/docs/Learn/CSS/Building_blocks/Selectors/Combinators /fr/docs/Apprendre/CSS/Introduction_à_CSS/Debugging_CSS /en-US/docs/Learn/CSS/Building_blocks/Debugging_CSS +/fr/docs/Apprendre/CSS/Introduction_à_CSS/Fundamental_CSS_comprehension /fr/docs/Learn/CSS/Building_blocks/Fundamental_CSS_comprehension /fr/docs/Apprendre/CSS/Introduction_à_CSS/La_cascade_et_l_héritage /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance +/fr/docs/Apprendre/CSS/Introduction_à_CSS/La_disposition /fr/docs/conflicting/Learn/CSS/CSS_layout/Introduction /fr/docs/Apprendre/CSS/Introduction_à_CSS/La_syntaxe /en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured /fr/docs/Apprendre/CSS/Introduction_à_CSS/Le_fonctionnement_de_CSS /en-US/docs/Learn/CSS/First_steps/How_CSS_works /fr/docs/Apprendre/CSS/Introduction_à_CSS/Le_modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model @@ -40,53 +131,172 @@ /fr/docs/Apprendre/CSS/Introduction_à_CSS/Values_and_units /en-US/docs/Learn/CSS/Building_blocks/Values_and_units /fr/docs/Apprendre/CSS/Les_bases /en-US/docs/Learn/CSS/First_steps /fr/docs/Apprendre/CSS/Les_bases/La_cascade_et_l_héritage /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance -/fr/docs/Apprendre/CSS/Les_bases/La_disposition /fr/docs/Apprendre/CSS/Introduction_à_CSS/La_disposition +/fr/docs/Apprendre/CSS/Les_bases/La_disposition /fr/docs/conflicting/Learn/CSS/CSS_layout/Introduction /fr/docs/Apprendre/CSS/Les_bases/La_syntaxe /en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured /fr/docs/Apprendre/CSS/Les_bases/Le_fonctionnement_de_CSS /en-US/docs/Learn/CSS/First_steps/How_CSS_works /fr/docs/Apprendre/CSS/Les_bases/Le_modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model /fr/docs/Apprendre/CSS/Les_bases/Les_sélecteurs /en-US/docs/Learn/CSS/Building_blocks/Selectors +/fr/docs/Apprendre/CSS/Les_propriétés_CSS /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors +/fr/docs/Apprendre/CSS/Utiliser_CSS_dans_une_page_web /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works +/fr/docs/Apprendre/CSS/formatage_texte_CSS /fr/docs/conflicting/Learn/CSS/Styling_text/Fundamentals_9e7ba587262abbb02304cbc099c1f0d8 /fr/docs/Apprendre/CSS/styliser_boites /en-US/docs/Learn/CSS/Building_blocks -/fr/docs/Apprendre/CSS/styliser_boites/Advanced_box_effects /fr/docs/Apprendre/CSS/Building_blocks/Advanced_styling_effects +/fr/docs/Apprendre/CSS/styliser_boites/A_cool_looking_box /fr/docs/Learn/CSS/Building_blocks/A_cool_looking_box +/fr/docs/Apprendre/CSS/styliser_boites/Advanced_box_effects /fr/docs/Learn/CSS/Building_blocks/Advanced_styling_effects /fr/docs/Apprendre/CSS/styliser_boites/Backgrounds /en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders /fr/docs/Apprendre/CSS/styliser_boites/Borders /en-US/docs/Learn/CSS/Building_blocks/Backgrounds_and_borders /fr/docs/Apprendre/CSS/styliser_boites/Box_model_recap /en-US/docs/Learn/CSS/Building_blocks/The_box_model -/fr/docs/Apprendre/CSS/styliser_boites/Styling_tables /fr/docs/Apprendre/CSS/Building_blocks/Styling_tables -/fr/docs/Apprendre/Choose,_Install_and_set_up_a_text_editor /fr/docs/Apprendre/Choisir_installer_paramétrer_un_éditeur_de_texte -/fr/docs/Apprendre/Coder-scripter /fr/docs/Apprendre -/fr/docs/Apprendre/Commencer_avec_le_web/Installing_basic_software /fr/docs/Apprendre/Commencer_avec_le_web/Installation_outils_de_base -/fr/docs/Apprendre/Commencer_avec_le_web/What_will_your_website_look_like /fr/docs/Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site -/fr/docs/Apprendre/Design_Accessibilité /fr/docs/Apprendre/Common_questions -/fr/docs/Apprendre/HTML/Comment/Add_images_to_a_webpage /fr/docs/Apprendre/HTML/Comment/Ajouter_des_images_à_une_page_web -/fr/docs/Apprendre/HTML/Comment/Comment_créer_un_document_HTML_simple /fr/docs/Apprendre/HTML/Comment/Créer_un_document_HTML_simple -/fr/docs/Apprendre/HTML/Comment/Comment_identifier_et_expliquer_des_abréviations /fr/docs/Apprendre/HTML/Comment/Identifier_et_expliquer_des_abréviations -/fr/docs/Apprendre/Infrastructure /fr/docs/Apprendre/Common_questions -/fr/docs/Apprendre/Mécanismes_Web /fr/docs/Apprendre/Common_questions -/fr/docs/Apprendre/Redaction_web /fr/docs/Apprendre/Common_questions -/fr/docs/Apprendre/Réflexion_avant_codage /fr/docs/Apprendre/Commencez_votre_projet_web +/fr/docs/Apprendre/CSS/styliser_boites/Creating_fancy_letterheaded_paper /fr/docs/Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper +/fr/docs/Apprendre/CSS/styliser_boites/Styling_tables /fr/docs/Learn/CSS/Building_blocks/Styling_tables +/fr/docs/Apprendre/Choisir_installer_paramétrer_un_éditeur_de_texte /fr/docs/Learn/Common_questions/Available_text_editors +/fr/docs/Apprendre/Choose,_Install_and_set_up_a_text_editor /fr/docs/Learn/Common_questions/Available_text_editors +/fr/docs/Apprendre/Coder-scripter /fr/docs/Learn +/fr/docs/Apprendre/Commencer_avec_le_web /fr/docs/Learn/Getting_started_with_the_web +/fr/docs/Apprendre/Commencer_avec_le_web/Gérer_les_fichiers /fr/docs/Learn/Getting_started_with_the_web/Dealing_with_files +/fr/docs/Apprendre/Commencer_avec_le_web/Installation_outils_de_base /fr/docs/Learn/Getting_started_with_the_web/Installing_basic_software +/fr/docs/Apprendre/Commencer_avec_le_web/Installing_basic_software /fr/docs/Learn/Getting_started_with_the_web/Installing_basic_software +/fr/docs/Apprendre/Commencer_avec_le_web/Le_fonctionnement_du_Web /fr/docs/Learn/Getting_started_with_the_web/How_the_Web_works +/fr/docs/Apprendre/Commencer_avec_le_web/Les_bases_CSS /fr/docs/Learn/Getting_started_with_the_web/CSS_basics +/fr/docs/Apprendre/Commencer_avec_le_web/Les_bases_HTML /fr/docs/Learn/Getting_started_with_the_web/HTML_basics +/fr/docs/Apprendre/Commencer_avec_le_web/Les_bases_JavaScript /fr/docs/Learn/Getting_started_with_the_web/JavaScript_basics +/fr/docs/Apprendre/Commencer_avec_le_web/Publier_votre_site_web /fr/docs/Learn/Getting_started_with_the_web/Publishing_your_website +/fr/docs/Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site /fr/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like +/fr/docs/Apprendre/Commencer_avec_le_web/The_web_and_web_standards /fr/docs/Learn/Getting_started_with_the_web/The_web_and_web_standards +/fr/docs/Apprendre/Commencer_avec_le_web/What_will_your_website_look_like /fr/docs/Learn/Getting_started_with_the_web/What_will_your_website_look_like +/fr/docs/Apprendre/Commencez_votre_projet_web /fr/docs/Learn/Common_questions/Thinking_before_coding +/fr/docs/Apprendre/Comment_contribuer /fr/docs/orphaned/Learn/How_to_contribute +/fr/docs/Apprendre/Common_questions /fr/docs/Learn/Common_questions +/fr/docs/Apprendre/Common_questions/configurer_un_serveur_de_test_local /fr/docs/Learn/Common_questions/set_up_a_local_testing_server +/fr/docs/Apprendre/Comprendre_les_URL /fr/docs/Learn/Common_questions/What_is_a_URL +/fr/docs/Apprendre/Comprendre_noms_de_domaine /fr/docs/Learn/Common_questions/What_is_a_domain_name +/fr/docs/Apprendre/Compétences /fr/docs/conflicting/Learn +/fr/docs/Apprendre/Concevoir_page_web /fr/docs/Learn/Common_questions/Common_web_layouts +/fr/docs/Apprendre/Concevoir_site_tous_types_utilisateurs /fr/docs/Learn/Common_questions/Design_for_all_types_of_users +/fr/docs/Apprendre/Design_Accessibilité /fr/docs/Learn/Common_questions +/fr/docs/Apprendre/Découvrir_outils_développement_navigateurs /fr/docs/Learn/Common_questions/What_are_browser_developer_tools +/fr/docs/Apprendre/Fonctionnement_Internet /fr/docs/Learn/Common_questions/How_does_the_Internet_work +/fr/docs/Apprendre/Front-end_web_developer /fr/docs/Learn/Front-end_web_developer +/fr/docs/Apprendre/HTML /fr/docs/Learn/HTML +/fr/docs/Apprendre/HTML/Balises_HTML /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML +/fr/docs/Apprendre/HTML/Cheatsheet /fr/docs/Learn/HTML/Cheatsheet +/fr/docs/Apprendre/HTML/Comment /fr/docs/Learn/HTML/Howto +/fr/docs/Apprendre/HTML/Comment/Add_images_to_a_webpage /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML +/fr/docs/Apprendre/HTML/Comment/Afficher_du_code_informatique_avec_HTML /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +/fr/docs/Apprendre/HTML/Comment/Ajouter_carte_zones_cliquables_sur_image /fr/docs/Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image +/fr/docs/Apprendre/HTML/Comment/Ajouter_citations_sur_page_web /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682 +/fr/docs/Apprendre/HTML/Comment/Ajouter_contenu_Flash_dans_page_web /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies +/fr/docs/Apprendre/HTML/Comment/Ajouter_contenu_audio_vidéo_page_web /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content +/fr/docs/Apprendre/HTML/Comment/Ajouter_des_images_adaptatives_à_une_page_web /fr/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images +/fr/docs/Apprendre/HTML/Comment/Ajouter_des_images_vectorielles_à_une_page_web /fr/docs/Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web +/fr/docs/Apprendre/HTML/Comment/Ajouter_des_images_à_une_page_web /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML +/fr/docs/Apprendre/HTML/Comment/Annoter_des_images_et_graphiques /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML_2c0377f7605f693cad465c2b4839addc +/fr/docs/Apprendre/HTML/Comment/Appliquer_du_CSS_à_une_page_web /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_cf31463f874ecd8e10e648dacde4a995 +/fr/docs/Apprendre/HTML/Comment/Comment_créer_un_document_HTML_simple /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Getting_started +/fr/docs/Apprendre/HTML/Comment/Comment_identifier_et_expliquer_des_abréviations /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446 +/fr/docs/Apprendre/HTML/Comment/Créer_un_document_HTML_simple /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Getting_started +/fr/docs/Apprendre/HTML/Comment/Créer_un_hyperlien /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +/fr/docs/Apprendre/HTML/Comment/Créer_une_liste_d_éléments_avec_HTML /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +/fr/docs/Apprendre/HTML/Comment/Découper_une_page_web_en_sections_logiques /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Document_and_website_structure +/fr/docs/Apprendre/HTML/Comment/Définir_des_termes_avec_HTML /fr/docs/Learn/HTML/Howto/Define_terms_with_HTML +/fr/docs/Apprendre/HTML/Comment/Identifier_et_expliquer_des_abréviations /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446 +/fr/docs/Apprendre/HTML/Comment/Intégrer_une_page_web_dans_une_autre_page_web /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d +/fr/docs/Apprendre/HTML/Comment/Mettre_en_place_une_hiérarchie_de_titres /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc +/fr/docs/Apprendre/HTML/Comment/Mettre_l_accent_sur_un_contenu_ou_indiquer_qu_un_texte_est_important /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6 +/fr/docs/Apprendre/HTML/Comment/Utiliser_JavaScript_au_sein_d_une_page_web /fr/docs/Learn/HTML/Howto/Use_JavaScript_within_a_webpage +/fr/docs/Apprendre/HTML/Comment/Utiliser_attributs_donnes /fr/docs/Learn/HTML/Howto/Use_data_attributes +/fr/docs/Apprendre/HTML/Introduction_à_HTML /fr/docs/Learn/HTML/Introduction_to_HTML +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks /fr/docs/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Debugging_HTML /fr/docs/Learn/HTML/Introduction_to_HTML/Debugging_HTML +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure /fr/docs/Learn/HTML/Introduction_to_HTML/Document_and_website_structure +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Getting_started /fr/docs/Learn/HTML/Introduction_to_HTML/Getting_started +/fr/docs/Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals /fr/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Marking_up_a_letter /fr/docs/Learn/HTML/Introduction_to_HTML/Marking_up_a_letter +/fr/docs/Apprendre/HTML/Introduction_à_HTML/Structuring_a_page_of_content /fr/docs/Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content +/fr/docs/Apprendre/HTML/Introduction_à_HTML/The_head_metadata_in_HTML /fr/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +/fr/docs/Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte /fr/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +/fr/docs/Apprendre/HTML/Multimedia_and_embedding /fr/docs/Learn/HTML/Multimedia_and_embedding +/fr/docs/Apprendre/HTML/Multimedia_and_embedding/Contenu_audio_et_video /fr/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content +/fr/docs/Apprendre/HTML/Multimedia_and_embedding/Images_in_HTML /fr/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML +/fr/docs/Apprendre/HTML/Multimedia_and_embedding/Mozilla_splash_page /fr/docs/Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page +/fr/docs/Apprendre/HTML/Multimedia_and_embedding/Other_embedding_technologies /fr/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies +/fr/docs/Apprendre/HTML/Tableaux /fr/docs/Learn/HTML/Tables +/fr/docs/Apprendre/HTML/Tableaux/Advanced /fr/docs/Learn/HTML/Tables/Advanced +/fr/docs/Apprendre/HTML/Tableaux/Basics /fr/docs/Learn/HTML/Tables/Basics +/fr/docs/Apprendre/HTML/Tableaux/Structuring_planet_data /fr/docs/Learn/HTML/Tables/Structuring_planet_data +/fr/docs/Apprendre/HTML/Écrire_une_simple_page_HTML /fr/docs/conflicting/Learn/Getting_started_with_the_web +/fr/docs/Apprendre/Index /fr/docs/Learn/Index +/fr/docs/Apprendre/Infrastructure /fr/docs/Learn/Common_questions +/fr/docs/Apprendre/JavaScript /fr/docs/Learn/JavaScript +/fr/docs/Apprendre/JavaScript/Building_blocks /fr/docs/Learn/JavaScript/Building_blocks +/fr/docs/Apprendre/JavaScript/Building_blocks/Build_your_own_function /fr/docs/Learn/JavaScript/Building_blocks/Build_your_own_function +/fr/docs/Apprendre/JavaScript/Building_blocks/Evènements /fr/docs/Learn/JavaScript/Building_blocks/Events +/fr/docs/Apprendre/JavaScript/Building_blocks/Fonctions /fr/docs/Learn/JavaScript/Building_blocks/Functions +/fr/docs/Apprendre/JavaScript/Building_blocks/Image_gallery /fr/docs/Learn/JavaScript/Building_blocks/Image_gallery +/fr/docs/Apprendre/JavaScript/Building_blocks/Looping_code /fr/docs/Learn/JavaScript/Building_blocks/Looping_code +/fr/docs/Apprendre/JavaScript/Building_blocks/Return_values /fr/docs/Learn/JavaScript/Building_blocks/Return_values +/fr/docs/Apprendre/JavaScript/Building_blocks/conditionals /fr/docs/Learn/JavaScript/Building_blocks/conditionals +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs /fr/docs/Learn/JavaScript/Client-side_web_APIs +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Client-side_storage /fr/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Drawing_graphics /fr/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Fetching_data /fr/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Introduction /fr/docs/Learn/JavaScript/Client-side_web_APIs/Introduction +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Manipulating_documents /fr/docs/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Third_party_APIs /fr/docs/Learn/JavaScript/Client-side_web_APIs/Third_party_APIs +/fr/docs/Apprendre/JavaScript/Client-side_web_APIs/Video_and_audio_APIs /fr/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs +/fr/docs/Apprendre/Le_fonctionnement_des_liens_sur_le_Web /fr/docs/Learn/Common_questions/What_are_hyperlinks +/fr/docs/Apprendre/Mettre_en_place_un_environnement_de_travail /fr/docs/conflicting/Learn/Common_questions/set_up_a_local_testing_server +/fr/docs/Apprendre/Mécanismes_Web /fr/docs/Learn/Common_questions +/fr/docs/Apprendre/Outils_et_tests /fr/docs/Learn/Tools_and_testing +/fr/docs/Apprendre/Outils_et_tests/GitHub /fr/docs/Learn/Tools_and_testing/GitHub +/fr/docs/Apprendre/Ouvrir_un_fichier_dans_un_navigateur_web /fr/docs/conflicting/Learn/Getting_started_with_the_web/Dealing_with_files +/fr/docs/Apprendre/Publier_sur_le_Web_combien_ça_coûte /fr/docs/Learn/Common_questions/How_much_does_it_cost +/fr/docs/Apprendre/Qu_est-ce_qu_un_serveur_web /fr/docs/Learn/Common_questions/What_is_a_web_server +/fr/docs/Apprendre/Quels_logiciels_sont_nécessaires_pour_construire_un_site_web /fr/docs/Learn/Common_questions/What_software_do_I_need +/fr/docs/Apprendre/Redaction_web /fr/docs/Learn/Common_questions +/fr/docs/Apprendre/Réflexion_avant_codage /fr/docs/Learn/Common_questions/Thinking_before_coding +/fr/docs/Apprendre/Tester_le_bon_fonctionnement_de_votre_site_web /fr/docs/Learn/Common_questions/Checking_that_your_web_site_is_working_properly /fr/docs/Apprendre/Threats /fr/docs/Apprendre/Les_menaces +/fr/docs/Apprendre/Transférer_des_fichiers_vers_un_serveur_web /fr/docs/Learn/Common_questions/Upload_files_to_a_web_server +/fr/docs/Apprendre/Tutoriels /fr/docs/conflicting/Learn_6767a192c90d2c9c5179cf004fce2ee8 +/fr/docs/Apprendre/Tutoriels/Comment_construire_un_site_web /fr/docs/conflicting/Learn_370bfb0fa23e42f4384f010341852c43 +/fr/docs/Apprendre/Tutoriels/Les_bases_de_la_sécurité_informatique /fr/docs/orphaned/Web/Security/Information_Security_Basics +/fr/docs/Apprendre/Utiliser_les_pages_GitHub /fr/docs/Learn/Common_questions/Using_Github_pages /fr/docs/Apprendre/WebGL/Par_exemple /fr/docs/Web/API/WebGL_API/By_example -/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs /fr/docs/Web/API/WebGL_API/By_example/Appliquer_des_couleurs -/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples /fr/docs/Web/API/WebGL_API/By_example/Appliquer_des_découpes_simples -/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris /fr/docs/Web/API/WebGL_API/By_example/Appliquer_une_couleur_à_la_souris -/fr/docs/Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique /fr/docs/Web/API/WebGL_API/By_example/Créer_une_animation_avec_découpe_et_applique -/fr/docs/Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée /fr/docs/Web/API/WebGL_API/By_example/Créer_une_animation_colorée -/fr/docs/Apprendre/WebGL/Par_exemple/Détecter_WebGL /fr/docs/Web/API/WebGL_API/By_example/Détecter_WebGL -/fr/docs/Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code /fr/docs/Web/API/WebGL_API/By_example/Générer_des_textures_avec_du_code +/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_des_couleurs /fr/docs/Web/API/WebGL_API/By_example/Clearing_with_colors +/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_des_découpes_simples /fr/docs/Web/API/WebGL_API/By_example/Basic_scissoring +/fr/docs/Apprendre/WebGL/Par_exemple/Appliquer_une_couleur_à_la_souris /fr/docs/Web/API/WebGL_API/By_example/Clearing_by_clicking +/fr/docs/Apprendre/WebGL/Par_exemple/Créer_une_animation_avec_découpe_et_applique /fr/docs/Web/API/WebGL_API/By_example/Scissor_animation +/fr/docs/Apprendre/WebGL/Par_exemple/Créer_une_animation_colorée /fr/docs/Web/API/WebGL_API/By_example/Simple_color_animation +/fr/docs/Apprendre/WebGL/Par_exemple/Détecter_WebGL /fr/docs/Web/API/WebGL_API/By_example/Detect_WebGL +/fr/docs/Apprendre/WebGL/Par_exemple/Générer_des_textures_avec_du_code /fr/docs/Web/API/WebGL_API/By_example/Textures_from_code /fr/docs/Apprendre/WebGL/Par_exemple/Hello_GLSL /fr/docs/Web/API/WebGL_API/By_example/Hello_GLSL -/fr/docs/Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex /fr/docs/Web/API/WebGL_API/By_example/Introduction_aux_attributs_vertex -/fr/docs/Apprendre/WebGL/Par_exemple/Les_textures_vidéos /fr/docs/Web/API/WebGL_API/By_example/Les_textures_vidéos -/fr/docs/Apprendre/WebGL/Par_exemple/Masque_de_couleur /fr/docs/Web/API/WebGL_API/By_example/Masque_de_couleur -/fr/docs/Apprendre/WebGL/Par_exemple/Modèle_1 /fr/docs/Web/API/WebGL_API/By_example/Modèle_1 -/fr/docs/Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL /fr/docs/Web/API/WebGL_API/By_example/Tailles_de_canvas_et_WebGL -/fr/docs/Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle /fr/docs/Web/API/WebGL_API/By_example/Une_pluie_de_rectangle +/fr/docs/Apprendre/WebGL/Par_exemple/Introduction_aux_attributs_vertex /fr/docs/Web/API/WebGL_API/By_example/Hello_vertex_attributes +/fr/docs/Apprendre/WebGL/Par_exemple/Les_textures_vidéos /fr/docs/Web/API/WebGL_API/By_example/Video_textures +/fr/docs/Apprendre/WebGL/Par_exemple/Masque_de_couleur /fr/docs/Web/API/WebGL_API/By_example/Color_masking +/fr/docs/Apprendre/WebGL/Par_exemple/Modèle_1 /fr/docs/Web/API/WebGL_API/By_example/Boilerplate_1 +/fr/docs/Apprendre/WebGL/Par_exemple/Tailles_de_canvas_et_WebGL /fr/docs/Web/API/WebGL_API/By_example/Canvas_size_and_WebGL +/fr/docs/Apprendre/WebGL/Par_exemple/Une_pluie_de_rectangle /fr/docs/Web/API/WebGL_API/By_example/Raining_rectangles +/fr/docs/Apprendre/a11y /fr/docs/Learn/Accessibility +/fr/docs/Apprendre/a11y/Accessibility_troubleshooting /fr/docs/Learn/Accessibility/Accessibility_troubleshooting +/fr/docs/Apprendre/a11y/CSS_and_JavaScript /fr/docs/Learn/Accessibility/CSS_and_JavaScript +/fr/docs/Apprendre/a11y/HTML /fr/docs/Learn/Accessibility/HTML +/fr/docs/Apprendre/a11y/Mobile /fr/docs/Learn/Accessibility/Mobile +/fr/docs/Apprendre/a11y/Multimedia /fr/docs/Learn/Accessibility/Multimedia +/fr/docs/Apprendre/a11y/WAI-ARIA_basics /fr/docs/Learn/Accessibility/WAI-ARIA_basics +/fr/docs/Apprendre/a11y/What_is_accessibility /fr/docs/Learn/Accessibility/What_is_accessibility +/fr/docs/Apprendre/page_vs_site_vs_serveur_vs_moteur_recherche /fr/docs/Learn/Common_questions/Pages_sites_servers_and_search_engines /fr/docs/Assurance_qualité /fr/docs/QA /fr/docs/Assurance_qualité/Communauté /fr/docs/QA /fr/docs/Assurance_qualité:Communauté /fr/docs/QA /fr/docs/Assurance_qualité:Tests_en_charge /fr/docs/Assurance_qualité/Tests_en_charge -/fr/docs/Astuces_CSS:Couleurs_et_fonds /fr/docs/Astuces_CSS/Couleurs_et_fonds -/fr/docs/Astuces_CSS:Liens /fr/docs/Astuces_CSS/Liens -/fr/docs/Astuces_CSS:Tableaux /fr/docs/Astuces_CSS/Tableaux -/fr/docs/Astuces_de_création_de_pages_HTML_à_affichage_rapide /fr/docs/Web/Guide/HTML/Astuces_de_création_de_pages_HTML_à_affichage_rapide +/fr/docs/Astuces_CSS /fr/docs/conflicting/Web/CSS +/fr/docs/Astuces_CSS/Couleurs_et_fonds /fr/docs/conflicting/Web/CSS/color_value +/fr/docs/Astuces_CSS/Liens /fr/docs/conflicting/Web/CSS/Pseudo-classes +/fr/docs/Astuces_CSS/Tableaux /fr/docs/conflicting/Web/CSS/border-collapse +/fr/docs/Astuces_CSS:Couleurs_et_fonds /fr/docs/conflicting/Web/CSS/color_value +/fr/docs/Astuces_CSS:Liens /fr/docs/conflicting/Web/CSS/Pseudo-classes +/fr/docs/Astuces_CSS:Tableaux /fr/docs/conflicting/Web/CSS/border-collapse +/fr/docs/Astuces_de_création_de_pages_HTML_à_affichage_rapide /fr/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages +/fr/docs/Bugs_importants_corrigés_dans_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/Notable_bugs_fixed /fr/docs/CSS /fr/docs/Web/CSS /fr/docs/CSS/-moz-alias /fr/docs/Web/CSS/cursor /fr/docs/CSS/-moz-appearance /fr/docs/Web/CSS/appearance @@ -105,12 +315,12 @@ /fr/docs/CSS/-moz-box-align /fr/docs/Web/CSS/box-align /fr/docs/CSS/-moz-box-direction /fr/docs/Web/CSS/box-direction /fr/docs/CSS/-moz-box-flex /fr/docs/Web/CSS/box-flex -/fr/docs/CSS/-moz-box-ordinal-group /fr/docs/Web/CSS/-moz-box-ordinal-group +/fr/docs/CSS/-moz-box-ordinal-group /fr/docs/conflicting/Web/CSS/box-ordinal-group /fr/docs/CSS/-moz-box-orient /fr/docs/Web/CSS/box-orient /fr/docs/CSS/-moz-box-pack /fr/docs/Web/CSS/box-pack /fr/docs/CSS/-moz-box-shadow /fr/docs/Web/CSS/box-shadow /fr/docs/CSS/-moz-box-sizing /fr/docs/Web/CSS/box-sizing -/fr/docs/CSS/-moz-cell /fr/docs/Web/CSS/-moz-cell +/fr/docs/CSS/-moz-cell /fr/docs/conflicting/Web/CSS/cursor /fr/docs/CSS/-moz-context-menu /fr/docs/Web/CSS/cursor /fr/docs/CSS/-moz-copy /fr/docs/Web/CSS/cursor /fr/docs/CSS/-moz-grab /en-US/docs/Web/CSS/cursor#grab @@ -152,7 +362,7 @@ /fr/docs/CSS/:active-redirection-1 /fr/docs/Web/CSS/:active /fr/docs/CSS/:after /fr/docs/Web/CSS/::after /fr/docs/CSS/:after_|_::after /fr/docs/Web/CSS/::after -/fr/docs/CSS/:any /fr/docs/Web/CSS/:any +/fr/docs/CSS/:any /fr/docs/conflicting/Web/CSS/:is /fr/docs/CSS/:before /fr/docs/Web/CSS/::before /fr/docs/CSS/:checked /fr/docs/Web/CSS/:checked /fr/docs/CSS/:default /fr/docs/Web/CSS/:default @@ -197,68 +407,84 @@ /fr/docs/CSS/@page /fr/docs/Web/CSS/@page /fr/docs/CSS/@supports /fr/docs/Web/CSS/@supports /fr/docs/CSS/@viewport /fr/docs/Web/CSS/@viewport -/fr/docs/CSS/Animations_CSS /fr/docs/Web/CSS/Animations_CSS -/fr/docs/CSS/Block_formatting_context /fr/docs/Web/CSS/Block_formatting_context +/fr/docs/CSS/Animations_CSS /fr/docs/Web/CSS/CSS_Animations +/fr/docs/CSS/Block_formatting_context /fr/docs/Web/Guide/CSS/Block_formatting_context /fr/docs/CSS/CSS_:_la_propriété_animation-iteration-count /fr/docs/Web/CSS/animation-iteration-count /fr/docs/CSS/CSS_:_la_propriété_animation-name /fr/docs/Web/CSS/animation-name /fr/docs/CSS/CSS_:_la_propriété_animation-play-state /fr/docs/Web/CSS/animation-play-state /fr/docs/CSS/CSS_Reference /fr/docs/Web/CSS/Reference -/fr/docs/CSS/CSS_Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Sélecteurs_d_attribut +/fr/docs/CSS/CSS_Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Attribute_selectors /fr/docs/CSS/CSS_percentage_values /fr/docs/Web/CSS -/fr/docs/CSS/CSS_questions_frequentes /fr/docs/Web/CSS/CSS_questions_frequentes +/fr/docs/CSS/CSS_questions_frequentes /fr/docs/Learn/CSS/Howto/CSS_FAQ /fr/docs/CSS/CSS_values_serialization /fr/docs/Web/CSS /fr/docs/CSS/CSS_values_syntax /fr/docs/Web/CSS -/fr/docs/CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes +/fr/docs/CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts /fr/docs/CSS/Commentaires /fr/docs/Web/CSS/Comments /fr/docs/CSS/Comments /fr/docs/Web/CSS/Comments -/fr/docs/CSS/Comprendre_z-index /fr/docs/Web/CSS/Comprendre_z-index -/fr/docs/CSS/Comprendre_z-index/Ajout_de_z-index /fr/docs/Web/CSS/Comprendre_z-index/Ajout_de_z-index -/fr/docs/CSS/Comprendre_z-index/Empilement_et_float /fr/docs/Web/CSS/Comprendre_z-index/Empilement_et_float -/fr/docs/CSS/Comprendre_z-index/Empilement_sans_z-index /fr/docs/Web/CSS/Comprendre_z-index/Empilement_sans_z-index -/fr/docs/CSS/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS -/fr/docs/CSS/FAQ /fr/docs/Web/CSS/CSS_questions_frequentes -/fr/docs/CSS/Feuilles_de_style_alternatives /fr/docs/Web/CSS/Feuilles_de_style_alternatives -/fr/docs/CSS/Fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans -/fr/docs/CSS/Fusion_des_marges /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Fusion_des_marges -/fr/docs/CSS/Héritage /fr/docs/Web/CSS/Héritage +/fr/docs/CSS/Comprendre_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index +/fr/docs/CSS/Comprendre_z-index/Ajout_de_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/fr/docs/CSS/Comprendre_z-index/Empilement_et_float /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float +/fr/docs/CSS/Comprendre_z-index/Empilement_sans_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/fr/docs/CSS/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/fr/docs/CSS/FAQ /fr/docs/Learn/CSS/Howto/CSS_FAQ +/fr/docs/CSS/Feuilles_de_style_alternatives /fr/docs/Web/CSS/Alternative_style_sheets +/fr/docs/CSS/Fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds +/fr/docs/CSS/Fusion_des_marges /fr/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +/fr/docs/CSS/Héritage /fr/docs/Web/CSS/inheritance /fr/docs/CSS/Image-rendering /fr/docs/Web/CSS/Image-rendering -/fr/docs/CSS/Media_queries /fr/docs/Web/CSS/Requêtes_média/Utiliser_les_Media_queries -/fr/docs/CSS/Mode_de_mise_en_page /fr/docs/Web/CSS/Mode_de_mise_en_page +/fr/docs/CSS/Media_queries /fr/docs/Web/CSS/Media_Queries/Using_media_queries +/fr/docs/CSS/Mode_de_mise_en_page /fr/docs/Web/CSS/Layout_mode /fr/docs/CSS/Modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model /fr/docs/CSS/Média /fr/docs/Web/CSS/@media /fr/docs/CSS/Média/Visuel /fr/docs/Web/CSS/@media -/fr/docs/CSS/Premiers_pas/Contenu /fr/docs/Apprendre/CSS/Comment/Generated_content -/fr/docs/CSS/Premiers_pas/Définition_des_CSS /fr/docs/CSS/Premiers_pas/Présentation_des_CSS -/fr/docs/CSS/Premiers_pas/Sélecteurs /fr/docs/CSS/Premiers_pas/Les_sélecteurs -/fr/docs/CSS/Propriétés_raccourcies /fr/docs/Web/CSS/Propriétés_raccourcies +/fr/docs/CSS/Premiers_pas /fr/docs/conflicting/Learn/CSS/First_steps +/fr/docs/CSS/Premiers_pas/Boîtes /fr/docs/conflicting/Learn/CSS/Building_blocks +/fr/docs/CSS/Premiers_pas/Cascade_et_héritage /fr/docs/conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance +/fr/docs/CSS/Premiers_pas/Contenu /fr/docs/Learn/CSS/Howto/Generated_content +/fr/docs/CSS/Premiers_pas/Couleurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Values_and_units +/fr/docs/CSS/Premiers_pas/Des_CSS_lisibles /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_is_structured +/fr/docs/CSS/Premiers_pas/Définition_des_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c +/fr/docs/CSS/Premiers_pas/Fonctionnement_de_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_cdccf923f6bd040e8d243ee03d223ddc +/fr/docs/CSS/Premiers_pas/Graphiques_SVG /fr/docs/Web/SVG/Tutorial/SVG_and_CSS +/fr/docs/CSS/Premiers_pas/JavaScript /fr/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents +/fr/docs/CSS/Premiers_pas/Les_sélecteurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9 +/fr/docs/CSS/Premiers_pas/Listes /fr/docs/conflicting/Learn/CSS/Styling_text/Styling_lists_06e9538892250c13976a84639f0dadd2 +/fr/docs/CSS/Premiers_pas/Mise_en_page /fr/docs/conflicting/Learn/CSS/CSS_layout +/fr/docs/CSS/Premiers_pas/Médias /fr/docs/Web/Progressive_web_apps/Responsive/Media_types +/fr/docs/CSS/Premiers_pas/Pourquoi_utiliser_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_ecbda2160290b96c02dcfa8276c0333a +/fr/docs/CSS/Premiers_pas/Présentation_des_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c +/fr/docs/CSS/Premiers_pas/Styles_de_texte /fr/docs/conflicting/Learn/CSS/Styling_text/Fundamentals_8249b1bf53d09b06ed51f43697880b5b +/fr/docs/CSS/Premiers_pas/Sélecteurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9 +/fr/docs/CSS/Premiers_pas/Tableaux /fr/docs/conflicting/Learn/CSS/Building_blocks/Styling_tables +/fr/docs/CSS/Propriétés_raccourcies /fr/docs/Web/CSS/Shorthand_properties /fr/docs/CSS/Pseudo-classes /fr/docs/Web/CSS/Pseudo-classes -/fr/docs/CSS/Pseudo-éléments /fr/docs/Web/CSS/Pseudo-éléments +/fr/docs/CSS/Pseudo-éléments /fr/docs/Web/CSS/Pseudo-elements /fr/docs/CSS/Reference /fr/docs/Web/CSS/Reference -/fr/docs/CSS/Reference/Mozilla_Extensions /fr/docs/Web/CSS/Extensions_Mozilla -/fr/docs/CSS/Reference/Sélecteurs_d'ID /fr/docs/Web/CSS/Sélecteurs_d_ID -/fr/docs/CSS/Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Sélecteurs_d_attribut -/fr/docs/CSS/Règles_@ /fr/docs/Web/CSS/Règles_@ +/fr/docs/CSS/Reference/Mozilla_Extensions /fr/docs/Web/CSS/Mozilla_Extensions +/fr/docs/CSS/Reference/Sélecteurs_d'ID /fr/docs/Web/CSS/ID_selectors +/fr/docs/CSS/Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Attribute_selectors +/fr/docs/CSS/Règles_@ /fr/docs/Web/CSS/At-rule /fr/docs/CSS/Référence_CSS /fr/docs/Web/CSS/Reference /fr/docs/CSS/Référence_CSS-redirect-1 /fr/docs/Web/CSS/Reference /fr/docs/CSS/Spécificité /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance /fr/docs/CSS/Syntaxe /en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured -/fr/docs/CSS/Syntaxe_de_définition_des_valeurs /fr/docs/Web/CSS/Syntaxe_de_définition_des_valeurs +/fr/docs/CSS/Syntaxe_de_définition_des_valeurs /fr/docs/Web/CSS/Value_definition_syntax /fr/docs/CSS/Syntaxe_des_valeurs_CSS /fr/docs/Web/CSS -/fr/docs/CSS/Sélecteurs_d'attribut /fr/docs/Web/CSS/Sélecteurs_d_attribut -/fr/docs/CSS/Sélecteurs_de_classe /fr/docs/Web/CSS/Sélecteurs_de_classe -/fr/docs/CSS/Sélecteurs_de_type /fr/docs/Web/CSS/Sélecteurs_de_type -/fr/docs/CSS/Sélecteurs_de_voisins_généraux /fr/docs/Web/CSS/Sélecteurs_de_voisins_généraux -/fr/docs/CSS/Sélecteurs_descendant /fr/docs/Web/CSS/Sélecteurs_descendant -/fr/docs/CSS/Sélecteurs_enfant /fr/docs/Web/CSS/Sélecteurs_enfant -/fr/docs/CSS/Sélecteurs_universels /fr/docs/Web/CSS/Sélecteurs_universels +/fr/docs/CSS/Sélecteurs_d'attribut /fr/docs/Web/CSS/Attribute_selectors +/fr/docs/CSS/Sélecteurs_de_classe /fr/docs/Web/CSS/Class_selectors +/fr/docs/CSS/Sélecteurs_de_type /fr/docs/Web/CSS/Type_selectors +/fr/docs/CSS/Sélecteurs_de_voisins_généraux /fr/docs/Web/CSS/General_sibling_combinator +/fr/docs/CSS/Sélecteurs_descendant /fr/docs/Web/CSS/Descendant_combinator +/fr/docs/CSS/Sélecteurs_enfant /fr/docs/Web/CSS/Child_combinator +/fr/docs/CSS/Sélecteurs_universels /fr/docs/Web/CSS/Universal_selectors /fr/docs/CSS/Tutorials /fr/docs/Web/CSS/Tutorials -/fr/docs/CSS/Using_CSS_gradients /fr/docs/Web/CSS/Utilisation_de_dégradés_CSS -/fr/docs/CSS/Utilisation_de_dégradés_CSS /fr/docs/Web/CSS/Utilisation_de_dégradés_CSS -/fr/docs/CSS/Utilisation_des_transformations_CSS /fr/docs/Web/CSS/CSS_Transforms/Utilisation_des_transformations_CSS -/fr/docs/CSS/Valeur_calculée /fr/docs/Web/CSS/Valeur_calculée -/fr/docs/CSS/Valeur_initiale /fr/docs/Web/CSS/Valeur_initiale -/fr/docs/CSS/Valeur_spécifiée /fr/docs/Web/CSS/Valeur_spécifiée -/fr/docs/CSS/Valeur_utilisée /fr/docs/Web/CSS/Valeur_utilisée +/fr/docs/CSS/Using_CSS_gradients /fr/docs/Web/CSS/CSS_Images/Using_CSS_gradients +/fr/docs/CSS/Utilisation_de_dégradés_CSS /fr/docs/Web/CSS/CSS_Images/Using_CSS_gradients +/fr/docs/CSS/Utilisation_des_transformations_CSS /fr/docs/Web/CSS/CSS_Transforms/Using_CSS_transforms +/fr/docs/CSS/Valeur_calculée /fr/docs/Web/CSS/computed_value +/fr/docs/CSS/Valeur_initiale /fr/docs/Web/CSS/initial_value +/fr/docs/CSS/Valeur_spécifiée /fr/docs/Web/CSS/specified_value +/fr/docs/CSS/Valeur_utilisée /fr/docs/Web/CSS/used_value /fr/docs/CSS/angle /fr/docs/Web/CSS/angle /fr/docs/CSS/animation /fr/docs/Web/CSS/animation /fr/docs/CSS/animation-delay /fr/docs/Web/CSS/animation-delay @@ -272,7 +498,7 @@ /fr/docs/CSS/animation-redirection-1 /fr/docs/Web/CSS/animation /fr/docs/CSS/animation-timing-function /fr/docs/Web/CSS/animation-timing-function /fr/docs/CSS/attr /fr/docs/Web/CSS/attr() -/fr/docs/CSS/auto /fr/docs/Web/CSS/auto +/fr/docs/CSS/auto /fr/docs/conflicting/Web/CSS/width /fr/docs/CSS/azimuth /fr/docs/Web/CSS/azimuth /fr/docs/CSS/backface-visibility /fr/docs/Web/CSS/backface-visibility /fr/docs/CSS/backface-visibility-redirection-1 /fr/docs/Web/CSS/backface-visibility @@ -326,7 +552,7 @@ /fr/docs/CSS/clip /fr/docs/Web/CSS/clip /fr/docs/CSS/clip-path /fr/docs/Web/CSS/clip-path /fr/docs/CSS/color /fr/docs/Web/CSS/color -/fr/docs/CSS/color_value /fr/docs/Web/CSS/Type_color +/fr/docs/CSS/color_value /fr/docs/Web/CSS/color_value /fr/docs/CSS/column-count /fr/docs/Web/CSS/column-count /fr/docs/CSS/column-fill /fr/docs/Web/CSS/column-fill /fr/docs/CSS/column-gap /fr/docs/Web/CSS/column-gap @@ -337,10 +563,10 @@ /fr/docs/CSS/column-span /fr/docs/Web/CSS/column-span /fr/docs/CSS/column-width /fr/docs/Web/CSS/column-width /fr/docs/CSS/columns /fr/docs/Web/CSS/columns -/fr/docs/CSS/compteur /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS -/fr/docs/CSS/computed_value /fr/docs/Web/CSS/Valeur_calculée +/fr/docs/CSS/compteur /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/fr/docs/CSS/computed_value /fr/docs/Web/CSS/computed_value /fr/docs/CSS/content /fr/docs/Web/CSS/content -/fr/docs/CSS/counter /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS +/fr/docs/CSS/counter /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters /fr/docs/CSS/counter-increment /fr/docs/Web/CSS/counter-increment /fr/docs/CSS/counter-reset /fr/docs/Web/CSS/counter-reset /fr/docs/CSS/cursor /fr/docs/Web/CSS/cursor @@ -369,9 +595,9 @@ /fr/docs/CSS/image-orientation /fr/docs/Web/CSS/image-orientation /fr/docs/CSS/ime-mode /fr/docs/Web/CSS/ime-mode /fr/docs/CSS/inherit /fr/docs/Web/CSS/inherit -/fr/docs/CSS/inheritance /fr/docs/Web/CSS/Héritage +/fr/docs/CSS/inheritance /fr/docs/Web/CSS/inheritance /fr/docs/CSS/initial /fr/docs/Web/CSS/initial -/fr/docs/CSS/initial_value /fr/docs/Web/CSS/Valeur_initiale +/fr/docs/CSS/initial_value /fr/docs/Web/CSS/initial_value /fr/docs/CSS/integer /fr/docs/Web/CSS/integer /fr/docs/CSS/left /fr/docs/Web/CSS/left /fr/docs/CSS/length /fr/docs/Web/CSS/length @@ -394,8 +620,8 @@ /fr/docs/CSS/min-height /fr/docs/Web/CSS/min-height /fr/docs/CSS/min-width /fr/docs/Web/CSS/min-width /fr/docs/CSS/nombre /fr/docs/Web/CSS/number -/fr/docs/CSS/none /fr/docs/Web/CSS/none -/fr/docs/CSS/normal /fr/docs/Web/CSS/normal +/fr/docs/CSS/none /fr/docs/conflicting/Web/CSS/float +/fr/docs/CSS/normal /fr/docs/conflicting/Web/CSS/font-variant /fr/docs/CSS/number /fr/docs/Web/CSS/number /fr/docs/CSS/opacity /fr/docs/Web/CSS/opacity /fr/docs/CSS/orphans /fr/docs/Web/CSS/orphans @@ -418,7 +644,7 @@ /fr/docs/CSS/pointer-events /fr/docs/Web/CSS/pointer-events /fr/docs/CSS/position /fr/docs/Web/CSS/position /fr/docs/CSS/pourcentage /fr/docs/Web/CSS/percentage -/fr/docs/CSS/proprietes_css_animees /fr/docs/Web/CSS/Liste_propriétés_CSS_animées +/fr/docs/CSS/proprietes_css_animees /fr/docs/Web/CSS/CSS_animated_properties /fr/docs/CSS/quotes /fr/docs/Web/CSS/quotes /fr/docs/CSS/radial-gradient /fr/docs/Web/CSS/radial-gradient() /fr/docs/CSS/ratio /fr/docs/Web/CSS/ratio @@ -454,11 +680,11 @@ /fr/docs/CSS/transition-timing-function /fr/docs/Web/CSS/transition-timing-function /fr/docs/CSS/translation-value /fr/docs/Web/CSS/translation-value /fr/docs/CSS/unicode-bidi /fr/docs/Web/CSS/unicode-bidi -/fr/docs/CSS/uri /fr/docs/Web/CSS/url +/fr/docs/CSS/uri /fr/docs/conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f /fr/docs/CSS/user-ident /fr/docs/Web/CSS/custom-ident /fr/docs/CSS/user-select /fr/docs/Web/CSS/user-select -/fr/docs/CSS/valeur_de_couleur /fr/docs/Web/CSS/Type_color -/fr/docs/CSS/valeur_reelle /fr/docs/Web/CSS/valeur_reelle +/fr/docs/CSS/valeur_de_couleur /fr/docs/Web/CSS/color_value +/fr/docs/CSS/valeur_reelle /fr/docs/Web/CSS/actual_value /fr/docs/CSS/vertical-align /fr/docs/Web/CSS/vertical-align /fr/docs/CSS/visibility /fr/docs/Web/CSS/visibility /fr/docs/CSS/white-space /fr/docs/Web/CSS/white-space @@ -469,7 +695,7 @@ /fr/docs/CSS/word-wrap /fr/docs/Web/CSS/overflow-wrap /fr/docs/CSS/writing-mode /fr/docs/Web/CSS/writing-mode /fr/docs/CSS/z-index /fr/docs/Web/CSS/z-index -/fr/docs/CSS/Élément_remplacé /fr/docs/Web/CSS/Élément_remplacé +/fr/docs/CSS/Élément_remplacé /fr/docs/Web/CSS/Replaced_element /fr/docs/CSS:-moz-alias /fr/docs/Web/CSS/cursor /fr/docs/CSS:-moz-appearance /fr/docs/Web/CSS/appearance /fr/docs/CSS:-moz-background-clip /fr/docs/Web/CSS/background-clip @@ -490,7 +716,7 @@ /fr/docs/CSS:-moz-box-orient /fr/docs/Web/CSS/box-orient /fr/docs/CSS:-moz-box-pack /fr/docs/Web/CSS/box-pack /fr/docs/CSS:-moz-box-sizing /fr/docs/Web/CSS/box-sizing -/fr/docs/CSS:-moz-cell /fr/docs/Web/CSS/-moz-cell +/fr/docs/CSS:-moz-cell /fr/docs/conflicting/Web/CSS/cursor /fr/docs/CSS:-moz-context-menu /fr/docs/Web/CSS/cursor /fr/docs/CSS:-moz-copy /fr/docs/Web/CSS/cursor /fr/docs/CSS:-moz-grab /en-US/docs/Web/CSS/cursor#grab @@ -527,34 +753,34 @@ /fr/docs/CSS:@font-face /fr/docs/Web/CSS/@font-face /fr/docs/CSS:@import /fr/docs/Web/CSS/@import /fr/docs/CSS:@media /fr/docs/Web/CSS/@media -/fr/docs/CSS:Fusion_des_marges /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Fusion_des_marges -/fr/docs/CSS:Héritage /fr/docs/Web/CSS/Héritage +/fr/docs/CSS:Fusion_des_marges /fr/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +/fr/docs/CSS:Héritage /fr/docs/Web/CSS/inheritance /fr/docs/CSS:Modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model /fr/docs/CSS:Média:Visuel /fr/docs/Web/CSS/@media -/fr/docs/CSS:Premiers_pas /fr/docs/CSS/Premiers_pas -/fr/docs/CSS:Premiers_pas:Boîtes /fr/docs/CSS/Premiers_pas/Boîtes -/fr/docs/CSS:Premiers_pas:Cascade_et_héritage /fr/docs/CSS/Premiers_pas/Cascade_et_héritage -/fr/docs/CSS:Premiers_pas:Contenu /fr/docs/Apprendre/CSS/Comment/Generated_content -/fr/docs/CSS:Premiers_pas:Couleurs /fr/docs/CSS/Premiers_pas/Couleurs -/fr/docs/CSS:Premiers_pas:Des_CSS_lisibles /fr/docs/CSS/Premiers_pas/Des_CSS_lisibles +/fr/docs/CSS:Premiers_pas /fr/docs/conflicting/Learn/CSS/First_steps +/fr/docs/CSS:Premiers_pas:Boîtes /fr/docs/conflicting/Learn/CSS/Building_blocks +/fr/docs/CSS:Premiers_pas:Cascade_et_héritage /fr/docs/conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance +/fr/docs/CSS:Premiers_pas:Contenu /fr/docs/Learn/CSS/Howto/Generated_content +/fr/docs/CSS:Premiers_pas:Couleurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Values_and_units +/fr/docs/CSS:Premiers_pas:Des_CSS_lisibles /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_is_structured /fr/docs/CSS:Premiers_pas:Données_XML /fr/docs/CSS/Premiers_pas/Données_XML -/fr/docs/CSS:Premiers_pas:Définition_des_CSS /fr/docs/CSS/Premiers_pas/Présentation_des_CSS -/fr/docs/CSS:Premiers_pas:Fonctionnement_de_CSS /fr/docs/CSS/Premiers_pas/Fonctionnement_de_CSS -/fr/docs/CSS:Premiers_pas:Graphiques_SVG /fr/docs/CSS/Premiers_pas/Graphiques_SVG +/fr/docs/CSS:Premiers_pas:Définition_des_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c +/fr/docs/CSS:Premiers_pas:Fonctionnement_de_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_cdccf923f6bd040e8d243ee03d223ddc +/fr/docs/CSS:Premiers_pas:Graphiques_SVG /fr/docs/Web/SVG/Tutorial/SVG_and_CSS /fr/docs/CSS:Premiers_pas:Interfaces_utilisateur_XUL /fr/docs/CSS/Premiers_pas/Interfaces_utilisateur_XUL -/fr/docs/CSS:Premiers_pas:JavaScript /fr/docs/CSS/Premiers_pas/JavaScript -/fr/docs/CSS:Premiers_pas:Les_sélecteurs /fr/docs/CSS/Premiers_pas/Les_sélecteurs +/fr/docs/CSS:Premiers_pas:JavaScript /fr/docs/conflicting/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents +/fr/docs/CSS:Premiers_pas:Les_sélecteurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9 /fr/docs/CSS:Premiers_pas:Liaisons_XBL /fr/docs/CSS/Premiers_pas/Liaisons_XBL -/fr/docs/CSS:Premiers_pas:Listes /fr/docs/CSS/Premiers_pas/Listes -/fr/docs/CSS:Premiers_pas:Mise_en_page /fr/docs/CSS/Premiers_pas/Mise_en_page -/fr/docs/CSS:Premiers_pas:Médias /fr/docs/CSS/Premiers_pas/Médias -/fr/docs/CSS:Premiers_pas:Pourquoi_utiliser_CSS /fr/docs/CSS/Premiers_pas/Pourquoi_utiliser_CSS -/fr/docs/CSS:Premiers_pas:Présentation_des_CSS /fr/docs/CSS/Premiers_pas/Présentation_des_CSS -/fr/docs/CSS:Premiers_pas:Styles_de_texte /fr/docs/CSS/Premiers_pas/Styles_de_texte -/fr/docs/CSS:Premiers_pas:Sélecteurs /fr/docs/CSS/Premiers_pas/Les_sélecteurs -/fr/docs/CSS:Premiers_pas:Tableaux /fr/docs/CSS/Premiers_pas/Tableaux -/fr/docs/CSS:Valeur_calculée /fr/docs/Web/CSS/Valeur_calculée -/fr/docs/CSS:Valeur_initiale /fr/docs/Web/CSS/Valeur_initiale +/fr/docs/CSS:Premiers_pas:Listes /fr/docs/conflicting/Learn/CSS/Styling_text/Styling_lists_06e9538892250c13976a84639f0dadd2 +/fr/docs/CSS:Premiers_pas:Mise_en_page /fr/docs/conflicting/Learn/CSS/CSS_layout +/fr/docs/CSS:Premiers_pas:Médias /fr/docs/Web/Progressive_web_apps/Responsive/Media_types +/fr/docs/CSS:Premiers_pas:Pourquoi_utiliser_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_ecbda2160290b96c02dcfa8276c0333a +/fr/docs/CSS:Premiers_pas:Présentation_des_CSS /fr/docs/conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c +/fr/docs/CSS:Premiers_pas:Styles_de_texte /fr/docs/conflicting/Learn/CSS/Styling_text/Fundamentals_8249b1bf53d09b06ed51f43697880b5b +/fr/docs/CSS:Premiers_pas:Sélecteurs /fr/docs/conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9 +/fr/docs/CSS:Premiers_pas:Tableaux /fr/docs/conflicting/Learn/CSS/Building_blocks/Styling_tables +/fr/docs/CSS:Valeur_calculée /fr/docs/Web/CSS/computed_value +/fr/docs/CSS:Valeur_initiale /fr/docs/Web/CSS/initial_value /fr/docs/CSS:azimuth /fr/docs/Web/CSS/azimuth /fr/docs/CSS:background /fr/docs/Web/CSS/background /fr/docs/CSS:background-attachment /fr/docs/Web/CSS/background-attachment @@ -624,37 +850,43 @@ /fr/docs/CSS:text-align /fr/docs/Web/CSS/text-align /fr/docs/CSS:text-decoration /fr/docs/Web/CSS/text-decoration /fr/docs/CSS:text-shadow /fr/docs/Web/CSS/text-shadow -/fr/docs/CSS:valeur_de_couleur /fr/docs/Web/CSS/Type_color +/fr/docs/CSS:valeur_de_couleur /fr/docs/Web/CSS/color_value /fr/docs/CSS:vertical-align /fr/docs/Web/CSS/vertical-align /fr/docs/CSS:visibility /fr/docs/Web/CSS/visibility /fr/docs/CSS:width /fr/docs/Web/CSS/width /fr/docs/CSS:z-index /fr/docs/Web/CSS/z-index /fr/docs/Canvas /fr/docs/Web/API/Canvas_API -/fr/docs/Canvas/Texte /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas -/fr/docs/Canvas:Texte /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas -/fr/docs/Canvas_tutoriel /fr/docs/Web/API/Canvas_API/Tutoriel_canvas -/fr/docs/Canvas_tutoriel/Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images -/fr/docs/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes -/fr/docs/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL +/fr/docs/Canvas/Texte /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_text +/fr/docs/Canvas:Texte /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_text +/fr/docs/Canvas_tutoriel /fr/docs/Web/API/Canvas_API/Tutorial +/fr/docs/Canvas_tutoriel/Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutorial/Using_images +/fr/docs/Changements_dans_Gecko_1.9_affectant_les_sites_Web /fr/docs/Mozilla/Firefox/Releases/3/Site_compatibility +/fr/docs/Chrome /fr/docs/conflicting/Glossary/Chrome +/fr/docs/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/fr/docs/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/Comment_créer_un_arbre_DOM /fr/docs/Web/API/Document_object_model/How_to_create_a_DOM_tree +/fr/docs/Compilation_et_installation /fr/docs/Mozilla/Developer_guide/Build_Instructions /fr/docs/Components /fr/docs/L'objet_Components -/fr/docs/Comprendre_le_z-index_en_CSS /fr/docs/Web/CSS/Comprendre_z-index -/fr/docs/Comprendre_le_z-index_en_CSS/Ajout_de_z-index /fr/docs/Web/CSS/Comprendre_z-index/Ajout_de_z-index -/fr/docs/Comprendre_le_z-index_en_CSS/Empilement_et_float /fr/docs/Web/CSS/Comprendre_z-index/Empilement_et_float -/fr/docs/Comprendre_le_z-index_en_CSS/Empilement_sans_z-index /fr/docs/Web/CSS/Comprendre_z-index/Empilement_sans_z-index -/fr/docs/Comprendre_le_z-index_en_CSS:Ajout_de_z-index /fr/docs/Web/CSS/Comprendre_z-index/Ajout_de_z-index -/fr/docs/Comprendre_le_z-index_en_CSS:Empilement_et_float /fr/docs/Web/CSS/Comprendre_z-index/Empilement_et_float -/fr/docs/Comprendre_le_z-index_en_CSS:Empilement_sans_z-index /fr/docs/Web/CSS/Comprendre_z-index/Empilement_sans_z-index -/fr/docs/Comprendre_z-index /fr/docs/Web/CSS/Comprendre_z-index -/fr/docs/Comprendre_z-index/Ajout_de_z-index /fr/docs/Web/CSS/Comprendre_z-index/Ajout_de_z-index -/fr/docs/Comprendre_z-index/Empilement_et_float /fr/docs/Web/CSS/Comprendre_z-index/Empilement_et_float -/fr/docs/Comprendre_z-index/Empilement_sans_z-index /fr/docs/Web/CSS/Comprendre_z-index/Empilement_sans_z-index -/fr/docs/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS -/fr/docs/Consistent_List_Indentation /fr/docs/Web/CSS/CSS_Lists/Indentation_homogène_des_listes -/fr/docs/Console_JavaScript /fr/docs/Outils/Console_JavaScript +/fr/docs/Comprendre_le_z-index_en_CSS /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index +/fr/docs/Comprendre_le_z-index_en_CSS/Ajout_de_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/fr/docs/Comprendre_le_z-index_en_CSS/Empilement_et_float /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float +/fr/docs/Comprendre_le_z-index_en_CSS/Empilement_sans_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/fr/docs/Comprendre_le_z-index_en_CSS:Ajout_de_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/fr/docs/Comprendre_le_z-index_en_CSS:Empilement_et_float /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float +/fr/docs/Comprendre_le_z-index_en_CSS:Empilement_sans_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/fr/docs/Comprendre_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index +/fr/docs/Comprendre_z-index/Ajout_de_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/fr/docs/Comprendre_z-index/Empilement_et_float /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float +/fr/docs/Comprendre_z-index/Empilement_sans_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/fr/docs/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/fr/docs/Consistent_List_Indentation /fr/docs/Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation +/fr/docs/Console_JavaScript /fr/docs/Tools/Browser_Console /fr/docs/Construire_une_extension /fr/docs/Mozilla/Add-ons -/fr/docs/Contrôle_du_correcteur_d'orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Attributs_universels/spellcheck +/fr/docs/Contrôle_du_correcteur_d'orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Global_attributes/spellcheck +/fr/docs/Contrôles_DHTML_personnalisés_navigables_au_clavier /fr/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets /fr/docs/Création_d'un_microrésumé /fr/docs/Création_d'un_générateur_de_microrésumé /fr/docs/Création_d'un_pack_de_langue-redirection-1 /fr/docs/Création_d'un_pack_de_langue +/fr/docs/DHTML /fr/docs/Glossary/DHTML /fr/docs/DOM /fr/docs/Web/API/Document_Object_Model /fr/docs/DOM/Apps.mgmt.getAll /fr/docs/Web/API/DomApplicationsManager/getAll /fr/docs/DOM/Autres_ressources /fr/docs/Web/API/Document_Object_Model @@ -678,9 +910,11 @@ /fr/docs/DOM/Node /fr/docs/Web/API/Node /fr/docs/DOM/NodeList /fr/docs/Web/API/NodeList /fr/docs/DOM/Selection/toString /fr/docs/Web/API/Selection/toString +/fr/docs/DOM/Storage /fr/docs/conflicting/Web/API/Web_Storage_API /fr/docs/DOM/Whitespace_template /fr/docs/Web/API/Document_Object_Model/Whitespace +/fr/docs/DOM/dispatchEvent_exemple /fr/docs/conflicting/Web/Guide/Events/Creating_and_triggering_events /fr/docs/DOM/document /fr/docs/Web/API/Document -/fr/docs/DOM/document.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/DOM/document.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/DOM/document.body /fr/docs/Web/API/Document/body /fr/docs/DOM/document.createAttribute /fr/docs/Web/API/Document/createAttribute /fr/docs/DOM/document.createDocumentFragment /fr/docs/Web/API/Document/createDocumentFragment @@ -688,7 +922,7 @@ /fr/docs/DOM/document.createTextNode /fr/docs/Web/API/Document/createTextNode /fr/docs/DOM/document.documentElement /fr/docs/Web/API/Document/documentElement /fr/docs/DOM/document.documentURIObject /fr/docs/Web/API/Document/documentURIObject -/fr/docs/DOM/document.elementFromPoint /fr/docs/Web/API/Document/elementFromPoint +/fr/docs/DOM/document.elementFromPoint /fr/docs/Web/API/DocumentOrShadowRoot/elementFromPoint /fr/docs/DOM/document.execCommand /fr/docs/Web/API/Document/execCommand /fr/docs/DOM/document.firstChild /fr/docs/Web/API/Node/firstChild /fr/docs/DOM/document.getElementById /fr/docs/Web/API/Document/getElementById @@ -701,11 +935,11 @@ /fr/docs/DOM/document.open /fr/docs/Web/API/Document/open /fr/docs/DOM/document.write /fr/docs/Web/API/Document/write /fr/docs/DOM/element /fr/docs/Web/API/Element -/fr/docs/DOM/element.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/DOM/element.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/DOM/element.addEventListener /fr/docs/Web/API/EventTarget/addEventListener /fr/docs/DOM/element.appendChild /fr/docs/Web/API/Node/appendChild /fr/docs/DOM/element.attributes /fr/docs/Web/API/Element/attributes -/fr/docs/DOM/element.blur /fr/docs/Web/API/Element.blur +/fr/docs/DOM/element.blur /fr/docs/Web/API/HTMLOrForeignElement/blur /fr/docs/DOM/element.childNodes /fr/docs/Web/API/Node/childNodes /fr/docs/DOM/element.classList /fr/docs/Web/API/Element/classList /fr/docs/DOM/element.className /fr/docs/Web/API/Element/className @@ -717,7 +951,7 @@ /fr/docs/DOM/element.dir /fr/docs/Web/API/HTMLElement/dir /fr/docs/DOM/element.dispatchEvent /fr/docs/Web/API/EventTarget/dispatchEvent /fr/docs/DOM/element.firstChild /fr/docs/Web/API/Node/firstChild -/fr/docs/DOM/element.focus /fr/docs/Web/API/HTMLElement/focus +/fr/docs/DOM/element.focus /fr/docs/Web/API/HTMLOrForeignElement/focus /fr/docs/DOM/element.getAttribute /fr/docs/Web/API/Element/getAttribute /fr/docs/DOM/element.getAttributeNS /fr/docs/Web/API/Element/getAttributeNS /fr/docs/DOM/element.getAttributeNode /fr/docs/Web/API/Element/getAttributeNode @@ -731,14 +965,14 @@ /fr/docs/DOM/element.hasChildNodes /fr/docs/Web/API/Node/hasChildNodes /fr/docs/DOM/element.hasFocus /fr/docs/Web/API/Document/hasFocus /fr/docs/DOM/element.id /fr/docs/Web/API/Element/id -/fr/docs/DOM/element.innerHTML /fr/docs/Web/API/Element/innertHTML +/fr/docs/DOM/element.innerHTML /fr/docs/Web/API/Element/innerHTML /fr/docs/DOM/element.insertAdjacentHTML /fr/docs/Web/API/Element/insertAdjacentHTML /fr/docs/DOM/element.insertBefore /fr/docs/Web/API/Node/insertBefore /fr/docs/DOM/element.isSupported /fr/docs/Web/API/Node/isSupported /fr/docs/DOM/element.lang /fr/docs/Web/API/HTMLElement/lang /fr/docs/DOM/element.lastChild /fr/docs/Web/API/Node/lastChild /fr/docs/DOM/element.localName /fr/docs/Web/API/Node/localName -/fr/docs/DOM/element.name /fr/docs/Web/API/Element/name +/fr/docs/DOM/element.name /fr/docs/conflicting/Web/API /fr/docs/DOM/element.namespaceURI /fr/docs/Web/API/Node/namespaceURI /fr/docs/DOM/element.nextSibling /fr/docs/Web/API/Node/nextSibling /fr/docs/DOM/element.nodeName /fr/docs/Web/API/Node/nodeName @@ -784,8 +1018,8 @@ /fr/docs/DOM/element.setAttributeNS /fr/docs/Web/API/Element/setAttributeNS /fr/docs/DOM/element.setAttributeNode /fr/docs/Web/API/Element/setAttributeNode /fr/docs/DOM/element.setAttributeNodeNS /fr/docs/Web/API/Element/setAttributeNodeNS -/fr/docs/DOM/element.style /fr/docs/Web/API/HTMLElement/style -/fr/docs/DOM/element.tabIndex /fr/docs/Web/API/HTMLElement/tabIndex +/fr/docs/DOM/element.style /fr/docs/Web/API/ElementCSSInlineStyle/style +/fr/docs/DOM/element.tabIndex /fr/docs/Web/API/HTMLOrForeignElement/tabIndex /fr/docs/DOM/element.tagName /fr/docs/Web/API/Element/tagName /fr/docs/DOM/element.textContent /fr/docs/Web/API/Node/textContent /fr/docs/DOM/event /fr/docs/Web/API/Event @@ -793,8 +1027,8 @@ /fr/docs/DOM/event.layerX /fr/docs/Web/API/UIEvent/layerX /fr/docs/DOM/event.stopPropagation /fr/docs/Web/API/Event/stopPropagation /fr/docs/DOM/form /fr/docs/Web/API/HTMLFormElement -/fr/docs/DOM/manipuler_lhistorique_du_navigateur /fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur -/fr/docs/DOM/manipuler_lhistorique_du_navigateur/Example /fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur/Example +/fr/docs/DOM/manipuler_lhistorique_du_navigateur /fr/docs/Web/API/History_API +/fr/docs/DOM/manipuler_lhistorique_du_navigateur/Example /fr/docs/Web/API/History_API/Example /fr/docs/DOM/range /fr/docs/Web/API/Range /fr/docs/DOM/selection /fr/docs/Web/API/Selection /fr/docs/DOM/style /fr/docs/Web/API/HTMLStyleElement @@ -804,9 +1038,9 @@ /fr/docs/DOM/window /fr/docs/Web/API/Window /fr/docs/DOM/window.URL.createObjectURL /fr/docs/Web/API/URL/createObjectURL /fr/docs/DOM/window.alert /fr/docs/Web/API/Window/alert -/fr/docs/DOM/window.atob /fr/docs/Web/API/WindowBase64/atob -/fr/docs/DOM/window.btoa /fr/docs/Web/API/WindowBase64/btoa -/fr/docs/DOM/window.clearInterval /fr/docs/Web/API/WindowTimers/clearInterval +/fr/docs/DOM/window.atob /fr/docs/Web/API/WindowOrWorkerGlobalScope/atob +/fr/docs/DOM/window.btoa /fr/docs/Web/API/WindowOrWorkerGlobalScope/btoa +/fr/docs/DOM/window.clearInterval /fr/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /fr/docs/DOM/window.close /fr/docs/Web/API/Window/close /fr/docs/DOM/window.closed /fr/docs/Web/API/Window/closed /fr/docs/DOM/window.confirm /fr/docs/Web/API/Window/confirm @@ -840,17 +1074,17 @@ /fr/docs/DOM/window.showModalDialog /fr/docs/Web/API/Window/showModalDialog /fr/docs/DOM:Autres_ressources /fr/docs/Web/API/Document_Object_Model /fr/docs/DOM:Selection:toString /fr/docs/Web/API/Selection/toString -/fr/docs/DOM:Storage /fr/docs/DOM/Storage +/fr/docs/DOM:Storage /fr/docs/conflicting/Web/API/Web_Storage_API /fr/docs/DOM:Whitespace_template /fr/docs/Web/API/Document_Object_Model/Whitespace -/fr/docs/DOM:dispatchEvent_exemple /fr/docs/DOM/dispatchEvent_exemple +/fr/docs/DOM:dispatchEvent_exemple /fr/docs/conflicting/Web/Guide/Events/Creating_and_triggering_events /fr/docs/DOM:document /fr/docs/Web/API/Document -/fr/docs/DOM:document.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/DOM:document.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/DOM:document.createAttribute /fr/docs/Web/API/Document/createAttribute /fr/docs/DOM:document.createElement /fr/docs/Web/API/Document/createElement /fr/docs/DOM:document.createTextNode /fr/docs/Web/API/Document/createTextNode /fr/docs/DOM:document.documentElement /fr/docs/Web/API/Document/documentElement /fr/docs/DOM:document.documentURIObject /fr/docs/Web/API/Document/documentURIObject -/fr/docs/DOM:document.elementFromPoint /fr/docs/Web/API/Document/elementFromPoint +/fr/docs/DOM:document.elementFromPoint /fr/docs/Web/API/DocumentOrShadowRoot/elementFromPoint /fr/docs/DOM:document.firstChild /fr/docs/Web/API/Node/firstChild /fr/docs/DOM:document.getElementById /fr/docs/Web/API/Document/getElementById /fr/docs/DOM:document.getElementsByClassName /fr/docs/Web/API/Document/getElementsByClassName @@ -862,11 +1096,11 @@ /fr/docs/DOM:document.open /fr/docs/Web/API/Document/open /fr/docs/DOM:document.write /fr/docs/Web/API/Document/write /fr/docs/DOM:element /fr/docs/Web/API/Element -/fr/docs/DOM:element.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/DOM:element.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/DOM:element.addEventListener /fr/docs/Web/API/EventTarget/addEventListener /fr/docs/DOM:element.appendChild /fr/docs/Web/API/Node/appendChild /fr/docs/DOM:element.attributes /fr/docs/Web/API/Element/attributes -/fr/docs/DOM:element.blur /fr/docs/Web/API/Element.blur +/fr/docs/DOM:element.blur /fr/docs/Web/API/HTMLOrForeignElement/blur /fr/docs/DOM:element.childNodes /fr/docs/Web/API/Node/childNodes /fr/docs/DOM:element.className /fr/docs/Web/API/Element/className /fr/docs/DOM:element.click /fr/docs/Web/API/HTMLElement/click @@ -877,7 +1111,7 @@ /fr/docs/DOM:element.dir /fr/docs/Web/API/HTMLElement/dir /fr/docs/DOM:element.dispatchEvent /fr/docs/Web/API/EventTarget/dispatchEvent /fr/docs/DOM:element.firstChild /fr/docs/Web/API/Node/firstChild -/fr/docs/DOM:element.focus /fr/docs/Web/API/HTMLElement/focus +/fr/docs/DOM:element.focus /fr/docs/Web/API/HTMLOrForeignElement/focus /fr/docs/DOM:element.getAttribute /fr/docs/Web/API/Element/getAttribute /fr/docs/DOM:element.getAttributeNS /fr/docs/Web/API/Element/getAttributeNS /fr/docs/DOM:element.getAttributeNode /fr/docs/Web/API/Element/getAttributeNode @@ -891,13 +1125,13 @@ /fr/docs/DOM:element.hasChildNodes /fr/docs/Web/API/Node/hasChildNodes /fr/docs/DOM:element.hasFocus /fr/docs/Web/API/Document/hasFocus /fr/docs/DOM:element.id /fr/docs/Web/API/Element/id -/fr/docs/DOM:element.innerHTML /fr/docs/Web/API/Element/innertHTML +/fr/docs/DOM:element.innerHTML /fr/docs/Web/API/Element/innerHTML /fr/docs/DOM:element.insertBefore /fr/docs/Web/API/Node/insertBefore /fr/docs/DOM:element.isSupported /fr/docs/Web/API/Node/isSupported /fr/docs/DOM:element.lang /fr/docs/Web/API/HTMLElement/lang /fr/docs/DOM:element.lastChild /fr/docs/Web/API/Node/lastChild /fr/docs/DOM:element.localName /fr/docs/Web/API/Node/localName -/fr/docs/DOM:element.name /fr/docs/Web/API/Element/name +/fr/docs/DOM:element.name /fr/docs/conflicting/Web/API /fr/docs/DOM:element.namespaceURI /fr/docs/Web/API/Node/namespaceURI /fr/docs/DOM:element.nextSibling /fr/docs/Web/API/Node/nextSibling /fr/docs/DOM:element.nodeName /fr/docs/Web/API/Node/nodeName @@ -943,8 +1177,8 @@ /fr/docs/DOM:element.setAttributeNS /fr/docs/Web/API/Element/setAttributeNS /fr/docs/DOM:element.setAttributeNode /fr/docs/Web/API/Element/setAttributeNode /fr/docs/DOM:element.setAttributeNodeNS /fr/docs/Web/API/Element/setAttributeNodeNS -/fr/docs/DOM:element.style /fr/docs/Web/API/HTMLElement/style -/fr/docs/DOM:element.tabIndex /fr/docs/Web/API/HTMLElement/tabIndex +/fr/docs/DOM:element.style /fr/docs/Web/API/ElementCSSInlineStyle/style +/fr/docs/DOM:element.tabIndex /fr/docs/Web/API/HTMLOrForeignElement/tabIndex /fr/docs/DOM:element.tagName /fr/docs/Web/API/Element/tagName /fr/docs/DOM:element.textContent /fr/docs/Web/API/Node/textContent /fr/docs/DOM:event /fr/docs/Web/API/Event @@ -957,9 +1191,9 @@ /fr/docs/DOM:table.caption /fr/docs/Web/API/HTMLTableElement/caption /fr/docs/DOM:window /fr/docs/Web/API/Window /fr/docs/DOM:window.alert /fr/docs/Web/API/Window/alert -/fr/docs/DOM:window.atob /fr/docs/Web/API/WindowBase64/atob -/fr/docs/DOM:window.btoa /fr/docs/Web/API/WindowBase64/btoa -/fr/docs/DOM:window.clearInterval /fr/docs/Web/API/WindowTimers/clearInterval +/fr/docs/DOM:window.atob /fr/docs/Web/API/WindowOrWorkerGlobalScope/atob +/fr/docs/DOM:window.btoa /fr/docs/Web/API/WindowOrWorkerGlobalScope/btoa +/fr/docs/DOM:window.clearInterval /fr/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /fr/docs/DOM:window.close /fr/docs/Web/API/Window/close /fr/docs/DOM:window.closed /fr/docs/Web/API/Window/closed /fr/docs/DOM:window.confirm /fr/docs/Web/API/Window/confirm @@ -984,17 +1218,20 @@ /fr/docs/DOM:window.setTimeout /fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /fr/docs/DOM:window.showModalDialog /fr/docs/Web/API/Window/showModalDialog /fr/docs/DOMParser /fr/docs/Web/API/DOMParser -/fr/docs/Dessin_de_texte_avec_canvas /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas -/fr/docs/Dessiner_avec_canvas /fr/docs/Web/Guide/Graphics/Dessiner_avec_canvas -/fr/docs/Detection_du_navigateur_en_utilisant_le_user_agent /fr/docs/Web/HTTP/Detection_du_navigateur_en_utilisant_le_user_agent +/fr/docs/Dessin_de_texte_avec_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_text +/fr/docs/Dessiner_avec_canvas /fr/docs/conflicting/Web/API/Canvas_API/Tutorial +/fr/docs/Detection_du_navigateur_en_utilisant_le_user_agent /fr/docs/Web/HTTP/Browser_detection_using_the_user_agent /fr/docs/Developer_Guide /fr/docs/Mozilla/Developer_guide /fr/docs/Developer_Guide/How_to_Submit_a_Patch /fr/docs/Mozilla/Developer_guide/How_to_Submit_a_Patch /fr/docs/Developer_Guide/Reviewer_Checklist /fr/docs/Mozilla/Developer_guide/Reviewer_Checklist /fr/docs/Developer_Guide/Utilisation_de_la_Machine_Virtuelle_VM /fr/docs/Mozilla/Developer_guide/Utilisation_de_la_Machine_Virtuelle_VM -/fr/docs/Developer_Guide/Vous_venez_juste_de_compiler_Firefox /fr/docs/Mozilla/Developer_guide/Vous_venez_juste_de_compiler_Firefox -/fr/docs/DragDrop /fr/docs/Web/API/API_HTML_Drag_and_Drop -/fr/docs/Du_DHTML_accessible /fr/docs/Accessibilité/ARIA -/fr/docs/Décoder_encoder_en_base64 /fr/docs/Web/API/WindowBase64/Décoder_encoder_en_base64 +/fr/docs/Developer_Guide/Vous_venez_juste_de_compiler_Firefox /fr/docs/Mozilla/Developer_guide/So_you_just_built_Firefox +/fr/docs/DragDrop /fr/docs/Web/API/HTML_Drag_and_Drop_API +/fr/docs/Du_DHTML_accessible /fr/docs/Web/Accessibility/ARIA +/fr/docs/Décoder_encoder_en_base64 /fr/docs/Glossary/Base64 +/fr/docs/Développement_Web /fr/docs/conflicting/Web/Guide +/fr/docs/Développement_Web/Développer_des_sites_à_compatibilité_descendante /fr/docs/Web/Guide/Writing_forward-compatible_websites +/fr/docs/Développement_Web/Introduction_au_développement_web /fr/docs/Web/Guide/Introduction_to_Web_development /fr/docs/Développement_de_Mozilla /fr/docs/Mozilla/Developer_guide /fr/docs/ECMAScript /fr/docs/Web/JavaScript/Language_Resources /fr/docs/EXSLT /fr/docs/Web/EXSLT @@ -1032,11 +1269,15 @@ /fr/docs/EXSLT:str:tokenize /fr/docs/Web/EXSLT/str/tokenize /fr/docs/Empaqueter_un_thème /fr/docs/Theme_Packaging /fr/docs/Enregistrement_chrome /fr/docs/Mozilla/Enregistrement_chrome -/fr/docs/Examiner,_modifier,_et_espionner_des_variables /fr/docs/Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables +/fr/docs/Examiner,_modifier,_et_espionner_des_variables /fr/docs/conflicting/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Explorer_un_tableau_HTML_avec_des_interfaces_DOM_et_JavaScript /fr/docs/Web/API/Document_Object_Model/Traversing_an_HTML_table_with_JavaScript_and_DOM_Interfaces /fr/docs/Extension_Firefox_Checky_(externe) https://addons.mozilla.org/extensions/moreinfo.php?id=165 /fr/docs/Extension_Firefox_EditCSS_(externe) https://addons.mozilla.org/extensions/moreinfo.php?id=179 -/fr/docs/FAQ_sur_le_préchargement_des_liens /fr/docs/Web/HTTP/FAQ_sur_le_préchargement_des_liens -/fr/docs/FAQ_sur_les_transformations_XLS_dans_Mozilla /fr/docs/FAQ_sur_les_transformations_XSL_dans_Mozilla +/fr/docs/FAQ_sur_le_préchargement_des_liens /fr/docs/Web/HTTP/Link_prefetching_FAQ +/fr/docs/FAQ_sur_les_transformations_XLS_dans_Mozilla /fr/docs/Web/API/XSLTProcessor/XSL_Transformations_in_Mozilla_FAQ +/fr/docs/FAQ_sur_les_transformations_XSL_dans_Mozilla /fr/docs/Web/API/XSLTProcessor/XSL_Transformations_in_Mozilla_FAQ +/fr/docs/FUEL/Window/devicemotion_event /fr/docs/Web/API/Window/devicemotion_event +/fr/docs/FUEL/Window/deviceorientation /fr/docs/Web/API/Window/deviceorientation_event /fr/docs/FUEL:Annotations /fr/docs/FUEL/Annotations /fr/docs/FUEL:Bookmark /fr/docs/FUEL/Bookmark /fr/docs/FUEL:BookmarkFolder /fr/docs/FUEL/BookmarkFolder @@ -1050,157 +1291,610 @@ /fr/docs/FUEL:PreferenceBranch /fr/docs/FUEL/PreferenceBranch /fr/docs/FUEL:SessionStorage /fr/docs/FUEL/SessionStorage /fr/docs/FUEL:Window /fr/docs/FUEL/Window -/fr/docs/Feuilles_de_style_alternatives /fr/docs/Web/CSS/Feuilles_de_style_alternatives +/fr/docs/Feuilles_de_style_alternatives /fr/docs/Web/CSS/Alternative_style_sheets /fr/docs/FileReader /fr/docs/Web/API/FileReader -/fr/docs/Firefox_1.5 /fr/docs/Mozilla/Firefox/Versions/1.5 -/fr/docs/Firefox_1.5_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/1.5 -/fr/docs/Firefox_11_for_developers /fr/docs/Mozilla/Firefox/Versions/11 -/fr/docs/Firefox_12_for_developers /fr/docs/Mozilla/Firefox/Versions/12 -/fr/docs/Firefox_13_for_developers /fr/docs/Mozilla/Firefox/Versions/13 -/fr/docs/Firefox_15_for_developers /fr/docs/Mozilla/Firefox/Versions/15 -/fr/docs/Firefox_16_for_developers /fr/docs/Mozilla/Firefox/Versions/16 -/fr/docs/Firefox_17_for_developers /fr/docs/Mozilla/Firefox/Versions/17 -/fr/docs/Firefox_18_for_developers /fr/docs/Mozilla/Firefox/Versions/18 -/fr/docs/Firefox_19_pour_les_developpeurs /fr/docs/Mozilla/Firefox/Versions/19 -/fr/docs/Firefox_2 /fr/docs/Mozilla/Firefox/Versions/2 -/fr/docs/Firefox_20_pour_developeurs /fr/docs/Mozilla/Firefox/Versions/20 -/fr/docs/Firefox_2_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/2 -/fr/docs/Firefox_3 /fr/docs/Mozilla/Firefox/Versions/3 -/fr/docs/Firefox_3.1_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/3.5 -/fr/docs/Firefox_3.5_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/3.5 -/fr/docs/Firefox_3.6_for_developers /fr/docs/Mozilla/Firefox/Versions/3.6 -/fr/docs/Firefox_3.6_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/3.6 -/fr/docs/Firefox_3_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions/3 -/fr/docs/Firefox_4_for_developers /fr/docs/Mozilla/Firefox/Versions/4 -/fr/docs/Firefox_5_for_developers /fr/docs/Mozilla/Firefox/Versions/5 -/fr/docs/Firefox_6_for_developers /fr/docs/Mozilla/Firefox/Versions/6 -/fr/docs/Firefox_7_for_developers /fr/docs/Mozilla/Firefox/Versions/7 -/fr/docs/Firefox_8_for_developers /fr/docs/Mozilla/Firefox/Versions/8 -/fr/docs/Firefox_9_for_developers /fr/docs/Mozilla/Firefox/Versions/9 -/fr/docs/Firefox_pour_les_développeurs /fr/docs/Mozilla/Firefox/Versions +/fr/docs/Firefox_1.5 /fr/docs/Mozilla/Firefox/Releases/1.5 +/fr/docs/Firefox_1.5_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/1.5 +/fr/docs/Firefox_11_for_developers /fr/docs/Mozilla/Firefox/Releases/11 +/fr/docs/Firefox_12_for_developers /fr/docs/Mozilla/Firefox/Releases/12 +/fr/docs/Firefox_13_for_developers /fr/docs/Mozilla/Firefox/Releases/13 +/fr/docs/Firefox_15_for_developers /fr/docs/Mozilla/Firefox/Releases/15 +/fr/docs/Firefox_16_for_developers /fr/docs/Mozilla/Firefox/Releases/16 +/fr/docs/Firefox_17_for_developers /fr/docs/Mozilla/Firefox/Releases/17 +/fr/docs/Firefox_18_for_developers /fr/docs/Mozilla/Firefox/Releases/18 +/fr/docs/Firefox_19_pour_les_developpeurs /fr/docs/Mozilla/Firefox/Releases/19 +/fr/docs/Firefox_2 /fr/docs/Mozilla/Firefox/Releases/2 +/fr/docs/Firefox_20_pour_developeurs /fr/docs/Mozilla/Firefox/Releases/20 +/fr/docs/Firefox_2_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/2 +/fr/docs/Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3 +/fr/docs/Firefox_3.1_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/3.5 +/fr/docs/Firefox_3.5_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/3.5 +/fr/docs/Firefox_3.6_for_developers /fr/docs/Mozilla/Firefox/Releases/3.6 +/fr/docs/Firefox_3.6_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/3.6 +/fr/docs/Firefox_3_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases/3 +/fr/docs/Firefox_4_for_developers /fr/docs/Mozilla/Firefox/Releases/4 +/fr/docs/Firefox_5_for_developers /fr/docs/Mozilla/Firefox/Releases/5 +/fr/docs/Firefox_6_for_developers /fr/docs/Mozilla/Firefox/Releases/6 +/fr/docs/Firefox_7_for_developers /fr/docs/Mozilla/Firefox/Releases/7 +/fr/docs/Firefox_8_for_developers /fr/docs/Mozilla/Firefox/Releases/8 +/fr/docs/Firefox_9_for_developers /fr/docs/Mozilla/Firefox/Releases/9 +/fr/docs/Firefox_pour_les_développeurs /fr/docs/Mozilla/Firefox/Releases +/fr/docs/Games/Workflows /fr/docs/Games/Tutorials +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Build_the_brick_field /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Faire_rebondir_la_balle_sur_les_murs /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Bounce_off_the_walls +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Game_over /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Game_over +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Mouse_controls /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Move_the_ball /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Paddle_et_contrôle_clavier /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Paddle_and_keyboard_controls +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/creer_element_canvas_et_afficher /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/detection_colisions /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection +/fr/docs/Games/Workflows/2D_Breakout_game_pure_JavaScript/finitions /fr/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up +/fr/docs/Games/Workflows/2D_breakout_game_Phaser /fr/docs/Games/Tutorials/2D_breakout_game_Phaser +/fr/docs/Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation_FR /fr/docs/Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation /fr/docs/Gestion_des_espaces_dans_le_DOM /fr/docs/Web/API/Document_Object_Model/Whitespace /fr/docs/Gestion_du_focus_en_HTML /fr/docs/Web/API/Document/hasFocus /fr/docs/Gestionnaires_de_protocoles_web /fr/docs/Web/API/Navigator/registerProtocolHandler/Web-based_protocol_handlers -/fr/docs/GlisserDéposer/Opérations_de_glissement /fr/docs/Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement -/fr/docs/Glisser_et_déposer /fr/docs/Web/API/API_HTML_Drag_and_Drop -/fr/docs/Glisser_et_déposer/Opérations_de_glissement /fr/docs/Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement -/fr/docs/Glossaire/Durée_de_compilation /fr/docs/Glossaire/Moment_de_compilation -/fr/docs/Glossaire/Encryption /fr/docs/Glossaire/Chiffrement -/fr/docs/Glossaire/Identificateur /fr/docs/Glossaire/Identifiant +/fr/docs/GlisserDéposer/Opérations_de_glissement /fr/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations +/fr/docs/Glisser_et_déposer /fr/docs/Web/API/HTML_Drag_and_Drop_API +/fr/docs/Glisser_et_déposer/Opérations_de_glissement /fr/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations +/fr/docs/Glossaire /fr/docs/Glossary +/fr/docs/Glossaire/404 /fr/docs/Glossary/404 +/fr/docs/Glossaire/502 /fr/docs/Glossary/502 +/fr/docs/Glossaire/AJAX /fr/docs/Glossary/AJAX +/fr/docs/Glossaire/ALPN /fr/docs/Glossary/ALPN +/fr/docs/Glossaire/API /fr/docs/Glossary/API +/fr/docs/Glossaire/ARIA /fr/docs/Glossary/ARIA +/fr/docs/Glossaire/ARPA /fr/docs/Glossary/ARPA +/fr/docs/Glossaire/ASCII /fr/docs/Glossary/ASCII +/fr/docs/Glossaire/ATAG /fr/docs/Glossary/ATAG +/fr/docs/Glossaire/Abstraction /fr/docs/Glossary/Abstraction +/fr/docs/Glossaire/Accessibilité /fr/docs/Glossary/Accessibility +/fr/docs/Glossaire/Adobe_Flash /fr/docs/Glossary/Adobe_Flash +/fr/docs/Glossaire/Algorithme /fr/docs/Glossary/Algorithm +/fr/docs/Glossaire/Alignment_Container /fr/docs/Glossary/Alignment_Container +/fr/docs/Glossaire/Alignment_Subject /fr/docs/Glossary/Alignment_Subject +/fr/docs/Glossaire/Amélioration_progressive /fr/docs/Glossary/Progressive_Enhancement +/fr/docs/Glossaire/Apple_Safari /fr/docs/Glossary/Apple_Safari +/fr/docs/Glossaire/Architecture_de_l_information /fr/docs/Glossary/Information_architecture +/fr/docs/Glossaire/Argument /fr/docs/Glossary/Argument +/fr/docs/Glossaire/Arpanet /fr/docs/Glossary/Arpanet +/fr/docs/Glossaire/Asynchronous /fr/docs/Glossary/Asynchronous +/fr/docs/Glossaire/Attaque_DOS /fr/docs/Glossary/DOS_attack +/fr/docs/Glossaire/Attribut /fr/docs/Glossary/Attribute +/fr/docs/Glossaire/Attribut_global /fr/docs/conflicting/Web/HTML/Global_attributes +/fr/docs/Glossaire/Axe_de_grille /fr/docs/Glossary/Grid_Axis +/fr/docs/Glossaire/Axe_principal /fr/docs/Glossary/Main_Axis +/fr/docs/Glossaire/Axe_transversal /fr/docs/Glossary/Cross_Axis +/fr/docs/Glossaire/Balise /fr/docs/Glossary/Tag +/fr/docs/Glossaire/Bandwidth /fr/docs/Glossary/Bandwidth +/fr/docs/Glossaire/BiDi /fr/docs/Glossary/BiDi +/fr/docs/Glossaire/BigInt /fr/docs/Glossary/BigInt +/fr/docs/Glossaire/Blink /fr/docs/Glossary/Blink +/fr/docs/Glossaire/Block_cipher_mode_of_operation /fr/docs/Glossary/Block_cipher_mode_of_operation +/fr/docs/Glossaire/Boolean /fr/docs/Glossary/Boolean +/fr/docs/Glossaire/Boot2Gecko /fr/docs/Glossary/Boot2Gecko +/fr/docs/Glossaire/Bootstrap /fr/docs/Glossary/Bootstrap +/fr/docs/Glossaire/Breadcrumb /fr/docs/Glossary/Breadcrumb +/fr/docs/Glossaire/Browsing_context /fr/docs/Glossary/Browsing_context +/fr/docs/Glossaire/Bézier_curve /fr/docs/Glossary/Bézier_curve +/fr/docs/Glossaire/CDN /fr/docs/Glossary/CDN +/fr/docs/Glossaire/CMS /fr/docs/Glossary/CMS +/fr/docs/Glossaire/CORS /fr/docs/Glossary/CORS +/fr/docs/Glossaire/CRLF /fr/docs/Glossary/CRLF +/fr/docs/Glossaire/CRUD /fr/docs/Glossary/CRUD +/fr/docs/Glossaire/CSP /fr/docs/Glossary/CSP +/fr/docs/Glossaire/CSRF /fr/docs/Glossary/CSRF +/fr/docs/Glossaire/CSS /fr/docs/Glossary/CSS +/fr/docs/Glossaire/Cache /fr/docs/Glossary/Cache +/fr/docs/Glossaire/CalDAV /fr/docs/Glossary/CalDAV +/fr/docs/Glossaire/Canvas /fr/docs/Glossary/Canvas +/fr/docs/Glossaire/CardDAV /fr/docs/Glossary/CardDAV +/fr/docs/Glossaire/Cellule_de_grille /fr/docs/Glossary/Grid_Cell +/fr/docs/Glossaire/Certificat_numérique /fr/docs/Glossary/Digital_certificate +/fr/docs/Glossaire/Certificate_authority /fr/docs/Glossary/Certificate_authority +/fr/docs/Glossaire/Certifié /fr/docs/Glossary/Certified +/fr/docs/Glossaire/Character /fr/docs/Glossary/Character +/fr/docs/Glossaire/Chiffre /fr/docs/Glossary/Cipher +/fr/docs/Glossaire/Chiffrement /fr/docs/Glossary/Encryption +/fr/docs/Glossaire/Chrome /fr/docs/Glossary/Chrome +/fr/docs/Glossaire/Class /fr/docs/Glossary/Class +/fr/docs/Glossaire/Clé /fr/docs/Glossary/Key +/fr/docs/Glossaire/Codec /fr/docs/Glossary/Codec +/fr/docs/Glossaire/Colonne_de_grille /fr/docs/Glossary/Grid_Column +/fr/docs/Glossaire/Compile /fr/docs/Glossary/Compile +/fr/docs/Glossaire/Compression_sans_perte /fr/docs/Glossary/Lossless_compression +/fr/docs/Glossaire/Computer_Programming /fr/docs/Glossary/Computer_Programming +/fr/docs/Glossaire/Condensat /fr/docs/Glossary/Digest +/fr/docs/Glossaire/Conditionnel /fr/docs/Glossary/Conditional +/fr/docs/Glossaire/Constant /fr/docs/Glossary/Constant +/fr/docs/Glossaire/Constructeur /fr/docs/Glossary/Constructor +/fr/docs/Glossaire/Contexte_d_empilement /fr/docs/Glossary/Stacking_context +/fr/docs/Glossaire/Conversion_de_type /fr/docs/Glossary/Type_Conversion +/fr/docs/Glossaire/Cookie /fr/docs/Glossary/Cookie +/fr/docs/Glossaire/Copyleft /fr/docs/Glossary/Copyleft +/fr/docs/Glossaire/Cross-site_scripting /fr/docs/Glossary/Cross-site_scripting +/fr/docs/Glossaire/Cryptanalyse /fr/docs/Glossary/Cryptanalysis +/fr/docs/Glossaire/Cryptogramme /fr/docs/Glossary/Ciphertext +/fr/docs/Glossaire/Cryptographie /fr/docs/Glossary/Cryptography +/fr/docs/Glossaire/Curseur_caret /fr/docs/Glossary/caret +/fr/docs/Glossaire/DIC /fr/docs/Glossary/CIA +/fr/docs/Glossaire/DMZ /fr/docs/Glossary/DMZ +/fr/docs/Glossaire/DNS /fr/docs/Glossary/DNS +/fr/docs/Glossaire/DOM /fr/docs/Glossary/DOM +/fr/docs/Glossaire/DTD /fr/docs/conflicting/Glossary/Doctype +/fr/docs/Glossaire/DTMF /fr/docs/Glossary/DTMF +/fr/docs/Glossaire/Delta /fr/docs/Glossary/Delta +/fr/docs/Glossaire/Descripteur_(CSS) /fr/docs/Glossary/Descriptor_(CSS) +/fr/docs/Glossaire/Developer_Tools /fr/docs/Glossary/Developer_Tools +/fr/docs/Glossaire/Directive_de_navigation /fr/docs/Glossary/Navigation_directive +/fr/docs/Glossaire/Directive_de_rapport /fr/docs/Glossary/Reporting_directive +/fr/docs/Glossaire/Directive_de_récupération /fr/docs/Glossary/Fetch_directive +/fr/docs/Glossaire/Doctype /fr/docs/Glossary/Doctype +/fr/docs/Glossaire/Document_directive /fr/docs/Glossary/Document_directive +/fr/docs/Glossaire/Domaine /fr/docs/Glossary/Domain +/fr/docs/Glossaire/Domaine_deuxième-niveau /fr/docs/Glossary/Second-level_Domain +/fr/docs/Glossaire/Dominant /fr/docs/Glossary/Dominator +/fr/docs/Glossaire/Durée_de_compilation /fr/docs/Glossary/Compile_time +/fr/docs/Glossaire/Déchiffrement /fr/docs/Glossary/Decryption +/fr/docs/Glossaire/Déni_de_Service /fr/docs/Glossary/Denial_of_Service +/fr/docs/Glossaire/Déni_de_service_distribué /fr/docs/Glossary/Distributed_Denial_of_Service +/fr/docs/Glossaire/Dépôt /fr/docs/Glossary/Repo +/fr/docs/Glossaire/Désérialisation /fr/docs/Glossary/Deserialization +/fr/docs/Glossaire/Détournement_de_session /fr/docs/Glossary/Session_Hijacking +/fr/docs/Glossaire/ECMA /fr/docs/Glossary/ECMA +/fr/docs/Glossaire/ECMAScript /fr/docs/Glossary/ECMAScript +/fr/docs/Glossaire/Element_vide /fr/docs/Glossary/Empty_element +/fr/docs/Glossaire/En-tête /fr/docs/Glossary/Head +/fr/docs/Glossaire/En-tête_de_requête /fr/docs/Glossary/Request_header +/fr/docs/Glossaire/En-tête_de_réponse_simple /fr/docs/Glossary/Simple_response_header +/fr/docs/Glossaire/En-tête_entité /fr/docs/Glossary/Entity_header +/fr/docs/Glossaire/En-tête_simple /fr/docs/Glossary/Simple_header +/fr/docs/Glossaire/En-têtes_de_réponse /fr/docs/Glossary/Response_header +/fr/docs/Glossaire/Encapsulation /fr/docs/Glossary/Encapsulation +/fr/docs/Glossaire/Encryption /fr/docs/Glossary/Encryption +/fr/docs/Glossaire/Endianness /fr/docs/Glossary/Endianness +/fr/docs/Glossaire/Engine /fr/docs/Glossary/Engine +/fr/docs/Glossaire/Entity /fr/docs/Glossary/Entity +/fr/docs/Glossaire/Environnement_de_document /fr/docs/Glossary/document_environment +/fr/docs/Glossaire/Exception /fr/docs/Glossary/Exception +/fr/docs/Glossaire/Expando /fr/docs/Glossary/Expando +/fr/docs/Glossaire/FAI /fr/docs/Glossary/ISP +/fr/docs/Glossaire/FTP /fr/docs/Glossary/FTP +/fr/docs/Glossaire/FTU /fr/docs/Glossary/FTU +/fr/docs/Glossaire/Falsy /fr/docs/Glossary/Falsy +/fr/docs/Glossaire/Favicon /fr/docs/Glossary/Favicon +/fr/docs/Glossaire/Fermeture /fr/docs/Glossary/Closure +/fr/docs/Glossaire/Firefox_OS /fr/docs/Glossary/Firefox_OS +/fr/docs/Glossaire/First_contentful_paint /fr/docs/Glossary/First_contentful_paint +/fr/docs/Glossaire/Flex /fr/docs/Glossary/Flex +/fr/docs/Glossaire/Flex_Container /fr/docs/Glossary/Flex_Container +/fr/docs/Glossaire/Flex_Item /fr/docs/Glossary/Flex_Item +/fr/docs/Glossaire/Flexbox /fr/docs/Glossary/Flexbox +/fr/docs/Glossaire/Fonction /fr/docs/Glossary/Function +/fr/docs/Glossaire/Fonction_de_hachage_cryptographique /fr/docs/Glossary/Cryptographic_hash_function +/fr/docs/Glossaire/Fonction_de_première_classe /fr/docs/Glossary/First-class_Function +/fr/docs/Glossaire/Fonction_de_rappel /fr/docs/Glossary/Callback_function +/fr/docs/Glossaire/Forbidden_header_name /fr/docs/Glossary/Forbidden_header_name +/fr/docs/Glossaire/Forbidden_response_header_name /fr/docs/Glossary/Forbidden_response_header_name +/fr/docs/Glossaire/Fork /fr/docs/Glossary/Fork +/fr/docs/Glossaire/GIJ /fr/docs/Glossary/GIJ +/fr/docs/Glossaire/GIT /fr/docs/Glossary/Git +/fr/docs/Glossaire/GPL /fr/docs/Glossary/GPL +/fr/docs/Glossaire/GPU /fr/docs/Glossary/GPU +/fr/docs/Glossaire/GZip_compression /fr/docs/Glossary/GZip_compression +/fr/docs/Glossaire/Gaia /fr/docs/Glossary/Gaia +/fr/docs/Glossaire/Gecko /fr/docs/Glossary/Gecko +/fr/docs/Glossaire/General_header /fr/docs/Glossary/General_header +/fr/docs/Glossaire/Glyphe /fr/docs/Glossary/Glyph +/fr/docs/Glossaire/Gonk /fr/docs/Glossary/Gonk +/fr/docs/Glossaire/Google_Chrome /fr/docs/Glossary/Google_Chrome +/fr/docs/Glossaire/Graceful_degradation /fr/docs/Glossary/Graceful_degradation +/fr/docs/Glossaire/Grid /fr/docs/Glossary/Grid +/fr/docs/Glossaire/Guard /fr/docs/Glossary/Guard +/fr/docs/Glossaire/Gutters /fr/docs/Glossary/Gutters +/fr/docs/Glossaire/HMAC /fr/docs/Glossary/HMAC +/fr/docs/Glossaire/HPKP /fr/docs/Glossary/HPKP +/fr/docs/Glossaire/HSTS /fr/docs/Glossary/HSTS +/fr/docs/Glossaire/HTML /fr/docs/Glossary/HTML +/fr/docs/Glossaire/HTML5 /fr/docs/Glossary/HTML5 +/fr/docs/Glossaire/HTTP /fr/docs/Glossary/HTTP +/fr/docs/Glossaire/HTTP_2 /fr/docs/Glossary/HTTP_2 +/fr/docs/Glossaire/HTTP_3 /fr/docs/Glossary/HTTP_3 +/fr/docs/Glossaire/Header /fr/docs/Glossary/HTTP_header +/fr/docs/Glossaire/Hoisting /fr/docs/Glossary/Hoisting +/fr/docs/Glossaire/Host /fr/docs/Glossary/Host +/fr/docs/Glossaire/Hotlink /fr/docs/Glossary/Hotlink +/fr/docs/Glossaire/Houdini /fr/docs/Glossary/Houdini +/fr/docs/Glossaire/Hyperlien /fr/docs/Glossary/Hyperlink +/fr/docs/Glossaire/Hypertexte /fr/docs/Glossary/Hypertext +/fr/docs/Glossaire/Héritage /fr/docs/Glossary/Inheritance +/fr/docs/Glossaire/I18N /fr/docs/Glossary/I18N +/fr/docs/Glossaire/IANA /fr/docs/Glossary/IANA +/fr/docs/Glossaire/ICANN /fr/docs/Glossary/ICANN +/fr/docs/Glossaire/ICE /fr/docs/Glossary/ICE +/fr/docs/Glossaire/IDE /fr/docs/Glossary/IDE +/fr/docs/Glossaire/IDL /fr/docs/Glossary/IDL +/fr/docs/Glossaire/IETF /fr/docs/Glossary/IETF +/fr/docs/Glossaire/IIFE /fr/docs/Glossary/IIFE +/fr/docs/Glossaire/IMAP /fr/docs/Glossary/IMAP +/fr/docs/Glossaire/IP_Address /fr/docs/Glossary/IP_Address +/fr/docs/Glossaire/IPv4 /fr/docs/Glossary/IPv4 +/fr/docs/Glossaire/IPv6 /fr/docs/Glossary/IPv6 +/fr/docs/Glossaire/IRC /fr/docs/Glossary/IRC +/fr/docs/Glossaire/ISO /fr/docs/Glossary/ISO +/fr/docs/Glossaire/ITU /fr/docs/Glossary/ITU +/fr/docs/Glossaire/Idempotent /fr/docs/Glossary/Idempotent +/fr/docs/Glossaire/Identifiant /fr/docs/Glossary/Identifier +/fr/docs/Glossaire/Identificateur /fr/docs/Glossary/Identifier +/fr/docs/Glossaire/Image_matricielle /fr/docs/Glossary/Raster_image +/fr/docs/Glossaire/Immuable /fr/docs/Glossary/Immutable +/fr/docs/Glossaire/Index /fr/docs/Glossary/Index +/fr/docs/Glossaire/IndexedDB /fr/docs/Glossary/IndexedDB +/fr/docs/Glossaire/Injection_SQL /fr/docs/Glossary/SQL_Injection +/fr/docs/Glossaire/Input_method_editor /fr/docs/Glossary/Input_method_editor +/fr/docs/Glossaire/Instance /fr/docs/Glossary/Instance +/fr/docs/Glossaire/Intergiciel /fr/docs/Glossary/Middleware +/fr/docs/Glossaire/Internationalisation_et_localisation /fr/docs/Glossary/Internationalization_and_localization +/fr/docs/Glossaire/Internet /fr/docs/Glossary/Internet +/fr/docs/Glossaire/JSON /fr/docs/Glossary/JSON +/fr/docs/Glossaire/Jank /fr/docs/Glossary/Jank +/fr/docs/Glossaire/Java /fr/docs/Glossary/Java +/fr/docs/Glossaire/JavaScript /fr/docs/Glossary/JavaScript +/fr/docs/Glossaire/Keyword /fr/docs/Glossary/Keyword +/fr/docs/Glossaire/LGPL /fr/docs/Glossary/LGPL +/fr/docs/Glossaire/Langage_de_programmation_de_haut_niveau /fr/docs/Glossary/High-level_programming_language +/fr/docs/Glossaire/Langage_de_programmation_dynamique /fr/docs/Glossary/Dynamic_programming_language +/fr/docs/Glossaire/Latence /fr/docs/Glossary/Latency +/fr/docs/Glossaire/Lazy_load /fr/docs/Glossary/Lazy_load +/fr/docs/Glossaire/Ligature /fr/docs/Glossary/Ligature +/fr/docs/Glossaire/Lignes_de_grille_(Row) /fr/docs/Glossary/Grid_Rows +/fr/docs/Glossaire/Lignes_de_grille_(lines) /fr/docs/Glossary/Grid_Lines +/fr/docs/Glossaire/Locale /fr/docs/Glossary/Locale /fr/docs/Glossaire/MOA /fr/docs/Glossary/Accessibility_tree -/fr/docs/Glossary /fr/docs/Glossaire -/fr/docs/Glossary/404 /fr/docs/Glossaire/404 -/fr/docs/Glossary/502 /fr/docs/Glossaire/502 -/fr/docs/Glossary/AJAX /fr/docs/Glossaire/AJAX -/fr/docs/Glossary/API /fr/docs/Glossaire/API -/fr/docs/Glossary/ARIA /fr/docs/Glossaire/ARIA -/fr/docs/Glossary/ATAG /fr/docs/Glossaire/ATAG -/fr/docs/Glossary/Abstraction /fr/docs/Glossaire/Abstraction -/fr/docs/Glossary/Accessibilité /fr/docs/Glossaire/Accessibilité -/fr/docs/Glossary/Adobe_Flash /fr/docs/Glossaire/Adobe_Flash -/fr/docs/Glossary/Apple_Safari /fr/docs/Glossaire/Apple_Safari -/fr/docs/Glossary/Argument /fr/docs/Glossaire/Argument -/fr/docs/Glossary/Attribut /fr/docs/Glossaire/Attribut -/fr/docs/Glossary/Blink /fr/docs/Glossaire/Blink -/fr/docs/Glossary/CSS /fr/docs/Glossaire/CSS -/fr/docs/Glossary/Chrome /fr/docs/Glossaire/Chrome -/fr/docs/Glossary/Doctype /fr/docs/Glossaire/Doctype -/fr/docs/Glossary/Firefox_OS /fr/docs/Glossaire/Firefox_OS -/fr/docs/Glossary/HTTP /fr/docs/Glossaire/HTTP -/fr/docs/Glossary/Origine /fr/docs/Glossaire/Origine -/fr/docs/Glossary/array /fr/docs/Glossaire/array -/fr/docs/Guide_JavaScript_1.5/Aperçu_de_JavaScript /fr/docs/Web/JavaScript/Guide/JavaScript_Overview -/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Création_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5/Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Array /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Boolean /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Date /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Function /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Math /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Number /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_RegExp /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_String /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_document /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_windows /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails +/fr/docs/Glossaire/MVC /fr/docs/Glossary/MVC +/fr/docs/Glossaire/Machine_d_état /fr/docs/Glossary/State_machine +/fr/docs/Glossaire/MathML /fr/docs/Glossary/MathML +/fr/docs/Glossaire/Media /fr/docs/Glossary/Media +/fr/docs/Glossaire/Media/CSS /fr/docs/Glossary/Media/CSS +/fr/docs/Glossaire/Microsoft_Edge /fr/docs/Glossary/Microsoft_Edge +/fr/docs/Glossaire/Microsoft_Internet_Explorer /fr/docs/Glossary/Microsoft_Internet_Explorer +/fr/docs/Glossaire/MitM /fr/docs/Glossary/MitM +/fr/docs/Glossaire/Mixin /fr/docs/Glossary/Mixin +/fr/docs/Glossaire/Mobile_d_abord /fr/docs/Glossary/Mobile_First +/fr/docs/Glossaire/Modem /fr/docs/Glossary/Modem +/fr/docs/Glossaire/Moment_de_compilation /fr/docs/Glossary/Compile_time +/fr/docs/Glossaire/Moteur_de_recherche /fr/docs/Glossary/Search_engine +/fr/docs/Glossaire/Moteur_de_rendu /fr/docs/Glossary/Rendering_engine +/fr/docs/Glossaire/Mozilla_Firefox /fr/docs/Glossary/Mozilla_Firefox +/fr/docs/Glossaire/Muable /fr/docs/Glossary/Mutable +/fr/docs/Glossaire/Métadonnée /fr/docs/Glossary/Metadata +/fr/docs/Glossaire/Méthode /fr/docs/Glossary/Method +/fr/docs/Glossaire/NAT /fr/docs/Glossary/NAT +/fr/docs/Glossaire/NNTP /fr/docs/Glossary/NNTP +/fr/docs/Glossaire/NaN /fr/docs/Glossary/NaN +/fr/docs/Glossaire/Namespace /fr/docs/Glossary/Namespace +/fr/docs/Glossaire/Native /fr/docs/Glossary/Native +/fr/docs/Glossaire/Navigateur /fr/docs/Glossary/Browser +/fr/docs/Glossaire/Netscape_Navigator /fr/docs/Glossary/Netscape_Navigator +/fr/docs/Glossaire/Node.js /fr/docs/Glossary/Node.js +/fr/docs/Glossaire/Nom_de_domaine /fr/docs/Glossary/Domain_name +/fr/docs/Glossaire/Noms_réservés /fr/docs/Glossary/Placeholder_names +/fr/docs/Glossaire/Normative /fr/docs/Glossary/Normative +/fr/docs/Glossaire/Null /fr/docs/Glossary/Null +/fr/docs/Glossaire/Number /fr/docs/Glossary/Number +/fr/docs/Glossaire/OTA /fr/docs/Glossary/OTA +/fr/docs/Glossaire/OWASP /fr/docs/Glossary/OWASP +/fr/docs/Glossaire/Objet /fr/docs/Glossary/Object +/fr/docs/Glossaire/Objet_global /fr/docs/Glossary/Global_object +/fr/docs/Glossaire/Objet_parent /fr/docs/Glossary/Parent_object +/fr/docs/Glossaire/OpenGL /fr/docs/Glossary/OpenGL +/fr/docs/Glossaire/OpenSSL /fr/docs/Glossary/OpenSSL +/fr/docs/Glossaire/Opera_Browser /fr/docs/Glossary/Opera_Browser +/fr/docs/Glossaire/Operand /fr/docs/Glossary/Operand +/fr/docs/Glossaire/Operator /fr/docs/Glossary/Operator +/fr/docs/Glossaire/Ordre_canonique /fr/docs/Glossary/Canonical_order +/fr/docs/Glossaire/Origine /fr/docs/Glossary/Origin +/fr/docs/Glossaire/P2P /fr/docs/Glossary/P2P +/fr/docs/Glossaire/PAC /fr/docs/Glossary/PAC +/fr/docs/Glossaire/PDF /fr/docs/Glossary/PDF +/fr/docs/Glossaire/PHP /fr/docs/Glossary/PHP +/fr/docs/Glossaire/PNG /fr/docs/Glossary/PNG +/fr/docs/Glossaire/POO /fr/docs/Glossary/OOP +/fr/docs/Glossaire/POP /fr/docs/Glossary/POP +/fr/docs/Glossaire/Paquet /fr/docs/Glossary/Packet +/fr/docs/Glossaire/Parameter /fr/docs/Glossary/Parameter +/fr/docs/Glossaire/Parse /fr/docs/Glossary/Parse +/fr/docs/Glossaire/Parser /fr/docs/Glossary/Parser +/fr/docs/Glossaire/Pile_d_exécution /fr/docs/Glossary/Call_stack +/fr/docs/Glossaire/Pistes_de_grille /fr/docs/Glossary/Grid_Tracks +/fr/docs/Glossaire/Pixel /fr/docs/Glossary/Pixel +/fr/docs/Glossaire/Pixel_CSS /fr/docs/Glossary/CSS_pixel +/fr/docs/Glossaire/Polyfill /fr/docs/Glossary/Polyfill +/fr/docs/Glossaire/Polymorphisme /fr/docs/Glossary/Polymorphism +/fr/docs/Glossaire/Port /fr/docs/Glossary/Port +/fr/docs/Glossaire/Portée /fr/docs/Glossary/Scope +/fr/docs/Glossaire/Portée_globale /fr/docs/Glossary/Global_scope +/fr/docs/Glossaire/Portée_locale /fr/docs/Glossary/Local_scope +/fr/docs/Glossaire/Presto /fr/docs/Glossary/Presto +/fr/docs/Glossaire/Primitive /fr/docs/Glossary/Primitive +/fr/docs/Glossaire/Privilégié /fr/docs/Glossary/Privileged +/fr/docs/Glossaire/Programmation_orientée_prototype /fr/docs/Glossary/Prototype-based_programming +/fr/docs/Glossaire/Progressive_web_apps /fr/docs/Glossary/Progressive_web_apps +/fr/docs/Glossaire/Promesse /fr/docs/Glossary/Promise +/fr/docs/Glossaire/Propriete_CSS /fr/docs/Glossary/property/CSS +/fr/docs/Glossaire/Protocol /fr/docs/Glossary/Protocol +/fr/docs/Glossaire/Prototype /fr/docs/Glossary/Prototype +/fr/docs/Glossaire/Préfixe_Vendeur /fr/docs/Glossary/Vendor_Prefix +/fr/docs/Glossaire/Pseudo-classe /fr/docs/Glossary/Pseudo-class +/fr/docs/Glossaire/Pseudo-code /fr/docs/Glossary/Pseudocode +/fr/docs/Glossaire/Pseudo-élément /fr/docs/Glossary/Pseudo-element +/fr/docs/Glossaire/Python /fr/docs/Glossary/Python +/fr/docs/Glossaire/QUIC /fr/docs/Glossary/QUIC +/fr/docs/Glossaire/Quality_values /fr/docs/Glossary/Quality_values +/fr/docs/Glossaire/RAIL /fr/docs/Glossary/RAIL +/fr/docs/Glossaire/RDF /fr/docs/Glossary/RDF +/fr/docs/Glossaire/REST /fr/docs/Glossary/REST +/fr/docs/Glossaire/RGB /fr/docs/Glossary/RGB +/fr/docs/Glossaire/RIL /fr/docs/Glossary/RIL +/fr/docs/Glossaire/RNG /fr/docs/Glossary/RNG +/fr/docs/Glossaire/RSS /fr/docs/Glossary/RSS +/fr/docs/Glossaire/RTF /fr/docs/Glossary/RTF +/fr/docs/Glossaire/RTP /fr/docs/Glossary/RTP +/fr/docs/Glossaire/Ramasse-miettes /fr/docs/Glossary/Garbage_collection +/fr/docs/Glossaire/Real_User_Monitoring /fr/docs/Glossary/Real_User_Monitoring +/fr/docs/Glossaire/Reflow /fr/docs/Glossary/Reflow +/fr/docs/Glossaire/Regular_expression /fr/docs/Glossary/Regular_expression +/fr/docs/Glossaire/Responsive_web_design /fr/docs/Glossary/Responsive_web_design +/fr/docs/Glossaire/Robot_d_indexation /fr/docs/Glossary/Crawler +/fr/docs/Glossaire/Robots.txt /fr/docs/Glossary/Robots.txt +/fr/docs/Glossaire/Ruby /fr/docs/Glossary/Ruby +/fr/docs/Glossaire/Récursion /fr/docs/Glossary/Recursion +/fr/docs/Glossaire/Référence /fr/docs/Glossary/Reference +/fr/docs/Glossaire/Référence_d_objet /fr/docs/Glossary/Object_reference +/fr/docs/Glossaire/SCM /fr/docs/Glossary/SCM +/fr/docs/Glossaire/SCTP /fr/docs/Glossary/SCTP +/fr/docs/Glossaire/SDP /fr/docs/Glossary/SDP +/fr/docs/Glossaire/SEO /fr/docs/Glossary/SEO +/fr/docs/Glossaire/SIMD /fr/docs/Glossary/SIMD +/fr/docs/Glossaire/SISD /fr/docs/Glossary/SISD +/fr/docs/Glossaire/SLD /fr/docs/Glossary/SLD +/fr/docs/Glossaire/SMTP /fr/docs/Glossary/SMTP +/fr/docs/Glossaire/SOAP /fr/docs/Glossary/SOAP +/fr/docs/Glossaire/SQL /fr/docs/Glossary/SQL +/fr/docs/Glossaire/SRI /fr/docs/Glossary/SRI +/fr/docs/Glossaire/SSL_Glossary /fr/docs/Glossary/SSL +/fr/docs/Glossaire/STUN /fr/docs/Glossary/STUN +/fr/docs/Glossaire/SVG /fr/docs/Glossary/SVG +/fr/docs/Glossaire/SVN /fr/docs/Glossary/SVN +/fr/docs/Glossaire/Same-origin_policy /fr/docs/Glossary/Same-origin_policy +/fr/docs/Glossaire/Serveur /fr/docs/Glossary/Server +/fr/docs/Glossaire/Serveur_Web /fr/docs/Glossary/Web_server +/fr/docs/Glossaire/Serveur_proxy /fr/docs/Glossary/Proxy_server +/fr/docs/Glossaire/Shim /fr/docs/Glossary/Shim +/fr/docs/Glossaire/Signature /fr/docs/Glossary/Signature +/fr/docs/Glossaire/Signature/Fonction /fr/docs/Glossary/Signature/Function +/fr/docs/Glossaire/Signature/Sécurité /fr/docs/Glossary/Signature/Security +/fr/docs/Glossaire/Site /fr/docs/Glossary/Site +/fr/docs/Glossaire/Site_map /fr/docs/Glossary/Site_map +/fr/docs/Glossaire/Sloppy_mode /fr/docs/Glossary/Sloppy_mode +/fr/docs/Glossaire/Slug /fr/docs/Glossary/Slug +/fr/docs/Glossaire/Specification /fr/docs/Glossary/Specification +/fr/docs/Glossaire/Statement /fr/docs/Glossary/Statement +/fr/docs/Glossaire/String /fr/docs/Glossary/String +/fr/docs/Glossaire/Structure_de_contrôle /fr/docs/Glossary/Control_flow +/fr/docs/Glossaire/Structure_de_données /fr/docs/Glossary/Data_structure +/fr/docs/Glossaire/Symbole /fr/docs/Glossary/Symbol +/fr/docs/Glossaire/Synchronous /fr/docs/Glossary/Synchronous +/fr/docs/Glossaire/Syntax_error /fr/docs/Glossary/Syntax_error +/fr/docs/Glossaire/Syntaxe /fr/docs/Glossary/Syntax +/fr/docs/Glossaire/Sélecteur_CSS /fr/docs/Glossary/CSS_Selector +/fr/docs/Glossaire/Sémantique /fr/docs/Glossary/Semantics +/fr/docs/Glossaire/Sérialisation /fr/docs/Glossary/Serialization +/fr/docs/Glossaire/TCP /fr/docs/Glossary/TCP +/fr/docs/Glossaire/TCP_handshake /fr/docs/Glossary/TCP_handshake +/fr/docs/Glossaire/TCP_slow_start /fr/docs/Glossary/TCP_slow_start +/fr/docs/Glossaire/TLD /fr/docs/Glossary/TLD +/fr/docs/Glossaire/TLS /fr/docs/Glossary/TLS +/fr/docs/Glossaire/TOFU /fr/docs/Glossary/TOFU +/fr/docs/Glossaire/TTL /fr/docs/Glossary/TTL +/fr/docs/Glossaire/TURN /fr/docs/Glossary/TURN +/fr/docs/Glossaire/Tampon /fr/docs/Glossary/buffer +/fr/docs/Glossaire/Telnet /fr/docs/Glossary/Telnet +/fr/docs/Glossaire/Test_de_fumée /fr/docs/Glossary/Smoke_Test +/fr/docs/Glossaire/Texel /fr/docs/Glossary/Texel +/fr/docs/Glossaire/Texte_brut /fr/docs/Glossary/Plaintext +/fr/docs/Glossaire/Three_js /fr/docs/Glossary/Three_js +/fr/docs/Glossaire/Time_to_interactive /fr/docs/Glossary/Time_to_interactive +/fr/docs/Glossaire/Transmission_Control_Protocol_(TCP) /fr/docs/Glossary/Transmission_Control_Protocol_(TCP) +/fr/docs/Glossaire/Tree_shaking /fr/docs/Glossary/Tree_shaking +/fr/docs/Glossaire/Tri_par_cartes /fr/docs/Glossary/Card_sorting +/fr/docs/Glossaire/Trident /fr/docs/Glossary/Trident +/fr/docs/Glossaire/Truthy /fr/docs/Glossary/Truthy +/fr/docs/Glossaire/Type /fr/docs/Glossary/Type +/fr/docs/Glossaire/Type_MIME /fr/docs/Glossary/MIME_type +/fr/docs/Glossaire/Type_coercion /fr/docs/Glossary/Type_coercion +/fr/docs/Glossaire/UDP /fr/docs/Glossary/UDP +/fr/docs/Glossaire/UI /fr/docs/Glossary/UI +/fr/docs/Glossaire/URI /fr/docs/Glossary/URI +/fr/docs/Glossaire/URL /fr/docs/Glossary/URL +/fr/docs/Glossaire/URN /fr/docs/Glossary/URN +/fr/docs/Glossaire/UTF-8 /fr/docs/Glossary/UTF-8 +/fr/docs/Glossaire/UX /fr/docs/Glossary/UX +/fr/docs/Glossaire/Unicode /fr/docs/Glossary/Unicode +/fr/docs/Glossaire/Usenet /fr/docs/Glossary/Usenet +/fr/docs/Glossaire/User_agent /fr/docs/Glossary/User_agent +/fr/docs/Glossaire/Valeur /fr/docs/Glossary/Value +/fr/docs/Glossaire/Validator /fr/docs/Glossary/Validator +/fr/docs/Glossaire/Variable /fr/docs/Glossary/Variable +/fr/docs/Glossaire/Variable_globale /fr/docs/Glossary/Global_variable +/fr/docs/Glossaire/Variable_locale /fr/docs/Glossary/Local_variable +/fr/docs/Glossaire/Viewport /fr/docs/Glossary/Viewport +/fr/docs/Glossaire/VoIP /fr/docs/Glossary/VoIP +/fr/docs/Glossaire/W3C /fr/docs/Glossary/W3C +/fr/docs/Glossaire/WAI /fr/docs/Glossary/WAI +/fr/docs/Glossaire/WCAG /fr/docs/Glossary/WCAG +/fr/docs/Glossaire/WHATWG /fr/docs/Glossary/WHATWG +/fr/docs/Glossaire/WebDAV /fr/docs/Glossary/WebDAV +/fr/docs/Glossaire/WebExtensions /fr/docs/Glossary/WebExtensions +/fr/docs/Glossaire/WebGL /fr/docs/Glossary/WebGL +/fr/docs/Glossaire/WebIDL /fr/docs/Glossary/WebIDL +/fr/docs/Glossaire/WebKit /fr/docs/Glossary/WebKit +/fr/docs/Glossaire/WebRTC /fr/docs/Glossary/WebRTC +/fr/docs/Glossaire/WebSockets /fr/docs/Glossary/WebSockets +/fr/docs/Glossaire/WebVTT /fr/docs/Glossary/WebVTT +/fr/docs/Glossaire/Web_standards /fr/docs/Glossary/Web_standards +/fr/docs/Glossaire/Whitespace /fr/docs/Glossary/Whitespace +/fr/docs/Glossaire/World_Wide_Web /fr/docs/Glossary/World_Wide_Web +/fr/docs/Glossaire/Wrapper /fr/docs/Glossary/Wrapper +/fr/docs/Glossaire/XForm /fr/docs/Glossary/XForms +/fr/docs/Glossaire/XHR_(XMLHttpRequest) /fr/docs/Glossary/XHR_(XMLHttpRequest) +/fr/docs/Glossaire/XInclude /fr/docs/Glossary/XInclude +/fr/docs/Glossaire/XLink /fr/docs/Glossary/XLink +/fr/docs/Glossaire/XML /fr/docs/Glossary/XML +/fr/docs/Glossaire/XPath /fr/docs/Glossary/XPath +/fr/docs/Glossaire/XQuery /fr/docs/Glossary/XQuery +/fr/docs/Glossaire/XSLT /fr/docs/Glossary/XSLT +/fr/docs/Glossaire/Zones_de_grille /fr/docs/Glossary/Grid_Areas +/fr/docs/Glossaire/application_context /fr/docs/Glossary/application_context +/fr/docs/Glossaire/applications_web_modernes /fr/docs/Glossary/Modern_web_apps +/fr/docs/Glossaire/array /fr/docs/Glossary/array +/fr/docs/Glossaire/beacon /fr/docs/Glossary/beacon +/fr/docs/Glossaire/brotli_compression /fr/docs/Glossary/brotli_compression +/fr/docs/Glossaire/cacheable /fr/docs/Glossary/cacheable +/fr/docs/Glossaire/codage_caracteres /fr/docs/Glossary/character_encoding +/fr/docs/Glossaire/compression_avec_perte /fr/docs/Glossary/lossy_compression +/fr/docs/Glossaire/défi_réponse /fr/docs/Glossary/challenge +/fr/docs/Glossaire/first_meaningful_paint /fr/docs/Glossary/first_meaningful_paint +/fr/docs/Glossaire/fonction_anonyme_auto-executante /fr/docs/Glossary/Self-Executing_Anonymous_Function +/fr/docs/Glossaire/gif /fr/docs/Glossary/gif +/fr/docs/Glossaire/grid_container /fr/docs/Glossary/Grid_Container +/fr/docs/Glossaire/hash /fr/docs/Glossary/hash +/fr/docs/Glossaire/https /fr/docs/Glossary/https +/fr/docs/Glossaire/jQuery /fr/docs/Glossary/jQuery +/fr/docs/Glossaire/jpeg /fr/docs/Glossary/jpeg +/fr/docs/Glossaire/ligne_de_base /fr/docs/Glossary/baseline +/fr/docs/Glossaire/loop /fr/docs/Glossary/loop +/fr/docs/Glossaire/ltr /fr/docs/Glossary/ltr +/fr/docs/Glossaire/mime /fr/docs/Glossary/mime +/fr/docs/Glossaire/minification /fr/docs/Glossary/minification +/fr/docs/Glossaire/modularité /fr/docs/Glossary/modularity +/fr/docs/Glossaire/non-normative /fr/docs/Glossary/non-normative +/fr/docs/Glossaire/pare-feu /fr/docs/Glossary/firewall +/fr/docs/Glossaire/percent-encoding /fr/docs/Glossary/percent-encoding +/fr/docs/Glossaire/preprocesseur_CSS /fr/docs/Glossary/CSS_preprocessor +/fr/docs/Glossaire/privileged_code /fr/docs/Glossary/privileged_code +/fr/docs/Glossaire/rectangle_limitation_minimum /fr/docs/Glossary/bounding_box +/fr/docs/Glossaire/requete_pre-verification /fr/docs/Glossary/Preflight_request +/fr/docs/Glossaire/rtl /fr/docs/Glossary/rtl +/fr/docs/Glossaire/suite_de_chiffrement /fr/docs/Glossary/Cipher_suite +/fr/docs/Glossaire/sécurisée /fr/docs/Glossary/safe +/fr/docs/Glossaire/typage_dynamique /fr/docs/Glossary/Dynamic_typing +/fr/docs/Glossaire/typage_statique /fr/docs/Glossary/Static_typing +/fr/docs/Glossaire/undefined /fr/docs/Glossary/undefined +/fr/docs/Glossaire/webm /fr/docs/Glossary/webm +/fr/docs/Glossaire/webp /fr/docs/Glossary/webp +/fr/docs/Glossaire/Élément /fr/docs/Glossary/Element +/fr/docs/Glossaire/Éléments_supports_de_script /fr/docs/Glossary/Script-supporting_element +/fr/docs/Glossaire/évènement /fr/docs/Glossary/event +/fr/docs/Glossary/Accessibilité /fr/docs/Glossary/Accessibility +/fr/docs/Glossary/Attribut /fr/docs/Glossary/Attribute +/fr/docs/Glossary/Block/Block_(CSS) /fr/docs/Glossary/Block/CSS +/fr/docs/Glossary/Node/réseau /fr/docs/Glossary/Node/networking +/fr/docs/Glossary/Origine /fr/docs/Glossary/Origin +/fr/docs/Guide_JavaScript_1.5/Aperçu_de_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Création_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5/Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Array /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Boolean /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Date /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Function /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Math /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Number /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_RegExp /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_String /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_document /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_windows /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model /fr/docs/Guide_JavaScript_1.5/Traitement_de_XML_avec_E4X /fr/docs/JavaScript_Guide/Traitement_de_XML_avec_E4X -/fr/docs/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5/À_propos /fr/docs/Web/JavaScript/Guide/Apropos -/fr/docs/Guide_JavaScript_1.5:Aperçu_de_JavaScript /fr/docs/Web/JavaScript/Guide/JavaScript_Overview -/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_break /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_for /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_label /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Création_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/Guide_JavaScript_1.5:Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5:Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions:L'instruction_throw /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions:L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets:Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets:Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Array /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Boolean /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Date /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Function /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Math /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Number /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_RegExp /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_String /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/Guide_JavaScript_1.5:Opérateurs:Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs +/fr/docs/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5/À_propos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction +/fr/docs/Guide_JavaScript_1.5:Aperçu_de_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_break /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_for /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_label /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Boucles:L'instruction_while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Création_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'objets:Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Guide_JavaScript_1.5:Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5:Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions:L'instruction_throw /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Instructions_de_gestion_d'exceptions:L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets:Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5:L'exemple_de_l'employé:Propriétés_des_objets:Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Array /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Boolean /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Date /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Function /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Math /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_Number /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_RegExp /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Objets_prédéfinis:L'objet_String /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Guide_JavaScript_1.5:Opérateurs:Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators /fr/docs/Guide_JavaScript_1.5:Traitement_de_XML_avec_E4X /fr/docs/JavaScript_Guide/Traitement_de_XML_avec_E4X -/fr/docs/Guide_JavaScript_1.5:Travailler_avec_les_expressions_rationnelles:Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Guide_JavaScript_1.5:À_propos /fr/docs/Web/JavaScript/Guide/Apropos +/fr/docs/Guide_JavaScript_1.5:Travailler_avec_les_expressions_rationnelles:Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Guide_JavaScript_1.5:À_propos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction /fr/docs/Guide_de_développement /fr/docs/Mozilla/Developer_guide /fr/docs/HTML /fr/docs/Web/HTML -/fr/docs/HTML/Attributes /fr/docs/Web/HTML/Attributs -/fr/docs/HTML/Attributs /fr/docs/Web/HTML/Attributs +/fr/docs/HTML/Attributes /fr/docs/Web/HTML/Attributes +/fr/docs/HTML/Attributs /fr/docs/Web/HTML/Attributes /fr/docs/HTML/Canvas /fr/docs/Web/API/Canvas_API -/fr/docs/HTML/Catégorie_de_contenu /fr/docs/Web/Guide/HTML/Catégories_de_contenu -/fr/docs/HTML/Contenu_editable /fr/docs/Web/HTML/Contenu_editable -/fr/docs/HTML/Controler_la_verification_de_orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Attributs_universels/spellcheck +/fr/docs/HTML/Catégorie_de_contenu /fr/docs/Web/Guide/HTML/Content_categories +/fr/docs/HTML/Contenu_editable /fr/docs/Web/Guide/HTML/Editable_content +/fr/docs/HTML/Controler_la_verification_de_orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Global_attributes/spellcheck /fr/docs/HTML/Element /fr/docs/Web/HTML/Element /fr/docs/HTML/Element-redirection-1 /fr/docs/Web/HTML/Element /fr/docs/HTML/Element-redirection-2 /fr/docs/Web/HTML/Element @@ -1252,7 +1946,7 @@ /fr/docs/HTML/Element/code /fr/docs/Web/HTML/Element/code /fr/docs/HTML/Element/col /fr/docs/Web/HTML/Element/col /fr/docs/HTML/Element/colgroup /fr/docs/Web/HTML/Element/colgroup -/fr/docs/HTML/Element/command /fr/docs/Web/HTML/Element/command +/fr/docs/HTML/Element/command /fr/docs/orphaned/Web/HTML/Element/command /fr/docs/HTML/Element/data /fr/docs/Web/HTML/Element/data /fr/docs/HTML/Element/dd /fr/docs/Web/HTML/Element/dd /fr/docs/HTML/Element/del /fr/docs/Web/HTML/Element/del @@ -1311,23 +2005,24 @@ /fr/docs/HTML/Element/track /fr/docs/Web/HTML/Element/track /fr/docs/HTML/Element/ul /fr/docs/Web/HTML/Element/ul /fr/docs/HTML/Element/var /fr/docs/Web/HTML/Element/var -/fr/docs/HTML/Formulaires /fr/docs/Web/Guide/HTML/Formulaires -/fr/docs/HTML/Formulaires/Apparence_des_formulaires_HTML /fr/docs/Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML -/fr/docs/HTML/Formulaires/Comment_structurer_un_formulaire_HTML /fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML -/fr/docs/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple /fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple -/fr/docs/HTML/Formulaires/Les_blocs_de_formulaires_natifs /fr/docs/Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs -/fr/docs/HTML/Formulaires/Mon_premier_formulaire_HTML /fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML -/fr/docs/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple /fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple -/fr/docs/HTML/Global_attributes /fr/docs/Web/HTML/Attributs_universels +/fr/docs/HTML/Formulaires /fr/docs/Learn/Forms +/fr/docs/HTML/Formulaires/Apparence_des_formulaires_HTML /fr/docs/Learn/Forms/Styling_web_forms +/fr/docs/HTML/Formulaires/Comment_structurer_un_formulaire_HTML /fr/docs/Learn/Forms/How_to_structure_a_web_form +/fr/docs/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple /fr/docs/Learn/Forms/How_to_structure_a_web_form/Example +/fr/docs/HTML/Formulaires/Les_blocs_de_formulaires_natifs /fr/docs/Learn/Forms/Basic_native_form_controls +/fr/docs/HTML/Formulaires/Mon_premier_formulaire_HTML /fr/docs/Learn/Forms/Your_first_form +/fr/docs/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple /fr/docs/Learn/Forms/Your_first_form/Example +/fr/docs/HTML/Global_attributes /fr/docs/Web/HTML/Global_attributes /fr/docs/HTML/HTML5 /fr/docs/Web/Guide/HTML/HTML5 -/fr/docs/HTML/HTML5/Introduction_to_HTML5 /fr/docs/Web/HTML/Introduction_to_HTML5 -/fr/docs/HTML/HTML5/Liste_des_éléments_HTML5 /fr/docs/Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5 -/fr/docs/HTML/Image_avec_ressources_origines_multiples_CORS_activees /fr/docs/Web/HTML/Images_avec_le_contrôle_d_accès_HTTP -/fr/docs/HTML/Introduction /fr/docs/Apprendre/HTML/Introduction_à_HTML -/fr/docs/HTML/Introduction_à_HTML5 /fr/docs/Web/HTML/Introduction_to_HTML5 -/fr/docs/HTML/Reglages_des_attributs_CORS /fr/docs/Web/HTML/Reglages_des_attributs_CORS +/fr/docs/HTML/HTML5/Introduction_to_HTML5 /fr/docs/Web/Guide/HTML/HTML5/Introduction_to_HTML5 +/fr/docs/HTML/HTML5/Liste_des_éléments_HTML5 /fr/docs/conflicting/Web/HTML/Element +/fr/docs/HTML/Image_avec_ressources_origines_multiples_CORS_activees /fr/docs/Web/HTML/CORS_enabled_image +/fr/docs/HTML/Introduction /fr/docs/Learn/HTML/Introduction_to_HTML +/fr/docs/HTML/Introduction_à_HTML5 /fr/docs/Web/Guide/HTML/HTML5/Introduction_to_HTML5 +/fr/docs/HTML/Manipulating_video_using_canvas /fr/docs/Web/API/Canvas_API/Manipulating_video_using_canvas +/fr/docs/HTML/Reglages_des_attributs_CORS /fr/docs/Web/HTML/Attributes/crossorigin /fr/docs/HTML/Référence_Éléments_HTML /fr/docs/Web/HTML/Element -/fr/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /fr/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document +/fr/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /fr/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /fr/docs/HTML/formats_media_support /fr/docs/Web/Media/Formats /fr/docs/HTML:Canvas /fr/docs/Web/API/Canvas_API /fr/docs/HTML:Element /fr/docs/Web/HTML/Element @@ -1335,17 +2030,17 @@ /fr/docs/HTML:Element:link /fr/docs/Web/HTML/Element/link /fr/docs/HTTP /fr/docs/Web/HTTP /fr/docs/HTTP/Access_control_CORS /fr/docs/Web/HTTP/CORS -/fr/docs/HTTP/Aperçu /fr/docs/Web/HTTP/Aperçu +/fr/docs/HTTP/Aperçu /fr/docs/Web/HTTP/Overview /fr/docs/HTTP/Basics_of_HTTP /fr/docs/Web/HTTP/Basics_of_HTTP -/fr/docs/HTTP/Basics_of_HTTP/Choisir_entre_les_URLs_www_sans_www /fr/docs/Web/HTTP/Basics_of_HTTP/Choisir_entre_les_URLs_www_sans_www +/fr/docs/HTTP/Basics_of_HTTP/Choisir_entre_les_URLs_www_sans_www /fr/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /fr/docs/HTTP/Basics_of_HTTP/Data_URIs /fr/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /fr/docs/HTTP/Basics_of_HTTP/Evolution_of_HTTP /fr/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP -/fr/docs/HTTP/Basics_of_HTTP/Identifier_des_ressources_sur_le_Web /fr/docs/Web/HTTP/Basics_of_HTTP/Identifier_des_ressources_sur_le_Web +/fr/docs/HTTP/Basics_of_HTTP/Identifier_des_ressources_sur_le_Web /fr/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /fr/docs/HTTP/Basics_of_HTTP/MIME_types /fr/docs/Web/HTTP/Basics_of_HTTP/MIME_types /fr/docs/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types /fr/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types -/fr/docs/HTTP/Basics_of_HTTP/URLs_de_type_ressource /fr/docs/Web/HTTP/Basics_of_HTTP/URLs_de_type_ressource +/fr/docs/HTTP/Basics_of_HTTP/URLs_de_type_ressource /fr/docs/Web/HTTP/Basics_of_HTTP/Resource_URLs /fr/docs/HTTP/CSP /fr/docs/Web/HTTP/CSP -/fr/docs/HTTP/Cache /fr/docs/Web/HTTP/Cache +/fr/docs/HTTP/Cache /fr/docs/Web/HTTP/Caching /fr/docs/HTTP/Compression /fr/docs/Web/HTTP/Compression /fr/docs/HTTP/Cookies /fr/docs/Web/HTTP/Cookies /fr/docs/HTTP/Headers /fr/docs/Web/HTTP/Headers @@ -1369,23 +2064,23 @@ /fr/docs/HTTP/Headers/If-None-Match /fr/docs/Web/HTTP/Headers/If-None-Match /fr/docs/HTTP/Headers/Last-Modified /fr/docs/Web/HTTP/Headers/Last-Modified /fr/docs/HTTP/Headers/Referer /fr/docs/Web/HTTP/Headers/Referer -/fr/docs/HTTP/Headers/Serveur /fr/docs/Web/HTTP/Headers/Serveur +/fr/docs/HTTP/Headers/Serveur /fr/docs/Web/HTTP/Headers/Server /fr/docs/HTTP/Headers/Set-Cookie /fr/docs/Web/HTTP/Headers/Set-Cookie /fr/docs/HTTP/Headers/Trailer /fr/docs/Web/HTTP/Headers/Trailer /fr/docs/HTTP/Headers/Vary /fr/docs/Web/HTTP/Headers/Vary /fr/docs/HTTP/Headers/WWW-Authenticate /fr/docs/Web/HTTP/Headers/WWW-Authenticate /fr/docs/HTTP/Headers/X-Frame-Options /fr/docs/Web/HTTP/Headers/X-Frame-Options /fr/docs/HTTP/Index /fr/docs/Web/HTTP/Index -/fr/docs/HTTP/Méthode /fr/docs/Web/HTTP/Méthode -/fr/docs/HTTP/Méthode/CONNECT /fr/docs/Web/HTTP/Méthode/CONNECT -/fr/docs/HTTP/Méthode/DELETE /fr/docs/Web/HTTP/Méthode/DELETE -/fr/docs/HTTP/Méthode/GET /fr/docs/Web/HTTP/Méthode/GET -/fr/docs/HTTP/Méthode/HEAD /fr/docs/Web/HTTP/Méthode/HEAD -/fr/docs/HTTP/Méthode/OPTIONS /fr/docs/Web/HTTP/Méthode/OPTIONS -/fr/docs/HTTP/Méthode/PATCH /fr/docs/Web/HTTP/Méthode/PATCH -/fr/docs/HTTP/Méthode/POST /fr/docs/Web/HTTP/Méthode/POST -/fr/docs/HTTP/Méthode/PUT /fr/docs/Web/HTTP/Méthode/PUT -/fr/docs/HTTP/Overview /fr/docs/Web/HTTP/Aperçu +/fr/docs/HTTP/Méthode /fr/docs/Web/HTTP/Methods +/fr/docs/HTTP/Méthode/CONNECT /fr/docs/Web/HTTP/Methods/CONNECT +/fr/docs/HTTP/Méthode/DELETE /fr/docs/Web/HTTP/Methods/DELETE +/fr/docs/HTTP/Méthode/GET /fr/docs/Web/HTTP/Methods/GET +/fr/docs/HTTP/Méthode/HEAD /fr/docs/Web/HTTP/Methods/HEAD +/fr/docs/HTTP/Méthode/OPTIONS /fr/docs/Web/HTTP/Methods/OPTIONS +/fr/docs/HTTP/Méthode/PATCH /fr/docs/Web/HTTP/Methods/PATCH +/fr/docs/HTTP/Méthode/POST /fr/docs/Web/HTTP/Methods/POST +/fr/docs/HTTP/Méthode/PUT /fr/docs/Web/HTTP/Methods/PUT +/fr/docs/HTTP/Overview /fr/docs/Web/HTTP/Overview /fr/docs/HTTP/Session /fr/docs/Web/HTTP/Session /fr/docs/HTTP/Status /fr/docs/Web/HTTP/Status /fr/docs/HTTP/Status/100 /fr/docs/Web/HTTP/Status/100 @@ -1434,97 +2129,107 @@ /fr/docs/HTTP/Status/504 /fr/docs/Web/HTTP/Status/504 /fr/docs/HTTP/Status/505 /fr/docs/Web/HTTP/Status/505 /fr/docs/HTTP/Status/511 /fr/docs/Web/HTTP/Status/511 -/fr/docs/Indentation_homogène_des_listes /fr/docs/Web/CSS/CSS_Lists/Indentation_homogène_des_listes -/fr/docs/IndexedDB /fr/docs/Web/API/API_IndexedDB -/fr/docs/IndexedDB-840092-dup /fr/docs/Web/API/API_IndexedDB -/fr/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB -/fr/docs/IndexedDB/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria -/fr/docs/IndexedDB/Concepts_basiques_IndexedDB /fr/docs/Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB -/fr/docs/IndexedDB/Using_IndexedDB /fr/docs/Web/API/API_IndexedDB/Using_IndexedDB -/fr/docs/Introduction_à_SVG_dans_HTML /fr/docs/Web/SVG/Tutoriel/Introduction_à_SVG_dans_HTML -/fr/docs/Introduction_à_XML /fr/docs/Web/XML/Introduction_à_XML +/fr/docs/Indentation_homogène_des_listes /fr/docs/Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation +/fr/docs/IndexedDB /fr/docs/Web/API/IndexedDB_API +/fr/docs/IndexedDB-840092-dup /fr/docs/Web/API/IndexedDB_API +/fr/docs/IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/IndexedDB/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria +/fr/docs/IndexedDB/Concepts_basiques_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/IndexedDB/Using_IndexedDB /fr/docs/Web/API/IndexedDB_API/Using_IndexedDB +/fr/docs/Inspecteur_DOM /fr/docs/orphaned/Tools/Add-ons/DOM_Inspector +/fr/docs/Inspecteur_DOM/DOM_Inspector_FAQ /fr/docs/orphaned/Tools/Add-ons/DOM_Inspector/DOM_Inspector_FAQ +/fr/docs/Inspecteur_DOM/Internals /fr/docs/orphaned/Tools/Add-ons/DOM_Inspector/Internals +/fr/docs/Inspecteur_DOM/Introduction_to_DOM_Inspector /fr/docs/orphaned/Tools/Add-ons/DOM_Inspector/Introduction_to_DOM_Inspector +/fr/docs/Introduction_(alternative) /fr/docs/Mozilla/Developer_guide/Introduction +/fr/docs/Introduction_à_SVG_dans_HTML /fr/docs/Web/SVG/Tutorial/SVG_In_HTML_Introduction +/fr/docs/Introduction_à_XML /fr/docs/Web/XML/XML_introduction /fr/docs/Introduction_à_XML/xml:base /fr/docs/Web/XML/xml:base -/fr/docs/Introduction_à_l'utilisation_de_XPath_avec_JavaScript /fr/docs/Web/JavaScript/Introduction_à_l_utilisation_de_XPath_avec_JavaScript -/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Certificats_et_authentification /fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification -/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Chiffrement_et_déchiffrement /fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement -/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Gestion_des_certificats /fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats -/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Les_problèmes_de_sécurité_sur_Internet /fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet -/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Signatures_numériques /fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques -/fr/docs/JSON /fr/docs/Glossaire/JSON +/fr/docs/Introduction_à_l'utilisation_de_XPath_avec_JavaScript /fr/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Certificats_et_authentification /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Chiffrement_et_déchiffrement /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Gestion_des_certificats /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Les_problèmes_de_sécurité_sur_Internet /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet +/fr/docs/Introduction_à_la_cryptographie_à_clef_publique:Signatures_numériques /fr/docs/orphaned/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques +/fr/docs/JSON /fr/docs/Glossary/JSON /fr/docs/JavaScript /fr/docs/Web/JavaScript -/fr/docs/JavaScript/A_propos /fr/docs/Web/JavaScript/A_propos -/fr/docs/JavaScript/A_re-introduction_to_JavaScript /fr/docs/Web/JavaScript/Une_réintroduction_à_JavaScript -/fr/docs/JavaScript/Autres_outils_JavaScript /fr/docs/Outils -/fr/docs/JavaScript/Gestion_de_la_mémoire /fr/docs/Web/JavaScript/Gestion_de_la_mémoire +/fr/docs/JavaScript/A_propos /fr/docs/Web/JavaScript/About_JavaScript +/fr/docs/JavaScript/A_re-introduction_to_JavaScript /fr/docs/Web/JavaScript/A_re-introduction_to_JavaScript +/fr/docs/JavaScript/Autres_outils_JavaScript /fr/docs/Tools +/fr/docs/JavaScript/Gestion_de_la_mémoire /fr/docs/Web/JavaScript/Memory_Management /fr/docs/JavaScript/Guide /fr/docs/Web/JavaScript/Guide -/fr/docs/JavaScript/Guide/Apropos /fr/docs/Web/JavaScript/Guide/Apropos -/fr/docs/JavaScript/Guide/BoucleÉvénements /fr/docs/Web/JavaScript/Concurrence_et_boucle_des_événements +/fr/docs/JavaScript/Guide/Apropos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction +/fr/docs/JavaScript/Guide/BoucleÉvénements /fr/docs/Web/JavaScript/EventLoop /fr/docs/JavaScript/Guide/Closures /fr/docs/Web/JavaScript/Closures -/fr/docs/JavaScript/Guide/Expressions_et_Opérateurs /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript/Guide/Expressions_régulières /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript/Guide/Fonctions /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain /fr/docs/Web/JavaScript/Héritage_et_chaîne_de_prototypes -/fr/docs/JavaScript/Guide/Instructions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/JavaScript_Overview /fr/docs/Web/JavaScript/Guide/JavaScript_Overview -/fr/docs/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Le_protocole_iterator /fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration -/fr/docs/JavaScript/Guide/Objets_élémentaires_JavaScript /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Aperçu_de_JavaScript /fr/docs/Web/JavaScript/Guide/JavaScript_Overview -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Array /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Boolean /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Date /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Function /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Math /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Number /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_RegExp /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_String /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_document /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_windows /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails +/fr/docs/JavaScript/Guide/Expressions_et_Opérateurs /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript/Guide/Expressions_régulières /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript/Guide/Fonctions /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript/Guide/Inheritance_and_the_prototype_chain /fr/docs/Web/JavaScript/Inheritance_and_the_prototype_chain +/fr/docs/JavaScript/Guide/Instructions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/JavaScript_Overview /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Le_protocole_iterator /fr/docs/Web/JavaScript/Reference/Iteration_protocols +/fr/docs/JavaScript/Guide/Objets_élémentaires_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Aperçu_de_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Création_d_une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Array /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Boolean /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Date /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Function /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Math /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_Number /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_RegExp /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_String /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_document /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Objets_prédéfinis/L'objet_windows /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model /fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Traitement_de_XML_avec_E4X /fr/docs/JavaScript_Guide/Traitement_de_XML_avec_E4X -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/À_propos /fr/docs/Web/JavaScript/Guide/Apropos -/fr/docs/JavaScript/Guide/Retours_sur_héritage /fr/docs/Web/JavaScript/Guide/Retours_sur_héritage -/fr/docs/JavaScript/Guide/Utiliser_le_JSON_natif /fr/docs/Web/JavaScript/Guide/Utiliser_le_JSON_natif -/fr/docs/JavaScript/Guide/Utiliser_les_objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript/Guide/Valeurs,_variables,_et_littéraux /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript/Guide/iterateurs_et_generateurs /fr/docs/Web/JavaScript/Guide/iterateurs_et_generateurs -/fr/docs/JavaScript/Guide/Égalité_en_JavaScript /fr/docs/Web/JavaScript/Guide/Égalité_en_JavaScript +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript/Guide/Obsolete_Pages/Guide_JavaScript_1.5/À_propos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction +/fr/docs/JavaScript/Guide/Retours_sur_héritage /fr/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain +/fr/docs/JavaScript/Guide/Utiliser_le_JSON_natif /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/JSON +/fr/docs/JavaScript/Guide/Utiliser_les_objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript/Guide/Valeurs,_variables,_et_littéraux /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript/Guide/iterateurs_et_generateurs /fr/docs/Web/JavaScript/Guide/Iterators_and_Generators +/fr/docs/JavaScript/Guide/Égalité_en_JavaScript /fr/docs/conflicting/Web/JavaScript/Equality_comparisons_and_sameness /fr/docs/JavaScript/Guide_JavaScript /fr/docs/Web/JavaScript/Guide /fr/docs/JavaScript/JavaScript_technologies_overview /fr/docs/Web/JavaScript/JavaScript_technologies_overview /fr/docs/JavaScript/Language_Resources /fr/docs/Web/JavaScript/Language_Resources -/fr/docs/JavaScript/Les_différents_tests_d_égalité_comment_les_utiliser /fr/docs/Web/JavaScript/Les_différents_tests_d_égalité +/fr/docs/JavaScript/Les_différents_tests_d_égalité_comment_les_utiliser /fr/docs/Web/JavaScript/Equality_comparisons_and_sameness /fr/docs/JavaScript/New_in_JavaScript /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript /fr/docs/JavaScript/New_in_JavaScript/1.5 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.5 /fr/docs/JavaScript/New_in_JavaScript/1.8.1 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8.1 @@ -1533,856 +2238,866 @@ /fr/docs/JavaScript/New_in_JavaScript/Nouveautés_dans_JavaScript_1.7 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.7 /fr/docs/JavaScript/New_in_JavaScript/Nouveautés_dans_JavaScript_1.8 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8 /fr/docs/JavaScript/Reference /fr/docs/Web/JavaScript/Reference -/fr/docs/JavaScript/Reference/A_propos /fr/docs/Web/JavaScript/Reference/A_propos +/fr/docs/JavaScript/Reference/A_propos /fr/docs/Web/JavaScript/Reference/About /fr/docs/JavaScript/Reference/A_propos/Conventions_d_écriture /fr/docs/Web/JavaScript /fr/docs/JavaScript/Reference/Annexes /fr/docs/Web/JavaScript/Reference -/fr/docs/JavaScript/Reference/Annexes/Annexe_-_Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Reference/Annexes/Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés +/fr/docs/JavaScript/Reference/Annexes/Annexe_-_Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Reference/Annexes/Fonctionnalités_dépréciées /fr/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features +/fr/docs/JavaScript/Reference/Annexes/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar /fr/docs/JavaScript/Reference/Commentaires /fr/docs/Web/JavaScript/Reference/Grammaire_lexicale#Commentaires -/fr/docs/JavaScript/Reference/Fonctions /fr/docs/Web/JavaScript/Reference/Fonctions -/fr/docs/JavaScript/Reference/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/JavaScript/Reference/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee +/fr/docs/JavaScript/Reference/Fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/JavaScript/Reference/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/JavaScript/Reference/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee /fr/docs/JavaScript/Reference/Fonctions/arguments/caller /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/caller -/fr/docs/JavaScript/Reference/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length -/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Fonctions +/fr/docs/JavaScript/Reference/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Functions /fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Strict_mode /fr/docs/Web/JavaScript/Reference/Strict_mode -/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee +/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee /fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/caller /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/caller -/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length -/fr/docs/JavaScript/Reference/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Reference/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Reference/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Reference/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Reference/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Reference/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Reference/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Reference/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Reference/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Reference/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Objets_globaux/isFinite -/fr/docs/JavaScript/Reference/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/isNaN -/fr/docs/JavaScript/Reference/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseFloat -/fr/docs/JavaScript/Reference/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt -/fr/docs/JavaScript/Reference/Global_Objects/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Reference/Global_Objects/Array/Reduce /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce -/fr/docs/JavaScript/Reference/Global_Objects/Array/ReduceRight /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight -/fr/docs/JavaScript/Reference/Global_Objects/Array/filter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter -/fr/docs/JavaScript/Reference/Global_Objects/Array/forEach /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach -/fr/docs/JavaScript/Reference/Global_Objects/Array/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf -/fr/docs/JavaScript/Reference/Global_Objects/Array/isArray /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/isArray -/fr/docs/JavaScript/Reference/Global_Objects/Array/join /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/join -/fr/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf -/fr/docs/JavaScript/Reference/Global_Objects/Array/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/length -/fr/docs/JavaScript/Reference/Global_Objects/Array/map /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map -/fr/docs/JavaScript/Reference/Global_Objects/Array/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/JavaScript/Reference/Global_Objects/Array/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/prototype -/fr/docs/JavaScript/Reference/Global_Objects/Array/push /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/push -/fr/docs/JavaScript/Reference/Global_Objects/Array/shift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/shift -/fr/docs/JavaScript/Reference/Global_Objects/Array/splice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/splice -/fr/docs/JavaScript/Reference/Global_Objects/Math /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math -/fr/docs/JavaScript/Reference/Global_Objects/Math/abs /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/abs -/fr/docs/JavaScript/Reference/Global_Objects/Math/ceil /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil -/fr/docs/JavaScript/Reference/Global_Objects/Math/round /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/round -/fr/docs/JavaScript/Reference/Global_Objects/Math/trunc /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/trunc -/fr/docs/JavaScript/Reference/Instructions /fr/docs/Web/JavaScript/Reference/Instructions -/fr/docs/JavaScript/Reference/Instructions/break /fr/docs/Web/JavaScript/Reference/Instructions/break -/fr/docs/JavaScript/Reference/Instructions/const /fr/docs/Web/JavaScript/Reference/Instructions/const -/fr/docs/JavaScript/Reference/Instructions/continue /fr/docs/Web/JavaScript/Reference/Instructions/continue -/fr/docs/JavaScript/Reference/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Instructions/do...while -/fr/docs/JavaScript/Reference/Instructions/export /fr/docs/Web/JavaScript/Reference/Instructions/export -/fr/docs/JavaScript/Reference/Instructions/for /fr/docs/Web/JavaScript/Reference/Instructions/for -/fr/docs/JavaScript/Reference/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Instructions/for...in +/fr/docs/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/JavaScript/Reference/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Reference/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Reference/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Reference/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Reference/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Reference/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/isFinite +/fr/docs/JavaScript/Reference/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/fr/docs/JavaScript/Reference/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat +/fr/docs/JavaScript/Reference/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt +/fr/docs/JavaScript/Reference/Global_Objects/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Reference/Global_Objects/Array/Reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce +/fr/docs/JavaScript/Reference/Global_Objects/Array/ReduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +/fr/docs/JavaScript/Reference/Global_Objects/Array/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/filter +/fr/docs/JavaScript/Reference/Global_Objects/Array/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach +/fr/docs/JavaScript/Reference/Global_Objects/Array/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf +/fr/docs/JavaScript/Reference/Global_Objects/Array/isArray /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray +/fr/docs/JavaScript/Reference/Global_Objects/Array/join /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/join +/fr/docs/JavaScript/Reference/Global_Objects/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +/fr/docs/JavaScript/Reference/Global_Objects/Array/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length +/fr/docs/JavaScript/Reference/Global_Objects/Array/map /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/map +/fr/docs/JavaScript/Reference/Global_Objects/Array/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/JavaScript/Reference/Global_Objects/Array/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/fr/docs/JavaScript/Reference/Global_Objects/Array/push /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/push +/fr/docs/JavaScript/Reference/Global_Objects/Array/shift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift +/fr/docs/JavaScript/Reference/Global_Objects/Array/splice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice +/fr/docs/JavaScript/Reference/Global_Objects/Math /fr/docs/Web/JavaScript/Reference/Global_Objects/Math +/fr/docs/JavaScript/Reference/Global_Objects/Math/abs /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/abs +/fr/docs/JavaScript/Reference/Global_Objects/Math/ceil /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil +/fr/docs/JavaScript/Reference/Global_Objects/Math/round /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/round +/fr/docs/JavaScript/Reference/Global_Objects/Math/trunc /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc +/fr/docs/JavaScript/Reference/Instructions /fr/docs/Web/JavaScript/Reference/Statements +/fr/docs/JavaScript/Reference/Instructions/break /fr/docs/Web/JavaScript/Reference/Statements/break +/fr/docs/JavaScript/Reference/Instructions/const /fr/docs/Web/JavaScript/Reference/Statements/const +/fr/docs/JavaScript/Reference/Instructions/continue /fr/docs/Web/JavaScript/Reference/Statements/continue +/fr/docs/JavaScript/Reference/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Statements/do...while +/fr/docs/JavaScript/Reference/Instructions/export /fr/docs/Web/JavaScript/Reference/Statements/export +/fr/docs/JavaScript/Reference/Instructions/for /fr/docs/Web/JavaScript/Reference/Statements/for +/fr/docs/JavaScript/Reference/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Statements/for...in /fr/docs/JavaScript/Reference/Instructions/for_each...in /fr/docs/Web/JavaScript/Reference/Instructions/for_each...in /fr/docs/JavaScript/Reference/Instructions/for_each…in /fr/docs/Web/JavaScript/Reference/Instructions/for_each...in -/fr/docs/JavaScript/Reference/Instructions/function /fr/docs/Web/JavaScript/Reference/Instructions/function -/fr/docs/JavaScript/Reference/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Instructions/if...else -/fr/docs/JavaScript/Reference/Instructions/import /fr/docs/Web/JavaScript/Reference/Instructions/import -/fr/docs/JavaScript/Reference/Instructions/label /fr/docs/Web/JavaScript/Reference/Instructions/label -/fr/docs/JavaScript/Reference/Instructions/return /fr/docs/Web/JavaScript/Reference/Instructions/return -/fr/docs/JavaScript/Reference/Instructions/switch /fr/docs/Web/JavaScript/Reference/Instructions/switch -/fr/docs/JavaScript/Reference/Instructions/throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/JavaScript/Reference/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Instructions/try...catch -/fr/docs/JavaScript/Reference/Instructions/var /fr/docs/Web/JavaScript/Reference/Instructions/var -/fr/docs/JavaScript/Reference/Instructions/while /fr/docs/Web/JavaScript/Reference/Instructions/while -/fr/docs/JavaScript/Reference/Instructions/with /fr/docs/Web/JavaScript/Reference/Instructions/with -/fr/docs/JavaScript/Reference/Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Reference/Objets_Globaux/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Reference/Objets_Globaux/Date/now /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now -/fr/docs/JavaScript/Reference/Objets_Globaux/Date/valueOF /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/valueOF -/fr/docs/JavaScript/Reference/Objets_Globaux/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Reference/Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Reference/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/concat -/fr/docs/JavaScript/Reference/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Reference/Objets_globaux/Array/entries /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/entries -/fr/docs/JavaScript/Reference/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/every -/fr/docs/JavaScript/Reference/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter -/fr/docs/JavaScript/Reference/Objets_globaux/Array/findIndex /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/findIndex -/fr/docs/JavaScript/Reference/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach -/fr/docs/JavaScript/Reference/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf -/fr/docs/JavaScript/Reference/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/join -/fr/docs/JavaScript/Reference/Objets_globaux/Array/keys /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/keys -/fr/docs/JavaScript/Reference/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf -/fr/docs/JavaScript/Reference/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/length -/fr/docs/JavaScript/Reference/Objets_globaux/Array/map /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map -/fr/docs/JavaScript/Reference/Objets_globaux/Array/of /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/of -/fr/docs/JavaScript/Reference/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/JavaScript/Reference/Objets_globaux/Array/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/push -/fr/docs/JavaScript/Reference/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce -/fr/docs/JavaScript/Reference/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight -/fr/docs/JavaScript/Reference/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reverse -/fr/docs/JavaScript/Reference/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/shift -/fr/docs/JavaScript/Reference/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/slice -/fr/docs/JavaScript/Reference/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/some -/fr/docs/JavaScript/Reference/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/sort -/fr/docs/JavaScript/Reference/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/splice -/fr/docs/JavaScript/Reference/Objets_globaux/Array/toLocaleString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toLocaleString -/fr/docs/JavaScript/Reference/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toString -/fr/docs/JavaScript/Reference/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/unshift -/fr/docs/JavaScript/Reference/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf -/fr/docs/JavaScript/Reference/Objets_globaux/ArrayBuffer /fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer -/fr/docs/JavaScript/Reference/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/toString -/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/valueOf -/fr/docs/JavaScript/Reference/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/UTC -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDate -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDay -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getFullYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getHours -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMinutes -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMonth -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getSeconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTime -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getTimezoneOffset /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTimezoneOffset -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCDate -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCDay /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCDay -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCFullYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCHours -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMilliseconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMinutes -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMonth -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCSeconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/parse -/fr/docs/JavaScript/Reference/Objets_globaux/Date/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setDate -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setFullYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setHours -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMilliseconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMinutes -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMonth -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setSeconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setTime /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setTime -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCDate -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCFullYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCHours -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMilliseconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMinutes -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMonth -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCSeconds -/fr/docs/JavaScript/Reference/Objets_globaux/Date/setYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setYear -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toDateString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toDateString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toGMTString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toGMTString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toISOString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toISOString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toJSON /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toJSON -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString +/fr/docs/JavaScript/Reference/Instructions/function /fr/docs/Web/JavaScript/Reference/Statements/function +/fr/docs/JavaScript/Reference/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Statements/if...else +/fr/docs/JavaScript/Reference/Instructions/import /fr/docs/Web/JavaScript/Reference/Statements/import +/fr/docs/JavaScript/Reference/Instructions/label /fr/docs/Web/JavaScript/Reference/Statements/label +/fr/docs/JavaScript/Reference/Instructions/return /fr/docs/Web/JavaScript/Reference/Statements/return +/fr/docs/JavaScript/Reference/Instructions/switch /fr/docs/Web/JavaScript/Reference/Statements/switch +/fr/docs/JavaScript/Reference/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/JavaScript/Reference/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Statements/try...catch +/fr/docs/JavaScript/Reference/Instructions/var /fr/docs/Web/JavaScript/Reference/Statements/var +/fr/docs/JavaScript/Reference/Instructions/while /fr/docs/Web/JavaScript/Reference/Statements/while +/fr/docs/JavaScript/Reference/Instructions/with /fr/docs/Web/JavaScript/Reference/Statements/with +/fr/docs/JavaScript/Reference/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Reference/Objets_Globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Objets_Globaux/Date/now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/JavaScript/Reference/Objets_Globaux/Date/valueOF /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf +/fr/docs/JavaScript/Reference/Objets_Globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Reference/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/concat +/fr/docs/JavaScript/Reference/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Reference/Objets_globaux/Array/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/entries +/fr/docs/JavaScript/Reference/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/every +/fr/docs/JavaScript/Reference/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/filter +/fr/docs/JavaScript/Reference/Objets_globaux/Array/findIndex /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex +/fr/docs/JavaScript/Reference/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach +/fr/docs/JavaScript/Reference/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf +/fr/docs/JavaScript/Reference/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/join +/fr/docs/JavaScript/Reference/Objets_globaux/Array/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/keys +/fr/docs/JavaScript/Reference/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +/fr/docs/JavaScript/Reference/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length +/fr/docs/JavaScript/Reference/Objets_globaux/Array/map /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/map +/fr/docs/JavaScript/Reference/Objets_globaux/Array/of /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/of +/fr/docs/JavaScript/Reference/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/JavaScript/Reference/Objets_globaux/Array/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/fr/docs/JavaScript/Reference/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/push +/fr/docs/JavaScript/Reference/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce +/fr/docs/JavaScript/Reference/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +/fr/docs/JavaScript/Reference/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse +/fr/docs/JavaScript/Reference/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift +/fr/docs/JavaScript/Reference/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice +/fr/docs/JavaScript/Reference/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some +/fr/docs/JavaScript/Reference/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort +/fr/docs/JavaScript/Reference/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice +/fr/docs/JavaScript/Reference/Objets_globaux/Array/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString +/fr/docs/JavaScript/Reference/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toString +/fr/docs/JavaScript/Reference/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift +/fr/docs/JavaScript/Reference/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf +/fr/docs/JavaScript/Reference/Objets_globaux/ArrayBuffer /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer +/fr/docs/JavaScript/Reference/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toString +/fr/docs/JavaScript/Reference/Objets_globaux/Boolean/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +/fr/docs/JavaScript/Reference/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getTimezoneOffset /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getUTCSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/parse +/fr/docs/JavaScript/Reference/Objets_globaux/Date/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMinutes +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMonth +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setSeconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setUTCSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +/fr/docs/JavaScript/Reference/Objets_globaux/Date/setYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toDateString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toDateString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toGMTString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toGMTString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toISOString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toJSON /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString /fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleFormat -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleTimeString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleTimeString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toTimeString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toTimeString -/fr/docs/JavaScript/Reference/Objets_globaux/Date/toUTCString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toUTCString -/fr/docs/JavaScript/Reference/Objets_globaux/DateTimeFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat -/fr/docs/JavaScript/Reference/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error -/fr/docs/JavaScript/Reference/Objets_globaux/Error/Stack /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/Stack -/fr/docs/JavaScript/Reference/Objets_globaux/Error/columnNumber /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/columnNumber -/fr/docs/JavaScript/Reference/Objets_globaux/Error/fileName /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/fileName -/fr/docs/JavaScript/Reference/Objets_globaux/Error/lineNumber /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/lineNumber -/fr/docs/JavaScript/Reference/Objets_globaux/Error/message /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/message -/fr/docs/JavaScript/Reference/Objets_globaux/Error/name /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/name -/fr/docs/JavaScript/Reference/Objets_globaux/Error/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Error/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Error/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/toString -/fr/docs/JavaScript/Reference/Objets_globaux/EvalError /fr/docs/Web/JavaScript/Reference/Objets_globaux/EvalError -/fr/docs/JavaScript/Reference/Objets_globaux/EvalError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/EvalError/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Float32Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Float32Array -/fr/docs/JavaScript/Reference/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function -/fr/docs/JavaScript/Reference/Objets_globaux/Function/apply /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/apply -/fr/docs/JavaScript/Reference/Objets_globaux/Function/arguments /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/arguments +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toLocaleTimeString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toTimeString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString +/fr/docs/JavaScript/Reference/Objets_globaux/Date/toUTCString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString +/fr/docs/JavaScript/Reference/Objets_globaux/DateTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/fr/docs/JavaScript/Reference/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/JavaScript/Reference/Objets_globaux/Error/Stack /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack +/fr/docs/JavaScript/Reference/Objets_globaux/Error/columnNumber /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/columnNumber +/fr/docs/JavaScript/Reference/Objets_globaux/Error/fileName /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName +/fr/docs/JavaScript/Reference/Objets_globaux/Error/lineNumber /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/lineNumber +/fr/docs/JavaScript/Reference/Objets_globaux/Error/message /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/message +/fr/docs/JavaScript/Reference/Objets_globaux/Error/name /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/name +/fr/docs/JavaScript/Reference/Objets_globaux/Error/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/JavaScript/Reference/Objets_globaux/Error/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Error/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/toString +/fr/docs/JavaScript/Reference/Objets_globaux/EvalError /fr/docs/Web/JavaScript/Reference/Global_Objects/EvalError +/fr/docs/JavaScript/Reference/Objets_globaux/EvalError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/EvalError +/fr/docs/JavaScript/Reference/Objets_globaux/Float32Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Float32Array +/fr/docs/JavaScript/Reference/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Reference/Objets_globaux/Function/apply /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/apply +/fr/docs/JavaScript/Reference/Objets_globaux/Function/arguments /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments /fr/docs/JavaScript/Reference/Objets_globaux/Function/arity /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/arity -/fr/docs/JavaScript/Reference/Objets_globaux/Function/bind /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/bind -/fr/docs/JavaScript/Reference/Objets_globaux/Function/call /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/call -/fr/docs/JavaScript/Reference/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/caller -/fr/docs/JavaScript/Reference/Objets_globaux/Function/displayName /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/displayName +/fr/docs/JavaScript/Reference/Objets_globaux/Function/bind /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/bind +/fr/docs/JavaScript/Reference/Objets_globaux/Function/call /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/call +/fr/docs/JavaScript/Reference/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/caller +/fr/docs/JavaScript/Reference/Objets_globaux/Function/displayName /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName /fr/docs/JavaScript/Reference/Objets_globaux/Function/isGenerator /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/isGenerator -/fr/docs/JavaScript/Reference/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/length -/fr/docs/JavaScript/Reference/Objets_globaux/Function/name /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/name -/fr/docs/JavaScript/Reference/Objets_globaux/Function/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toString -/fr/docs/JavaScript/Reference/Objets_globaux/InternalError /fr/docs/Web/JavaScript/Reference/Objets_globaux/InternalError -/fr/docs/JavaScript/Reference/Objets_globaux/InternalError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/InternalError/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/JSON /fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON -/fr/docs/JavaScript/Reference/Objets_globaux/JSON/parse /fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/parse -/fr/docs/JavaScript/Reference/Objets_globaux/JSON/stringify /fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/stringify -/fr/docs/JavaScript/Reference/Objets_globaux/Map /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map -/fr/docs/JavaScript/Reference/Objets_globaux/Map/clear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/clear -/fr/docs/JavaScript/Reference/Objets_globaux/Map/delete /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/delete -/fr/docs/JavaScript/Reference/Objets_globaux/Map/entries /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/entries -/fr/docs/JavaScript/Reference/Objets_globaux/Map/forEach /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/forEach -/fr/docs/JavaScript/Reference/Objets_globaux/Map/get /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/get -/fr/docs/JavaScript/Reference/Objets_globaux/Map/has /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/has -/fr/docs/JavaScript/Reference/Objets_globaux/Map/keys /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/keys -/fr/docs/JavaScript/Reference/Objets_globaux/Map/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Map/set /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/set -/fr/docs/JavaScript/Reference/Objets_globaux/Map/size /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/size -/fr/docs/JavaScript/Reference/Objets_globaux/Map/values /fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/values -/fr/docs/JavaScript/Reference/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math -/fr/docs/JavaScript/Reference/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/E -/fr/docs/JavaScript/Reference/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN10 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN2 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG10E -/fr/docs/JavaScript/Reference/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG2E -/fr/docs/JavaScript/Reference/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/PI -/fr/docs/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT2 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/abs -/fr/docs/JavaScript/Reference/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acos -/fr/docs/JavaScript/Reference/Objets_globaux/Math/acosh /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acosh -/fr/docs/JavaScript/Reference/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asin -/fr/docs/JavaScript/Reference/Objets_globaux/Math/asinh /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asinh -/fr/docs/JavaScript/Reference/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan -/fr/docs/JavaScript/Reference/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan2 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/atanh /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atanh -/fr/docs/JavaScript/Reference/Objets_globaux/Math/cbrt /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cbrt -/fr/docs/JavaScript/Reference/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil -/fr/docs/JavaScript/Reference/Objets_globaux/Math/clz32 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/clz32 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cos -/fr/docs/JavaScript/Reference/Objets_globaux/Math/cosh /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cosh -/fr/docs/JavaScript/Reference/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/exp -/fr/docs/JavaScript/Reference/Objets_globaux/Math/expm1 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/expm1 -/fr/docs/JavaScript/Reference/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/floor -/fr/docs/JavaScript/Reference/Objets_globaux/Math/fround /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/fround -/fr/docs/JavaScript/Reference/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log -/fr/docs/JavaScript/Reference/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/max -/fr/docs/JavaScript/Reference/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/min -/fr/docs/JavaScript/Reference/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/pow -/fr/docs/JavaScript/Reference/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random -/fr/docs/JavaScript/Reference/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/round -/fr/docs/JavaScript/Reference/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sin -/fr/docs/JavaScript/Reference/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sqrt -/fr/docs/JavaScript/Reference/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tan -/fr/docs/JavaScript/Reference/Objets_globaux/Math/tanh /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tanh -/fr/docs/JavaScript/Reference/Objets_globaux/Math/trunc /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/trunc -/fr/docs/JavaScript/Reference/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Reference/Objets_globaux/Number/EPSILON /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/EPSILON -/fr/docs/JavaScript/Reference/Objets_globaux/Number/MAX_VALUE /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MAX_VALUE -/fr/docs/JavaScript/Reference/Objets_globaux/Number/MIN_VALUE /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MIN_VALUE -/fr/docs/JavaScript/Reference/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Reference/Objets_globaux/Object/RegExp /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/JavaScript/Reference/Objets_globaux/Object/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec -/fr/docs/JavaScript/Reference/Objets_globaux/Object/SyntaxError /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError -/fr/docs/JavaScript/Reference/Objets_globaux/Object/SyntaxError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Object/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/constructor -/fr/docs/JavaScript/Reference/Objets_globaux/Object/create /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/create -/fr/docs/JavaScript/Reference/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineGetter -/fr/docs/JavaScript/Reference/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineSetter -/fr/docs/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty -/fr/docs/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf -/fr/docs/JavaScript/Reference/Objets_globaux/Object/isSealed /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isSealed -/fr/docs/JavaScript/Reference/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupGetter -/fr/docs/JavaScript/Reference/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupSetter +/fr/docs/JavaScript/Reference/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/length +/fr/docs/JavaScript/Reference/Objets_globaux/Function/name /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/name +/fr/docs/JavaScript/Reference/Objets_globaux/Function/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Reference/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toString +/fr/docs/JavaScript/Reference/Objets_globaux/InternalError /fr/docs/Web/JavaScript/Reference/Global_Objects/InternalError +/fr/docs/JavaScript/Reference/Objets_globaux/InternalError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/InternalError +/fr/docs/JavaScript/Reference/Objets_globaux/JSON /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON +/fr/docs/JavaScript/Reference/Objets_globaux/JSON/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse +/fr/docs/JavaScript/Reference/Objets_globaux/JSON/stringify /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify +/fr/docs/JavaScript/Reference/Objets_globaux/Map /fr/docs/Web/JavaScript/Reference/Global_Objects/Map +/fr/docs/JavaScript/Reference/Objets_globaux/Map/clear /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/clear +/fr/docs/JavaScript/Reference/Objets_globaux/Map/delete /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/delete +/fr/docs/JavaScript/Reference/Objets_globaux/Map/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/entries +/fr/docs/JavaScript/Reference/Objets_globaux/Map/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach +/fr/docs/JavaScript/Reference/Objets_globaux/Map/get /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/get +/fr/docs/JavaScript/Reference/Objets_globaux/Map/has /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/has +/fr/docs/JavaScript/Reference/Objets_globaux/Map/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/keys +/fr/docs/JavaScript/Reference/Objets_globaux/Map/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Map +/fr/docs/JavaScript/Reference/Objets_globaux/Map/set /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/set +/fr/docs/JavaScript/Reference/Objets_globaux/Map/size /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/size +/fr/docs/JavaScript/Reference/Objets_globaux/Map/values /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/values +/fr/docs/JavaScript/Reference/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Global_Objects/Math +/fr/docs/JavaScript/Reference/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/E +/fr/docs/JavaScript/Reference/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E +/fr/docs/JavaScript/Reference/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E +/fr/docs/JavaScript/Reference/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/PI +/fr/docs/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/abs +/fr/docs/JavaScript/Reference/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acos +/fr/docs/JavaScript/Reference/Objets_globaux/Math/acosh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh +/fr/docs/JavaScript/Reference/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asin +/fr/docs/JavaScript/Reference/Objets_globaux/Math/asinh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh +/fr/docs/JavaScript/Reference/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan +/fr/docs/JavaScript/Reference/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/atanh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh +/fr/docs/JavaScript/Reference/Objets_globaux/Math/cbrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cbrt +/fr/docs/JavaScript/Reference/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil +/fr/docs/JavaScript/Reference/Objets_globaux/Math/clz32 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cos +/fr/docs/JavaScript/Reference/Objets_globaux/Math/cosh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh +/fr/docs/JavaScript/Reference/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/exp +/fr/docs/JavaScript/Reference/Objets_globaux/Math/expm1 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1 +/fr/docs/JavaScript/Reference/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/floor +/fr/docs/JavaScript/Reference/Objets_globaux/Math/fround /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/fround +/fr/docs/JavaScript/Reference/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log +/fr/docs/JavaScript/Reference/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/max +/fr/docs/JavaScript/Reference/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/min +/fr/docs/JavaScript/Reference/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/pow +/fr/docs/JavaScript/Reference/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/random +/fr/docs/JavaScript/Reference/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/round +/fr/docs/JavaScript/Reference/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sin +/fr/docs/JavaScript/Reference/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt +/fr/docs/JavaScript/Reference/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tan +/fr/docs/JavaScript/Reference/Objets_globaux/Math/tanh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh +/fr/docs/JavaScript/Reference/Objets_globaux/Math/trunc /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc +/fr/docs/JavaScript/Reference/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Reference/Objets_globaux/Number/EPSILON /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON +/fr/docs/JavaScript/Reference/Objets_globaux/Number/MAX_VALUE /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +/fr/docs/JavaScript/Reference/Objets_globaux/Number/MIN_VALUE /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +/fr/docs/JavaScript/Reference/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Objets_globaux/Object/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/JavaScript/Reference/Objets_globaux/Object/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/JavaScript/Reference/Objets_globaux/Object/SyntaxError /fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Reference/Objets_globaux/Object/SyntaxError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Reference/Objets_globaux/Object/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor +/fr/docs/JavaScript/Reference/Objets_globaux/Object/create /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/create +/fr/docs/JavaScript/Reference/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +/fr/docs/JavaScript/Reference/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__ +/fr/docs/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +/fr/docs/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf +/fr/docs/JavaScript/Reference/Objets_globaux/Object/isSealed /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed +/fr/docs/JavaScript/Reference/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__ +/fr/docs/JavaScript/Reference/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__ /fr/docs/JavaScript/Reference/Objets_globaux/Object/noSuchMethod /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/noSuchMethod -/fr/docs/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable -/fr/docs/JavaScript/Reference/Objets_globaux/Object/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/Object/seal /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/seal -/fr/docs/JavaScript/Reference/Objets_globaux/Object/setPrototypeOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/setPrototypeOf -/fr/docs/JavaScript/Reference/Objets_globaux/Object/toLocaleString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toLocaleString -/fr/docs/JavaScript/Reference/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toSource -/fr/docs/JavaScript/Reference/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toString +/fr/docs/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +/fr/docs/JavaScript/Reference/Objets_globaux/Object/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Objets_globaux/Object/seal /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/seal +/fr/docs/JavaScript/Reference/Objets_globaux/Object/setPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf +/fr/docs/JavaScript/Reference/Objets_globaux/Object/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString +/fr/docs/JavaScript/Reference/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource +/fr/docs/JavaScript/Reference/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toString /fr/docs/JavaScript/Reference/Objets_globaux/Object/unwatch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/unwatch -/fr/docs/JavaScript/Reference/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf +/fr/docs/JavaScript/Reference/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf /fr/docs/JavaScript/Reference/Objets_globaux/Object/watch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/watch -/fr/docs/JavaScript/Reference/Objets_globaux/Promise /fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise -/fr/docs/JavaScript/Reference/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/JavaScript/Reference/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match -/fr/docs/JavaScript/Reference/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substr -/fr/docs/JavaScript/Reference/Objets_globaux/String/Trim /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/Trim -/fr/docs/JavaScript/Reference/Objets_globaux/String/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/indexOf -/fr/docs/JavaScript/Reference/Objets_globaux/String/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/lastIndexOf -/fr/docs/JavaScript/Reference/Objets_globaux/String/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/length -/fr/docs/JavaScript/Reference/Objets_globaux/String/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/prototype -/fr/docs/JavaScript/Reference/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace -/fr/docs/JavaScript/Reference/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split -/fr/docs/JavaScript/Reference/Objets_globaux/String/toLowerCase /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toLowerCase -/fr/docs/JavaScript/Reference/Objets_globaux/TypeError /fr/docs/Web/JavaScript/Reference/Objets_globaux/TypeError -/fr/docs/JavaScript/Reference/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Reference/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Reference/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Reference/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Reference/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Objets_globaux/eval -/fr/docs/JavaScript/Reference/Objets_globaux/isFinite /fr/docs/Web/JavaScript/Reference/Objets_globaux/isFinite -/fr/docs/JavaScript/Reference/Objets_globaux/isNaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/isNaN -/fr/docs/JavaScript/Reference/Objets_globaux/null /fr/docs/Web/JavaScript/Reference/Objets_globaux/null -/fr/docs/JavaScript/Reference/Objets_globaux/parseFloat /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseFloat -/fr/docs/JavaScript/Reference/Objets_globaux/parseInt /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt -/fr/docs/JavaScript/Reference/Objets_globaux/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/JavaScript/Reference/Operateurs/Précédence_des_opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs -/fr/docs/JavaScript/Reference/Operators /fr/docs/Web/JavaScript/Reference/Opérateurs -/fr/docs/JavaScript/Reference/Operators/Précédence_des_opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs -/fr/docs/JavaScript/Reference/Operators/instanceof /fr/docs/Web/JavaScript/Reference/Opérateurs/instanceof -/fr/docs/JavaScript/Reference/Opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs +/fr/docs/JavaScript/Reference/Objets_globaux/Promise /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise +/fr/docs/JavaScript/Reference/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/JavaScript/Reference/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Global_Objects/String/match +/fr/docs/JavaScript/Reference/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substr +/fr/docs/JavaScript/Reference/Objets_globaux/String/Trim /fr/docs/Web/JavaScript/Reference/Global_Objects/String/Trim +/fr/docs/JavaScript/Reference/Objets_globaux/String/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf +/fr/docs/JavaScript/Reference/Objets_globaux/String/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf +/fr/docs/JavaScript/Reference/Objets_globaux/String/length /fr/docs/Web/JavaScript/Reference/Global_Objects/String/length +/fr/docs/JavaScript/Reference/Objets_globaux/String/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/JavaScript/Reference/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split +/fr/docs/JavaScript/Reference/Objets_globaux/String/toLowerCase /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase +/fr/docs/JavaScript/Reference/Objets_globaux/TypeError /fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError +/fr/docs/JavaScript/Reference/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Reference/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Reference/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Reference/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Reference/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/JavaScript/Reference/Objets_globaux/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/isFinite +/fr/docs/JavaScript/Reference/Objets_globaux/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/fr/docs/JavaScript/Reference/Objets_globaux/null /fr/docs/Web/JavaScript/Reference/Global_Objects/null +/fr/docs/JavaScript/Reference/Objets_globaux/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat +/fr/docs/JavaScript/Reference/Objets_globaux/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt +/fr/docs/JavaScript/Reference/Objets_globaux/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/JavaScript/Reference/Operateurs/Précédence_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/JavaScript/Reference/Operators /fr/docs/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Reference/Operators/Précédence_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/JavaScript/Reference/Operators/instanceof /fr/docs/Web/JavaScript/Reference/Operators/instanceof +/fr/docs/JavaScript/Reference/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators /fr/docs/JavaScript/Reference/Opérateurs/Compréhensions_de_tableau /fr/docs/Web/JavaScript/Reference/Opérateurs/Compréhensions_de_tableau -/fr/docs/JavaScript/Reference/Opérateurs/Groupement /fr/docs/Web/JavaScript/Reference/Opérateurs/Groupement -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_delete /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_delete -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_function /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_get /fr/docs/Web/JavaScript/Reference/Fonctions/get -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_in /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_new /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_new -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_set /fr/docs/Web/JavaScript/Reference/Fonctions/set -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_this /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_this -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_typeof /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_virgule /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule -/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_void /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_void -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_binaires /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_membres -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_logiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_delete -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Fonctions/get -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Opérateurs/instanceof -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_new -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Fonctions/set -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_void -/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L_opérateur_in /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in -/fr/docs/JavaScript/Reference/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs -/fr/docs/JavaScript/Reference/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Objets_globaux/Infinity -/fr/docs/JavaScript/Reference/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/NaN -/fr/docs/JavaScript/Reference/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Objets_globaux/undefined +/fr/docs/JavaScript/Reference/Opérateurs/Groupement /fr/docs/Web/JavaScript/Reference/Operators/Grouping +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_delete /fr/docs/Web/JavaScript/Reference/Operators/delete +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_function /fr/docs/Web/JavaScript/Reference/Operators/function +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_new /fr/docs/Web/JavaScript/Reference/Operators/new +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_this /fr/docs/Web/JavaScript/Reference/Operators/this +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_typeof /fr/docs/Web/JavaScript/Reference/Operators/typeof +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_virgule /fr/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/fr/docs/JavaScript/Reference/Opérateurs/L_opérateur_void /fr/docs/Web/JavaScript/Reference/Operators/void +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_binaires /fr/docs/conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3 +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation /fr/docs/conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes /fr/docs/conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9 +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison /fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55 +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Operators/Property_Accessors +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_logiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Operators/delete +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Operators/function +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Operators/instanceof +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Operators/new +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Operators/typeof +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Operators/void +/fr/docs/JavaScript/Reference/Opérateurs/Opérateurs_spéciaux/L_opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/JavaScript/Reference/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/JavaScript/Reference/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Global_Objects/Infinity +/fr/docs/JavaScript/Reference/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Global_Objects/NaN +/fr/docs/JavaScript/Reference/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Global_Objects/undefined /fr/docs/JavaScript/Reference/Référence_JavaScript /fr/docs/Web/JavaScript/Reference /fr/docs/JavaScript/Reference/Référence_JavaScript/Commentaires /fr/docs/Web/JavaScript/Reference/Grammaire_lexicale#Commentaires -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Fonctions -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee /fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments/caller /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/caller -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/eval /fr/docs/Web/JavaScript/Reference/Objets_globaux/eval -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Objets_globaux/isFinite -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/isNaN -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseFloat -/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Instructions -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Instructions/break -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Instructions/const -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Instructions/continue -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Instructions/do...while -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Instructions/export -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Instructions/for -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Instructions/for...in +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/isFinite +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat +/fr/docs/JavaScript/Reference/Référence_JavaScript/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Statements +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Statements/break +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Statements/const +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Statements/continue +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Statements/do...while +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Statements/export +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Statements/for +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Statements/for...in /fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/for_each...in /fr/docs/Web/JavaScript/Reference/Instructions/for_each...in -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Instructions/function -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Instructions/if...else -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Instructions/import -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Instructions/label -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/return /fr/docs/Web/JavaScript/Reference/Instructions/return -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Instructions/switch -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Instructions/try...catch -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Instructions/var -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Instructions/while -/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Instructions/with -/fr/docs/JavaScript/Reference/Référence_JavaScript/Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/concat -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/every -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/join -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/length -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/push -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reverse -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/shift -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/slice -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/some -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/sort -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/splice -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toSource -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toString -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/unshift -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Boolean/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/UTC -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDate -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDay -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getFullYear -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getHours -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMinutes -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMonth -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getSeconds -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTime -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getYear -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/parse -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/caller -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/length -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toSource -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toString -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/E -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN10 -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN2 -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG10E -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG2E -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/PI -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT2 -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/abs -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acos -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asin -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan2 -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cos -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/exp -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/floor -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/max -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/min -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/pow -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/round -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sin -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sqrt -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tan -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineGetter -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineSetter -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupGetter -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupSetter +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Statements/function +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Statements/if...else +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Statements/import +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Statements/label +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/return /fr/docs/Web/JavaScript/Reference/Statements/return +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Statements/switch +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Statements/try...catch +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Statements/var +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Statements/while +/fr/docs/JavaScript/Reference/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Statements/with +/fr/docs/JavaScript/Reference/Référence_JavaScript/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/concat +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/every +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/filter +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/join +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/push +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toString +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Boolean/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/parse +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Date/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/caller +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/length +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toSource +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toString +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Global_Objects/Math +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/E +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/PI +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/abs +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acos +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asin +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cos +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/exp +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/floor +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/max +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/min +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/pow +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/random +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/round +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sin +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tan +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__ +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__ +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__ /fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/noSuchMethod /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/noSuchMethod -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toSource -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toString +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toString /fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/unwatch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/unwatch -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf /fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/Object/watch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/watch -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substr -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/SyntaxError /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/SyntaxError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Objets_globaux/eval -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_arithmétiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_binaires /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_chaînes /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_comparaison /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_membres -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_logiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_delete -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Fonctions/get -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Opérateurs/instanceof -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_new -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Fonctions/set -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_void -/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs -/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Objets_globaux/Infinity -/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/NaN -/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Objets_globaux/undefined -/fr/docs/JavaScript/Reference/Référence_JavaScript/À_propos /fr/docs/Web/JavaScript/A_propos +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Global_Objects/String/match +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substr +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/SyntaxError /fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/SyntaxError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Reference/Référence_JavaScript/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_arithmétiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_binaires /fr/docs/conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_d'affectation /fr/docs/conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_chaînes /fr/docs/conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_comparaison /fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55 +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Operators/Property_Accessors +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_logiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Operators/delete +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Operators/function +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Operators/instanceof +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Operators/new +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Operators/typeof +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Operators/void +/fr/docs/JavaScript/Reference/Référence_JavaScript/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Global_Objects/Infinity +/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Global_Objects/NaN +/fr/docs/JavaScript/Reference/Référence_JavaScript/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Global_Objects/undefined +/fr/docs/JavaScript/Reference/Référence_JavaScript/À_propos /fr/docs/Web/JavaScript/About_JavaScript /fr/docs/JavaScript/Reference/Référence_JavaScript/À_propos/Conventions_d'écriture /fr/docs/Web/JavaScript /fr/docs/JavaScript/Référence_JavaScript /fr/docs/Web/JavaScript/Reference -/fr/docs/JavaScript/Référence_JavaScript/A_propos /fr/docs/Web/JavaScript/Reference/A_propos +/fr/docs/JavaScript/Référence_JavaScript/A_propos /fr/docs/Web/JavaScript/Reference/About /fr/docs/JavaScript/Référence_JavaScript/Annexes /fr/docs/Web/JavaScript/Reference -/fr/docs/JavaScript/Référence_JavaScript/Annexes/Annexe_-_Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Référence_JavaScript/Annexes/Fonctionnalités_dépréciées /fr/docs/JavaScript/Reference/Annexes/Fonctionnalités_dépréciées -/fr/docs/JavaScript/Référence_JavaScript/Annexes/Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Fonctions -/fr/docs/JavaScript/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/JavaScript/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Instructions -/fr/docs/JavaScript/Référence_JavaScript/Instructions/Vide /fr/docs/Web/JavaScript/Reference/Instructions/Vide -/fr/docs/JavaScript/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Instructions/break -/fr/docs/JavaScript/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Instructions/const -/fr/docs/JavaScript/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Instructions/continue -/fr/docs/JavaScript/Référence_JavaScript/Instructions/debugger /fr/docs/Web/JavaScript/Reference/Instructions/debugger -/fr/docs/JavaScript/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Instructions/do...while -/fr/docs/JavaScript/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Instructions/export -/fr/docs/JavaScript/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Instructions/for -/fr/docs/JavaScript/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Instructions/for...in -/fr/docs/JavaScript/Référence_JavaScript/Instructions/for...of /fr/docs/Web/JavaScript/Reference/Instructions/for...of +/fr/docs/JavaScript/Référence_JavaScript/Annexes/Annexe_-_Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Référence_JavaScript/Annexes/Fonctionnalités_dépréciées /fr/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features +/fr/docs/JavaScript/Référence_JavaScript/Annexes/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/JavaScript/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/JavaScript/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Statements +/fr/docs/JavaScript/Référence_JavaScript/Instructions/Vide /fr/docs/Web/JavaScript/Reference/Statements/Empty +/fr/docs/JavaScript/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Statements/break +/fr/docs/JavaScript/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Statements/const +/fr/docs/JavaScript/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Statements/continue +/fr/docs/JavaScript/Référence_JavaScript/Instructions/debugger /fr/docs/Web/JavaScript/Reference/Statements/debugger +/fr/docs/JavaScript/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Statements/do...while +/fr/docs/JavaScript/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Statements/export +/fr/docs/JavaScript/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Statements/for +/fr/docs/JavaScript/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Statements/for...in +/fr/docs/JavaScript/Référence_JavaScript/Instructions/for...of /fr/docs/Web/JavaScript/Reference/Statements/for...of /fr/docs/JavaScript/Référence_JavaScript/Instructions/for_each...in /fr/docs/Web/JavaScript/Reference/Instructions/for_each...in -/fr/docs/JavaScript/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Instructions/function -/fr/docs/JavaScript/Référence_JavaScript/Instructions/function* /fr/docs/Web/JavaScript/Reference/Instructions/function* -/fr/docs/JavaScript/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Instructions/if...else -/fr/docs/JavaScript/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Instructions/import -/fr/docs/JavaScript/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Instructions/label -/fr/docs/JavaScript/Référence_JavaScript/Instructions/let /fr/docs/Web/JavaScript/Reference/Instructions/let -/fr/docs/JavaScript/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Instructions/switch -/fr/docs/JavaScript/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/JavaScript/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Instructions/try...catch -/fr/docs/JavaScript/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Instructions/var -/fr/docs/JavaScript/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Instructions/while -/fr/docs/JavaScript/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Instructions/with -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/ArrayBuffer /fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Float32Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Float32Array -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function/apply /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/apply -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function/call /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/call -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/constructor -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/create /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/create -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs +/fr/docs/JavaScript/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Statements/function +/fr/docs/JavaScript/Référence_JavaScript/Instructions/function* /fr/docs/Web/JavaScript/Reference/Statements/function* +/fr/docs/JavaScript/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Statements/if...else +/fr/docs/JavaScript/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Statements/import +/fr/docs/JavaScript/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Statements/label +/fr/docs/JavaScript/Référence_JavaScript/Instructions/let /fr/docs/Web/JavaScript/Reference/Statements/let +/fr/docs/JavaScript/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Statements/switch +/fr/docs/JavaScript/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/JavaScript/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Statements/try...catch +/fr/docs/JavaScript/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Statements/var +/fr/docs/JavaScript/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Statements/while +/fr/docs/JavaScript/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Statements/with +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/ArrayBuffer /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Float32Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Float32Array +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function/apply /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/apply +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Function/call /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/call +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/create /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/create +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript /fr/docs/Web/JavaScript/Reference /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Commentaires /fr/docs/Web/JavaScript/Reference/Grammaire_lexicale#Commentaires -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Fonctions -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments/caller /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/caller -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/eval /fr/docs/Web/JavaScript/Reference/Objets_globaux/eval -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Objets_globaux/isFinite -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/isNaN -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseFloat -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Instructions -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Instructions/break -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Instructions/const -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Instructions/continue -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Instructions/do...while -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Instructions/export -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Instructions/for -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Instructions/for...in +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/isFinite +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Fonctions_globales/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions /fr/docs/Web/JavaScript/Reference/Statements +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/break /fr/docs/Web/JavaScript/Reference/Statements/break +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/const /fr/docs/Web/JavaScript/Reference/Statements/const +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/continue /fr/docs/Web/JavaScript/Reference/Statements/continue +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Statements/do...while +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/export /fr/docs/Web/JavaScript/Reference/Statements/export +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/for /fr/docs/Web/JavaScript/Reference/Statements/for +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Statements/for...in /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/for_each...in /fr/docs/Web/JavaScript/Reference/Instructions/for_each...in -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Instructions/function -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Instructions/if...else -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Instructions/import -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Instructions/label -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/return /fr/docs/Web/JavaScript/Reference/Instructions/return -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Instructions/switch -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Instructions/try...catch -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Instructions/var -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Instructions/while -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Instructions/with -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Mots_réservés /fr/docs/Web/JavaScript/Reference/Mots_réservés -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/concat -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/every -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/join -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/length -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/map /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/push -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reverse -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/shift -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/slice -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/some -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/sort -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/splice -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toSource -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toString -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/unshift -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Boolean/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/UTC -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDate -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDay -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getFullYear -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getHours -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMinutes -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMonth -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getSeconds -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTime -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getYear -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/parse -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Objets_globaux/Error -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/caller -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/length -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toSource -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toString -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/E -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN10 -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN2 -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG10E -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG2E -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/PI -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT2 -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/abs -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acos -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asin -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan2 -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cos -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/exp -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/floor -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/max -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/min -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/pow -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/round -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sin -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sqrt -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tan -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineGetter -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineSetter -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupGetter -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupSetter +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/function /fr/docs/Web/JavaScript/Reference/Statements/function +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Statements/if...else +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/import /fr/docs/Web/JavaScript/Reference/Statements/import +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/label /fr/docs/Web/JavaScript/Reference/Statements/label +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/return /fr/docs/Web/JavaScript/Reference/Statements/return +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/switch /fr/docs/Web/JavaScript/Reference/Statements/switch +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Statements/try...catch +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/var /fr/docs/Web/JavaScript/Reference/Statements/var +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/while /fr/docs/Web/JavaScript/Reference/Statements/while +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Instructions/with /fr/docs/Web/JavaScript/Reference/Statements/with +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/concat +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/every +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/filter +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/join +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/map /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/map +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/push +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toString +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Array/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Boolean/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/parse +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Date/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/caller +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/length +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toSource +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toString +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Global_Objects/Math +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/E +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/PI +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/abs +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acos +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asin +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cos +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/exp +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/floor +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/max +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/min +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/pow +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/random +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/round +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sin +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tan +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__ +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__ +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__ /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/noSuchMethod /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/noSuchMethod -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toSource -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toString +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toString /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/unwatch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/unwatch -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/Object/watch /fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/watch -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substr -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/SyntaxError /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/SyntaxError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Objets_globaux/eval -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_arithmétiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_binaires /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_chaînes /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_comparaison /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_membres -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_logiques /fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_delete -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Fonctions/get -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Opérateurs/instanceof -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_new -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Fonctions/set -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_void -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Objets_globaux/Infinity -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Objets_globaux/NaN -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Objets_globaux/undefined -/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/À_propos /fr/docs/Web/JavaScript/A_propos +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Global_Objects/String/match +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substr +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/SyntaxError /fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/SyntaxError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_arithmétiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_binaires /fr/docs/conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_d'affectation /fr/docs/conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_chaînes /fr/docs/conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_comparaison /fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55 +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Operators/Property_Accessors +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_logiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_delete /fr/docs/Web/JavaScript/Reference/Operators/delete +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_function /fr/docs/Web/JavaScript/Reference/Operators/function +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_instanceof /fr/docs/Web/JavaScript/Reference/Operators/instanceof +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_new /fr/docs/Web/JavaScript/Reference/Operators/new +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_typeof /fr/docs/Web/JavaScript/Reference/Operators/typeof +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_virgule /fr/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Opérateurs_spéciaux/L'opérateur_void /fr/docs/Web/JavaScript/Reference/Operators/void +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Opérateurs/Priorités_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/Infinity /fr/docs/Web/JavaScript/Reference/Global_Objects/Infinity +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/NaN /fr/docs/Web/JavaScript/Reference/Global_Objects/NaN +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/Propriétés_globales/undefined /fr/docs/Web/JavaScript/Reference/Global_Objects/undefined +/fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/À_propos /fr/docs/Web/JavaScript/About_JavaScript /fr/docs/JavaScript/Référence_JavaScript/Référence_JavaScript/À_propos/Conventions_d'écriture /fr/docs/Web/JavaScript -/fr/docs/JavaScript/Same_origin_policy_for_JavaScript /fr/docs/Web/Security/Same_origin_policy_for_JavaScript +/fr/docs/JavaScript/Same_origin_policy_for_JavaScript /fr/docs/Web/Security/Same-origin_policy /fr/docs/JavaScript/Shells /fr/docs/Web/JavaScript/Shells -/fr/docs/JavaScript/Structures_de_données /fr/docs/Web/JavaScript/Structures_de_données -/fr/docs/JavaScript/Tableaux_typés /fr/docs/Web/JavaScript/Tableaux_typés -/fr/docs/JavaScript/Une_réintroduction_à_JavaScript /fr/docs/Web/JavaScript/Une_réintroduction_à_JavaScript +/fr/docs/JavaScript/Structures_de_données /fr/docs/Web/JavaScript/Data_structures +/fr/docs/JavaScript/Tableaux_typés /fr/docs/Web/JavaScript/Typed_arrays +/fr/docs/JavaScript/Une_réintroduction_à_JavaScript /fr/docs/Web/JavaScript/A_re-introduction_to_JavaScript /fr/docs/JavaScript_Astuces /fr/docs/Mozilla/JavaScript_Astuces /fr/docs/JavaScript_Guide /fr/docs/Web/JavaScript/Guide -/fr/docs/JavaScript_Guide/Aperçu_de_JavaScript /fr/docs/Web/JavaScript/Guide/JavaScript_Overview -/fr/docs/JavaScript_Guide/Appel_de_fonctions /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Boucles /fr/docs/Web/JavaScript/Guide/iterateurs_et_generateurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_continue /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs +/fr/docs/JavaScript_Guide/Aperçu_de_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/JavaScript_Guide/Appel_de_fonctions /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Boucles /fr/docs/Web/JavaScript/Guide/Iterators_and_Generators +/fr/docs/JavaScript_Guide/Boucles/L'instruction_break /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Boucles/L'instruction_continue /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Boucles/L'instruction_do...while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Boucles/L'instruction_for /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Boucles/L'instruction_label /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Boucles/L'instruction_while /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling /fr/docs/JavaScript_Guide/Commentaires /fr/docs/Web/JavaScript/Guide -/fr/docs/JavaScript_Guide/Constantes /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript_Guide/Constantes_littérales /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript_Guide/Création_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript_Guide/Déclaration_de_blocs /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Définition_de_fonctions /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Expressions /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_eval /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_isFinite /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_isNaN /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_Number_et_String /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_escape_et_unescape /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_parseInt_et_parseFloat /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Instructions_conditionnelles /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Langages_basés_sur_les_classes_et_langages_basés_sur_les_prototypes /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Objets_et_propriétés /fr/docs/Web/JavaScript/Guide/Utiliser_les_objets -/fr/docs/JavaScript_Guide/Objets_prédéfinis /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Array /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Boolean /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Date /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Function /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Math /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Number /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_RegExp /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_String /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_document /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_windows /fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript -/fr/docs/JavaScript_Guide/Opérateurs /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_arithmétiques /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_bit-à-bit /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_de_comparaison /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_liés_aux_chaînes /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_logiques /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_spéciaux /fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs -/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails -/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Exécution_de_recherches_globales,_ignorer_la_casse,_utilisation_de_chaînes_multilignes /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Utilisation_des_parenthèses_de_capture /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/JavaScript_Guide/Unicode /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript_Guide/Utilisation_de_l'objet_arguments /fr/docs/Web/JavaScript/Guide/Fonctions -/fr/docs/JavaScript_Guide/Valeurs /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript_Guide/Variables /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/JavaScript_Guide/À_propos /fr/docs/Web/JavaScript/Guide/Apropos -/fr/docs/JavaScript_Guide/Écriture_d'un_masque_d'expression_rationnelle /fr/docs/Web/JavaScript/Guide/Expressions_régulières -/fr/docs/Javascript/Reference/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Définition_de_paramètres /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Définition_de_paramètres -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_avancé /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_avancé -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_basique /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_basique -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Les_liaisons_JavaScript_XSLT -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Ressources /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Ressources -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Définition_de_paramètres /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Définition_de_paramètres -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Exemple_avancé /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_avancé -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Exemple_basique /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_basique -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Les_liaisons_JavaScript_XSLT -/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Ressources /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Ressources -/fr/docs/La_notation_JSON /fr/docs/Glossaire/JSON +/fr/docs/JavaScript_Guide/Constantes /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript_Guide/Constantes_littérales /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript_Guide/Création_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Définition_d'accesseurs_et_de_mutateurs /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Définition_de_méthodes /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Définition_de_propriétés_pour_un_type_d'objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Indexation_des_propriétés_d'un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Suppression_de_propriétés /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_d'une_fonction_constructeur /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_de_this_pour_référencer_un_objet /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'objets/Utilisation_des_initialisateurs_d'objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Création_d'une_expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript_Guide/Déclaration_de_blocs /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Définition_de_fonctions /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Expressions /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_eval /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_isFinite /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/La_fonction_isNaN /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_Number_et_String /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_escape_et_unescape /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Fonctions_prédéfinies/Les_fonctions_parseInt_et_parseFloat /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Instructions_conditionnelles /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions/L'instruction_throw /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Instructions_de_gestion_d'exceptions/L'instruction_try...catch /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/Instructions_de_manipulation_d'objets /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Création_de_la_hiérarchie /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Des_constructeurs_plus_flexibles /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets/Ajout_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/L'exemple_de_l'employé/Propriétés_des_objets/Héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Langages_basés_sur_les_classes_et_langages_basés_sur_les_prototypes /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Objets_et_propriétés /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/JavaScript_Guide/Objets_prédéfinis /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Array /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Boolean /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Date /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Function /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Math /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_Number /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_RegExp /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_String /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_document /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Objets_prédéfinis/L'objet_windows /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/JavaScript_Guide/Opérateurs /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_arithmétiques /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_bit-à-bit /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_d'affectation /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_de_comparaison /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_liés_aux_chaînes /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_logiques /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Opérateurs/Opérateurs_spéciaux /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Déterminer_les_relations_d'instances /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Informations_globales_dans_les_constructeurs /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Pas_d'héritage_multiple /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Retour_sur_l'héritage_de_propriétés/Valeurs_locales_et_valeurs_héritées /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Exemples_d'expressions_rationnelles /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Exécution_de_recherches_globales,_ignorer_la_casse,_utilisation_de_chaînes_multilignes /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript_Guide/Travailler_avec_les_expressions_rationnelles/Utilisation_des_parenthèses_de_capture /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/JavaScript_Guide/Unicode /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript_Guide/Utilisation_de_l'objet_arguments /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/JavaScript_Guide/Valeurs /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript_Guide/Variables /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/JavaScript_Guide/À_propos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction +/fr/docs/JavaScript_Guide/Écriture_d'un_masque_d'expression_rationnelle /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Javascript/Reference/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/Jeux /fr/docs/Games +/fr/docs/Jeux/Anatomie /fr/docs/Games/Anatomy +/fr/docs/Jeux/Exemples /fr/docs/Games/Examples +/fr/docs/Jeux/Index /fr/docs/Games/Index +/fr/docs/Jeux/Introduction /fr/docs/Games/Introduction +/fr/docs/Jeux/Introduction_to_HTML5_Game_Gevelopment_(summary) /fr/docs/Games/Introduction_to_HTML5_Game_Development +/fr/docs/Jeux/Publier_jeux /fr/docs/Games/Publishing_games +/fr/docs/Jeux/Publier_jeux/Game_monetization /fr/docs/Games/Publishing_games/Game_monetization +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Définition_de_paramètres /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_avancé /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_basique /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko/Ressources /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Définition_de_paramètres /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Exemple_avancé /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Exemple_basique /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings +/fr/docs/L'interface_XSLT_JavaScript_dans_Gecko:Ressources /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources +/fr/docs/La_notation_JSON /fr/docs/Glossary/JSON /fr/docs/La_résolution_des_noms_de_propriété_sur_les_objets /fr/docs/Web/JavaScript/Closures -/fr/docs/La_sécurité_dans_Firefox /fr/docs/La_sécurité_dans_Firefox_2 +/fr/docs/La_sécurité_dans_Firefox /fr/docs/Mozilla/Firefox/Releases/2/Security_changes +/fr/docs/La_sécurité_dans_Firefox_2 /fr/docs/Mozilla/Firefox/Releases/2/Security_changes /fr/docs/Le_DOM_et_JavaScript /fr/docs/Web/JavaScript/JavaScript_technologies_overview /fr/docs/Le_principe_de_"fermeture"_en_JavaScript /fr/docs/Web/JavaScript/Closures /fr/docs/Le_principe_de_fermeture_en_JavaScript /fr/docs/Web/JavaScript/Closures @@ -2394,110 +3109,426 @@ /fr/docs/Le_principe_de_fermeture_en_JavaScript:La_résolution_des_noms_de_propriété_sur_les_objets /fr/docs/Web/JavaScript/Closures /fr/docs/Le_principe_de_fermeture_en_JavaScript:Résolution_d'identifiants,_contextes_d'exécution_et_visibilité_des_variables /fr/docs/Web/JavaScript/Closures /fr/docs/Le_principe_de_fermeture_en_JavaScript:Utilisation_des_fermetures /fr/docs/Web/JavaScript/Closures +/fr/docs/Learn/CSS/First_steps/Qu_est_ce_que_CSS /fr/docs/Learn/CSS/First_steps/What_is_CSS +/fr/docs/Learn/CSS/Styling_text/Mise_en_forme_des_liens /fr/docs/Learn/CSS/Styling_text/Styling_links +/fr/docs/Learn/CSS/Styling_text/initiation-mise-en-forme-du-texte /fr/docs/Learn/CSS/Styling_text/Fundamentals +/fr/docs/Learn/JavaScript/First_steps/Testes_vos_competence:_Tableaux /fr/docs/Learn/JavaScript/First_steps/Test_your_skills:_Arrays +/fr/docs/Learn/JavaScript/First_steps/methode_chaine_utile /fr/docs/Learn/JavaScript/First_steps/Useful_string_methods +/fr/docs/Learn/JavaScript/First_steps/tableaux /fr/docs/Learn/JavaScript/First_steps/Arrays +/fr/docs/Learn/JavaScript/Objects/Ajouter_des_fonctionnalités_à_notre_démo_de_balles_rebondissantes /fr/docs/Learn/JavaScript/Objects/Adding_bouncing_balls_features +/fr/docs/Learn/JavaScript/Objects/Heritage /fr/docs/Learn/JavaScript/Objects/Inheritance +/fr/docs/Learn/JavaScript/Objects/JS_orienté-objet /fr/docs/Learn/JavaScript/Objects/Object-oriented_JS +/fr/docs/Learn/JavaScript/Objects/Prototypes_Objet /fr/docs/Learn/JavaScript/Objects/Object_prototypes +/fr/docs/Learn/JavaScript/Objects/la_construction_d_objet_en_pratique /fr/docs/Learn/JavaScript/Objects/Object_building_practice /fr/docs/Learn/Performance/Populating_the_page:_how_browsers_work /fr/docs/Web/Performance/How_browsers_work -/fr/docs/Learn/Server-side/First_steps /fr/docs/Learn/Server-side/Premiers_pas -/fr/docs/Learn/Server-side/First_steps/Client-Serveur /fr/docs/Learn/Server-side/Premiers_pas/Client-Serveur -/fr/docs/Learn/Server-side/First_steps/Introduction /fr/docs/Learn/Server-side/Premiers_pas/Introduction -/fr/docs/Learn/Server-side/First_steps/Web_frameworks /fr/docs/Learn/Server-side/Premiers_pas/Web_frameworks -/fr/docs/Learn/Server-side/First_steps/Website_security /fr/docs/Learn/Server-side/Premiers_pas/Website_security -/fr/docs/Learn/tutorial /fr/docs/Apprendre/Tutoriels -/fr/docs/Learn/tutorial/Les_bases_de_la_sécurité_informatique /fr/docs/Apprendre/Tutoriels/Les_bases_de_la_sécurité_informatique +/fr/docs/Learn/Performance/pourquoi_performance_web /fr/docs/Learn/Performance/why_web_performance +/fr/docs/Learn/Server-side/Django/Vues_generiques /fr/docs/Learn/Server-side/Django/Generic_views +/fr/docs/Learn/Server-side/First_steps/Client-Serveur /fr/docs/Learn/Server-side/First_steps/Client-Server_overview +/fr/docs/Learn/Server-side/Premiers_pas /fr/docs/Learn/Server-side/First_steps +/fr/docs/Learn/Server-side/Premiers_pas/Client-Serveur /fr/docs/Learn/Server-side/First_steps/Client-Server_overview +/fr/docs/Learn/Server-side/Premiers_pas/Introduction /fr/docs/Learn/Server-side/First_steps/Introduction +/fr/docs/Learn/Server-side/Premiers_pas/Web_frameworks /fr/docs/Learn/Server-side/First_steps/Web_frameworks +/fr/docs/Learn/Server-side/Premiers_pas/Website_security /fr/docs/Learn/Server-side/First_steps/Website_security +/fr/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibilité /fr/docs/Learn/Tools_and_testing/Cross_browser_testing/Accessibility +/fr/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_et_CSS /fr/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS +/fr/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Ligne_de_commande /fr/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line +/fr/docs/Learn/tutorial /fr/docs/conflicting/Learn_6767a192c90d2c9c5179cf004fce2ee8 +/fr/docs/Learn/tutorial/Les_bases_de_la_sécurité_informatique /fr/docs/orphaned/Web/Security/Information_Security_Basics /fr/docs/Liste_des_composants_XPCOM /fr/docs/XPCOM_Interface_Reference -/fr/docs/Littéraux_gabarits /fr/docs/Web/JavaScript/Reference/Littéraux_gabarits -/fr/docs/Localisation /fr/docs/Localization +/fr/docs/Littéraux_gabarits /fr/docs/Web/JavaScript/Reference/Template_literals +/fr/docs/Localisation /fr/docs/Glossary/Localization +/fr/docs/Localization /fr/docs/Glossary/Localization /fr/docs/Localizing_an_extension /fr/docs/Localisation_d'une_extension +/fr/docs/MDN/A_propos /fr/docs/MDN/About /fr/docs/MDN/Contribute/Contenu /fr/docs/MDN/Guidelines -/fr/docs/MDN/Contribute/Contenu/Code_lignesdirectrices /fr/docs/MDN/Guidelines/Code_lignesdirectrices -/fr/docs/MDN/Contribute/Editor/Basics /fr/docs/MDN/Editor/Basics -/fr/docs/MDN/Contribute/Editor/Basics/Pieces_jointes /fr/docs/MDN/Editor/Basics/Pieces_jointes +/fr/docs/MDN/Contribute/Contenu/Code_lignesdirectrices /fr/docs/MDN/Guidelines/Code_guidelines +/fr/docs/MDN/Contribute/Editor/Basics /fr/docs/orphaned/MDN/Editor/Basics +/fr/docs/MDN/Contribute/Editor/Basics/Pieces_jointes /fr/docs/orphaned/MDN/Editor/Basics/Attachments +/fr/docs/MDN/Contribute/Howto/Comment_créer_un_compte_sur_MDN /fr/docs/orphaned/MDN/Contribute/Howto/Create_an_MDN_account +/fr/docs/MDN/Contribute/Howto/Creer_un_exercice_interactif_pour_apprendre_le_web /fr/docs/MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web +/fr/docs/MDN/Contribute/Howto/Set_the_summary_for_a_page /fr/docs/orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page +/fr/docs/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web /fr/docs/orphaned/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web +/fr/docs/MDN/Contribute/Howto/convertir_code_pour_etre_direct /fr/docs/MDN/Contribute/Howto/Convert_code_samples_to_be_live +/fr/docs/MDN/Contribute/Howto/faire_relecture_redactionnelle /fr/docs/orphaned/MDN/Contribute/Howto/Do_an_editorial_review +/fr/docs/MDN/Contribute/Howto/faire_relecture_technique /fr/docs/orphaned/MDN/Contribute/Howto/Do_a_technical_review +/fr/docs/MDN/Contribute/Howto/Étiquettes_pages_JavaScript /fr/docs/orphaned/MDN/Contribute/Howto/Tag_JavaScript_pages /fr/docs/MDN/Contribute/Structures /fr/docs/MDN/Structures -/fr/docs/MDN/Contribute/Structures/Exemples_live /fr/docs/MDN/Structures/Exemples_live +/fr/docs/MDN/Contribute/Structures/Exemples_live /fr/docs/MDN/Structures/Live_samples /fr/docs/MDN/Contribute/Structures/Macros /fr/docs/MDN/Structures/Macros /fr/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros /fr/docs/MDN/Structures/Macros/Commonly-used_macros -/fr/docs/MDN/Contribute/Structures/Tables_de_compatibilité /fr/docs/MDN/Structures/Tables_de_compatibilité +/fr/docs/MDN/Contribute/Structures/Tables_de_compatibilité /fr/docs/MDN/Structures/Compatibility_tables /fr/docs/MDN/Contribute/Tools /fr/docs/MDN/Tools /fr/docs/MDN/Contribute/Tools/KumaScript /fr/docs/MDN/Tools/KumaScript -/fr/docs/MDN/Contribute/Tools/Template_editing /fr/docs/MDN/Tools/Template_editing +/fr/docs/MDN/Contribute/Tools/Template_editing /fr/docs/orphaned/MDN/Tools/Template_editing /fr/docs/MDN/Débuter_sur_MDN /fr/docs/MDN/Contribute/Getting_started +/fr/docs/MDN/Editor /fr/docs/orphaned/MDN/Editor +/fr/docs/MDN/Editor/Basics /fr/docs/orphaned/MDN/Editor/Basics +/fr/docs/MDN/Editor/Basics/Pieces_jointes /fr/docs/orphaned/MDN/Editor/Basics/Attachments /fr/docs/MDN/Feedback /fr/docs/MDN/Contribute/Feedback +/fr/docs/MDN/Guidelines/Code_lignesdirectrices /fr/docs/MDN/Guidelines/Code_guidelines +/fr/docs/MDN/Kuma /fr/docs/MDN/Yari +/fr/docs/MDN/Rejoindre_la_communauté /fr/docs/orphaned/MDN/Community +/fr/docs/MDN/Rejoindre_la_communauté/Conversations /fr/docs/orphaned/MDN/Community/Conversations +/fr/docs/MDN/Rejoindre_la_communauté/Doc_sprints /fr/docs/orphaned/MDN/Community/Doc_sprints +/fr/docs/MDN/Rejoindre_la_communauté/Whats_happening /fr/docs/orphaned/MDN/Community/Whats_happening +/fr/docs/MDN/Structures/Exemples_live /fr/docs/MDN/Structures/Live_samples +/fr/docs/MDN/Structures/Tables_de_compatibilité /fr/docs/MDN/Structures/Compatibility_tables +/fr/docs/MDN/Tools/Template_editing /fr/docs/orphaned/MDN/Tools/Template_editing +/fr/docs/MDN/User_guide /fr/docs/conflicting/MDN/Tools +/fr/docs/MDN_a_dix_ans /fr/docs/MDN/At_ten +/fr/docs/MDN_a_dix_ans/Contribuer_à_MDN /fr/docs/conflicting/MDN/Contribute +/fr/docs/MDN_a_dix_ans/Histoire_MDN /fr/docs/MDN/At_ten/History_of_MDN /fr/docs/Manuel_de_référence_Javascript_1.5_(ECMA-262,_Edition_3) /fr/docs/Web/JavaScript/Reference /fr/docs/MathML /fr/docs/Web/MathML +/fr/docs/Mise_à_jour_des_applications_Web_pour_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/Updating_web_applications +/fr/docs/Mise_à_jour_des_extensions_pour_Firefox_2 /fr/docs/Mozilla/Firefox/Releases/2/Updating_extensions +/fr/docs/Mise_à_jour_des_extensions_pour_Firefox_3 /fr/docs/Mozilla/Firefox/Releases/3/Updating_extensions /fr/docs/Mode_presque_standard_de_Gecko /fr/docs/Mozilla/Mode_presque_standard_de_Gecko /fr/docs/Mode_quirks_de_Mozilla /fr/docs/Web/HTML/Quirks_Mode_and_Standards_Mode -/fr/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities /fr/docs/Mozilla/Add-ons/WebExtensions/Incompatibilités_Chrome +/fr/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/proxyConfig /fr/docs/Mozilla/Add-ons/WebExtensions/API/proxy/settings +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/eval +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/reload /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/reload +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/tabId +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/network +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network/getHAR /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/network/getHAR +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network/onNavigated /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/network/onNavigated +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.network/onRequestFinished /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/network/onRequestFinished +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/createSidebarPane +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/onSelectionChanged /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/onSelectionChanged +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionPanel /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionPanel +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onHidden /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onHidden +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onShown /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onShown +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setExpression /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setExpression +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setObject /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setObject +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setPage /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setPage +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/create /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/create +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/elements +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/onThemeChanged /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/onThemeChanged +/fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/themeName /fr/docs/Mozilla/Add-ons/WebExtensions/API/devtools/panels/themeName +/fr/docs/Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() /fr/docs/conflicting/Mozilla/Add-ons/WebExtensions/API/menus/overrideContext +/fr/docs/Mozilla/Add-ons/WebExtensions/API/proxy/onProxyError /fr/docs/Mozilla/Add-ons/WebExtensions/API/proxy/onError +/fr/docs/Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript +/fr/docs/Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() /fr/docs/conflicting/Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/unregister +/fr/docs/Mozilla/Add-ons/WebExtensions/API/userScripts/travailler_avec_userScripts /fr/docs/Mozilla/Add-ons/WebExtensions/API/userScripts/Working_with_userScripts +/fr/docs/Mozilla/Add-ons/WebExtensions/Ajouter_un_bouton_a_la_barre_d_outils /fr/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar +/fr/docs/Mozilla/Add-ons/WebExtensions/Ajouter_une_page_de_paramètres /fr/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page +/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options +/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_for_desktop_apps +/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_in_the_enterprise +/fr/docs/Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons +/fr/docs/Mozilla/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK +/fr/docs/Mozilla/Add-ons/WebExtensions/Compatibilité_navigateurs_API_JavaScript /fr/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs +/fr/docs/Mozilla/Add-ons/WebExtensions/Compte_developpeurs /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Developer_accounts +/fr/docs/Mozilla/Add-ons/WebExtensions/Debogage_(avant_Firefox_50) /fr/docs/Mozilla/Add-ons/WebExtensions/Debugging_(before_Firefox_50) +/fr/docs/Mozilla/Add-ons/WebExtensions/Differences_entre_les_implementations_api /fr/docs/Mozilla/Add-ons/WebExtensions/Differences_between_API_implementations +/fr/docs/Mozilla/Add-ons/WebExtensions/Exemples /fr/docs/Mozilla/Add-ons/WebExtensions/Examples +/fr/docs/Mozilla/Add-ons/WebExtensions/Experience_utilisateur_bonnes_pratiques /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/User_experience_best_practices +/fr/docs/Mozilla/Add-ons/WebExtensions/Incompatibilités_Chrome /fr/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities +/fr/docs/Mozilla/Add-ons/WebExtensions/Intercepter_requêtes_HTTP /fr/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests +/fr/docs/Mozilla/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on +/fr/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Package_your_extension_ +/fr/docs/Mozilla/Add-ons/WebExtensions/Travailler_avec_l_API_Tabs /fr/docs/Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API +/fr/docs/Mozilla/Add-ons/WebExtensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Best_practices_for_updating_your_extension +/fr/docs/Mozilla/Add-ons/WebExtensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Choose_a_Firefox_version_for_web_extension_develop +/fr/docs/Mozilla/Add-ons/WebExtensions/construction_extension_cross_browser /fr/docs/Mozilla/Add-ons/WebExtensions/Build_a_cross_browser_extension +/fr/docs/Mozilla/Add-ons/WebExtensions/demander_les_bonnes_permissions /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions +/fr/docs/Mozilla/Add-ons/WebExtensions/demandes_de_permission /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Test_permission_requests +/fr/docs/Mozilla/Add-ons/WebExtensions/extension_des_outils_de_developpement /fr/docs/Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools +/fr/docs/Mozilla/Add-ons/WebExtensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page /fr/docs/Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page +/fr/docs/Mozilla/Add-ons/WebExtensions/installation_temporaire_dans_Firefox /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox +/fr/docs/Mozilla/Add-ons/WebExtensions/interagir_avec_le_presse_papier /fr/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/applications /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings -/fr/docs/Mozilla/Add-ons/WebExtensions/prise_en_charge_du_navigateur_pour_les_api_javascript /fr/docs/Mozilla/Add-ons/WebExtensions/Compatibilité_navigateurs_API_JavaScript +/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/arriere-plan /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/background +/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/auteur /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/author +/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme_experimentation /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme_experiment +/fr/docs/Mozilla/Add-ons/WebExtensions/manifests_native /fr/docs/Mozilla/Add-ons/WebExtensions/Native_manifests +/fr/docs/Mozilla/Add-ons/WebExtensions/partage_d_objets_avec_des_scripts_de_page /fr/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts +/fr/docs/Mozilla/Add-ons/WebExtensions/prise_en_charge_du_navigateur_pour_les_api_javascript /fr/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs +/fr/docs/Mozilla/Add-ons/WebExtensions/que_faire_ensuite /fr/docs/Mozilla/Add-ons/WebExtensions/What_next_ +/fr/docs/Mozilla/Add-ons/WebExtensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/What_does_review_rejection_mean_to_users +/fr/docs/Mozilla/Add-ons/WebExtensions/securite_bonne_pratique /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Security_best_practices +/fr/docs/Mozilla/Add-ons/WebExtensions/test_des_fonctionnalites_persistantes_et_de_redemarrage /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features +/fr/docs/Mozilla/Add-ons/WebExtensions/travailler_avec_des_identites_contextuelles /fr/docs/Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities +/fr/docs/Mozilla/Add-ons/WebExtensions/travailler_avec_l_API_cookies /fr/docs/Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API /fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Action_du_navigateur /fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action -/fr/docs/Mozilla/Firefox/Releases /fr/docs/Mozilla/Firefox/Versions -/fr/docs/Mozilla/Firefox/Versions/Firefox_19_pour_les_developpeurs /fr/docs/Mozilla/Firefox/Versions/19 -/fr/docs/Mozilla/Firefox/Versions/Firefox_20_pour_developeurs /fr/docs/Mozilla/Firefox/Versions/20 +/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales /fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars +/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel /fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items +/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/lignes_directrices_en_matiere_accessibilite /fr/docs/orphaned/Mozilla/Add-ons/WebExtensions/user_interface/Accessibility_guidelines +/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/pages_web_incluses /fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages +/fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools /fr/docs/Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels +/fr/docs/Mozilla/Add-ons_bonnes_pratiques_performances_extensions /fr/docs/orphaned/Mozilla/Add-ons_bonnes_pratiques_performances_extensions +/fr/docs/Mozilla/Developer_guide/Vous_venez_juste_de_compiler_Firefox /fr/docs/Mozilla/Developer_guide/So_you_just_built_Firefox +/fr/docs/Mozilla/Firefox/Versions /fr/docs/Mozilla/Firefox/Releases +/fr/docs/Mozilla/Firefox/Versions/1.5 /fr/docs/Mozilla/Firefox/Releases/1.5 +/fr/docs/Mozilla/Firefox/Versions/11 /fr/docs/Mozilla/Firefox/Releases/11 +/fr/docs/Mozilla/Firefox/Versions/12 /fr/docs/Mozilla/Firefox/Releases/12 +/fr/docs/Mozilla/Firefox/Versions/13 /fr/docs/Mozilla/Firefox/Releases/13 +/fr/docs/Mozilla/Firefox/Versions/15 /fr/docs/Mozilla/Firefox/Releases/15 +/fr/docs/Mozilla/Firefox/Versions/16 /fr/docs/Mozilla/Firefox/Releases/16 +/fr/docs/Mozilla/Firefox/Versions/17 /fr/docs/Mozilla/Firefox/Releases/17 +/fr/docs/Mozilla/Firefox/Versions/17/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/17/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/18 /fr/docs/Mozilla/Firefox/Releases/18 +/fr/docs/Mozilla/Firefox/Versions/18/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/18/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/19 /fr/docs/Mozilla/Firefox/Releases/19 +/fr/docs/Mozilla/Firefox/Versions/19/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/19/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/2 /fr/docs/Mozilla/Firefox/Releases/2 +/fr/docs/Mozilla/Firefox/Versions/20 /fr/docs/Mozilla/Firefox/Releases/20 +/fr/docs/Mozilla/Firefox/Versions/20/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/20/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/21 /fr/docs/Mozilla/Firefox/Releases/21 +/fr/docs/Mozilla/Firefox/Versions/21/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/21/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/22 /fr/docs/Mozilla/Firefox/Releases/22 +/fr/docs/Mozilla/Firefox/Versions/22/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/22/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/23 /fr/docs/Mozilla/Firefox/Releases/23 +/fr/docs/Mozilla/Firefox/Versions/23/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/23/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/24 /fr/docs/Mozilla/Firefox/Releases/24 +/fr/docs/Mozilla/Firefox/Versions/24/Site_compatibility /fr/docs/Mozilla/Firefox/Releases/24/Site_compatibility +/fr/docs/Mozilla/Firefox/Versions/3 /fr/docs/Mozilla/Firefox/Releases/3 +/fr/docs/Mozilla/Firefox/Versions/3.5 /fr/docs/Mozilla/Firefox/Releases/3.5 +/fr/docs/Mozilla/Firefox/Versions/3.6 /fr/docs/Mozilla/Firefox/Releases/3.6 +/fr/docs/Mozilla/Firefox/Versions/35 /fr/docs/Mozilla/Firefox/Releases/35 +/fr/docs/Mozilla/Firefox/Versions/35/Site_Compatibility /fr/docs/Mozilla/Firefox/Releases/35/Site_Compatibility +/fr/docs/Mozilla/Firefox/Versions/4 /fr/docs/Mozilla/Firefox/Releases/4 +/fr/docs/Mozilla/Firefox/Versions/40 /fr/docs/Mozilla/Firefox/Releases/40 +/fr/docs/Mozilla/Firefox/Versions/40/Site_Compatibility /fr/docs/Mozilla/Firefox/Releases/40/Site_Compatibility +/fr/docs/Mozilla/Firefox/Versions/41 /fr/docs/Mozilla/Firefox/Releases/41 +/fr/docs/Mozilla/Firefox/Versions/41/Site_Compatibility /fr/docs/Mozilla/Firefox/Releases/41/Site_Compatibility +/fr/docs/Mozilla/Firefox/Versions/5 /fr/docs/Mozilla/Firefox/Releases/5 +/fr/docs/Mozilla/Firefox/Versions/50 /fr/docs/Mozilla/Firefox/Releases/50 +/fr/docs/Mozilla/Firefox/Versions/59 /fr/docs/Mozilla/Firefox/Releases/59 +/fr/docs/Mozilla/Firefox/Versions/6 /fr/docs/Mozilla/Firefox/Releases/6 +/fr/docs/Mozilla/Firefox/Versions/63 /fr/docs/Mozilla/Firefox/Releases/63 +/fr/docs/Mozilla/Firefox/Versions/65 /fr/docs/Mozilla/Firefox/Releases/65 +/fr/docs/Mozilla/Firefox/Versions/68 /fr/docs/Mozilla/Firefox/Releases/68 +/fr/docs/Mozilla/Firefox/Versions/69 /fr/docs/Mozilla/Firefox/Releases/69 +/fr/docs/Mozilla/Firefox/Versions/7 /fr/docs/Mozilla/Firefox/Releases/7 +/fr/docs/Mozilla/Firefox/Versions/70 /fr/docs/Mozilla/Firefox/Releases/70 +/fr/docs/Mozilla/Firefox/Versions/76 /fr/docs/Mozilla/Firefox/Releases/76 +/fr/docs/Mozilla/Firefox/Versions/77 /fr/docs/Mozilla/Firefox/Releases/77 +/fr/docs/Mozilla/Firefox/Versions/8 /fr/docs/Mozilla/Firefox/Releases/8 +/fr/docs/Mozilla/Firefox/Versions/9 /fr/docs/Mozilla/Firefox/Releases/9 +/fr/docs/Mozilla/Firefox/Versions/Firefox_19_pour_les_developpeurs /fr/docs/Mozilla/Firefox/Releases/19 +/fr/docs/Mozilla/Firefox/Versions/Firefox_20_pour_developeurs /fr/docs/Mozilla/Firefox/Releases/20 /fr/docs/Mozilla/Programme_Developpeur /fr/docs/Mozilla/Rejoindre +/fr/docs/NPAPI/Constantes /fr/docs/Plugins/Guide/Constants +/fr/docs/NavigatorUserMedia.getUserMedia /fr/docs/Web/API/Navigator/getUserMedia /fr/docs/Nouveautés_dans_JavaScript_1.6 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.6 /fr/docs/Nouveautés_dans_JavaScript_1.7 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.7 /fr/docs/Nouveautés_dans_JavaScript_1.8 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8 -/fr/docs/Outils/Browser_Toolbox /fr/docs/Outils/Boîte_à_outils_du_navigateur -/fr/docs/Outils/Console_Web/Helpers /fr/docs/Outils/Console_Web/Fonctions_d_aide -/fr/docs/Outils/Debugger /fr/docs/Outils/Débogueur -/fr/docs/Outils/Debugger/Keyboard_shortcuts /fr/docs/Outils/Débogueur/Raccourcis_clavier +/fr/docs/Outils /fr/docs/Tools +/fr/docs/Outils/Accessing_the_Developer_Tools /fr/docs/Tools/Accessing_the_Developer_Tools +/fr/docs/Outils/Add-ons /fr/docs/orphaned/Tools/Add-ons +/fr/docs/Outils/Boîte_à_outils_du_navigateur /fr/docs/Tools/Browser_Toolbox +/fr/docs/Outils/Browser_Toolbox /fr/docs/Tools/Browser_Toolbox +/fr/docs/Outils/CSS_Coverage /fr/docs/orphaned/Tools/CSS_Coverage +/fr/docs/Outils/Console_JavaScript /fr/docs/Tools/Browser_Console +/fr/docs/Outils/Console_Web /fr/docs/Tools/Web_Console +/fr/docs/Outils/Console_Web/Console_messages /fr/docs/Tools/Web_Console/Console_messages +/fr/docs/Outils/Console_Web/Fonctions_d_aide /fr/docs/Tools/Web_Console/Helpers +/fr/docs/Outils/Console_Web/Helpers /fr/docs/Tools/Web_Console/Helpers +/fr/docs/Outils/Console_Web/Keyboard_shortcuts /fr/docs/Tools/Web_Console/Keyboard_shortcuts +/fr/docs/Outils/Console_Web/Opening_the_Web_Console /fr/docs/Tools/Web_Console/UI_Tour +/fr/docs/Outils/Console_Web/Rich_output /fr/docs/Tools/Web_Console/Rich_output +/fr/docs/Outils/Console_Web/Split_console /fr/docs/Tools/Web_Console/Split_console +/fr/docs/Outils/Console_Web/The_command_line_interpreter /fr/docs/Tools/Web_Console/The_command_line_interpreter +/fr/docs/Outils/Couleurs_des_DevTools /fr/docs/Tools/DevToolsColors +/fr/docs/Outils/DOM_Property_Viewer /fr/docs/Tools/DOM_Property_Viewer +/fr/docs/Outils/Debugger /fr/docs/Tools/Debugger +/fr/docs/Outils/Debugger/Keyboard_shortcuts /fr/docs/Tools/Debugger/Keyboard_shortcuts /fr/docs/Outils/Debugger/Settings /fr/docs/Outils/Débogueur/Paramètres -/fr/docs/Outils/Debugger/UI_Tour /fr/docs/Outils/Débogueur/Visite_guidée_de_l_interface_utilisateur -/fr/docs/Outils/DevToolsColors /fr/docs/Outils/Couleurs_des_DevTools -/fr/docs/Outils/Débogueur/Comment/Access_debugging_in_add-ons /fr/docs/Outils/Débogueur/Comment/Accéder_au_débogage_depuis_un_module_complàmentaire -/fr/docs/Outils/Débogueur/Comment/Black_box_a_source /fr/docs/Outils/Débogueur/Comment/Mettre_une_source_dans_une_boîte_noire -/fr/docs/Outils/Débogueur/Comment/Break_on_a_DOM_event /fr/docs/Outils/Débogueur/Comment/S_arrêter_sur_un_évènement_DOM -/fr/docs/Outils/Débogueur/Comment/Debug_eval_sources /fr/docs/Outils/Débogueur/Comment/Déboguer_des_sources_évaluées -/fr/docs/Outils/Débogueur/Comment/Disable_breakpoints /fr/docs/Outils/Débogueur/Comment/Désactiver_des_points_d_arrêts -/fr/docs/Outils/Débogueur/Comment/Examine,_modify,_and_watch_variables /fr/docs/Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables -/fr/docs/Outils/Débogueur/Comment/Highlight_and_inspect_DOM_nodes /fr/docs/Outils/Débogueur/Comment/Afficher_en_surbrillance_et_inspecter_le_DOM -/fr/docs/Outils/Débogueur/Comment/Open_the_debugger /fr/docs/Outils/Débogueur/Comment/Ouvrir_le_débogueur -/fr/docs/Outils/Débogueur/Comment/Pretty-print_a_minified_file /fr/docs/Outils/Débogueur/Comment/Formater_et_indenter_un_fichier_minifié -/fr/docs/Outils/Débogueur/Comment/Set_a_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt -/fr/docs/Outils/Débogueur/Comment/Set_a_conditional_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt_conditionnel -/fr/docs/Outils/Débogueur/Comment/Step_through_code /fr/docs/Outils/Débogueur/Comment/Parcourir_le_code -/fr/docs/Outils/Débogueur/Comment/Use_a_source_map /fr/docs/Outils/Débogueur/Comment/Utiliser_une_source_map -/fr/docs/Outils/Débogueur/How_to /fr/docs/Outils/Débogueur/Comment -/fr/docs/Outils/Débogueur/How_to/Access_debugging_in_add-ons /fr/docs/Outils/Débogueur/Comment/Accéder_au_débogage_depuis_un_module_complàmentaire -/fr/docs/Outils/Débogueur/How_to/Black_box_a_source /fr/docs/Outils/Débogueur/Comment/Mettre_une_source_dans_une_boîte_noire -/fr/docs/Outils/Débogueur/How_to/Break_on_a_DOM_event /fr/docs/Outils/Débogueur/Comment/S_arrêter_sur_un_évènement_DOM -/fr/docs/Outils/Débogueur/How_to/Debug_eval_sources /fr/docs/Outils/Débogueur/Comment/Déboguer_des_sources_évaluées -/fr/docs/Outils/Débogueur/How_to/Disable_breakpoints /fr/docs/Outils/Débogueur/Comment/Désactiver_des_points_d_arrêts -/fr/docs/Outils/Débogueur/How_to/Examine,_modify,_and_watch_variables /fr/docs/Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables -/fr/docs/Outils/Débogueur/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/Outils/Débogueur/Comment/Afficher_en_surbrillance_et_inspecter_le_DOM -/fr/docs/Outils/Débogueur/How_to/Open_the_debugger /fr/docs/Outils/Débogueur/Comment/Ouvrir_le_débogueur -/fr/docs/Outils/Débogueur/How_to/Pretty-print_a_minified_file /fr/docs/Outils/Débogueur/Comment/Formater_et_indenter_un_fichier_minifié -/fr/docs/Outils/Débogueur/How_to/Set_a_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt -/fr/docs/Outils/Débogueur/How_to/Set_a_conditional_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt_conditionnel -/fr/docs/Outils/Débogueur/How_to/Step_through_code /fr/docs/Outils/Débogueur/Comment/Parcourir_le_code -/fr/docs/Outils/Débogueur/How_to/Use_a_source_map /fr/docs/Outils/Débogueur/Comment/Utiliser_une_source_map -/fr/docs/Outils/Débogueur/Keyboard_shortcuts /fr/docs/Outils/Débogueur/Raccourcis_clavier +/fr/docs/Outils/Debugger/UI_Tour /fr/docs/Tools/Debugger/UI_Tour +/fr/docs/Outils/Debugger_(before_Firefox_52) /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52) +/fr/docs/Outils/Debugger_(before_Firefox_52)/Disable_breakpoints /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/Disable_breakpoints +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Black_box_a_source /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Open_the_debugger /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Search_and_filter /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Step_through_code /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code +/fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Use_a_source_map /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map +/fr/docs/Outils/Debugger_(before_Firefox_52)/Keyboard_shortcuts /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/Keyboard_shortcuts +/fr/docs/Outils/Debugger_(before_Firefox_52)/Settings /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/Settings +/fr/docs/Outils/Debugger_(before_Firefox_52)/UI_Tour /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/UI_Tour +/fr/docs/Outils/DevToolsAPI /fr/docs/Tools/DevToolsAPI +/fr/docs/Outils/DevToolsColors /fr/docs/Tools/DevToolsColors +/fr/docs/Outils/Débogage_distant /fr/docs/Tools/Remote_Debugging +/fr/docs/Outils/Débogage_distant/Chrome_Desktop /fr/docs/Tools/Remote_Debugging/Chrome_Desktop +/fr/docs/Outils/Débogage_distant/Debugging_Firefox_Desktop /fr/docs/Tools/Remote_Debugging/Debugging_Firefox_Desktop +/fr/docs/Outils/Débogage_distant/Debugging_Firefox_for_Android_with_WebIDE_clone /fr/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE +/fr/docs/Outils/Débogage_distant/Thunderbird /fr/docs/Tools/Remote_Debugging/Thunderbird +/fr/docs/Outils/Débogueur /fr/docs/Tools/Debugger +/fr/docs/Outils/Débogueur/Comment /fr/docs/Tools/Debugger/How_to +/fr/docs/Outils/Débogueur/Comment/Access_debugging_in_add-ons /fr/docs/Tools/Debugger/How_to/Access_debugging_in_add-ons +/fr/docs/Outils/Débogueur/Comment/Accéder_au_débogage_depuis_un_module_complàmentaire /fr/docs/Tools/Debugger/How_to/Access_debugging_in_add-ons +/fr/docs/Outils/Débogueur/Comment/Afficher_en_surbrillance_et_inspecter_le_DOM /fr/docs/Tools/Debugger/How_to/Highlight_and_inspect_DOM_nodes +/fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt /fr/docs/Tools/Debugger/How_to/Set_a_breakpoint +/fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt_conditionnel /fr/docs/Tools/Debugger/How_to/Set_a_conditional_breakpoint +/fr/docs/Outils/Débogueur/Comment/Black_box_a_source /fr/docs/Tools/Debugger/How_to/Ignore_a_source +/fr/docs/Outils/Débogueur/Comment/Break_on_a_DOM_event /fr/docs/Tools/Debugger/Break_on_DOM_mutation +/fr/docs/Outils/Débogueur/Comment/Breaking_on_exceptions /fr/docs/Tools/Debugger/How_to/Breaking_on_exceptions +/fr/docs/Outils/Débogueur/Comment/Debug_eval_sources /fr/docs/Tools/Debugger/How_to/Debug_eval_sources +/fr/docs/Outils/Débogueur/Comment/Disable_breakpoints /fr/docs/Tools/Debugger/How_to/Disable_breakpoints +/fr/docs/Outils/Débogueur/Comment/Déboguer_des_sources_évaluées /fr/docs/Tools/Debugger/How_to/Debug_eval_sources +/fr/docs/Outils/Débogueur/Comment/Désactiver_des_points_d_arrêts /fr/docs/Tools/Debugger/How_to/Disable_breakpoints +/fr/docs/Outils/Débogueur/Comment/Examine,_modify,_and_watch_variables /fr/docs/conflicting/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables /fr/docs/conflicting/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Outils/Débogueur/Comment/Formater_et_indenter_un_fichier_minifié /fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file +/fr/docs/Outils/Débogueur/Comment/Highlight_and_inspect_DOM_nodes /fr/docs/Tools/Debugger/How_to/Highlight_and_inspect_DOM_nodes +/fr/docs/Outils/Débogueur/Comment/Mettre_une_source_dans_une_boîte_noire /fr/docs/Tools/Debugger/How_to/Ignore_a_source +/fr/docs/Outils/Débogueur/Comment/Open_the_debugger /fr/docs/Tools/Debugger/How_to/Open_the_debugger +/fr/docs/Outils/Débogueur/Comment/Ouvrir_le_débogueur /fr/docs/Tools/Debugger/How_to/Open_the_debugger +/fr/docs/Outils/Débogueur/Comment/Parcourir_le_code /fr/docs/Tools/Debugger/How_to/Step_through_code +/fr/docs/Outils/Débogueur/Comment/Pretty-print_a_minified_file /fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file +/fr/docs/Outils/Débogueur/Comment/S_arrêter_sur_un_évènement_DOM /fr/docs/Tools/Debugger/Break_on_DOM_mutation +/fr/docs/Outils/Débogueur/Comment/Search /fr/docs/Tools/Debugger/How_to/Search +/fr/docs/Outils/Débogueur/Comment/Set_Watch_Expressions /fr/docs/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Outils/Débogueur/Comment/Set_a_breakpoint /fr/docs/Tools/Debugger/How_to/Set_a_breakpoint +/fr/docs/Outils/Débogueur/Comment/Set_a_conditional_breakpoint /fr/docs/Tools/Debugger/How_to/Set_a_conditional_breakpoint +/fr/docs/Outils/Débogueur/Comment/Step_through_code /fr/docs/Tools/Debugger/How_to/Step_through_code +/fr/docs/Outils/Débogueur/Comment/Use_a_source_map /fr/docs/Tools/Debugger/How_to/Use_a_source_map +/fr/docs/Outils/Débogueur/Comment/Utiliser_une_source_map /fr/docs/Tools/Debugger/How_to/Use_a_source_map +/fr/docs/Outils/Débogueur/How_to /fr/docs/Tools/Debugger/How_to +/fr/docs/Outils/Débogueur/How_to/Access_debugging_in_add-ons /fr/docs/Tools/Debugger/How_to/Access_debugging_in_add-ons +/fr/docs/Outils/Débogueur/How_to/Black_box_a_source /fr/docs/Tools/Debugger/How_to/Ignore_a_source +/fr/docs/Outils/Débogueur/How_to/Break_on_a_DOM_event /fr/docs/Tools/Debugger/Break_on_DOM_mutation +/fr/docs/Outils/Débogueur/How_to/Debug_eval_sources /fr/docs/Tools/Debugger/How_to/Debug_eval_sources +/fr/docs/Outils/Débogueur/How_to/Disable_breakpoints /fr/docs/Tools/Debugger/How_to/Disable_breakpoints +/fr/docs/Outils/Débogueur/How_to/Examine,_modify,_and_watch_variables /fr/docs/conflicting/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Outils/Débogueur/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/Tools/Debugger/How_to/Highlight_and_inspect_DOM_nodes +/fr/docs/Outils/Débogueur/How_to/Open_the_debugger /fr/docs/Tools/Debugger/How_to/Open_the_debugger +/fr/docs/Outils/Débogueur/How_to/Pretty-print_a_minified_file /fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file +/fr/docs/Outils/Débogueur/How_to/Set_a_breakpoint /fr/docs/Tools/Debugger/How_to/Set_a_breakpoint +/fr/docs/Outils/Débogueur/How_to/Set_a_conditional_breakpoint /fr/docs/Tools/Debugger/How_to/Set_a_conditional_breakpoint +/fr/docs/Outils/Débogueur/How_to/Step_through_code /fr/docs/Tools/Debugger/How_to/Step_through_code +/fr/docs/Outils/Débogueur/How_to/Use_a_source_map /fr/docs/Tools/Debugger/How_to/Use_a_source_map +/fr/docs/Outils/Débogueur/Keyboard_shortcuts /fr/docs/Tools/Debugger/Keyboard_shortcuts +/fr/docs/Outils/Débogueur/Limitations_of_the_new_debugger /fr/docs/orphaned/Tools/Debugger/Limitations_of_the_new_debugger +/fr/docs/Outils/Débogueur/Raccourcis_clavier /fr/docs/Tools/Debugger/Keyboard_shortcuts +/fr/docs/Outils/Débogueur/Set_an_XHR_breakpoint /fr/docs/Tools/Debugger/Set_an_XHR_breakpoint /fr/docs/Outils/Débogueur/Settings /fr/docs/Outils/Débogueur/Paramètres -/fr/docs/Outils/Débogueur/UI_Tour /fr/docs/Outils/Débogueur/Visite_guidée_de_l_interface_utilisateur -/fr/docs/Outils/Eyedropper /fr/docs/Outils/Pipette_à_couleur -/fr/docs/Outils/Inspecteur/Comment/Examine_and_edit_CSS /fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_CSS -/fr/docs/Outils/Inspecteur/Comment/Examine_and_edit_the_box_model /fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_modèle_de_boîte -/fr/docs/Outils/Inspecteur/Comment/Examine_event_listeners /fr/docs/Outils/Inspecteur/Comment/Examiner_les_écouteurs_d_évènements -/fr/docs/Outils/Inspecteur/Comment/Inspect_and_select_colors /fr/docs/Outils/Inspecteur/Comment/Inspecter_et_sélectionner_des_couleurs -/fr/docs/Outils/Inspecteur/Comment/Open_the_Inspector /fr/docs/Outils/Inspecteur/Comment/Ouvrir_l_Inspecteur -/fr/docs/Outils/Inspecteur/Comment/Select_an_element /fr/docs/Outils/Inspecteur/Comment/Sélectionner_un_élément -/fr/docs/Outils/Inspecteur/Comment/Use_the_Inspector_API /fr/docs/Outils/Inspecteur/Comment/Utiliser_l_API_de_l_Inspecteur -/fr/docs/Outils/Inspecteur/Comment/Use_the_Inspector_from_the_Web_Console /fr/docs/Outils/Inspecteur/Comment/Utiliser_l_Inspecteur_depuis_la_Console_Web -/fr/docs/Outils/Inspecteur/Comment/View_background_images /fr/docs/Outils/Inspecteur/Comment/Prévisualiser_des_images_de_fond -/fr/docs/Outils/Inspecteur/Comment/Visualize_transforms /fr/docs/Outils/Inspecteur/Comment/Visualiser_les_transformations -/fr/docs/Outils/Keyboard_shortcuts /fr/docs/Outils/Raccourcis_claviers -/fr/docs/Outils/Network_Monitor /fr/docs/Outils/Moniteur_réseau -/fr/docs/Outils/Release_notes /fr/docs/Mozilla/Firefox/Versions -/fr/docs/Outils/Remote_Debugging /fr/docs/Outils/Débogage_distant -/fr/docs/Outils/Remote_Debugging/Chrome_Desktop /fr/docs/Outils/Débogage_distant/Chrome_Desktop -/fr/docs/Outils/Shader_Editor /fr/docs/Outils/Editeur_de_shaders -/fr/docs/Outils/Style_Editor /fr/docs/Outils/Éditeur_de_style -/fr/docs/Outils/Timeline /fr/docs/Outils/Frise_chronologique -/fr/docs/Outils/Web_Audio_Editor /fr/docs/Outils/Editeur_Web_Audio -/fr/docs/Outils/Web_Console /fr/docs/Outils/Console_Web -/fr/docs/Outils/Web_Console/Helpers /fr/docs/Outils/Console_Web/Fonctions_d_aide -/fr/docs/Outils/Working_with_iframes /fr/docs/Outils/Travailler_avec_les_iframes -/fr/docs/Outils/inspecteur/HTML_panel /fr/docs/Outils/Inspecteur/Panneau_HTML -/fr/docs/Outils/inspecteur/Keyboard_shortcuts /fr/docs/Outils/inspecteur/Raccourcis_clavier -/fr/docs/Outils:Validateurs /fr/docs/Outils/Validateurs +/fr/docs/Outils/Débogueur/Source_map_errors /fr/docs/Tools/Debugger/Source_map_errors +/fr/docs/Outils/Débogueur/UI_Tour /fr/docs/Tools/Debugger/UI_Tour +/fr/docs/Outils/Débogueur/Visite_guidée_de_l_interface_utilisateur /fr/docs/Tools/Debugger/UI_Tour +/fr/docs/Outils/Editeur_Web_Audio /fr/docs/Tools/Web_Audio_Editor +/fr/docs/Outils/Editeur_de_shaders /fr/docs/Tools/Shader_Editor +/fr/docs/Outils/Eyedropper /fr/docs/Tools/Eyedropper +/fr/docs/Outils/Firefox_OS_Simulator_clone /fr/docs/Tools/Firefox_OS_Simulator_clone +/fr/docs/Outils/Frise_chronologique /fr/docs/conflicting/Tools/Performance/Waterfall +/fr/docs/Outils/Index /fr/docs/Tools/Index +/fr/docs/Outils/Inspecteur /fr/docs/Tools/Page_Inspector +/fr/docs/Outils/Inspecteur/3-pane_mode /fr/docs/Tools/Page_Inspector/3-pane_mode +/fr/docs/Outils/Inspecteur/Comment /fr/docs/Tools/Page_Inspector/How_to +/fr/docs/Outils/Inspecteur/Comment/Edition_filtres_css /fr/docs/Tools/Page_Inspector/How_to/Edit_CSS_filters +/fr/docs/Outils/Inspecteur/Comment/Examine_and_edit_CSS /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS +/fr/docs/Outils/Inspecteur/Comment/Examine_and_edit_the_box_model /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model +/fr/docs/Outils/Inspecteur/Comment/Examine_event_listeners /fr/docs/Tools/Page_Inspector/How_to/Examine_event_listeners +/fr/docs/Outils/Inspecteur/Comment/Examine_grid_layouts /fr/docs/Tools/Page_Inspector/How_to/Examine_grid_layouts +/fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_CSS /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS +/fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_modèle_de_boîte /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model +/fr/docs/Outils/Inspecteur/Comment/Examiner_et_éditer_le_code_HTML /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML +/fr/docs/Outils/Inspecteur/Comment/Examiner_les_écouteurs_d_évènements /fr/docs/Tools/Page_Inspector/How_to/Examine_event_listeners +/fr/docs/Outils/Inspecteur/Comment/Inspect_and_select_colors /fr/docs/Tools/Page_Inspector/How_to/Inspect_and_select_colors +/fr/docs/Outils/Inspecteur/Comment/Inspecter_et_sélectionner_des_couleurs /fr/docs/Tools/Page_Inspector/How_to/Inspect_and_select_colors +/fr/docs/Outils/Inspecteur/Comment/Open_the_Inspector /fr/docs/Tools/Page_Inspector/How_to/Open_the_Inspector +/fr/docs/Outils/Inspecteur/Comment/Ouvrir_l_Inspecteur /fr/docs/Tools/Page_Inspector/How_to/Open_the_Inspector +/fr/docs/Outils/Inspecteur/Comment/Prévisualiser_des_images_de_fond /fr/docs/Tools/Page_Inspector/How_to/View_background_images +/fr/docs/Outils/Inspecteur/Comment/Reposition_elements_in_the_page /fr/docs/Tools/Page_Inspector/How_to/Reposition_elements_in_the_page +/fr/docs/Outils/Inspecteur/Comment/Select_an_element /fr/docs/Tools/Page_Inspector/How_to/Select_an_element +/fr/docs/Outils/Inspecteur/Comment/Select_and_highlight_elements /fr/docs/Tools/Page_Inspector/How_to/Select_and_highlight_elements +/fr/docs/Outils/Inspecteur/Comment/Sélectionner_un_élément /fr/docs/Tools/Page_Inspector/How_to/Select_an_element +/fr/docs/Outils/Inspecteur/Comment/Use_the_Inspector_API /fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_API +/fr/docs/Outils/Inspecteur/Comment/Use_the_Inspector_from_the_Web_Console /fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_from_the_Web_Console +/fr/docs/Outils/Inspecteur/Comment/Utiliser_l_API_de_l_Inspecteur /fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_API +/fr/docs/Outils/Inspecteur/Comment/Utiliser_l_Inspecteur_depuis_la_Console_Web /fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_from_the_Web_Console +/fr/docs/Outils/Inspecteur/Comment/View_background_images /fr/docs/Tools/Page_Inspector/How_to/View_background_images +/fr/docs/Outils/Inspecteur/Comment/Visualiser_les_transformations /fr/docs/Tools/Page_Inspector/How_to/Visualize_transforms +/fr/docs/Outils/Inspecteur/Comment/Visualize_transforms /fr/docs/Tools/Page_Inspector/How_to/Visualize_transforms +/fr/docs/Outils/Inspecteur/Comment/Work_with_animations /fr/docs/Tools/Page_Inspector/How_to/Work_with_animations +/fr/docs/Outils/Inspecteur/Comment/Work_with_animations/Animation_inspector_(Firefox_41_and_42) /fr/docs/Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_(Firefox_41_and_42) +/fr/docs/Outils/Inspecteur/Comment/Work_with_animations/Animation_inspector_example:_Web_Animations_API /fr/docs/Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_example:_Web_Animations_API +/fr/docs/Outils/Inspecteur/Comment/Work_with_animations/Animations_examples /fr/docs/Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_example:_CSS_transitions +/fr/docs/Outils/Inspecteur/Panneau_HTML /fr/docs/conflicting/Tools/Page_Inspector/UI_Tour +/fr/docs/Outils/Inspecteur/UI_Tour /fr/docs/Tools/Page_Inspector/UI_Tour +/fr/docs/Outils/Inspecteur_accessibilite /fr/docs/Tools/Accessibility_inspector +/fr/docs/Outils/Inspecteur_accessibilite/Simulation /fr/docs/Tools/Accessibility_inspector/Simulation +/fr/docs/Outils/JSON_viewer /fr/docs/Tools/JSON_viewer +/fr/docs/Outils/Keyboard_shortcuts /fr/docs/Tools/Keyboard_shortcuts +/fr/docs/Outils/Measure_a_portion_of_the_page /fr/docs/Tools/Measure_a_portion_of_the_page +/fr/docs/Outils/Memory /fr/docs/Tools/Memory +/fr/docs/Outils/Memory/Aggregate_view /fr/docs/Tools/Memory/Aggregate_view +/fr/docs/Outils/Memory/Basic_operations /fr/docs/Tools/Memory/Basic_operations +/fr/docs/Outils/Memory/Comparing_heap_snapshots /fr/docs/conflicting/Tools/Memory/Basic_operations +/fr/docs/Outils/Memory/DOM_allocation_example /fr/docs/Tools/Memory/DOM_allocation_example +/fr/docs/Outils/Memory/Dominators /fr/docs/Tools/Memory/Dominators +/fr/docs/Outils/Memory/Dominators_view /fr/docs/Tools/Memory/Dominators_view +/fr/docs/Outils/Memory/Monster_example /fr/docs/Tools/Memory/Monster_example +/fr/docs/Outils/Memory/Open_the_Memory_tool /fr/docs/conflicting/Tools/Memory/Basic_operations_9264f1c8b3be17d004821ca45ca04d3a +/fr/docs/Outils/Memory/Take_a_heap_snapshot /fr/docs/conflicting/Tools/Memory/Basic_operations_f2c86b478396e7a233344f64c4d4f1da +/fr/docs/Outils/Memory/Tree_map_view /fr/docs/Tools/Memory/Tree_map_view +/fr/docs/Outils/Migrating_from_Firebug /fr/docs/Tools/Migrating_from_Firebug +/fr/docs/Outils/Moniteur_réseau /fr/docs/Tools/Network_Monitor +/fr/docs/Outils/Moniteur_réseau/Performance_Analysis /fr/docs/Tools/Network_Monitor/Performance_Analysis +/fr/docs/Outils/Moniteur_réseau/Throttling /fr/docs/Tools/Network_Monitor/Throttling +/fr/docs/Outils/Moniteur_réseau/recording /fr/docs/Tools/Network_Monitor/recording +/fr/docs/Outils/Moniteur_réseau/request_details /fr/docs/Tools/Network_Monitor/request_details +/fr/docs/Outils/Moniteur_réseau/request_list /fr/docs/Tools/Network_Monitor/request_list +/fr/docs/Outils/Moniteur_réseau/toolbar /fr/docs/Tools/Network_Monitor/toolbar +/fr/docs/Outils/Network_Monitor /fr/docs/Tools/Network_Monitor +/fr/docs/Outils/Outils_boite_à_outils /fr/docs/Tools/Tools_Toolbox +/fr/docs/Outils/Paint_Flashing_Tool /fr/docs/Tools/Paint_Flashing_Tool +/fr/docs/Outils/Performance /fr/docs/Tools/Performance +/fr/docs/Outils/Performance/Allocations /fr/docs/Tools/Performance/Allocations +/fr/docs/Outils/Performance/Call_Tree /fr/docs/Tools/Performance/Call_Tree +/fr/docs/Outils/Performance/Examples /fr/docs/Tools/Performance/Examples +/fr/docs/Outils/Performance/Examples/Sorting_algorithms_comparison /fr/docs/Tools/Performance/Examples/Sorting_algorithms_comparison +/fr/docs/Outils/Performance/Flame_Chart /fr/docs/Tools/Performance/Flame_Chart +/fr/docs/Outils/Performance/Frame_rate /fr/docs/Tools/Performance/Frame_rate +/fr/docs/Outils/Performance/How_to /fr/docs/Tools/Performance/How_to +/fr/docs/Outils/Performance/Scenarios /fr/docs/Tools/Performance/Scenarios +/fr/docs/Outils/Performance/Scenarios/Animating_CSS_properties /fr/docs/Tools/Performance/Scenarios/Animating_CSS_properties +/fr/docs/Outils/Performance/Scenarios/Intensive_JavaScript /fr/docs/Tools/Performance/Scenarios/Intensive_JavaScript +/fr/docs/Outils/Performance/UI_Tour /fr/docs/Tools/Performance/UI_Tour +/fr/docs/Outils/Performance/Waterfall /fr/docs/Tools/Performance/Waterfall +/fr/docs/Outils/Pipette_à_couleur /fr/docs/Tools/Eyedropper +/fr/docs/Outils/Raccourcis_claviers /fr/docs/Tools/Keyboard_shortcuts +/fr/docs/Outils/Release_notes /fr/docs/Mozilla/Firefox/Releases +/fr/docs/Outils/Remote_Debugging /fr/docs/Tools/Remote_Debugging +/fr/docs/Outils/Remote_Debugging/Chrome_Desktop /fr/docs/Tools/Remote_Debugging/Chrome_Desktop +/fr/docs/Outils/Responsive_Design_Mode_(before_Firefox_52) /fr/docs/conflicting/Tools/Responsive_Design_Mode +/fr/docs/Outils/Rulers /fr/docs/Tools/Rulers +/fr/docs/Outils/Settings /fr/docs/Tools/Settings +/fr/docs/Outils/Shader_Editor /fr/docs/Tools/Shader_Editor +/fr/docs/Outils/Style_Editor /fr/docs/Tools/Style_Editor +/fr/docs/Outils/Taking_screenshots /fr/docs/Tools/Taking_screenshots +/fr/docs/Outils/Timeline /fr/docs/conflicting/Tools/Performance/Waterfall +/fr/docs/Outils/Tips /fr/docs/Tools/Tips +/fr/docs/Outils/Travailler_avec_les_iframes /fr/docs/Tools/Working_with_iframes +/fr/docs/Outils/Validateurs /fr/docs/Tools/Validators +/fr/docs/Outils/View_source /fr/docs/Tools/View_source +/fr/docs/Outils/Vue_3D /fr/docs/Tools/3D_View +/fr/docs/Outils/Vue_adaptative /fr/docs/Tools/Responsive_Design_Mode +/fr/docs/Outils/Web_Audio_Editor /fr/docs/Tools/Web_Audio_Editor +/fr/docs/Outils/Web_Console /fr/docs/Tools/Web_Console +/fr/docs/Outils/Web_Console/Helpers /fr/docs/Tools/Web_Console/Helpers +/fr/docs/Outils/Working_with_iframes /fr/docs/Tools/Working_with_iframes +/fr/docs/Outils/about:debugging /fr/docs/Tools/about:debugging +/fr/docs/Outils/about:debugging/about:debugging_before_Firefox_68 /fr/docs/Tools/about:debugging/about:debugging_before_Firefox_68 +/fr/docs/Outils/inspecteur/HTML_panel /fr/docs/conflicting/Tools/Page_Inspector/UI_Tour +/fr/docs/Outils/inspecteur/Keyboard_shortcuts /fr/docs/Tools/Page_Inspector/Keyboard_shortcuts +/fr/docs/Outils/inspecteur/Raccourcis_clavier /fr/docs/Tools/Page_Inspector/Keyboard_shortcuts +/fr/docs/Outils/Éditeur_de_style /fr/docs/Tools/Style_Editor +/fr/docs/Outils:Validateurs /fr/docs/Tools/Validators /fr/docs/Participating_in_the_Mozilla_project /fr/docs/Mozilla/Participer_au_projet_Mozilla /fr/docs/Participer_au_projet_Mozilla /fr/docs/Mozilla/Participer_au_projet_Mozilla /fr/docs/Places/Conteneurs_personnalisés /fr/docs/Places @@ -2508,49 +3539,51 @@ /fr/docs/Précis_CSS_2/Tout_en_un /fr/docs/Web/CSS/Reference /fr/docs/Précis_CSS_2:Tout_en_un /fr/docs/Web/CSS/Reference /fr/docs/Qualité /fr/docs/QA -/fr/docs/Ressources_hors_ligne_dans_Firefox /fr/docs/Web/HTML/Utiliser_Application_Cache +/fr/docs/Ressources_hors_ligne_dans_Firefox /fr/docs/Web/HTML/Using_the_application_cache +/fr/docs/Référence_DOM_Gecko /fr/docs/conflicting/Glossary/DOM /fr/docs/Référence_de_JavaScript_1.5_Core /fr/docs/Web/JavaScript/Reference -/fr/docs/Référence_de_JavaScript_1.5_Core/A_propos_de_cette_reference /fr/docs/Web/JavaScript/Reference/A_propos -/fr/docs/Référence_de_JavaScript_1.5_Core/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Fonctions +/fr/docs/Référence_de_JavaScript_1.5_Core/A_propos_de_cette_reference /fr/docs/Web/JavaScript/Reference/About +/fr/docs/Référence_de_JavaScript_1.5_Core/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Functions /fr/docs/Référence_de_JavaScript_1.5_Core/Fonctions_et_portee_des_fonctions/Strict_mode /fr/docs/Web/JavaScript/Reference/Strict_mode -/fr/docs/Référence_de_JavaScript_1.5_Core/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/Référence_de_JavaScript_1.5_Core/Instructions/throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/valueOF -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substr -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Trim /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/Trim -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/indexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/indexOf -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/lastIndexOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/lastIndexOf -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split -/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/TypeError /fr/docs/Web/JavaScript/Reference/Objets_globaux/TypeError -/fr/docs/Référence_de_JavaScript_1.5_Core:Instructions:throw /fr/docs/Web/JavaScript/Reference/Instructions/throw -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux /fr/docs/Web/JavaScript/Reference/Objets_globaux -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:Date /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:Date:now /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String:replace /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace -/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String:split /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split +/fr/docs/Référence_de_JavaScript_1.5_Core/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/Référence_de_JavaScript_1.5_Core/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/Date/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/RegExp/Exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Match /fr/docs/Web/JavaScript/Reference/Global_Objects/String/match +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Substr /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substr +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/Trim /fr/docs/Web/JavaScript/Reference/Global_Objects/String/Trim +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split +/fr/docs/Référence_de_JavaScript_1.5_Core/Objets_globaux/TypeError /fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError +/fr/docs/Référence_de_JavaScript_1.5_Core:Instructions:throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:Date:now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String:replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/Référence_de_JavaScript_1.5_Core:Objets_globaux:String:split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split /fr/docs/Référence_du_DOM_Gecko /fr/docs/Web/API/Document_Object_Model -/fr/docs/Référence_du_DOM_Gecko/Exemples /fr/docs/Web/API/Document_Object_Model/Exemples +/fr/docs/Référence_du_DOM_Gecko/Exemples /fr/docs/Web/API/Document_Object_Model/Examples /fr/docs/Référence_du_DOM_Gecko/Introduction /fr/docs/Web/API/Document_Object_Model/Introduction /fr/docs/Référence_du_DOM_Gecko/Introduction_au_DOM /fr/docs/Web/API/Document_Object_Model/Introduction -/fr/docs/Référence_du_DOM_Gecko/Préface /fr/docs/Web/API/Document_Object_Model/Préface +/fr/docs/Référence_du_DOM_Gecko/Préface /fr/docs/conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3 /fr/docs/Référence_du_DOM_Gecko/document /fr/docs/Web/API/Document /fr/docs/Référence_du_DOM_Gecko/element /fr/docs/Web/API/Element /fr/docs/Référence_du_DOM_Gecko/window /fr/docs/Web/API/Window -/fr/docs/Référence_du_DOM_Gecko:Exemples /fr/docs/Web/API/Document_Object_Model/Exemples +/fr/docs/Référence_du_DOM_Gecko:Exemples /fr/docs/Web/API/Document_Object_Model/Examples /fr/docs/Référence_du_DOM_Gecko:Introduction /fr/docs/Web/API/Document_Object_Model/Introduction /fr/docs/Référence_du_DOM_Gecko:Introduction_au_DOM /fr/docs/Web/API/Document_Object_Model/Introduction -/fr/docs/Référence_du_DOM_Gecko:Préface /fr/docs/Web/API/Document_Object_Model/Préface +/fr/docs/Référence_du_DOM_Gecko:Préface /fr/docs/conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3 /fr/docs/Référence_du_DOM_Gecko:document /fr/docs/Web/API/Document /fr/docs/Référence_du_DOM_Gecko:element /fr/docs/Web/API/Element /fr/docs/Référence_du_DOM_Gecko:window /fr/docs/Web/API/Window +/fr/docs/SGML /fr/docs/Glossary/SGML /fr/docs/SVG /fr/docs/Web/SVG /fr/docs/SVG/Attribute /fr/docs/Web/SVG/Attribute /fr/docs/SVG/Attribute/cx /fr/docs/Web/SVG/Attribute/cx @@ -2563,129 +3596,140 @@ /fr/docs/SVG/Element/image /fr/docs/Web/SVG/Element/image /fr/docs/SVG/Element/path /fr/docs/Web/SVG/Element/path /fr/docs/SVG/Element/rect /fr/docs/Web/SVG/Element/rect -/fr/docs/SVG/Tutorial/Introduction /fr/docs/Web/SVG/Tutoriel/Introduction -/fr/docs/SVG/Tutoriel /fr/docs/Web/SVG/Tutoriel -/fr/docs/SVG/Tutoriel/Découpages_et_masquage /fr/docs/Web/SVG/Tutoriel/Découpages_et_masquages -/fr/docs/SVG/Tutoriel/Découpages_et_masquages /fr/docs/Web/SVG/Tutoriel/Découpages_et_masquages -/fr/docs/SVG/Tutoriel/Formes_de_base /fr/docs/Web/SVG/Tutoriel/Formes_de_base -/fr/docs/SVG/Tutoriel/Introduction /fr/docs/Web/SVG/Tutoriel/Introduction -/fr/docs/SVG/Tutoriel/Positionnement /fr/docs/Web/SVG/Tutoriel/Positionnement -/fr/docs/SVG/Tutoriel/Premiers_pas /fr/docs/Web/SVG/Tutoriel/Premiers_pas -/fr/docs/SVG/Tutoriel/Transformations_de_base /fr/docs/Web/SVG/Tutoriel/Transformations_de_base -/fr/docs/SVG/Tutoriel_SVG /fr/docs/Web/SVG/Tutoriel -/fr/docs/SVG/Tutoriel_SVG/Introduction /fr/docs/Web/SVG/Tutoriel/Introduction -/fr/docs/SVG/Tutoriel_SVG/Premiers_pas /fr/docs/Web/SVG/Tutoriel/Premiers_pas -/fr/docs/SVG:Tutoriel /fr/docs/Web/SVG/Tutoriel -/fr/docs/SVG:Tutoriel:Introduction /fr/docs/Web/SVG/Tutoriel/Introduction -/fr/docs/SVG:Tutoriel:Premiers_pas /fr/docs/Web/SVG/Tutoriel/Premiers_pas -/fr/docs/SVG_dans_Firefox_1.5 /fr/docs/SVG_dans_Firefox +/fr/docs/SVG/Tutorial/Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/SVG/Tutoriel /fr/docs/Web/SVG/Tutorial +/fr/docs/SVG/Tutoriel/Découpages_et_masquage /fr/docs/Web/SVG/Tutorial/Clipping_and_masking +/fr/docs/SVG/Tutoriel/Découpages_et_masquages /fr/docs/Web/SVG/Tutorial/Clipping_and_masking +/fr/docs/SVG/Tutoriel/Formes_de_base /fr/docs/Web/SVG/Tutorial/Basic_Shapes +/fr/docs/SVG/Tutoriel/Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/SVG/Tutoriel/Positionnement /fr/docs/Web/SVG/Tutorial/Positions +/fr/docs/SVG/Tutoriel/Premiers_pas /fr/docs/Web/SVG/Tutorial/Getting_Started +/fr/docs/SVG/Tutoriel/Transformations_de_base /fr/docs/Web/SVG/Tutorial/Basic_Transformations +/fr/docs/SVG/Tutoriel_SVG /fr/docs/Web/SVG/Tutorial +/fr/docs/SVG/Tutoriel_SVG/Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/SVG/Tutoriel_SVG/Premiers_pas /fr/docs/Web/SVG/Tutorial/Getting_Started +/fr/docs/SVG:Tutoriel /fr/docs/Web/SVG/Tutorial +/fr/docs/SVG:Tutoriel:Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/SVG:Tutoriel:Premiers_pas /fr/docs/Web/SVG/Tutorial/Getting_Started +/fr/docs/SVG_dans_Firefox /fr/docs/Web/SVG/SVG_1.1_Support_in_Firefox +/fr/docs/SVG_dans_Firefox_1.5 /fr/docs/Web/SVG/SVG_1.1_Support_in_Firefox /fr/docs/Server-sent_events /fr/docs/Web/API/Server-sent_events /fr/docs/Server-sent_events/Using_server-sent_events /fr/docs/Web/API/Server-sent_events/Using_server-sent_events /fr/docs/Services_Web_XML:Accéder_à_des_services_web_avec_Mozilla_en_utilisant_un_proxy_WSDL /fr/docs/Services_Web_XML/Accéder_à_des_services_web_avec_Mozilla_en_utilisant_un_proxy_WSDL /fr/docs/Setting_HTTP_request_headers /fr/docs/XPCOM/Setting_HTTP_request_headers /fr/docs/Stockage /fr/docs/Storage -/fr/docs/Tools /fr/docs/Outils -/fr/docs/Tools/Debugger/How_to /fr/docs/Outils/Débogueur/Comment -/fr/docs/Tools/Debugger/How_to/Access_debugging_in_add-ons /fr/docs/Outils/Débogueur/Comment/Accéder_au_débogage_depuis_un_module_complàmentaire -/fr/docs/Tools/Debugger/How_to/Black_box_a_source /fr/docs/Outils/Débogueur/Comment/Mettre_une_source_dans_une_boîte_noire -/fr/docs/Tools/Debugger/How_to/Break_on_a_DOM_event /fr/docs/Outils/Débogueur/Comment/S_arrêter_sur_un_évènement_DOM -/fr/docs/Tools/Debugger/How_to/Debug_eval_sources /fr/docs/Outils/Débogueur/Comment/Déboguer_des_sources_évaluées -/fr/docs/Tools/Debugger/How_to/Disable_breakpoints /fr/docs/Outils/Débogueur/Comment/Désactiver_des_points_d_arrêts -/fr/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables /fr/docs/Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables -/fr/docs/Tools/Debugger/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/Outils/Débogueur/Comment/Afficher_en_surbrillance_et_inspecter_le_DOM -/fr/docs/Tools/Debugger/How_to/Open_the_debugger /fr/docs/Outils/Débogueur/Comment/Ouvrir_le_débogueur -/fr/docs/Tools/Debugger/How_to/Pretty-print_a_minified_file /fr/docs/Outils/Débogueur/Comment/Formater_et_indenter_un_fichier_minifié -/fr/docs/Tools/Debugger/How_to/Set_a_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt -/fr/docs/Tools/Debugger/How_to/Set_a_conditional_breakpoint /fr/docs/Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt_conditionnel -/fr/docs/Tools/Debugger/How_to/Step_through_code /fr/docs/Outils/Débogueur/Comment/Parcourir_le_code -/fr/docs/Tools/Debugger/How_to/Use_a_source_map /fr/docs/Outils/Débogueur/Comment/Utiliser_une_source_map -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Black_box_a_source -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Open_the_debugger -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Search_and_filter -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Step_through_code -/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map /fr/docs/Outils/Debugger_(before_Firefox_52)/How_to/Use_a_source_map -/fr/docs/Tools/Page_Inspector/How_to /fr/docs/Outils/Inspecteur/Comment -/fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS /fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_CSS -/fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML /fr/docs/Outils/Inspecteur/Comment/Examiner_et_éditer_le_code_HTML -/fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model /fr/docs/Outils/Inspecteur/Comment/Examiner_et_modifier_le_modèle_de_boîte -/fr/docs/Tools/Page_Inspector/How_to/Examine_event_listeners /fr/docs/Outils/Inspecteur/Comment/Examiner_les_écouteurs_d_évènements -/fr/docs/Tools/Page_Inspector/How_to/Examiner_et_éditer_le_code_HTML /fr/docs/Outils/Inspecteur/Comment/Examiner_et_éditer_le_code_HTML -/fr/docs/Tools/Page_Inspector/How_to/Inspect_and_select_colors /fr/docs/Outils/Inspecteur/Comment/Inspecter_et_sélectionner_des_couleurs -/fr/docs/Tools/Page_Inspector/How_to/Open_the_Inspector /fr/docs/Outils/Inspecteur/Comment/Ouvrir_l_Inspecteur -/fr/docs/Tools/Page_Inspector/How_to/Select_an_element /fr/docs/Outils/Inspecteur/Comment/Sélectionner_un_élément -/fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_API /fr/docs/Outils/Inspecteur/Comment/Utiliser_l_API_de_l_Inspecteur -/fr/docs/Tools/Page_Inspector/How_to/Use_the_Inspector_from_the_Web_Console /fr/docs/Outils/Inspecteur/Comment/Utiliser_l_Inspecteur_depuis_la_Console_Web -/fr/docs/Tools/Page_Inspector/How_to/View_background_images /fr/docs/Outils/Inspecteur/Comment/Prévisualiser_des_images_de_fond -/fr/docs/Tools/Page_Inspector/How_to/Visualize_transforms /fr/docs/Outils/Inspecteur/Comment/Visualiser_les_transformations -/fr/docs/Transformations_XML_avec_XSLT /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT -/fr/docs/Transformations_XML_avec_XSLT/Autres_ressources /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Autres_ressources -/fr/docs/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape -/fr/docs/Transformations_XML_avec_XSLT/Présentation /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Présentation -/fr/docs/Transformations_XML_avec_XSLT:Autres_ressources /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Autres_ressources -/fr/docs/Transformations_XML_avec_XSLT:La_référence_XSLT_XPath_de_Netscape /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape -/fr/docs/Transformations_XML_avec_XSLT:Présentation /fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Présentation -/fr/docs/Tutoriel_canvas /fr/docs/Web/API/Canvas_API/Tutoriel_canvas -/fr/docs/Tutoriel_canvas/Advanced_animations /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Advanced_animations -/fr/docs/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs -/fr/docs/Tutoriel_canvas/Animations_basiques /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques -/fr/docs/Tutoriel_canvas/Composition /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Composition -/fr/docs/Tutoriel_canvas/Composition/Example /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Composition/Example -/fr/docs/Tutoriel_canvas/Formes_géométriques /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques -/fr/docs/Tutoriel_canvas/Hit_regions_and_accessibility /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Hit_regions_and_accessibility -/fr/docs/Tutoriel_canvas/Optimizing_canvas /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Optimizing_canvas -/fr/docs/Tutoriel_canvas/Pixel_manipulation_with_canvas /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Pixel_manipulation_with_canvas -/fr/docs/Tutoriel_canvas/Transformations /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Transformations -/fr/docs/Tutoriel_canvas/Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images -/fr/docs/Tutoriel_canvas/Utilisation_de_base /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base -/fr/docs/Tutoriel_canvas:Ajout_de_styles_et_de_couleurs /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs -/fr/docs/Tutoriel_canvas:Animations_basiques /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques -/fr/docs/Tutoriel_canvas:Formes_géométriques /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques -/fr/docs/Tutoriel_canvas:Transformations /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Transformations -/fr/docs/Tutoriel_canvas:Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images -/fr/docs/Tutoriel_canvas:Utilisation_de_base /fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base -/fr/docs/Une_réintroduction_à_JavaScript /fr/docs/Web/JavaScript/Une_réintroduction_à_JavaScript +/fr/docs/Tools/Debugger/How_to/Black_box_a_source /fr/docs/Tools/Debugger/How_to/Ignore_a_source +/fr/docs/Tools/Debugger/How_to/Break_on_a_DOM_event /fr/docs/Tools/Debugger/Break_on_DOM_mutation +/fr/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables /fr/docs/conflicting/Tools/Debugger/How_to/Set_Watch_Expressions +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code +/fr/docs/Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map /fr/docs/orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map +/fr/docs/Tools/Page_Inspector/How_to/Examiner_et_éditer_le_code_HTML /fr/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML +/fr/docs/Transformations_XML_avec_XSLT /fr/docs/Web/XSLT/Transforming_XML_with_XSLT +/fr/docs/Transformations_XML_avec_XSLT/Autres_ressources /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading +/fr/docs/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference +/fr/docs/Transformations_XML_avec_XSLT/Présentation /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/An_Overview +/fr/docs/Transformations_XML_avec_XSLT:Autres_ressources /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading +/fr/docs/Transformations_XML_avec_XSLT:La_référence_XSLT_XPath_de_Netscape /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference +/fr/docs/Transformations_XML_avec_XSLT:Présentation /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/An_Overview +/fr/docs/Tutoriel_canvas /fr/docs/Web/API/Canvas_API/Tutorial +/fr/docs/Tutoriel_canvas/Advanced_animations /fr/docs/Web/API/Canvas_API/Tutorial/Advanced_animations +/fr/docs/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs /fr/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +/fr/docs/Tutoriel_canvas/Animations_basiques /fr/docs/Web/API/Canvas_API/Tutorial/Basic_animations +/fr/docs/Tutoriel_canvas/Composition /fr/docs/Web/API/Canvas_API/Tutorial/Compositing +/fr/docs/Tutoriel_canvas/Composition/Example /fr/docs/Web/API/Canvas_API/Tutorial/Compositing/Example +/fr/docs/Tutoriel_canvas/Formes_géométriques /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes +/fr/docs/Tutoriel_canvas/Hit_regions_and_accessibility /fr/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility +/fr/docs/Tutoriel_canvas/Optimizing_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Optimizing_canvas +/fr/docs/Tutoriel_canvas/Pixel_manipulation_with_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas +/fr/docs/Tutoriel_canvas/Transformations /fr/docs/Web/API/Canvas_API/Tutorial/Transformations +/fr/docs/Tutoriel_canvas/Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutorial/Using_images +/fr/docs/Tutoriel_canvas/Utilisation_de_base /fr/docs/Web/API/Canvas_API/Tutorial/Basic_usage +/fr/docs/Tutoriel_canvas:Ajout_de_styles_et_de_couleurs /fr/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +/fr/docs/Tutoriel_canvas:Animations_basiques /fr/docs/Web/API/Canvas_API/Tutorial/Basic_animations +/fr/docs/Tutoriel_canvas:Formes_géométriques /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes +/fr/docs/Tutoriel_canvas:Transformations /fr/docs/Web/API/Canvas_API/Tutorial/Transformations +/fr/docs/Tutoriel_canvas:Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutorial/Using_images +/fr/docs/Tutoriel_canvas:Utilisation_de_base /fr/docs/Web/API/Canvas_API/Tutorial/Basic_usage +/fr/docs/Type_MIME_incorrect_pour_les_fichiers_CSS /fr/docs/conflicting/Web/HTTP/Basics_of_HTTP/MIME_types +/fr/docs/Un_raycaster_basique_avec_canvas /fr/docs/Web/API/Canvas_API/A_basic_ray-caster +/fr/docs/Une_réintroduction_à_JavaScript /fr/docs/Web/JavaScript/A_re-introduction_to_JavaScript /fr/docs/Using_files_from_web_applications /fr/docs/Web/API/File/Using_files_from_web_applications /fr/docs/Using_geolocation /fr/docs/Web/API/Geolocation_API -/fr/docs/Utilisation_d'URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor -/fr/docs/Utilisation_d'audio_et_video_dans_Firefox /fr/docs/Web/HTML/Utilisation_d'audio_et_video_en_HTML5 -/fr/docs/Utilisation_de_dégradés /fr/docs/Web/CSS/Utilisation_de_dégradés_CSS -/fr/docs/Utilisation_de_dégradés_(gradients) /fr/docs/Web/CSS/Utilisation_de_dégradés_CSS -/fr/docs/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL /fr/docs/Web/XSLT/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL +/fr/docs/Utilisation_d'URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +/fr/docs/Utilisation_d'audio_et_video_dans_Firefox /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf +/fr/docs/Utilisation_de_XPath /fr/docs/conflicting/Web/XPath/Introduction_to_using_XPath_in_JavaScript +/fr/docs/Utilisation_de_dégradés /fr/docs/Web/CSS/CSS_Images/Using_CSS_gradients +/fr/docs/Utilisation_de_dégradés_(gradients) /fr/docs/Web/CSS/CSS_Images/Using_CSS_gradients +/fr/docs/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL /fr/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations /fr/docs/Utilisation_de_la_géolocalisation /fr/docs/Web/API/Geolocation_API -/fr/docs/Utilisation_des_web_workers /fr/docs/Web/API/Web_Workers_API/Utilisation_des_web_workers -/fr/docs/Utilisation_du_DOM_Level_1_Core_du_W3C /fr/docs/Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C -/fr/docs/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple /fr/docs/Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple -/fr/docs/Utilisation_du_cache_dans_Firefox_1.5 /fr/docs/Utilisation_du_cache_de_Firefox_1.5 -/fr/docs/Utiliser_Application_Cache /fr/docs/Web/HTML/Utiliser_Application_Cache +/fr/docs/Utilisation_des_web_workers /fr/docs/Web/API/Web_Workers_API/Using_web_workers +/fr/docs/Utilisation_du_DOM_Level_1_Core_du_W3C /fr/docs/Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core +/fr/docs/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple /fr/docs/Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core/Example +/fr/docs/Utilisation_du_cache_dans_Firefox_1.5 /fr/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching +/fr/docs/Utilisation_du_cache_de_Firefox_1.5 /fr/docs/Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching +/fr/docs/Utiliser_Application_Cache /fr/docs/Web/HTML/Using_the_application_cache +/fr/docs/Web/API/API_HTML_Drag_and_Drop /fr/docs/Web/API/HTML_Drag_and_Drop_API +/fr/docs/Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement /fr/docs/Web/API/HTML_Drag_and_Drop_API/Drag_operations +/fr/docs/Web/API/API_IndexedDB /fr/docs/Web/API/IndexedDB_API +/fr/docs/Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB /fr/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB +/fr/docs/Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria /fr/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria +/fr/docs/Web/API/API_IndexedDB/Using_IndexedDB /fr/docs/Web/API/IndexedDB_API/Using_IndexedDB +/fr/docs/Web/API/API_fichier_systeme /fr/docs/Web/API/File_and_Directory_Entries_API /fr/docs/Web/API/AbstractWorker.onerror /fr/docs/Web/API/AbstractWorker/onerror +/fr/docs/Web/API/AnimationEffectTimingProperties /fr/docs/Web/API/EffectTiming +/fr/docs/Web/API/AnimationEffectTimingProperties/delay /fr/docs/Web/API/EffectTiming/delay /fr/docs/Web/API/AnimationEvent.animationName /fr/docs/Web/API/AnimationEvent/animationName /fr/docs/Web/API/AnimationEvent.elapsedTime /fr/docs/Web/API/AnimationEvent/elapsedTime /fr/docs/Web/API/AnimationEvent.pseudoElement /fr/docs/Web/API/AnimationEvent/pseudoElement /fr/docs/Web/API/Apps.mgmt.getAll /fr/docs/Web/API/DomApplicationsManager/getAll +/fr/docs/Web/API/AudioContext/createGain /fr/docs/Web/API/BaseAudioContext/createGain +/fr/docs/Web/API/CSSMatrix /fr/docs/Web/API/DOMMatrix +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas /fr/docs/Web/API/Canvas_API/Tutorial +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Advanced_animations /fr/docs/Web/API/Canvas_API/Tutorial/Advanced_animations +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs /fr/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques /fr/docs/Web/API/Canvas_API/Tutorial/Basic_animations +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Composition /fr/docs/Web/API/Canvas_API/Tutorial/Compositing +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Composition/Example /fr/docs/Web/API/Canvas_API/Tutorial/Compositing/Example +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_text +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques /fr/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Hit_regions_and_accessibility /fr/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Optimizing_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Optimizing_canvas +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Pixel_manipulation_with_canvas /fr/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Transformations /fr/docs/Web/API/Canvas_API/Tutorial/Transformations +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images /fr/docs/Web/API/Canvas_API/Tutorial/Using_images +/fr/docs/Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base /fr/docs/Web/API/Canvas_API/Tutorial/Basic_usage /fr/docs/Web/API/Commentaire /fr/docs/Web/API/Comment /fr/docs/Web/API/Commentaire/Comment /fr/docs/Web/API/Comment/Comment /fr/docs/Web/API/Console.table /fr/docs/Web/API/Console/table /fr/docs/Web/API/Console/erreur /fr/docs/Web/API/Console/error /fr/docs/Web/API/Coordinates /fr/docs/Web/API/GeolocationCoordinates /fr/docs/Web/API/DOMTokenList/DOMTokenList.add() /fr/docs/Web/API/DOMTokenList/add -/fr/docs/Web/API/Document.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/Web/API/DeviceOrientationEvent.absolute /fr/docs/Web/API/DeviceOrientationEvent/absolute +/fr/docs/Web/API/DeviceRotationRate /fr/docs/Web/API/DeviceMotionEventRotationRate +/fr/docs/Web/API/DeviceRotationRate/alpha /fr/docs/Web/API/DeviceMotionEventRotationRate/alpha +/fr/docs/Web/API/DeviceRotationRate/beta /fr/docs/Web/API/DeviceMotionEventRotationRate/beta +/fr/docs/Web/API/DeviceRotationRate/gamma /fr/docs/Web/API/DeviceMotionEventRotationRate/gamma +/fr/docs/Web/API/Document.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/Web/API/Document.body /fr/docs/Web/API/Document/body /fr/docs/Web/API/Document.createAttribute /fr/docs/Web/API/Document/createAttribute /fr/docs/Web/API/Document.createElement /fr/docs/Web/API/Document/createElement /fr/docs/Web/API/Document.createTextNode /fr/docs/Web/API/Document/createTextNode /fr/docs/Web/API/Document.documentElement /fr/docs/Web/API/Document/documentElement /fr/docs/Web/API/Document.documentURIObject /fr/docs/Web/API/Document/documentURIObject -/fr/docs/Web/API/Document.elementFromPoint /fr/docs/Web/API/Document/elementFromPoint +/fr/docs/Web/API/Document.elementFromPoint /fr/docs/Web/API/DocumentOrShadowRoot/elementFromPoint /fr/docs/Web/API/Document.evaluate /fr/docs/Web/API/Document/evaluate /fr/docs/Web/API/Document.execCommand /fr/docs/Web/API/Document/execCommand /fr/docs/Web/API/Document.firstChild /fr/docs/Web/API/Node/firstChild @@ -2699,18 +3743,30 @@ /fr/docs/Web/API/Document.importNode /fr/docs/Web/API/Document/importNode /fr/docs/Web/API/Document.open /fr/docs/Web/API/Document/open /fr/docs/Web/API/Document.write /fr/docs/Web/API/Document/write +/fr/docs/Web/API/Document/Document.anchors /fr/docs/Web/API/Document/anchors +/fr/docs/Web/API/Document/activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/Web/API/Document/async /fr/docs/Web/API/XMLDocument/async /fr/docs/Web/API/Document/defaultView/popstate_event /fr/docs/Web/API/Window/popstate_event /fr/docs/Web/API/Document/defaultView/storage_event /fr/docs/Web/API/Window/storage_event /fr/docs/Web/API/Document/domConfig /fr/docs/Web/API/Document +/fr/docs/Web/API/Document/elementFromPoint /fr/docs/Web/API/DocumentOrShadowRoot/elementFromPoint +/fr/docs/Web/API/Document/getSelection /fr/docs/Web/API/DocumentOrShadowRoot/getSelection +/fr/docs/Web/API/Document/styleSheets /fr/docs/Web/API/DocumentOrShadowRoot/styleSheets +/fr/docs/Web/API/Document_Object_Model/Exemples /fr/docs/Web/API/Document_Object_Model/Examples /fr/docs/Web/API/Document_Object_Model/Introduction_au_DOM /fr/docs/Web/API/Document_Object_Model/Introduction +/fr/docs/Web/API/Document_Object_Model/Les_évènements_et_le_DOM /fr/docs/Web/API/Document_Object_Model/Events +/fr/docs/Web/API/Document_Object_Model/Localisation_des_éléments_DOM_avec_les_sélecteurs /fr/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors +/fr/docs/Web/API/Document_Object_Model/Préface /fr/docs/conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3 /fr/docs/Web/API/Document_Object_Model/document /fr/docs/Web/API/Document /fr/docs/Web/API/Document_Object_Model/element /fr/docs/Web/API/Element /fr/docs/Web/API/Document_Object_Model/window /fr/docs/Web/API/Window -/fr/docs/Web/API/Element.activeElement /fr/docs/Web/API/Document/activeElement +/fr/docs/Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C /fr/docs/Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core +/fr/docs/Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple /fr/docs/Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core/Example +/fr/docs/Web/API/Element.activeElement /fr/docs/Web/API/DocumentOrShadowRoot/activeElement /fr/docs/Web/API/Element.addEventListener /fr/docs/Web/API/EventTarget/addEventListener /fr/docs/Web/API/Element.appendChild /fr/docs/Web/API/Node/appendChild /fr/docs/Web/API/Element.attributes /fr/docs/Web/API/Element/attributes +/fr/docs/Web/API/Element.blur /fr/docs/Web/API/HTMLOrForeignElement/blur /fr/docs/Web/API/Element.childNodes /fr/docs/Web/API/Node/childNodes /fr/docs/Web/API/Element.classList /fr/docs/Web/API/Element/classList /fr/docs/Web/API/Element.className /fr/docs/Web/API/Element/className @@ -2721,7 +3777,7 @@ /fr/docs/Web/API/Element.cloneNode /fr/docs/Web/API/Node/cloneNode /fr/docs/Web/API/Element.dir /fr/docs/Web/API/HTMLElement/dir /fr/docs/Web/API/Element.firstElementChild /fr/docs/Web/API/ParentNode/firstElementChild -/fr/docs/Web/API/Element.focus /fr/docs/Web/API/HTMLElement/focus +/fr/docs/Web/API/Element.focus /fr/docs/Web/API/HTMLOrForeignElement/focus /fr/docs/Web/API/Element.getAttribute /fr/docs/Web/API/Element/getAttribute /fr/docs/Web/API/Element.getAttributeNS /fr/docs/Web/API/Element/getAttributeNS /fr/docs/Web/API/Element.getAttributeNode /fr/docs/Web/API/Element/getAttributeNode @@ -2735,14 +3791,14 @@ /fr/docs/Web/API/Element.hasChildNodes /fr/docs/Web/API/Node/hasChildNodes /fr/docs/Web/API/Element.hasFocus /fr/docs/Web/API/Document/hasFocus /fr/docs/Web/API/Element.id /fr/docs/Web/API/Element/id -/fr/docs/Web/API/Element.innertHTML /fr/docs/Web/API/Element/innertHTML +/fr/docs/Web/API/Element.innertHTML /fr/docs/Web/API/Element/innerHTML /fr/docs/Web/API/Element.insertAdjacentHTML /fr/docs/Web/API/Element/insertAdjacentHTML /fr/docs/Web/API/Element.insertBefore /fr/docs/Web/API/Node/insertBefore /fr/docs/Web/API/Element.isSupported /fr/docs/Web/API/Node/isSupported /fr/docs/Web/API/Element.lang /fr/docs/Web/API/HTMLElement/lang /fr/docs/Web/API/Element.lastChild /fr/docs/Web/API/Node/lastChild /fr/docs/Web/API/Element.localName /fr/docs/Web/API/Node/localName -/fr/docs/Web/API/Element.name /fr/docs/Web/API/Element/name +/fr/docs/Web/API/Element.name /fr/docs/conflicting/Web/API /fr/docs/Web/API/Element.namespaceURI /fr/docs/Web/API/Node/namespaceURI /fr/docs/Web/API/Element.nodeName /fr/docs/Web/API/Node/nodeName /fr/docs/Web/API/Element.nodeType /fr/docs/Web/API/Node/nodeType @@ -2787,50 +3843,104 @@ /fr/docs/Web/API/Element.setAttributeNS /fr/docs/Web/API/Element/setAttributeNS /fr/docs/Web/API/Element.setAttributeNode /fr/docs/Web/API/Element/setAttributeNode /fr/docs/Web/API/Element.setAttributeNodeNS /fr/docs/Web/API/Element/setAttributeNodeNS -/fr/docs/Web/API/Element.style /fr/docs/Web/API/HTMLElement/style +/fr/docs/Web/API/Element.style /fr/docs/Web/API/ElementCSSInlineStyle/style /fr/docs/Web/API/Element.tagName /fr/docs/Web/API/Element/tagName /fr/docs/Web/API/Element.textContent /fr/docs/Web/API/Node/textContent +/fr/docs/Web/API/Element/accessKey /fr/docs/Web/API/HTMLElement/accessKey +/fr/docs/Web/API/Element/innertHTML /fr/docs/Web/API/Element/innerHTML +/fr/docs/Web/API/Element/name /fr/docs/conflicting/Web/API /fr/docs/Web/API/Element/ongotpointercapture /fr/docs/Web/API/GlobalEventHandlers/ongotpointercapture +/fr/docs/Web/API/Element/onwheel /fr/docs/Web/API/GlobalEventHandlers/onwheel /fr/docs/Web/API/Element/removeChild /fr/docs/Web/API/Node/removeChild +/fr/docs/Web/API/Entity /fr/docs/orphaned/Web/API/Entity +/fr/docs/Web/API/EntityReference /fr/docs/orphaned/Web/API/EntityReference /fr/docs/Web/API/Event.initEvent /fr/docs/Web/API/Event/initEvent /fr/docs/Web/API/Event.stopPropagation /fr/docs/Web/API/Event/stopPropagation +/fr/docs/Web/API/Event/Comparaison_des_cibles_d_évènements /fr/docs/Web/API/Event/Comparison_of_Event_Targets +/fr/docs/Web/API/Event/createEvent /fr/docs/conflicting/Web/API/Document/createEvent /fr/docs/Web/API/EventTarget/attachEvent /fr/docs/Web/API/EventTarget/addEventListener /fr/docs/Web/API/EventTarget/detachEvent /fr/docs/Web/API/EventTarget/removeEventListener /fr/docs/Web/API/EventTarget/fireEvent /fr/docs/Web/API/EventTarget/dispatchEvent /fr/docs/Web/API/FileList/FileList /fr/docs/Web/API/FileList /fr/docs/Web/API/FileReader/FileList /fr/docs/Web/API/FileList +/fr/docs/Web/API/FormData/Utilisation_objets_FormData /fr/docs/Web/API/FormData/Using_FormData_Objects /fr/docs/Web/API/GlobalFetch /fr/docs/Web/API/WindowOrWorkerGlobalScope /fr/docs/Web/API/GlobalFetch/fetch /fr/docs/Web/API/WindowOrWorkerGlobalScope/fetch +/fr/docs/Web/API/HTMLElement/dataset /fr/docs/Web/API/HTMLOrForeignElement/dataset +/fr/docs/Web/API/HTMLElement/focus /fr/docs/Web/API/HTMLOrForeignElement/focus +/fr/docs/Web/API/HTMLElement/style /fr/docs/Web/API/ElementCSSInlineStyle/style +/fr/docs/Web/API/HTMLElement/tabIndex /fr/docs/Web/API/HTMLOrForeignElement/tabIndex +/fr/docs/Web/API/HTMLFormElement/submit_event_ /fr/docs/Web/API/HTMLFormElement/submit_event /fr/docs/Web/API/HTMLTableElement.caption /fr/docs/Web/API/HTMLTableElement/caption /fr/docs/Web/API/HTMLTableElement.insertRow /fr/docs/Web/API/HTMLTableElement/insertRow /fr/docs/Web/API/IDBEnvironment/indexedDB /fr/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB +/fr/docs/Web/API/IDBRequest/blocked_event /fr/docs/Web/API/IDBOpenDBRequest/blocked_event /fr/docs/Web/API/Location.assign /fr/docs/Web/API/Location/assign /fr/docs/Web/API/Location.reload /fr/docs/Web/API/Location/reload /fr/docs/Web/API/Location.replace /fr/docs/Web/API/Location/replace /fr/docs/Web/API/MediaDevices/mediaDevices.getUserMedia /fr/docs/Web/API/MediaDevices/getUserMedia +/fr/docs/Web/API/NameList /fr/docs/orphaned/Web/API/NameList /fr/docs/Web/API/Navigator.getGamepads /fr/docs/Web/API/Navigator/getGamepads /fr/docs/Web/API/Navigator.isLocallyAvailable /fr/docs/Web/API/Navigator/mozIsLocallyAvailable /fr/docs/Web/API/Navigator.onLine /fr/docs/Web/API/NavigatorOnLine/onLine /fr/docs/Web/API/Navigator.registerProtocolHandler /fr/docs/Web/API/Navigator/registerProtocolHandler +/fr/docs/Web/API/NavigatorOnLine/Évènements_online_et_offline /fr/docs/Web/API/NavigatorOnLine/Online_and_offline_events /fr/docs/Web/API/Node.contains /fr/docs/Web/API/Node/contains +/fr/docs/Web/API/Node/baseURIObject /fr/docs/conflicting/Web/API/Node +/fr/docs/Web/API/Node/innerText /fr/docs/Web/API/HTMLElement/innerText +/fr/docs/Web/API/Node/nodePrincipal /fr/docs/conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556 +/fr/docs/Web/API/Node/rootNode /fr/docs/conflicting/Web/API/Node/getRootNode /fr/docs/Web/API/Performance.now() /fr/docs/Web/API/Performance/now -/fr/docs/Web/API/RandomSource.getRandomValues /fr/docs/Web/API/RandomSource/getRandomValues +/fr/docs/Web/API/Pointer_events/gestes_pincer_zoom /fr/docs/Web/API/Pointer_events/Pinch_zoom_gestures +/fr/docs/Web/API/RandomSource.getRandomValues /fr/docs/Web/API/Crypto/getRandomValues +/fr/docs/Web/API/RandomSource/getRandomValues /fr/docs/Web/API/Crypto/getRandomValues /fr/docs/Web/API/Référence_du_DOM_Gecko /fr/docs/Web/API/Document_Object_Model -/fr/docs/Web/API/Référence_du_DOM_Gecko/Exemples /fr/docs/Web/API/Document_Object_Model/Exemples +/fr/docs/Web/API/Référence_du_DOM_Gecko/Exemples /fr/docs/Web/API/Document_Object_Model/Examples /fr/docs/Web/API/Référence_du_DOM_Gecko/Introduction /fr/docs/Web/API/Document_Object_Model/Introduction /fr/docs/Web/API/Référence_du_DOM_Gecko/Introduction_au_DOM /fr/docs/Web/API/Document_Object_Model/Introduction -/fr/docs/Web/API/Référence_du_DOM_Gecko/Préface /fr/docs/Web/API/Document_Object_Model/Préface +/fr/docs/Web/API/Référence_du_DOM_Gecko/Préface /fr/docs/conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3 /fr/docs/Web/API/Référence_du_DOM_Gecko/document /fr/docs/Web/API/Document /fr/docs/Web/API/Référence_du_DOM_Gecko/element /fr/docs/Web/API/Element /fr/docs/Web/API/Référence_du_DOM_Gecko/window /fr/docs/Web/API/Window /fr/docs/Web/API/Selection.toString /fr/docs/Web/API/Selection/toString +/fr/docs/Web/API/Selection_API /fr/docs/conflicting/Web/API/Selection +/fr/docs/Web/API/Storage/LocalStorage /fr/docs/conflicting/Web/API/Window/localStorage /fr/docs/Web/API/URL.createObjectURL /fr/docs/Web/API/URL/createObjectURL -/fr/docs/Web/API/WebGL_API/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -/fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL +/fr/docs/Web/API/URLUtils /fr/docs/Web/API/HTMLHyperlinkElementUtils +/fr/docs/Web/API/WebGLRenderingContext/activer /fr/docs/Web/API/WebGLRenderingContext/enable +/fr/docs/Web/API/WebGLRenderingContext/canevas /fr/docs/Web/API/WebGLRenderingContext/canvas +/fr/docs/Web/API/WebGL_API/By_example/Appliquer_des_couleurs /fr/docs/Web/API/WebGL_API/By_example/Clearing_with_colors +/fr/docs/Web/API/WebGL_API/By_example/Appliquer_des_découpes_simples /fr/docs/Web/API/WebGL_API/By_example/Basic_scissoring +/fr/docs/Web/API/WebGL_API/By_example/Appliquer_une_couleur_à_la_souris /fr/docs/Web/API/WebGL_API/By_example/Clearing_by_clicking +/fr/docs/Web/API/WebGL_API/By_example/Créer_une_animation_avec_découpe_et_applique /fr/docs/Web/API/WebGL_API/By_example/Scissor_animation +/fr/docs/Web/API/WebGL_API/By_example/Créer_une_animation_colorée /fr/docs/Web/API/WebGL_API/By_example/Simple_color_animation +/fr/docs/Web/API/WebGL_API/By_example/Détecter_WebGL /fr/docs/Web/API/WebGL_API/By_example/Detect_WebGL +/fr/docs/Web/API/WebGL_API/By_example/Générer_des_textures_avec_du_code /fr/docs/Web/API/WebGL_API/By_example/Textures_from_code +/fr/docs/Web/API/WebGL_API/By_example/Introduction_aux_attributs_vertex /fr/docs/Web/API/WebGL_API/By_example/Hello_vertex_attributes +/fr/docs/Web/API/WebGL_API/By_example/Les_textures_vidéos /fr/docs/Web/API/WebGL_API/By_example/Video_textures +/fr/docs/Web/API/WebGL_API/By_example/Masque_de_couleur /fr/docs/Web/API/WebGL_API/By_example/Color_masking +/fr/docs/Web/API/WebGL_API/By_example/Modèle_1 /fr/docs/Web/API/WebGL_API/By_example/Boilerplate_1 +/fr/docs/Web/API/WebGL_API/By_example/Tailles_de_canvas_et_WebGL /fr/docs/Web/API/WebGL_API/By_example/Canvas_size_and_WebGL +/fr/docs/Web/API/WebGL_API/By_example/Une_pluie_de_rectangle /fr/docs/Web/API/WebGL_API/By_example/Raining_rectangles +/fr/docs/Web/API/WebGL_API/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/Web/API/WebGL_API/Données /fr/docs/Web/API/WebGL_API/Data +/fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders /fr/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/Web/API/WebGL_API/Tutorial/Animation_de_textures_en_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/Web/API/WebGL_API/Tutorial/Creer_des_objets_3D_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Eclairage_en_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Lighting_in_WebGL +/fr/docs/Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL +/fr/docs/Web/API/WebVR_API/Utiliser_des_contrôleurs_de_realite_virtuelle_pour_du_WebVR /fr/docs/Web/API/WebVR_API/Using_VR_controllers_with_WebVR +/fr/docs/Web/API/Web_Workers_API/Advanced_concepts_and_examples /fr/docs/conflicting/Web/API/Web_Workers_API/Using_web_workers +/fr/docs/Web/API/Web_Workers_API/Utilisation_des_web_workers /fr/docs/Web/API/Web_Workers_API/Using_web_workers +/fr/docs/Web/API/Web_Workers_API/algorithme_clonage_structure /fr/docs/Web/API/Web_Workers_API/Structured_clone_algorithm /fr/docs/Web/API/Window.alert /fr/docs/Web/API/Window/alert -/fr/docs/Web/API/Window.atob /fr/docs/Web/API/WindowBase64/atob -/fr/docs/Web/API/Window.btoa /fr/docs/Web/API/WindowBase64/btoa -/fr/docs/Web/API/Window.clearInterval /fr/docs/Web/API/WindowTimers/clearInterval +/fr/docs/Web/API/Window.atob /fr/docs/Web/API/WindowOrWorkerGlobalScope/atob +/fr/docs/Web/API/Window.btoa /fr/docs/Web/API/WindowOrWorkerGlobalScope/btoa +/fr/docs/Web/API/Window.clearInterval /fr/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /fr/docs/Web/API/Window.close /fr/docs/Web/API/Window/close /fr/docs/Web/API/Window.closed /fr/docs/Web/API/Window/closed /fr/docs/Web/API/Window.confirm /fr/docs/Web/API/Window/confirm @@ -2848,7 +3958,7 @@ /fr/docs/Web/API/Window.onbeforeunload /fr/docs/Web/API/WindowEventHandlers/onbeforeunload /fr/docs/Web/API/Window.onload /fr/docs/Web/API/GlobalEventHandlers/onload /fr/docs/Web/API/Window.onpopstate /fr/docs/Web/API/WindowEventHandlers/onpopstate -/fr/docs/Web/API/Window.onresize /fr/docs/Web/API/Window/onresize +/fr/docs/Web/API/Window.onresize /fr/docs/conflicting/Web/API/GlobalEventHandlers/onresize /fr/docs/Web/API/Window.openDialog /fr/docs/Web/API/Window/openDialog /fr/docs/Web/API/Window.opener /fr/docs/Web/API/Window/opener /fr/docs/Web/API/Window.postMessage /fr/docs/Web/API/Window/postMessage @@ -2856,14 +3966,22 @@ /fr/docs/Web/API/Window.scrollTo /fr/docs/Web/API/Window/scrollTo /fr/docs/Web/API/Window.setTimeout /fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /fr/docs/Web/API/Window.showModalDialog /fr/docs/Web/API/Window/showModalDialog +/fr/docs/Web/API/Window/URL /fr/docs/conflicting/Web/API/URL /fr/docs/Web/API/Window/caches /fr/docs/Web/API/WindowOrWorkerGlobalScope/caches /fr/docs/Web/API/Window/gamepaddisconnected /fr/docs/Web/API/Window/gamepaddisconnected_event +/fr/docs/Web/API/Window/onresize /fr/docs/conflicting/Web/API/GlobalEventHandlers/onresize /fr/docs/Web/API/WindowBase64 /fr/docs/Web/API/WindowOrWorkerGlobalScope +/fr/docs/Web/API/WindowBase64/Décoder_encoder_en_base64 /fr/docs/Glossary/Base64 +/fr/docs/Web/API/WindowBase64/atob /fr/docs/Web/API/WindowOrWorkerGlobalScope/atob +/fr/docs/Web/API/WindowBase64/btoa /fr/docs/Web/API/WindowOrWorkerGlobalScope/btoa +/fr/docs/Web/API/WindowTimers/clearInterval /fr/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /fr/docs/Web/API/WindowTimers/setTimeout /fr/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /fr/docs/Web/API/Worker.Worker /fr/docs/Web/API/Worker/Worker /fr/docs/Web/API/Worker.onmessage /fr/docs/Web/API/Worker/onmessage /fr/docs/Web/API/Worker.postMessage /fr/docs/Web/API/Worker/postMessage /fr/docs/Web/API/Worker.terminate /fr/docs/Web/API/Worker/terminate +/fr/docs/Web/API/Worker/Functions_and_classes_available_to_workers /fr/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers +/fr/docs/Web/API/XMLHttpRequest/Utiliser_XMLHttpRequest /fr/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest /fr/docs/Web/API/console.log /fr/docs/Web/API/Console/log /fr/docs/Web/API/console.time /fr/docs/Web/API/Console/time /fr/docs/Web/API/console.timeEnd /fr/docs/Web/API/Console/timeEnd @@ -2873,35 +3991,37 @@ /fr/docs/Web/API/document.createElementNS /fr/docs/Web/API/Document/createElementNS /fr/docs/Web/API/document.createRange /fr/docs/Web/API/Document/createRange /fr/docs/Web/API/document.defaultView /fr/docs/Web/API/Document/defaultView -/fr/docs/Web/API/document.getSelection /fr/docs/Web/API/Document/getSelection +/fr/docs/Web/API/document.getSelection /fr/docs/Web/API/DocumentOrShadowRoot/getSelection /fr/docs/Web/API/document.head /fr/docs/Web/API/Document/head /fr/docs/Web/API/document.location /fr/docs/Web/API/Document/location /fr/docs/Web/API/document.querySelector /fr/docs/Web/API/Document/querySelector /fr/docs/Web/API/document.referrer /fr/docs/Web/API/Document/referrer /fr/docs/Web/API/document.scripts /fr/docs/Web/API/Document/scripts -/fr/docs/Web/API/document.styleSheets /fr/docs/Web/API/Document/styleSheets +/fr/docs/Web/API/document.styleSheets /fr/docs/Web/API/DocumentOrShadowRoot/styleSheets /fr/docs/Web/API/event.defaultPrevented /fr/docs/Web/API/Event/defaultPrevented /fr/docs/Web/API/event.preventDefault /fr/docs/Web/API/Event/preventDefault /fr/docs/Web/API/navigator.doNotTrack /fr/docs/Web/API/Navigator/doNotTrack /fr/docs/Web/API/navigator.id /fr/docs/Web/API/Navigator/id +/fr/docs/Web/API/notification/Using_Web_Notifications /fr/docs/Web/API/Notifications_API/Using_the_Notifications_API /fr/docs/Web/API/window.location /fr/docs/Web/API/window/location /fr/docs/Web/API/window.navigator.mozPower /fr/docs/Web/API/Navigator/mozPower /fr/docs/Web/API/window.requestAnimationFrame /fr/docs/Web/API/Window/requestAnimationFrame +/fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Contraste_de_la_couleur /fr/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast /fr/docs/Web/Apps/Build/Audio_and_video_delivery /fr/docs/Web/Guide/Audio_and_video_delivery /fr/docs/Web/Apps/Build/Audio_and_video_delivery/Live_streaming_web_audio_and_video /fr/docs/Web/Guide/Audio_and_video_delivery/Live_streaming_web_audio_and_video /fr/docs/Web/Apps/Build/Audio_and_video_delivery/buffering_seeking_time_ranges /fr/docs/Web/Guide/Audio_and_video_delivery/buffering_seeking_time_ranges /fr/docs/Web/Apps/Build/Audio_and_video_manipulation /fr/docs/Web/Guide/Audio_and_video_manipulation /fr/docs/Web/Apps/Build/User_input_methods /fr/docs/Web/Guide/User_input_methods /fr/docs/Web/Apps/Progressive /fr/docs/Web/Progressive_web_apps -/fr/docs/Web/Apps/Progressive/Adaptative /fr/docs/Web/Progressive_web_apps/Adaptative -/fr/docs/Web/Apps/Progressive/Identifiable /fr/docs/Web/Progressive_web_apps/Identifiable -/fr/docs/Web/Apps/Progressive/Independante_du_reseau /fr/docs/Web/Progressive_web_apps/Independante_du_reseau -/fr/docs/Web/Apps/Progressive/Installable /fr/docs/Web/Progressive_web_apps/Installable -/fr/docs/Web/Apps/Progressive/Partageable /fr/docs/Web/Progressive_web_apps/Partageable -/fr/docs/Web/Apps/Progressive/Progressive /fr/docs/Web/Progressive_web_apps/Progressive -/fr/docs/Web/Apps/Progressive/Re-engageable /fr/docs/Web/Progressive_web_apps/Re-engageable -/fr/docs/Web/Apps/Progressive/Securisee /fr/docs/Web/Progressive_web_apps/Securisee -/fr/docs/Web/Apps/Progressive/ajouter_a_lecran_daccueil_a2hs /fr/docs/Web/Progressive_web_apps/ajouter_a_lecran_daccueil_a2hs +/fr/docs/Web/Apps/Progressive/Adaptative /fr/docs/Web/Progressive_web_apps/Responsive/responsive_design_building_blocks +/fr/docs/Web/Apps/Progressive/Identifiable /fr/docs/conflicting/Web/Progressive_web_apps +/fr/docs/Web/Apps/Progressive/Independante_du_reseau /fr/docs/conflicting/Web/Progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31 +/fr/docs/Web/Apps/Progressive/Installable /fr/docs/conflicting/Web/Progressive_web_apps_7b3e1886320599eacfee6834ead473f1 +/fr/docs/Web/Apps/Progressive/Partageable /fr/docs/conflicting/Web/Progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc +/fr/docs/Web/Apps/Progressive/Progressive /fr/docs/conflicting/Web/Progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf +/fr/docs/Web/Apps/Progressive/Re-engageable /fr/docs/conflicting/Web/Progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67 +/fr/docs/Web/Apps/Progressive/Securisee /fr/docs/conflicting/Web/Progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b +/fr/docs/Web/Apps/Progressive/ajouter_a_lecran_daccueil_a2hs /fr/docs/Web/Progressive_web_apps/Add_to_home_screen /fr/docs/Web/CSS/-moz-alias /fr/docs/Web/CSS/cursor /fr/docs/Web/CSS/-moz-appearance /fr/docs/Web/CSS/appearance /fr/docs/Web/CSS/-moz-background-clip /fr/docs/Web/CSS/background-clip @@ -2914,10 +4034,12 @@ /fr/docs/Web/CSS/-moz-box-align /fr/docs/Web/CSS/box-align /fr/docs/Web/CSS/-moz-box-direction /fr/docs/Web/CSS/box-direction /fr/docs/Web/CSS/-moz-box-flex /fr/docs/Web/CSS/box-flex +/fr/docs/Web/CSS/-moz-box-ordinal-group /fr/docs/conflicting/Web/CSS/box-ordinal-group /fr/docs/Web/CSS/-moz-box-orient /fr/docs/Web/CSS/box-orient /fr/docs/Web/CSS/-moz-box-pack /fr/docs/Web/CSS/box-pack /fr/docs/Web/CSS/-moz-box-shadow /fr/docs/Web/CSS/box-shadow /fr/docs/Web/CSS/-moz-box-sizing /fr/docs/Web/CSS/box-sizing +/fr/docs/Web/CSS/-moz-cell /fr/docs/conflicting/Web/CSS/cursor /fr/docs/Web/CSS/-moz-context-menu /fr/docs/Web/CSS/cursor /fr/docs/Web/CSS/-moz-copy /fr/docs/Web/CSS/cursor /fr/docs/Web/CSS/-moz-grab /en-US/docs/Web/CSS/cursor#grab @@ -2938,8 +4060,10 @@ /fr/docs/Web/CSS/-moz-user-modify /fr/docs/Web/CSS/user-modify /fr/docs/Web/CSS/-moz-zoom-in /fr/docs/Web/CSS/cursor /fr/docs/Web/CSS/-moz-zoom-out /fr/docs/Web/CSS/cursor -/fr/docs/Web/CSS/:-moz-list-bullet /fr/docs/Web/CSS/::-moz-list-bullet -/fr/docs/Web/CSS/:-moz-list-number /fr/docs/Web/CSS/::-moz-list-number +/fr/docs/Web/CSS/-ms-high-contrast /fr/docs/Web/CSS/@media/-ms-high-contrast +/fr/docs/Web/CSS/-ms-scroll-snap-type /fr/docs/conflicting/Web/CSS/scroll-snap-type +/fr/docs/Web/CSS/-ms-user-select /fr/docs/conflicting/Web/CSS/user-select +/fr/docs/Web/CSS/-webkit-mask-image /fr/docs/conflicting/Web/CSS/mask-image /fr/docs/Web/CSS/:-moz-placeholder /fr/docs/Web/CSS/:placeholder-shown /fr/docs/Web/CSS/:-moz-system-metric(images-in-menus) /fr/docs/Web/CSS/:-moz-system-metric/images-in-menus /fr/docs/Web/CSS/:-moz-system-metric(mac-graphite-theme) /fr/docs/Web/CSS/:-moz-system-metric/mac-graphite-theme @@ -2950,131 +4074,281 @@ /fr/docs/Web/CSS/:-moz-system-metric(scrollbar-thumb-proportional) /fr/docs/Web/CSS/:-moz-system-metric/scrollbar-thumb-proportional /fr/docs/Web/CSS/:-moz-system-metric(touch-enabled) /fr/docs/Web/CSS/:-moz-system-metric/touch-enabled /fr/docs/Web/CSS/:-moz-system-metric(windows-default-theme) /fr/docs/Web/CSS/:-moz-system-metric/windows-default-theme +/fr/docs/Web/CSS/:-moz-ui-invalid /fr/docs/Web/CSS/:user-invalid +/fr/docs/Web/CSS/:-ms-input-placeholder /fr/docs/conflicting/Web/CSS/:placeholder-shown +/fr/docs/Web/CSS/:-webkit-autofill /fr/docs/Web/CSS/:autofill +/fr/docs/Web/CSS/::-moz-list-bullet /fr/docs/Web/CSS/:-moz-list-bullet +/fr/docs/Web/CSS/::-moz-list-number /fr/docs/Web/CSS/:-moz-list-number /fr/docs/Web/CSS/::-moz-placeholder /fr/docs/Web/CSS/::placeholder +/fr/docs/Web/CSS/::-webkit-file-upload-button /fr/docs/Web/CSS/::file-selector-button +/fr/docs/Web/CSS/::-webkit-input-placeholder /fr/docs/conflicting/Web/CSS/::placeholder /fr/docs/Web/CSS/:after /fr/docs/Web/CSS/::after /fr/docs/Web/CSS/:after_|_::after /fr/docs/Web/CSS/::after +/fr/docs/Web/CSS/:any /fr/docs/conflicting/Web/CSS/:is /fr/docs/Web/CSS/:before /fr/docs/Web/CSS/::before /fr/docs/Web/CSS/:matches /fr/docs/Web/CSS/:is +/fr/docs/Web/CSS/:visited_et_la_vie_privée /fr/docs/Web/CSS/Privacy_and_the_:visited_selector +/fr/docs/Web/CSS/@media/Index /fr/docs/orphaned/Web/CSS/@media/Index /fr/docs/Web/CSS/@styleset /fr/docs/Web/CSS/@font-feature-values -/fr/docs/Web/CSS/Adjacent_sibling_selectors /fr/docs/Web/CSS/Combinateur_de_voisin_direct +/fr/docs/Web/CSS/@viewport/height /fr/docs/conflicting/Web/CSS/@viewport +/fr/docs/Web/CSS/@viewport/max-height /fr/docs/conflicting/Web/CSS/@viewport_516ab4b0283b5b2231fb657505e22440 +/fr/docs/Web/CSS/@viewport/max-width /fr/docs/conflicting/Web/CSS/@viewport_ff9d4f4f351256d9fdb3d21397eb3880 +/fr/docs/Web/CSS/@viewport/max-zoom /fr/docs/conflicting/Web/CSS/@viewport_d03ebc763769680c55d1a4258592d3ed +/fr/docs/Web/CSS/@viewport/min-height /fr/docs/conflicting/Web/CSS/@viewport_a47f799d4189f98a73bc55899628d6d7 +/fr/docs/Web/CSS/@viewport/min-width /fr/docs/conflicting/Web/CSS/@viewport_c5f2dc316e069e8c32ab24f9117600a7 +/fr/docs/Web/CSS/@viewport/min-zoom /fr/docs/conflicting/Web/CSS/@viewport_6e9c91ec34cdb0393d301240d0d50d84 +/fr/docs/Web/CSS/@viewport/orientation /fr/docs/conflicting/Web/CSS/@viewport_7861ca3461a359b150d44f2c8d74e53a +/fr/docs/Web/CSS/@viewport/user-zoom /fr/docs/conflicting/Web/CSS/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce +/fr/docs/Web/CSS/@viewport/viewport-fit /fr/docs/conflicting/Web/CSS/@viewport_a33ee59ffd8336ffb3336900dea02e9f +/fr/docs/Web/CSS/@viewport/width /fr/docs/conflicting/Web/CSS/@viewport_c925ec0506b352ea1185248b874f7848 +/fr/docs/Web/CSS/@viewport/zoom /fr/docs/conflicting/Web/CSS/@viewport_e065ce90bde08c9679692adbe64f6518 +/fr/docs/Web/CSS/A_Propos_Du_Bloc_Conteneur /fr/docs/Web/CSS/Containing_block +/fr/docs/Web/CSS/Adjacent_sibling_selectors /fr/docs/Web/CSS/Adjacent_sibling_combinator /fr/docs/Web/CSS/Affichage_CSS /fr/docs/Web/CSS/CSS_Display /fr/docs/Web/CSS/Alias /fr/docs/Web/CSS/cursor -/fr/docs/Web/CSS/Animations_CSS/Detecting_CSS_animation_support /fr/docs/Web/CSS/Animations_CSS/Détecter_la_prise_en_charge_des_animations_CSS -/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Scaling_background_images /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Scaling_background_images -/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Utiliser_des_fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans +/fr/docs/Web/CSS/Animations_CSS /fr/docs/Web/CSS/CSS_Animations +/fr/docs/Web/CSS/Animations_CSS/Conseils /fr/docs/Web/CSS/CSS_Animations/Tips +/fr/docs/Web/CSS/Animations_CSS/Detecting_CSS_animation_support /fr/docs/Web/CSS/CSS_Animations/Detecting_CSS_animation_support +/fr/docs/Web/CSS/Animations_CSS/Détecter_la_prise_en_charge_des_animations_CSS /fr/docs/Web/CSS/CSS_Animations/Detecting_CSS_animation_support +/fr/docs/Web/CSS/Animations_CSS/Utiliser_les_animations_CSS /fr/docs/Web/CSS/CSS_Animations/Using_CSS_animations +/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS /fr/docs/conflicting/Web/CSS/CSS_Backgrounds_and_Borders +/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-image /fr/docs/Web/CSS/CSS_Background_and_Borders/Border-image_generator +/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-radius /fr/docs/Web/CSS/CSS_Background_and_Borders/Border-radius_generator +/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Scaling_background_images /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Resizing_background_images +/fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS/Utiliser_des_fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds /fr/docs/Web/CSS/Aural /fr/docs/Web/CSS/@media/aural +/fr/docs/Web/CSS/Block_formatting_context /fr/docs/Web/Guide/CSS/Block_formatting_context +/fr/docs/Web/CSS/CSSOM_View/Systèmes_de_coordonnées /fr/docs/Web/CSS/CSSOM_View/Coordinate_systems /fr/docs/Web/CSS/CSS_:_la_propriété_animation-iteration-count /fr/docs/Web/CSS/animation-iteration-count /fr/docs/Web/CSS/CSS_:_la_propriété_animation-name /fr/docs/Web/CSS/animation-name /fr/docs/Web/CSS/CSS_:_la_propriété_animation-play-state /fr/docs/Web/CSS/animation-play-state -/fr/docs/Web/CSS/CSS_Animations /fr/docs/Web/CSS/Animations_CSS -/fr/docs/Web/CSS/CSS_Animations/Utiliser_les_animations_CSS /fr/docs/Web/CSS/Animations_CSS/Utiliser_les_animations_CSS -/fr/docs/Web/CSS/CSS_Background_and_Borders /fr/docs/Web/CSS/Arrière-plans_et_bordures_CSS -/fr/docs/Web/CSS/CSS_Background_and_Borders/Scaling_background_images /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Scaling_background_images -/fr/docs/Web/CSS/CSS_Background_and_Borders/Utiliser_des_fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans -/fr/docs/Web/CSS/CSS_Box_Model /fr/docs/Web/CSS/Modèle_de_boîte_CSS -/fr/docs/Web/CSS/CSS_Box_Model/Box-shadow_generator /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Générateur_box-shadow -/fr/docs/Web/CSS/CSS_Charsets /fr/docs/Web/CSS/Jeux_de_caractères_CSS -/fr/docs/Web/CSS/CSS_Colors /fr/docs/Web/CSS/Couleurs_CSS +/fr/docs/Web/CSS/CSS_Animations/Utiliser_les_animations_CSS /fr/docs/Web/CSS/CSS_Animations/Using_CSS_animations +/fr/docs/Web/CSS/CSS_Background_and_Borders /fr/docs/conflicting/Web/CSS/CSS_Backgrounds_and_Borders +/fr/docs/Web/CSS/CSS_Background_and_Borders/Scaling_background_images /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Resizing_background_images +/fr/docs/Web/CSS/CSS_Background_and_Borders/Utiliser_des_fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds +/fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Scaling_background_images /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Resizing_background_images +/fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds +/fr/docs/Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +/fr/docs/Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_Flexbox /fr/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox +/fr/docs/Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_bloc_absolue_tableau /fr/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_In_Block_Abspos_Tables +/fr/docs/Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_colonnes /fr/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Multi-column_Layout +/fr/docs/Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_grille /fr/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_In_Grid_Layout +/fr/docs/Web/CSS/CSS_Box_Model/Box-shadow_generator /fr/docs/Web/CSS/CSS_Background_and_Borders/Box-shadow_generator +/fr/docs/Web/CSS/CSS_Colors /fr/docs/conflicting/Web/CSS/CSS_Color +/fr/docs/Web/CSS/CSS_Columns/Concepts_base_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Basic_Concepts_of_Multicol +/fr/docs/Web/CSS/CSS_Columns/Gestion_dépassement_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol +/fr/docs/Web/CSS/CSS_Columns/Gérer_rupture_contenu_entre_colonnes /fr/docs/Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol +/fr/docs/Web/CSS/CSS_Columns/Mettre_en_forme_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Styling_Columns +/fr/docs/Web/CSS/CSS_Columns/Répartir_entre_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Spanning_Columns +/fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts /fr/docs/Web/CSS/CSS_Compositing_and_Blending /fr/docs/Web/CSS/Compositing_and_Blending -/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins -/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox -/fr/docs/Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow /fr/docs/Web/CSS/CSS_Flow_Layout/Disposition_de_bloc_en_ligne_avec_flux_normal -/fr/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout /fr/docs/Web/CSS/CSS_Grid_Layout/Les_concepts_de_base -/fr/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement /fr/docs/Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive -/fr/docs/Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout /fr/docs/Web/CSS/CSS_Grid_Layout/Construire_des_dispositions_courantes_avec_des_grilles_CSS -/fr/docs/Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nomméees_sur_une_grille /fr/docs/Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille -/fr/docs/Web/CSS/CSS_Lists_and_Counters /fr/docs/Web/CSS/CSS_Lists -/fr/docs/Web/CSS/CSS_Selectors /fr/docs/Web/CSS/Sélecteurs_CSS -/fr/docs/Web/CSS/CSS_Selectors/Utiliser_la_pseudo-classe_:target_dans_un_selecteur /fr/docs/Web/CSS/Sélecteurs_CSS/Utiliser_la_pseudo-classe_:target_dans_un_selecteur +/fr/docs/Web/CSS/CSS_Conditional_Rules/Utiliser_requêtes_fonctionnalité_(feature_queries) /fr/docs/Web/CSS/CSS_Conditional_Rules/Using_Feature_Queries +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligner_des_éléments_dans_un_conteneur_flexible /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Cas_utilisation_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Liens_entre_flexbox_et_les_autres_dispositions /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Relationship_of_Flexbox_to_Other_Layout_Methods +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Maîtriser_passage_à_la_ligne_des_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordonner_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordering_Flex_Items +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/fr/docs/Web/CSS/CSS_Flow_Layout/Dans_le_flux_ou_en_dehors /fr/docs/Web/CSS/CSS_Flow_Layout/In_Flow_and_Out_of_Flow +/fr/docs/Web/CSS/CSS_Flow_Layout/Disposition_de_bloc_en_ligne_avec_flux_normal /fr/docs/Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow +/fr/docs/Web/CSS/CSS_Flow_Layout/Disposition_flux_et_dépassement /fr/docs/Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Overflow +/fr/docs/Web/CSS/CSS_Flow_Layout/Disposition_flux_et_modes_écriture /fr/docs/Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Writing_Modes +/fr/docs/Web/CSS/CSS_Flow_Layout/Explications_contextes_formatage /fr/docs/Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts +/fr/docs/Web/CSS/CSS_Fonts/Guide_caractéristiques_police_OpenType /fr/docs/Web/CSS/CSS_Fonts/OpenType_fonts_guide +/fr/docs/Web/CSS/CSS_Fonts/Guide_polices_variables /fr/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide +/fr/docs/Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS /fr/docs/Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout +/fr/docs/Web/CSS/CSS_Grid_Layout/Construire_des_dispositions_courantes_avec_des_grilles_CSS /fr/docs/Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout +/fr/docs/Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille /fr/docs/Web/CSS/CSS_Grid_Layout/Grid_Template_Areas +/fr/docs/Web/CSS/CSS_Grid_Layout/Les_concepts_de_base /fr/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout +/fr/docs/Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité /fr/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility +/fr/docs/Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive /fr/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement +/fr/docs/Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture /fr/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes +/fr/docs/Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition /fr/docs/Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout +/fr/docs/Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS /fr/docs/Web/CSS/CSS_Grid_Layout/Auto-placement_in_CSS_Grid_Layout +/fr/docs/Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS /fr/docs/Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid +/fr/docs/Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nomméees_sur_une_grille /fr/docs/Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines +/fr/docs/Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille /fr/docs/Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines +/fr/docs/Web/CSS/CSS_Images/Sprites_CSS /fr/docs/Web/CSS/CSS_Images/Implementing_image_sprites_in_CSS +/fr/docs/Web/CSS/CSS_Lists /fr/docs/Web/CSS/CSS_Lists_and_Counters +/fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/fr/docs/Web/CSS/CSS_Lists/Indentation_homogène_des_listes /fr/docs/Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation +/fr/docs/Web/CSS/CSS_Logical_Properties/Concepts_de_base /fr/docs/Web/CSS/CSS_Logical_Properties/Basic_concepts +/fr/docs/Web/CSS/CSS_Logical_Properties/Dimensionnement /fr/docs/Web/CSS/CSS_Logical_Properties/Sizing +/fr/docs/Web/CSS/CSS_Logical_Properties/Propriétés_logiques_flottements_positionnement /fr/docs/Web/CSS/CSS_Logical_Properties/Floating_and_positioning +/fr/docs/Web/CSS/CSS_Logical_Properties/Propriétés_logiques_marges_bordures_remplissages /fr/docs/Web/CSS/CSS_Logical_Properties/Margins_borders_padding +/fr/docs/Web/CSS/CSS_Masks /fr/docs/Web/CSS/CSS_Masking +/fr/docs/Web/CSS/CSS_Scroll_Snap/Compatibilité_navigateurs /fr/docs/Web/CSS/CSS_Scroll_Snap/Browser_compat +/fr/docs/Web/CSS/CSS_Scroll_Snap/Concepts_de_base /fr/docs/Web/CSS/CSS_Scroll_Snap/Basic_concepts +/fr/docs/Web/CSS/CSS_Selectors/Utiliser_la_pseudo-classe_:target_dans_un_selecteur /fr/docs/Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors +/fr/docs/Web/CSS/CSS_Shapes/Aperçu_formes_CSS /fr/docs/Web/CSS/CSS_Shapes/Overview_of_CSS_Shapes +/fr/docs/Web/CSS/CSS_Shapes/Créer_formes_boîtes /fr/docs/Web/CSS/CSS_Shapes/From_box_values +/fr/docs/Web/CSS/CSS_Shapes/Formes_simples /fr/docs/Web/CSS/CSS_Shapes/Basic_Shapes +/fr/docs/Web/CSS/CSS_Shapes/Générer_formes_images /fr/docs/Web/CSS/CSS_Shapes/Shapes_From_Images +/fr/docs/Web/CSS/CSS_Transforms/Utilisation_des_transformations_CSS /fr/docs/Web/CSS/CSS_Transforms/Using_CSS_transforms +/fr/docs/Web/CSS/CSS_Transitions/Utiliser_transitions_CSS /fr/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions /fr/docs/Web/CSS/CSS_User_Interface /fr/docs/Web/CSS/CSS_Basic_User_Interface -/fr/docs/Web/CSS/CSS_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor +/fr/docs/Web/CSS/CSS_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property /fr/docs/Web/CSS/CSS_percentage_values /fr/docs/Web/CSS +/fr/docs/Web/CSS/CSS_questions_frequentes /fr/docs/Learn/CSS/Howto/CSS_FAQ /fr/docs/Web/CSS/CSS_values_serialization /fr/docs/Web/CSS /fr/docs/Web/CSS/CSS_values_syntax /fr/docs/Web/CSS /fr/docs/Web/CSS/Cascade /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance /fr/docs/Web/CSS/Colonnes_CSS /fr/docs/Web/CSS/CSS_Columns -/fr/docs/Web/CSS/Colonnes_CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Concepts_base_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Concepts_base_multi-colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Gestion_dépassement_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Gestion_dépassement_multi-colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Gérer_rupture_contenu_entre_colonnes /fr/docs/Web/CSS/CSS_Columns/Gérer_rupture_contenu_entre_colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Mettre_en_forme_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Mettre_en_forme_les_colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Répartir_entre_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Répartir_entre_les_colonnes -/fr/docs/Web/CSS/Colonnes_CSS/Utiliser_une_disposition_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes -/fr/docs/Web/CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes -/fr/docs/Web/CSS/Column_combinator /fr/docs/Web/CSS/Combinateur_colonne -/fr/docs/Web/CSS/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS -/fr/docs/Web/CSS/Couleurs_CSS/Outil_Selecteur_Couleurs_CSS /fr/docs/Web/CSS/Couleurs_CSS/Sélecteur_de_couleurs +/fr/docs/Web/CSS/Colonnes_CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/fr/docs/Web/CSS/Colonnes_CSS/Concepts_base_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Basic_Concepts_of_Multicol +/fr/docs/Web/CSS/Colonnes_CSS/Gestion_dépassement_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol +/fr/docs/Web/CSS/Colonnes_CSS/Gérer_rupture_contenu_entre_colonnes /fr/docs/Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol +/fr/docs/Web/CSS/Colonnes_CSS/Mettre_en_forme_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Styling_Columns +/fr/docs/Web/CSS/Colonnes_CSS/Répartir_entre_les_colonnes /fr/docs/Web/CSS/CSS_Columns/Spanning_Columns +/fr/docs/Web/CSS/Colonnes_CSS/Utiliser_une_disposition_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/fr/docs/Web/CSS/Colonnes_CSS3 /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/fr/docs/Web/CSS/Combinateur_colonne /fr/docs/Web/CSS/Column_combinator +/fr/docs/Web/CSS/Combinateur_de_voisin_direct /fr/docs/Web/CSS/Adjacent_sibling_combinator +/fr/docs/Web/CSS/Compartimentation_CSS /fr/docs/Web/CSS/CSS_Containment +/fr/docs/Web/CSS/Comprendre_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index +/fr/docs/Web/CSS/Comprendre_z-index/Ajout_de_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index +/fr/docs/Web/CSS/Comprendre_z-index/Empilement_de_couches /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context +/fr/docs/Web/CSS/Comprendre_z-index/Empilement_et_float /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float +/fr/docs/Web/CSS/Comprendre_z-index/Empilement_sans_z-index /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index +/fr/docs/Web/CSS/Comprendre_z-index/Exemple_1 /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_1 +/fr/docs/Web/CSS/Comprendre_z-index/Exemple_2 /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_2 +/fr/docs/Web/CSS/Comprendre_z-index/Exemple_3 /fr/docs/Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_3 +/fr/docs/Web/CSS/Compteurs_CSS /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters +/fr/docs/Web/CSS/Concepts_viewport /fr/docs/Web/CSS/Viewport_concepts +/fr/docs/Web/CSS/Contexte_de_formatage_en_ligne /fr/docs/Web/CSS/Inline_formatting_context +/fr/docs/Web/CSS/Couleurs_CSS /fr/docs/conflicting/Web/CSS/CSS_Color +/fr/docs/Web/CSS/Couleurs_CSS/Outil_Selecteur_Couleurs_CSS /fr/docs/Web/CSS/CSS_Colors/Color_picker_tool +/fr/docs/Web/CSS/Couleurs_CSS/Sélecteur_de_couleurs /fr/docs/Web/CSS/CSS_Colors/Color_picker_tool /fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout -/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web -/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins -/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox +/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_boîtes_flexibles_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox /fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout -/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web -/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins -/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox +/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_des_boîtes_flexibles_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox /fr/docs/Web/CSS/Disposition_flexbox_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Aligner_des_éléments_dans_un_conteneur_flexible /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligner_des_éléments_dans_un_conteneur_flexible -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Aligning_Items_in_a_Flex_Container /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligner_des_éléments_dans_un_conteneur_flexible -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Backwards_Compatibility_of_Flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Cas_utilisation_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Cas_utilisation_flexbox -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Concepts_de_base_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Liens_entre_flexbox_et_les_autres_dispositions /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Liens_entre_flexbox_et_les_autres_dispositions -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Maîtriser_passage_à_la_ligne_des_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Maîtriser_passage_à_la_ligne_des_éléments_flexibles -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Mixins /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mixins -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Ordering_Flex_Items /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordonner_éléments_flexibles -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Ordonner_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordonner_éléments_flexibles -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Rétrocompatibilite_de_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox -/fr/docs/Web/CSS/Disposition_flexbox_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Aligner_des_éléments_dans_un_conteneur_flexible /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Aligning_Items_in_a_Flex_Container /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Backwards_Compatibility_of_Flexbox /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Boîtes_flexibles_pour_applications_web /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Cas_utilisation_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Concepts_de_base_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Liens_entre_flexbox_et_les_autres_dispositions /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Relationship_of_Flexbox_to_Other_Layout_Methods +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Maîtriser_passage_à_la_ligne_des_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Mises_en_page_avancees_avec_flexbox /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Mixins /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Ordering_Flex_Items /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordering_Flex_Items +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Ordonner_éléments_flexibles /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Ordering_Flex_Items +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Rétrocompatibilite_de_flexbox /fr/docs/conflicting/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +/fr/docs/Web/CSS/Disposition_flexbox_CSS/Utilisation_des_flexbox_en_CSS /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/fr/docs/Web/CSS/Extensions_CSS_Microsoft /fr/docs/Web/CSS/Microsoft_Extensions +/fr/docs/Web/CSS/Extensions_Mozilla /fr/docs/Web/CSS/Mozilla_Extensions /fr/docs/Web/CSS/Extensions_WebKit /fr/docs/Web/CSS/WebKit_Extensions -/fr/docs/Web/CSS/FAQ /fr/docs/Web/CSS/CSS_questions_frequentes -/fr/docs/Web/CSS/Fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans -/fr/docs/Web/CSS/Fusion_des_marges /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Fusion_des_marges -/fr/docs/Web/CSS/Layout_cookbook/Contribute_a_recipe /fr/docs/Web/CSS/Layout_cookbook/Contribuer_à_une_recette -/fr/docs/Web/CSS/Layout_cookbook/Contribute_a_recipe/Cookbook_template /fr/docs/Web/CSS/Layout_cookbook/Contribuer_à_une_recette/Cookbook_template +/fr/docs/Web/CSS/FAQ /fr/docs/Learn/CSS/Howto/CSS_FAQ +/fr/docs/Web/CSS/Feuilles_de_style_alternatives /fr/docs/Web/CSS/Alternative_style_sheets +/fr/docs/Web/CSS/Filters_Effects /fr/docs/conflicting/Web/CSS/Filter_Effects +/fr/docs/Web/CSS/Fonds_multiples /fr/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds +/fr/docs/Web/CSS/Fusion_des_marges /fr/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +/fr/docs/Web/CSS/Héritage /fr/docs/Web/CSS/inheritance +/fr/docs/Web/CSS/Implémentation_des_Brouillons_CSS /fr/docs/conflicting/Web/CSS/Mozilla_Extensions +/fr/docs/Web/CSS/Index /fr/docs/orphaned/Web/CSS/Index +/fr/docs/Web/CSS/Jeux_de_caractères_CSS /fr/docs/Web/CSS/CSS_Charsets +/fr/docs/Web/CSS/Layout_cookbook/Bas_de_page_adhérant /fr/docs/Web/CSS/Layout_cookbook/Sticky_footers +/fr/docs/Web/CSS/Layout_cookbook/Carte /fr/docs/Web/CSS/Layout_cookbook/Card +/fr/docs/Web/CSS/Layout_cookbook/Centrer_un_element /fr/docs/Web/CSS/Layout_cookbook/Center_an_element +/fr/docs/Web/CSS/Layout_cookbook/Contribuer_à_une_recette /fr/docs/Web/CSS/Layout_cookbook/Contribute_a_recipe +/fr/docs/Web/CSS/Layout_cookbook/Contribuer_à_une_recette/Cookbook_template /fr/docs/Web/CSS/Layout_cookbook/Contribute_a_recipe/Cookbook_template +/fr/docs/Web/CSS/Layout_cookbook/Disposition_en_colonnes /fr/docs/Web/CSS/Layout_cookbook/Column_layouts +/fr/docs/Web/CSS/Layout_cookbook/Liste_groupes_avec_indicateurs /fr/docs/Web/CSS/Layout_cookbook/List_group_with_badges +/fr/docs/Web/CSS/Layout_cookbook/Navigation_Breadcrumb /fr/docs/Web/CSS/Layout_cookbook/Breadcrumb_Navigation +/fr/docs/Web/CSS/Layout_cookbook/Navigation_segmentée /fr/docs/Web/CSS/Layout_cookbook/Split_Navigation /fr/docs/Web/CSS/Les_variables_CSS /fr/docs/Web/CSS/Using_CSS_custom_properties -/fr/docs/Web/CSS/Media_queries /fr/docs/Web/CSS/Requêtes_média/Utiliser_les_Media_queries +/fr/docs/Web/CSS/Liste_de_Fonctionnalités_CSS_Propriétaires /fr/docs/Web/CSS/List_of_Proprietary_CSS_Features +/fr/docs/Web/CSS/Liste_propriétés_CSS_animées /fr/docs/Web/CSS/CSS_animated_properties +/fr/docs/Web/CSS/Mode_de_mise_en_page /fr/docs/Web/CSS/Layout_mode /fr/docs/Web/CSS/Modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model -/fr/docs/Web/CSS/Modèle_de_boîte_CSS/Box-shadow_generator /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Générateur_box-shadow +/fr/docs/Web/CSS/Modèle_de_boîte_CSS /fr/docs/Web/CSS/CSS_Box_Model +/fr/docs/Web/CSS/Modèle_de_boîte_CSS/Box-shadow_generator /fr/docs/Web/CSS/CSS_Background_and_Borders/Box-shadow_generator +/fr/docs/Web/CSS/Modèle_de_boîte_CSS/Fusion_des_marges /fr/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing +/fr/docs/Web/CSS/Modèle_de_boîte_CSS/Générateur_box-shadow /fr/docs/Web/CSS/CSS_Background_and_Borders/Box-shadow_generator /fr/docs/Web/CSS/Modèle_de_boîte_CSS/Modèle_de_boîte /en-US/docs/Learn/CSS/Building_blocks/The_box_model +/fr/docs/Web/CSS/Modèle_de_mise_en_forme_visuelle /fr/docs/Web/CSS/Visual_formatting_model +/fr/docs/Web/CSS/Motion_Path /fr/docs/Web/CSS/CSS_Motion_Path /fr/docs/Web/CSS/Média /fr/docs/Web/CSS/@media /fr/docs/Web/CSS/Média/Visuel /fr/docs/Web/CSS/@media -/fr/docs/Web/CSS/Média_Paginé /fr/docs/Web/CSS/Média_paginés -/fr/docs/Web/CSS/Reference/Extensions_Mozilla /fr/docs/Web/CSS/Extensions_Mozilla +/fr/docs/Web/CSS/Média_Paginé /fr/docs/Web/CSS/Paged_Media +/fr/docs/Web/CSS/Média_paginés /fr/docs/Web/CSS/Paged_Media +/fr/docs/Web/CSS/Outils /fr/docs/Web/CSS/Tools +/fr/docs/Web/CSS/Outils/Générateur_de_courbe_de_Bézier /fr/docs/Web/CSS/Tools/Cubic_Bezier_Generator +/fr/docs/Web/CSS/Outils/Générateur_de_dégradés_linéaires /fr/docs/Web/CSS/Tools/Linear-gradient_Generator +/fr/docs/Web/CSS/Propriétés_raccourcies /fr/docs/Web/CSS/Shorthand_properties +/fr/docs/Web/CSS/Pseudo-éléments /fr/docs/Web/CSS/Pseudo-elements +/fr/docs/Web/CSS/Redimensionnement_arrière-plans_SVG /fr/docs/Web/CSS/Scaling_of_SVG_backgrounds +/fr/docs/Web/CSS/Reference/Extensions_Mozilla /fr/docs/Web/CSS/Mozilla_Extensions /fr/docs/Web/CSS/Reference/Extensions_WebKit /fr/docs/Web/CSS/WebKit_Extensions -/fr/docs/Web/CSS/Reference/Mozilla_Extensions /fr/docs/Web/CSS/Extensions_Mozilla -/fr/docs/Web/CSS/Reference/Sélecteurs_d'ID /fr/docs/Web/CSS/Sélecteurs_d_ID -/fr/docs/Web/CSS/Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Sélecteurs_d_attribut +/fr/docs/Web/CSS/Reference/Mozilla_Extensions /fr/docs/Web/CSS/Mozilla_Extensions +/fr/docs/Web/CSS/Reference/Sélecteurs_d'ID /fr/docs/Web/CSS/ID_selectors +/fr/docs/Web/CSS/Reference/Sélecteurs_d'attribut /fr/docs/Web/CSS/Attribute_selectors /fr/docs/Web/CSS/Reference/Webkit_Extensions /fr/docs/Web/CSS/WebKit_Extensions /fr/docs/Web/CSS/Reference/background-blend-mode /fr/docs/Web/CSS/background-blend-mode /fr/docs/Web/CSS/Reference/line-break /fr/docs/Web/CSS/line-break /fr/docs/Web/CSS/Reference/mix-blend-mode /fr/docs/Web/CSS/mix-blend-mode /fr/docs/Web/CSS/Reference/shape-outside /fr/docs/Web/CSS/shape-outside +/fr/docs/Web/CSS/Requêtes_média /fr/docs/Web/CSS/Media_Queries +/fr/docs/Web/CSS/Requêtes_média/Tester_les_media_queries /fr/docs/Web/CSS/Media_Queries/Testing_media_queries +/fr/docs/Web/CSS/Requêtes_média/Utilisation_requêtes_media_accessibilité /fr/docs/Web/CSS/Media_Queries/Using_Media_Queries_for_Accessibility +/fr/docs/Web/CSS/Requêtes_média/Utiliser_les_Media_queries /fr/docs/Web/CSS/Media_Queries/Using_media_queries +/fr/docs/Web/CSS/Règles_@ /fr/docs/Web/CSS/At-rule /fr/docs/Web/CSS/Spécificité /en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance /fr/docs/Web/CSS/Syntaxe /en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured -/fr/docs/Web/CSS/Sélecteur_de_voisin_direct /fr/docs/Web/CSS/Combinateur_de_voisin_direct -/fr/docs/Web/CSS/Tools /fr/docs/Web/CSS/Outils -/fr/docs/Web/CSS/Tools/Générateur_de_courbe_de_Bézier /fr/docs/Web/CSS/Outils/Générateur_de_courbe_de_Bézier -/fr/docs/Web/CSS/Tools/Générateur_de_dégradés_linéaires /fr/docs/Web/CSS/Outils/Générateur_de_dégradés_linéaires -/fr/docs/Web/CSS/Tools/Outil_Selecteur_Couleurs_CSS /fr/docs/Web/CSS/Couleurs_CSS/Sélecteur_de_couleurs -/fr/docs/Web/CSS/Utilisation_des_transformations_CSS /fr/docs/Web/CSS/CSS_Transforms/Utilisation_des_transformations_CSS -/fr/docs/Web/CSS/Utiliser_les_Media_queries /fr/docs/Web/CSS/Requêtes_média/Utiliser_les_Media_queries -/fr/docs/Web/CSS/Utiliser_une_disposition_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes +/fr/docs/Web/CSS/Syntaxe_de_définition_des_valeurs /fr/docs/Web/CSS/Value_definition_syntax +/fr/docs/Web/CSS/Sélecteur_de_voisin_direct /fr/docs/Web/CSS/Adjacent_sibling_combinator +/fr/docs/Web/CSS/Sélecteurs_CSS /fr/docs/Web/CSS/CSS_Selectors +/fr/docs/Web/CSS/Sélecteurs_CSS/Comparison_with_XPath /fr/docs/Web/XPath/Comparison_with_CSS_selectors +/fr/docs/Web/CSS/Sélecteurs_CSS/Utiliser_la_pseudo-classe_:target_dans_un_selecteur /fr/docs/Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors +/fr/docs/Web/CSS/Sélecteurs_d_ID /fr/docs/Web/CSS/ID_selectors +/fr/docs/Web/CSS/Sélecteurs_d_attribut /fr/docs/Web/CSS/Attribute_selectors +/fr/docs/Web/CSS/Sélecteurs_de_classe /fr/docs/Web/CSS/Class_selectors +/fr/docs/Web/CSS/Sélecteurs_de_type /fr/docs/Web/CSS/Type_selectors +/fr/docs/Web/CSS/Sélecteurs_de_voisins_généraux /fr/docs/Web/CSS/General_sibling_combinator +/fr/docs/Web/CSS/Sélecteurs_descendant /fr/docs/Web/CSS/Descendant_combinator +/fr/docs/Web/CSS/Sélecteurs_enfant /fr/docs/Web/CSS/Child_combinator +/fr/docs/Web/CSS/Sélecteurs_universels /fr/docs/Web/CSS/Universal_selectors +/fr/docs/Web/CSS/Tools/Générateur_de_courbe_de_Bézier /fr/docs/Web/CSS/Tools/Cubic_Bezier_Generator +/fr/docs/Web/CSS/Tools/Générateur_de_dégradés_linéaires /fr/docs/Web/CSS/Tools/Linear-gradient_Generator +/fr/docs/Web/CSS/Tools/Outil_Selecteur_Couleurs_CSS /fr/docs/Web/CSS/CSS_Colors/Color_picker_tool +/fr/docs/Web/CSS/Type_color /fr/docs/Web/CSS/color_value +/fr/docs/Web/CSS/Type_position /fr/docs/Web/CSS/position_value +/fr/docs/Web/CSS/Types_CSS /fr/docs/Web/CSS/CSS_Types +/fr/docs/Web/CSS/Utilisation_de_dégradés_CSS /fr/docs/Web/CSS/CSS_Images/Using_CSS_gradients +/fr/docs/Web/CSS/Utilisation_des_transformations_CSS /fr/docs/Web/CSS/CSS_Transforms/Using_CSS_transforms +/fr/docs/Web/CSS/Utiliser_les_Media_queries /fr/docs/Web/CSS/Media_Queries/Using_media_queries +/fr/docs/Web/CSS/Utiliser_une_disposition_multi-colonnes /fr/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts +/fr/docs/Web/CSS/Valeur_calculée /fr/docs/Web/CSS/computed_value +/fr/docs/Web/CSS/Valeur_initiale /fr/docs/Web/CSS/initial_value +/fr/docs/Web/CSS/Valeur_spécifiée /fr/docs/Web/CSS/specified_value +/fr/docs/Web/CSS/Valeur_utilisée /fr/docs/Web/CSS/used_value +/fr/docs/Web/CSS/Valeurs_et_unités_CSS /fr/docs/Web/CSS/CSS_Values_and_Units /fr/docs/Web/CSS/_image /fr/docs/Web/CSS/image() /fr/docs/Web/CSS/attr /fr/docs/Web/CSS/attr() +/fr/docs/Web/CSS/auto /fr/docs/conflicting/Web/CSS/width /fr/docs/Web/CSS/calc /fr/docs/Web/CSS/calc() /fr/docs/Web/CSS/clamp /fr/docs/Web/CSS/clamp() -/fr/docs/Web/CSS/color_value /fr/docs/Web/CSS/Type_color -/fr/docs/Web/CSS/computed_value /fr/docs/Web/CSS/Valeur_calculée /fr/docs/Web/CSS/conic-gradient /fr/docs/Web/CSS/conic-gradient() -/fr/docs/Web/CSS/counter /fr/docs/Web/CSS/CSS_Lists/Compteurs_CSS +/fr/docs/Web/CSS/counter /fr/docs/Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters /fr/docs/Web/CSS/counter_fonction /fr/docs/Web/CSS/counter() /fr/docs/Web/CSS/counters /fr/docs/Web/CSS/counters() /fr/docs/Web/CSS/cross-fade /fr/docs/Web/CSS/cross-fade() -/fr/docs/Web/CSS/cursor/Utilisation_d'URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor -/fr/docs/Web/CSS/cursor/Utilisation_d_URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor +/fr/docs/Web/CSS/cursor/Utilisation_d'URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property +/fr/docs/Web/CSS/cursor/Utilisation_d_URL_pour_la_propriété_cursor /fr/docs/Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property /fr/docs/Web/CSS/element /fr/docs/Web/CSS/element() /fr/docs/Web/CSS/env /fr/docs/Web/CSS/env() /fr/docs/Web/CSS/filter-function/blur /fr/docs/Web/CSS/filter-function/blur() @@ -3087,13 +4361,13 @@ /fr/docs/Web/CSS/filter-function/opacity /fr/docs/Web/CSS/filter-function/opacity() /fr/docs/Web/CSS/filter-function/saturate /fr/docs/Web/CSS/filter-function/saturate() /fr/docs/Web/CSS/filter-function/sepia /fr/docs/Web/CSS/filter-function/sepia() +/fr/docs/Web/CSS/filter-function/url /fr/docs/conflicting/Web/CSS/url() +/fr/docs/Web/CSS/grid-column-gap /fr/docs/conflicting/Web/CSS/column-gap /fr/docs/Web/CSS/grid-gap /fr/docs/Web/CSS/gap /fr/docs/Web/CSS/grid-row-gap /fr/docs/Web/CSS/row-gap /fr/docs/Web/CSS/hidden /fr/docs/Web/CSS/visibility /fr/docs/Web/CSS/image-set /fr/docs/Web/CSS/image-set() /fr/docs/Web/CSS/imagefunction /fr/docs/Web/CSS/image() -/fr/docs/Web/CSS/inheritance /fr/docs/Web/CSS/Héritage -/fr/docs/Web/CSS/initial_value /fr/docs/Web/CSS/Valeur_initiale /fr/docs/Web/CSS/linear-gradient /fr/docs/Web/CSS/linear-gradient() /fr/docs/Web/CSS/longueur /fr/docs/Web/CSS/length /fr/docs/Web/CSS/marks /fr/docs/Web/CSS/@page/marks @@ -3104,13 +4378,15 @@ /fr/docs/Web/CSS/motion-offset /fr/docs/Web/CSS/offset-distance /fr/docs/Web/CSS/motion-path /fr/docs/Web/CSS/offset-path /fr/docs/Web/CSS/motion-rotation /fr/docs/Web/CSS/offset-rotate -/fr/docs/Web/CSS/offset-block-end /fr/docs/inset-block-end -/fr/docs/Web/CSS/offset-block-start /fr/docs/inset-block-start -/fr/docs/Web/CSS/offset-inline-end /fr/docs/inset-inline-end -/fr/docs/Web/CSS/offset-inline-start /fr/docs/inset-inline-start +/fr/docs/Web/CSS/none /fr/docs/conflicting/Web/CSS/float +/fr/docs/Web/CSS/normal /fr/docs/conflicting/Web/CSS/font-variant +/fr/docs/Web/CSS/offset-block-end /fr/docs/Web/CSS/inset-block-end +/fr/docs/Web/CSS/offset-block-start /fr/docs/Web/CSS/inset-block-start +/fr/docs/Web/CSS/offset-inline-end /fr/docs/Web/CSS/inset-inline-end +/fr/docs/Web/CSS/offset-inline-start /fr/docs/Web/CSS/inset-inline-start +/fr/docs/Web/CSS/overflow-anchor/Guide_ancrage_défilement /fr/docs/Web/CSS/overflow-anchor/Guide_to_scroll_anchoring /fr/docs/Web/CSS/paint /fr/docs/Web/CSS/paint() -/fr/docs/Web/CSS/position_value /fr/docs/Web/CSS/Type_position -/fr/docs/Web/CSS/proprietes_css_animees /fr/docs/Web/CSS/Liste_propriétés_CSS_animées +/fr/docs/Web/CSS/proprietes_css_animees /fr/docs/Web/CSS/CSS_animated_properties /fr/docs/Web/CSS/radial-gradient /fr/docs/Web/CSS/radial-gradient() /fr/docs/Web/CSS/repeat /fr/docs/Web/CSS/repeat() /fr/docs/Web/CSS/repeating-conic-gradient /fr/docs/Web/CSS/repeating-conic-gradient() @@ -3118,7 +4394,9 @@ /fr/docs/Web/CSS/repeating-radial-gradient /fr/docs/Web/CSS/repeating-radial-gradient() /fr/docs/Web/CSS/scrollbar-colr /fr/docs/Web/CSS/scrollbar-color /fr/docs/Web/CSS/scrollbar-track-color /fr/docs/Web/CSS/scrollbar-color +/fr/docs/Web/CSS/shape-box /fr/docs/conflicting/Web/CSS/shape-outside /fr/docs/Web/CSS/symbols /fr/docs/Web/CSS/symbols() +/fr/docs/Web/CSS/timing-function /fr/docs/Web/CSS/easing-function /fr/docs/Web/CSS/transform-function/matrix /fr/docs/Web/CSS/transform-function/matrix() /fr/docs/Web/CSS/transform-function/matrix3d /fr/docs/Web/CSS/transform-function/matrix3d() /fr/docs/Web/CSS/transform-function/perspective /fr/docs/Web/CSS/transform-function/perspective() @@ -3139,23 +4417,43 @@ /fr/docs/Web/CSS/transform-function/translate3d /fr/docs/Web/CSS/transform-function/translate3d() /fr/docs/Web/CSS/transform-function/translateY /fr/docs/Web/CSS/transform-function/translateY() /fr/docs/Web/CSS/transform-function/translateZ /fr/docs/Web/CSS/transform-function/translateZ() -/fr/docs/Web/CSS/uri /fr/docs/Web/CSS/url +/fr/docs/Web/CSS/uri /fr/docs/conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f +/fr/docs/Web/CSS/url /fr/docs/conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f /fr/docs/Web/CSS/user-ident /fr/docs/Web/CSS/custom-ident +/fr/docs/Web/CSS/valeur_reelle /fr/docs/Web/CSS/actual_value +/fr/docs/Web/CSS/valeur_résolue /fr/docs/Web/CSS/resolved_value /fr/docs/Web/CSS/visible /fr/docs/Web/CSS/visibility /fr/docs/Web/CSS/word-wrap /fr/docs/Web/CSS/overflow-wrap +/fr/docs/Web/CSS/Élément_remplacé /fr/docs/Web/CSS/Replaced_element +/fr/docs/Web/Démos_de_technologies_open_web /fr/docs/Web/Demos_of_open_web_technologies +/fr/docs/Web/Events/DOMContentLoaded /fr/docs/Web/API/Window/DOMContentLoaded_event +/fr/docs/Web/Events/abort /fr/docs/conflicting/Web/API/HTMLMediaElement/abort_event +/fr/docs/Web/Events/abort_(ProgressEvent) /fr/docs/Web/API/XMLHttpRequest/abort_event /fr/docs/Web/Events/abort_indexedDB /fr/docs/Web/API/IDBTransaction/abort_event -/fr/docs/Web/Events/blocked_indexedDB /fr/docs/Web/API/IDBRequest/blocked_event +/fr/docs/Web/Events/afterprint /fr/docs/Web/API/Window/afterprint_event +/fr/docs/Web/Events/animationend /fr/docs/Web/API/HTMLElement/animationend_event +/fr/docs/Web/Events/animationiteration /fr/docs/Web/API/HTMLElement/animationiteration_event +/fr/docs/Web/Events/animationstart /fr/docs/Web/API/HTMLElement/animationstart_event +/fr/docs/Web/Events/audioprocess /fr/docs/Web/API/ScriptProcessorNode/audioprocess_event +/fr/docs/Web/Events/beforeprint /fr/docs/Web/API/Window/beforeprint_event +/fr/docs/Web/Events/beforeunload /fr/docs/Web/API/Window/beforeunload_event +/fr/docs/Web/Events/blocked_indexedDB /fr/docs/Web/API/IDBOpenDBRequest/blocked_event /fr/docs/Web/Events/canplay /fr/docs/Web/API/HTMLMediaElement/canplay_event /fr/docs/Web/Events/canplaythrough /fr/docs/Web/API/HTMLMediaElement/canplaythrough_event /fr/docs/Web/Events/change /fr/docs/Web/API/HTMLElement/change_event /fr/docs/Web/Events/click /fr/docs/Web/API/Element/click_event /fr/docs/Web/Events/close_websocket /fr/docs/Web/API/WebSocket/close_event +/fr/docs/Web/Events/complete /fr/docs/Web/API/OfflineAudioContext/complete_event /fr/docs/Web/Events/complete_indexedDB /fr/docs/Web/API/IDBTransaction/complete_event +/fr/docs/Web/Events/compositionend /fr/docs/Web/API/Element/compositionend_event +/fr/docs/Web/Events/compositionstart /fr/docs/Web/API/Element/compositionstart_event +/fr/docs/Web/Events/compositionupdate /fr/docs/Web/API/Element/compositionupdate_event /fr/docs/Web/Events/contextmenu /fr/docs/Web/API/Element/contextmenu_event +/fr/docs/Web/Events/copy /fr/docs/Web/API/Element/copy_event /fr/docs/Web/Events/dblclick /fr/docs/Web/API/Element/dblclick_event /fr/docs/Web/Events/devicelight /fr/docs/FUEL/Window/devicelight -/fr/docs/Web/Events/devicemotion /fr/docs/FUEL/Window/devicemotion_event -/fr/docs/Web/Events/deviceorientation /fr/docs/FUEL/Window/deviceorientation +/fr/docs/Web/Events/devicemotion /fr/docs/Web/API/Window/devicemotion_event +/fr/docs/Web/Events/deviceorientation /fr/docs/Web/API/Window/deviceorientation_event /fr/docs/Web/Events/drag /fr/docs/Web/API/Document/drag_event /fr/docs/Web/Events/dragend /fr/docs/Web/API/Document/dragend_event /fr/docs/Web/Events/dragenter /fr/docs/Web/API/Document/dragenter_event @@ -3166,6 +4464,10 @@ /fr/docs/Web/Events/durationchange /fr/docs/Web/API/HTMLMediaElement/durationchange_event /fr/docs/Web/Events/emptied /fr/docs/Web/API/HTMLMediaElement/emptied_event /fr/docs/Web/Events/ended /fr/docs/Web/API/HTMLMediaElement/ended_event +/fr/docs/Web/Events/ended_(Web_Audio) /fr/docs/conflicting/Web/API/HTMLMediaElement/ended_event +/fr/docs/Web/Events/error /fr/docs/Web/API/Element/error_event +/fr/docs/Web/Events/focusin /fr/docs/Web/API/Element/focusin_event +/fr/docs/Web/Events/focusout /fr/docs/Web/API/Element/focusout_event /fr/docs/Web/Events/fullscreenchange /fr/docs/Web/API/Document/fullscreenchange_event /fr/docs/Web/Events/fullscreenerror /fr/docs/Web/API/Document/fullscreenerror_event /fr/docs/Web/Events/gamepadconnected /fr/docs/Web/API/Window/gamepadconnected_event @@ -3173,55 +4475,136 @@ /fr/docs/Web/Events/hashchange /fr/docs/Web/API/Window/hashchange_event /fr/docs/Web/Events/input /fr/docs/Web/API/HTMLElement/input_event /fr/docs/Web/Events/keypress /fr/docs/Web/API/Document/keypress_event +/fr/docs/Web/Events/load /fr/docs/Web/API/Window/load_event /fr/docs/Web/Events/mousedown /fr/docs/Web/API/Element/mousedown_event /fr/docs/Web/Events/mousemove /fr/docs/Web/API/Element/mousemove_event /fr/docs/Web/Events/mouseout /fr/docs/Web/API/Element/mouseout_event /fr/docs/Web/Events/mouseover /fr/docs/Web/API/Element/mouseover_event /fr/docs/Web/Events/mouseup /fr/docs/Web/API/Element/mouseup_event +/fr/docs/Web/Events/pagehide /fr/docs/Web/API/Window/pagehide_event +/fr/docs/Web/Events/pageshow /fr/docs/Web/API/Window/pageshow_event /fr/docs/Web/Events/popstate /fr/docs/Web/API/Window/popstate_event +/fr/docs/Web/Events/readystatechange /fr/docs/Web/API/Document/readystatechange_event /fr/docs/Web/Events/scroll /fr/docs/Web/API/Document/scroll_event /fr/docs/Web/Events/select /fr/docs/Web/API/Element/select_event /fr/docs/Web/Events/storage /fr/docs/Web/API/Window/storage_event -/fr/docs/Web/Events/submit /fr/docs/Web/API/HTMLFormElement/submit_event_ +/fr/docs/Web/Events/submit /fr/docs/Web/API/HTMLFormElement/submit_event /fr/docs/Web/Events/touchend /fr/docs/Web/API/Document/touchend_event -/fr/docs/Web/Guide/CSS /fr/docs/Apprendre/CSS -/fr/docs/Web/Guide/CSS/Flexible_boxes /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox -/fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur /fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur -/fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur/Example /fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur/Example -/fr/docs/Web/Guide/HTML /fr/docs/Apprendre/HTML -/fr/docs/Web/Guide/HTML/Introduction /fr/docs/Apprendre/HTML/Introduction_à_HTML -/fr/docs/Web/HTML/Attributes /fr/docs/Web/HTML/Attributs -/fr/docs/Web/HTML/Attributs_globaux /fr/docs/Web/HTML/Attributs_universels -/fr/docs/Web/HTML/Attributs_globaux/accesskey /fr/docs/Web/HTML/Attributs_universels/accesskey -/fr/docs/Web/HTML/Attributs_globaux/class /fr/docs/Web/HTML/Attributs_universels/class -/fr/docs/Web/HTML/Attributs_globaux/contenteditable /fr/docs/Web/HTML/Attributs_universels/contenteditable -/fr/docs/Web/HTML/Attributs_globaux/contextmenu /fr/docs/Web/HTML/Attributs_universels/contextmenu -/fr/docs/Web/HTML/Attributs_globaux/data-* /fr/docs/Web/HTML/Attributs_universels/data-* -/fr/docs/Web/HTML/Attributs_globaux/dir /fr/docs/Web/HTML/Attributs_universels/dir -/fr/docs/Web/HTML/Attributs_globaux/draggable /fr/docs/Web/HTML/Attributs_universels/draggable -/fr/docs/Web/HTML/Attributs_globaux/dropzone /fr/docs/Web/HTML/Attributs_universels/dropzone -/fr/docs/Web/HTML/Attributs_globaux/hidden /fr/docs/Web/HTML/Attributs_universels/hidden -/fr/docs/Web/HTML/Attributs_globaux/id /fr/docs/Web/HTML/Attributs_universels/id -/fr/docs/Web/HTML/Attributs_globaux/itemid /fr/docs/Web/HTML/Attributs_universels/itemid -/fr/docs/Web/HTML/Attributs_globaux/itemprop /fr/docs/Web/HTML/Attributs_universels/itemprop -/fr/docs/Web/HTML/Attributs_globaux/itemref /fr/docs/Web/HTML/Attributs_universels/itemref -/fr/docs/Web/HTML/Attributs_globaux/itemscope /fr/docs/Web/HTML/Attributs_universels/itemscope -/fr/docs/Web/HTML/Attributs_globaux/itemtype /fr/docs/Web/HTML/Attributs_universels/itemtype -/fr/docs/Web/HTML/Attributs_globaux/lang /fr/docs/Web/HTML/Attributs_universels/lang -/fr/docs/Web/HTML/Attributs_globaux/spellcheck /fr/docs/Web/HTML/Attributs_universels/spellcheck -/fr/docs/Web/HTML/Attributs_globaux/style /fr/docs/Web/HTML/Attributs_universels/style -/fr/docs/Web/HTML/Attributs_globaux/tabindex /fr/docs/Web/HTML/Attributs_universels/tabindex -/fr/docs/Web/HTML/Attributs_globaux/title /fr/docs/Web/HTML/Attributs_universels/title -/fr/docs/Web/HTML/Attributs_globaux/translate /fr/docs/Web/HTML/Attributs_universels/translate +/fr/docs/Web/Events/transitionend /fr/docs/Web/API/HTMLElement/transitionend_event +/fr/docs/Web/Events/unload /fr/docs/Web/API/Window/unload_event +/fr/docs/Web/Guide/AJAX/Communauté /fr/docs/Web/Guide/AJAX/Community +/fr/docs/Web/Guide/AJAX/Premiers_pas /fr/docs/Web/Guide/AJAX/Getting_Started +/fr/docs/Web/Guide/API/Gamepad /fr/docs/Web/API/Gamepad_API/Using_the_Gamepad_API +/fr/docs/Web/Guide/API/WebRTC /fr/docs/conflicting/Web/API/WebRTC_API +/fr/docs/Web/Guide/API/WebRTC/WebRTC_architecture /fr/docs/Web/API/WebRTC_API/Connectivity +/fr/docs/Web/Guide/API/WebRTC/WebRTC_basics /fr/docs/Web/API/WebRTC_API/Signaling_and_video_calling +/fr/docs/Web/Guide/CSS /fr/docs/Learn/CSS +/fr/docs/Web/Guide/CSS/Flexible_boxes /fr/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox +/fr/docs/Web/Guide/DOM /fr/docs/conflicting/Web/API/Document_Object_Model_656f0e51418b39c498011268be9b3a10 +/fr/docs/Web/Guide/DOM/Events /fr/docs/Web/Guide/Events +/fr/docs/Web/Guide/DOM/Events/Creating_and_triggering_events /fr/docs/Web/Guide/Events/Creating_and_triggering_events +/fr/docs/Web/Guide/DOM/Events/Les_données_d_orientation_et_de_mouvement_expliquées /fr/docs/Web/Guide/Events/Orientation_and_motion_data_explained +/fr/docs/Web/Guide/DOM/Events/Touch_events /fr/docs/Web/API/Touch_events +/fr/docs/Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris /fr/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +/fr/docs/Web/Guide/DOM/Events/evenement_medias /fr/docs/Web/Guide/Events/Media_events +/fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur /fr/docs/Web/API/History_API +/fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur/Example /fr/docs/Web/API/History_API/Example +/fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur /fr/docs/Web/API/History_API +/fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur/Example /fr/docs/Web/API/History_API/Example +/fr/docs/Web/Guide/DOM/Using_full_screen_mode /fr/docs/Web/API/Fullscreen_API +/fr/docs/Web/Guide/Graphics/Dessiner_avec_canvas /fr/docs/conflicting/Web/API/Canvas_API/Tutorial +/fr/docs/Web/Guide/HTML /fr/docs/Learn/HTML +/fr/docs/Web/Guide/HTML/Astuces_de_création_de_pages_HTML_à_affichage_rapide /fr/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages +/fr/docs/Web/Guide/HTML/Catégories_de_contenu /fr/docs/Web/Guide/HTML/Content_categories +/fr/docs/Web/Guide/HTML/Formulaires /fr/docs/Learn/Forms +/fr/docs/Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms /fr/docs/Learn/Forms/Advanced_form_styling +/fr/docs/Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML /fr/docs/Learn/Forms/Styling_web_forms +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés /fr/docs/Learn/Forms/How_to_build_custom_form_controls +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_3 /fr/docs/Learn/Forms/How_to_build_custom_form_controls/Example_3 +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_4 /fr/docs/Learn/Forms/How_to_build_custom_form_controls/Example_4 +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_5 /fr/docs/Learn/Forms/How_to_build_custom_form_controls/Example_5 +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_1 /fr/docs/Learn/Forms/How_to_build_custom_form_controls/Example_1 +/fr/docs/Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_2 /fr/docs/Learn/Forms/How_to_build_custom_form_controls/Example_2 +/fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML /fr/docs/Learn/Forms/How_to_structure_a_web_form +/fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple /fr/docs/Learn/Forms/How_to_structure_a_web_form/Example +/fr/docs/Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires /fr/docs/Learn/Forms/Sending_and_retrieving_form_data +/fr/docs/Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers /fr/docs/Learn/Forms/HTML_forms_in_legacy_browsers +/fr/docs/Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs /fr/docs/Learn/Forms/Basic_native_form_controls +/fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML /fr/docs/Learn/Forms/Your_first_form +/fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple /fr/docs/Learn/Forms/Your_first_form/Example +/fr/docs/Web/Guide/HTML/Formulaires/Property_compatibility_table_for_form_widgets /fr/docs/Learn/Forms/Property_compatibility_table_for_form_controls +/fr/docs/Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript /fr/docs/Learn/Forms/Sending_forms_through_JavaScript +/fr/docs/Web/Guide/HTML/Formulaires/Validation_donnees_formulaire /fr/docs/Learn/Forms/Form_validation +/fr/docs/Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5 /fr/docs/conflicting/Web/HTML/Element +/fr/docs/Web/Guide/HTML/Introduction /fr/docs/Learn/HTML/Introduction_to_HTML +/fr/docs/Web/Guide/HTML/Liens_email /fr/docs/conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85 +/fr/docs/Web/Guide/Using_FormData_Objects /fr/docs/conflicting/Web/API/FormData/Using_FormData_Objects +/fr/docs/Web/HTML/Appliquer_des_couleurs /fr/docs/Web/HTML/Applying_color +/fr/docs/Web/HTML/Attributs /fr/docs/Web/HTML/Attributes +/fr/docs/Web/HTML/Attributs/autocomplete /fr/docs/Web/HTML/Attributes/autocomplete +/fr/docs/Web/HTML/Attributs/pattern /fr/docs/Web/HTML/Attributes/pattern +/fr/docs/Web/HTML/Attributs_globaux /fr/docs/Web/HTML/Global_attributes +/fr/docs/Web/HTML/Attributs_globaux/accesskey /fr/docs/Web/HTML/Global_attributes/accesskey +/fr/docs/Web/HTML/Attributs_globaux/class /fr/docs/Web/HTML/Global_attributes/class +/fr/docs/Web/HTML/Attributs_globaux/contenteditable /fr/docs/Web/HTML/Global_attributes/contenteditable +/fr/docs/Web/HTML/Attributs_globaux/contextmenu /fr/docs/Web/HTML/Global_attributes/contextmenu +/fr/docs/Web/HTML/Attributs_globaux/data-* /fr/docs/Web/HTML/Global_attributes/data-* +/fr/docs/Web/HTML/Attributs_globaux/dir /fr/docs/Web/HTML/Global_attributes/dir +/fr/docs/Web/HTML/Attributs_globaux/draggable /fr/docs/Web/HTML/Global_attributes/draggable +/fr/docs/Web/HTML/Attributs_globaux/dropzone /fr/docs/orphaned/Web/HTML/Global_attributes/dropzone +/fr/docs/Web/HTML/Attributs_globaux/hidden /fr/docs/Web/HTML/Global_attributes/hidden +/fr/docs/Web/HTML/Attributs_globaux/id /fr/docs/Web/HTML/Global_attributes/id +/fr/docs/Web/HTML/Attributs_globaux/itemid /fr/docs/Web/HTML/Global_attributes/itemid +/fr/docs/Web/HTML/Attributs_globaux/itemprop /fr/docs/Web/HTML/Global_attributes/itemprop +/fr/docs/Web/HTML/Attributs_globaux/itemref /fr/docs/Web/HTML/Global_attributes/itemref +/fr/docs/Web/HTML/Attributs_globaux/itemscope /fr/docs/Web/HTML/Global_attributes/itemscope +/fr/docs/Web/HTML/Attributs_globaux/itemtype /fr/docs/Web/HTML/Global_attributes/itemtype +/fr/docs/Web/HTML/Attributs_globaux/lang /fr/docs/Web/HTML/Global_attributes/lang +/fr/docs/Web/HTML/Attributs_globaux/spellcheck /fr/docs/Web/HTML/Global_attributes/spellcheck +/fr/docs/Web/HTML/Attributs_globaux/style /fr/docs/Web/HTML/Global_attributes/style +/fr/docs/Web/HTML/Attributs_globaux/tabindex /fr/docs/Web/HTML/Global_attributes/tabindex +/fr/docs/Web/HTML/Attributs_globaux/title /fr/docs/Web/HTML/Global_attributes/title +/fr/docs/Web/HTML/Attributs_globaux/translate /fr/docs/Web/HTML/Global_attributes/translate +/fr/docs/Web/HTML/Attributs_universels /fr/docs/Web/HTML/Global_attributes +/fr/docs/Web/HTML/Attributs_universels/accesskey /fr/docs/Web/HTML/Global_attributes/accesskey +/fr/docs/Web/HTML/Attributs_universels/autocapitalize /fr/docs/Web/HTML/Global_attributes/autocapitalize +/fr/docs/Web/HTML/Attributs_universels/class /fr/docs/Web/HTML/Global_attributes/class +/fr/docs/Web/HTML/Attributs_universels/contenteditable /fr/docs/Web/HTML/Global_attributes/contenteditable +/fr/docs/Web/HTML/Attributs_universels/contextmenu /fr/docs/Web/HTML/Global_attributes/contextmenu +/fr/docs/Web/HTML/Attributs_universels/data-* /fr/docs/Web/HTML/Global_attributes/data-* +/fr/docs/Web/HTML/Attributs_universels/dir /fr/docs/Web/HTML/Global_attributes/dir +/fr/docs/Web/HTML/Attributs_universels/draggable /fr/docs/Web/HTML/Global_attributes/draggable +/fr/docs/Web/HTML/Attributs_universels/dropzone /fr/docs/orphaned/Web/HTML/Global_attributes/dropzone +/fr/docs/Web/HTML/Attributs_universels/hidden /fr/docs/Web/HTML/Global_attributes/hidden +/fr/docs/Web/HTML/Attributs_universels/id /fr/docs/Web/HTML/Global_attributes/id +/fr/docs/Web/HTML/Attributs_universels/inputmode /fr/docs/Web/HTML/Global_attributes/inputmode +/fr/docs/Web/HTML/Attributs_universels/is /fr/docs/Web/HTML/Global_attributes/is +/fr/docs/Web/HTML/Attributs_universels/itemid /fr/docs/Web/HTML/Global_attributes/itemid +/fr/docs/Web/HTML/Attributs_universels/itemprop /fr/docs/Web/HTML/Global_attributes/itemprop +/fr/docs/Web/HTML/Attributs_universels/itemref /fr/docs/Web/HTML/Global_attributes/itemref +/fr/docs/Web/HTML/Attributs_universels/itemscope /fr/docs/Web/HTML/Global_attributes/itemscope +/fr/docs/Web/HTML/Attributs_universels/itemtype /fr/docs/Web/HTML/Global_attributes/itemtype +/fr/docs/Web/HTML/Attributs_universels/lang /fr/docs/Web/HTML/Global_attributes/lang +/fr/docs/Web/HTML/Attributs_universels/slot /fr/docs/Web/HTML/Global_attributes/slot +/fr/docs/Web/HTML/Attributs_universels/spellcheck /fr/docs/Web/HTML/Global_attributes/spellcheck +/fr/docs/Web/HTML/Attributs_universels/style /fr/docs/Web/HTML/Global_attributes/style +/fr/docs/Web/HTML/Attributs_universels/tabindex /fr/docs/Web/HTML/Global_attributes/tabindex +/fr/docs/Web/HTML/Attributs_universels/title /fr/docs/Web/HTML/Global_attributes/title +/fr/docs/Web/HTML/Attributs_universels/translate /fr/docs/Web/HTML/Global_attributes/translate +/fr/docs/Web/HTML/Attributs_universels/x-ms-acceleratorkey /fr/docs/Web/HTML/Global_attributes/x-ms-acceleratorkey +/fr/docs/Web/HTML/Attributs_universels/x-ms-format-detection /fr/docs/Web/HTML/Global_attributes/x-ms-format-detection /fr/docs/Web/HTML/Canvas /fr/docs/Web/API/Canvas_API -/fr/docs/Web/HTML/Catégorie_de_contenu /fr/docs/Web/Guide/HTML/Catégories_de_contenu -/fr/docs/Web/HTML/Controler_la_verification_de_orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Attributs_universels/spellcheck -/fr/docs/Web/HTML/DASH_Adaptive_Streaming_for_HTML_5_Video /fr/docs/Web/HTML/Utiliser_DASH_avec_les_vidéos_en_HTML +/fr/docs/Web/HTML/Catégorie_de_contenu /fr/docs/Web/Guide/HTML/Content_categories +/fr/docs/Web/HTML/Contenu_editable /fr/docs/Web/Guide/HTML/Editable_content +/fr/docs/Web/HTML/Controler_la_verification_de_orthographe_dans_les_formulaires_HTML /fr/docs/Web/HTML/Global_attributes/spellcheck +/fr/docs/Web/HTML/DASH_Adaptive_Streaming_for_HTML_5_Video /fr/docs/Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video /fr/docs/Web/HTML/Element/Input/mois /fr/docs/Web/HTML/Element/Input/month /fr/docs/Web/HTML/Element/Output_{{HTMLVersionInline(5)}}_{{fx_minversion_inline(4)}} /fr/docs/Web/HTML/Element/Output /fr/docs/Web/HTML/Element/Video/canplay_event /fr/docs/Web/API/HTMLMediaElement/canplay_event /fr/docs/Web/HTML/Element/Video/emptied_event /fr/docs/Web/API/HTMLMediaElement/emptied_event /fr/docs/Web/HTML/Element/Video/ended_event /fr/docs/Web/API/HTMLMediaElement/ended_event +/fr/docs/Web/HTML/Element/command /fr/docs/orphaned/Web/HTML/Element/command +/fr/docs/Web/HTML/Element/element /fr/docs/orphaned/Web/HTML/Element/element /fr/docs/Web/HTML/Element/h1 /fr/docs/Web/HTML/Element/Heading_Elements /fr/docs/Web/HTML/Element/h2 /fr/docs/Web/HTML/Element/Heading_Elements /fr/docs/Web/HTML/Element/h3 /fr/docs/Web/HTML/Element/Heading_Elements @@ -3230,41 +4613,109 @@ /fr/docs/Web/HTML/Element/h6 /fr/docs/Web/HTML/Element/Heading_Elements /fr/docs/Web/HTML/Element/video/canplaythrough_event /fr/docs/Web/API/HTMLMediaElement/canplaythrough_event /fr/docs/Web/HTML/Element/video/durationchange_event /fr/docs/Web/API/HTMLMediaElement/durationchange_event +/fr/docs/Web/HTML/Formats_date_heure_HTML /fr/docs/Web/HTML/Date_and_time_formats /fr/docs/Web/HTML/Formats_pour_audio_video /fr/docs/Web/Media/Formats -/fr/docs/Web/HTML/Formulaires /fr/docs/Web/Guide/HTML/Formulaires -/fr/docs/Web/HTML/Formulaires/Apparence_des_formulaires_HTML /fr/docs/Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML -/fr/docs/Web/HTML/Formulaires/Comment_structurer_un_formulaire_HTML /fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML -/fr/docs/Web/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple /fr/docs/Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple -/fr/docs/Web/HTML/Formulaires/Les_blocs_de_formulaires_natifs /fr/docs/Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs -/fr/docs/Web/HTML/Formulaires/Mon_premier_formulaire_HTML /fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML -/fr/docs/Web/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple /fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple +/fr/docs/Web/HTML/Formulaires /fr/docs/Learn/Forms +/fr/docs/Web/HTML/Formulaires/Apparence_des_formulaires_HTML /fr/docs/Learn/Forms/Styling_web_forms +/fr/docs/Web/HTML/Formulaires/Comment_structurer_un_formulaire_HTML /fr/docs/Learn/Forms/How_to_structure_a_web_form +/fr/docs/Web/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple /fr/docs/Learn/Forms/How_to_structure_a_web_form/Example +/fr/docs/Web/HTML/Formulaires/Les_blocs_de_formulaires_natifs /fr/docs/Learn/Forms/Basic_native_form_controls +/fr/docs/Web/HTML/Formulaires/Mon_premier_formulaire_HTML /fr/docs/Learn/Forms/Your_first_form +/fr/docs/Web/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple /fr/docs/Learn/Forms/Your_first_form/Example /fr/docs/Web/HTML/Gestion_du_focus_en_HTML /fr/docs/Web/API/Document/hasFocus -/fr/docs/Web/HTML/Global_attributes /fr/docs/Web/HTML/Attributs_universels -/fr/docs/Web/HTML/Global_attributes/accesskey /fr/docs/Web/HTML/Attributs_universels/accesskey -/fr/docs/Web/HTML/Global_attributes/dropzone /fr/docs/Web/HTML/Attributs_universels/dropzone -/fr/docs/Web/HTML/Global_attributes/title /fr/docs/Web/HTML/Attributs_universels/title -/fr/docs/Web/HTML/Global_attributes/translate /fr/docs/Web/HTML/Attributs_universels/translate +/fr/docs/Web/HTML/Global_attributes/dropzone /fr/docs/orphaned/Web/HTML/Global_attributes/dropzone /fr/docs/Web/HTML/HTML5 /fr/docs/Web/Guide/HTML/HTML5 -/fr/docs/Web/HTML/HTML5/Liste_des_éléments_HTML5 /fr/docs/Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5 -/fr/docs/Web/HTML/Image_avec_ressources_origines_multiples_CORS_activees /fr/docs/Web/HTML/Images_avec_le_contrôle_d_accès_HTTP -/fr/docs/Web/HTML/Inline_elemente /fr/docs/Web/HTML/Éléments_en_ligne -/fr/docs/Web/HTML/Introduction /fr/docs/Apprendre/HTML/Introduction_à_HTML -/fr/docs/Web/HTML/La_vérification_orthographique_dans_les_formulaires /fr/docs/Web/HTML/Attributs_universels/spellcheck -/fr/docs/Web/HTML/Link_types /fr/docs/Web/HTML/Types_de_lien +/fr/docs/Web/HTML/HTML5/Liste_des_éléments_HTML5 /fr/docs/conflicting/Web/HTML/Element +/fr/docs/Web/HTML/Image_avec_ressources_origines_multiples_CORS_activees /fr/docs/Web/HTML/CORS_enabled_image +/fr/docs/Web/HTML/Images_avec_le_contrôle_d_accès_HTTP /fr/docs/Web/HTML/CORS_enabled_image +/fr/docs/Web/HTML/Inline_elemente /fr/docs/Web/HTML/Inline_elements +/fr/docs/Web/HTML/Introduction /fr/docs/Learn/HTML/Introduction_to_HTML +/fr/docs/Web/HTML/Introduction_to_HTML5 /fr/docs/Web/Guide/HTML/HTML5/Introduction_to_HTML5 +/fr/docs/Web/HTML/La_vérification_orthographique_dans_les_formulaires /fr/docs/Web/HTML/Global_attributes/spellcheck +/fr/docs/Web/HTML/Microdonnées /fr/docs/Web/HTML/Microdata +/fr/docs/Web/HTML/Optimizing_your_pages_for_speculative_parsing /fr/docs/Glossary/speculative_parsing +/fr/docs/Web/HTML/Précharger_du_contenu /fr/docs/Web/HTML/Preloading_content +/fr/docs/Web/HTML/Reglages_des_attributs_CORS /fr/docs/Web/HTML/Attributes/crossorigin +/fr/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document /fr/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines +/fr/docs/Web/HTML/Types_de_lien /fr/docs/Web/HTML/Link_types +/fr/docs/Web/HTML/Utilisation_d'audio_et_video_en_HTML5 /fr/docs/conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf +/fr/docs/Web/HTML/Utiliser_Application_Cache /fr/docs/Web/HTML/Using_the_application_cache +/fr/docs/Web/HTML/Utiliser_DASH_avec_les_vidéos_en_HTML /fr/docs/Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video /fr/docs/Web/HTML/formats_media_support /fr/docs/Web/Media/Formats +/fr/docs/Web/HTML/Éléments_en_bloc /fr/docs/Web/HTML/Block-level_elements +/fr/docs/Web/HTML/Éléments_en_ligne /fr/docs/Web/HTML/Inline_elements /fr/docs/Web/HTTP/Access_control_CORS /fr/docs/Web/HTTP/CORS +/fr/docs/Web/HTTP/Aperçu /fr/docs/Web/HTTP/Overview +/fr/docs/Web/HTTP/Basics_of_HTTP/Choisir_entre_les_URLs_www_sans_www /fr/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs +/fr/docs/Web/HTTP/Basics_of_HTTP/Identifier_des_ressources_sur_le_Web /fr/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /fr/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types /fr/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types -/fr/docs/Web/JavaScript/Autres_outils_JavaScript /fr/docs/Outils -/fr/docs/Web/JavaScript/Extensions_JavaScript_Microsoft/debugger /fr/docs/Web/JavaScript/Reference/Instructions/debugger -/fr/docs/Web/JavaScript/Extensions_Microsoft/debugger /fr/docs/Web/JavaScript/Reference/Instructions/debugger -/fr/docs/Web/JavaScript/Guide/BoucleÉvénements /fr/docs/Web/JavaScript/Concurrence_et_boucle_des_événements +/fr/docs/Web/HTTP/Basics_of_HTTP/URLs_de_type_ressource /fr/docs/Web/HTTP/Basics_of_HTTP/Resource_URLs +/fr/docs/Web/HTTP/CORS/Errors/CORSAllowOriginManquant /fr/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin +/fr/docs/Web/HTTP/CORS/Errors/CORSAllowOriginNeCorrespondPas /fr/docs/Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin +/fr/docs/Web/HTTP/CORS/Errors/CORSDesactive /fr/docs/Web/HTTP/CORS/Errors/CORSDisabled +/fr/docs/Web/HTTP/CORS/Errors/CORSNAPasRéussi /fr/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed +/fr/docs/Web/HTTP/Cache /fr/docs/Web/HTTP/Caching +/fr/docs/Web/HTTP/Detection_du_navigateur_en_utilisant_le_user_agent /fr/docs/Web/HTTP/Browser_detection_using_the_user_agent +/fr/docs/Web/HTTP/FAQ_sur_le_préchargement_des_liens /fr/docs/Web/HTTP/Link_prefetching_FAQ +/fr/docs/Web/HTTP/Headers/Serveur /fr/docs/Web/HTTP/Headers/Server +/fr/docs/Web/HTTP/Méthode /fr/docs/Web/HTTP/Methods +/fr/docs/Web/HTTP/Méthode/CONNECT /fr/docs/Web/HTTP/Methods/CONNECT +/fr/docs/Web/HTTP/Méthode/DELETE /fr/docs/Web/HTTP/Methods/DELETE +/fr/docs/Web/HTTP/Méthode/GET /fr/docs/Web/HTTP/Methods/GET +/fr/docs/Web/HTTP/Méthode/HEAD /fr/docs/Web/HTTP/Methods/HEAD +/fr/docs/Web/HTTP/Méthode/OPTIONS /fr/docs/Web/HTTP/Methods/OPTIONS +/fr/docs/Web/HTTP/Méthode/PATCH /fr/docs/Web/HTTP/Methods/PATCH +/fr/docs/Web/HTTP/Méthode/POST /fr/docs/Web/HTTP/Methods/POST +/fr/docs/Web/HTTP/Méthode/PUT /fr/docs/Web/HTTP/Methods/PUT +/fr/docs/Web/HTTP/Méthode/TRACE /fr/docs/Web/HTTP/Methods/TRACE +/fr/docs/Web/HTTP/Requêtes_conditionnelles /fr/docs/Web/HTTP/Conditional_requests +/fr/docs/Web/JavaScript/A_propos /fr/docs/Web/JavaScript/About_JavaScript +/fr/docs/Web/JavaScript/Autres_outils_JavaScript /fr/docs/Tools +/fr/docs/Web/JavaScript/Caractère_énumérable_des_propriétés_et_rattachement /fr/docs/Web/JavaScript/Enumerability_and_ownership_of_properties +/fr/docs/Web/JavaScript/Concurrence_et_boucle_des_événements /fr/docs/Web/JavaScript/EventLoop +/fr/docs/Web/JavaScript/Extensions_JavaScript_Microsoft/debugger /fr/docs/Web/JavaScript/Reference/Statements/debugger +/fr/docs/Web/JavaScript/Extensions_Microsoft/debugger /fr/docs/Web/JavaScript/Reference/Statements/debugger +/fr/docs/Web/JavaScript/Gestion_de_la_mémoire /fr/docs/Web/JavaScript/Memory_Management +/fr/docs/Web/JavaScript/Guide/Apropos /fr/docs/conflicting/Web/JavaScript/Guide/Introduction +/fr/docs/Web/JavaScript/Guide/Boucles_et_itération /fr/docs/Web/JavaScript/Guide/Loops_and_iteration +/fr/docs/Web/JavaScript/Guide/BoucleÉvénements /fr/docs/Web/JavaScript/EventLoop /fr/docs/Web/JavaScript/Guide/Closures /fr/docs/Web/JavaScript/Closures -/fr/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain /fr/docs/Web/JavaScript/Héritage_et_chaîne_de_prototypes -/fr/docs/Web/JavaScript/Guide/Instructions /fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs -/fr/docs/Web/JavaScript/Guide/Le_protocole_iterator /fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration -/fr/docs/Web/JavaScript/Guide/Valeurs,_variables,_et_littéraux /fr/docs/Web/JavaScript/Guide/Types_et_grammaire -/fr/docs/Web/JavaScript/Guide/iterable /fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration -/fr/docs/Web/JavaScript/Les_différents_tests_d_égalité_comment_les_utiliser /fr/docs/Web/JavaScript/Les_différents_tests_d_égalité +/fr/docs/Web/JavaScript/Guide/Collections_avec_clés /fr/docs/Web/JavaScript/Guide/Keyed_collections +/fr/docs/Web/JavaScript/Guide/Collections_indexées /fr/docs/Web/JavaScript/Guide/Indexed_collections +/fr/docs/Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Web/JavaScript/Guide/Expressions_et_Opérateurs /fr/docs/Web/JavaScript/Guide/Expressions_and_Operators +/fr/docs/Web/JavaScript/Guide/Expressions_régulières /fr/docs/Web/JavaScript/Guide/Regular_Expressions +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Assertions /fr/docs/Web/JavaScript/Guide/Regular_Expressions/Assertions +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Classes_de_caractères /fr/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Groupes_et_intervalles /fr/docs/Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Limites /fr/docs/conflicting/Web/JavaScript/Guide/Regular_Expressions/Assertions +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Quantificateurs /fr/docs/Web/JavaScript/Guide/Regular_Expressions/Quantifiers +/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Échappement_propriétés_Unicode /fr/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes +/fr/docs/Web/JavaScript/Guide/Fonctions /fr/docs/Web/JavaScript/Guide/Functions +/fr/docs/Web/JavaScript/Guide/Formatage_du_texte /fr/docs/Web/JavaScript/Guide/Text_formatting +/fr/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain /fr/docs/Web/JavaScript/Inheritance_and_the_prototype_chain +/fr/docs/Web/JavaScript/Guide/Instructions /fr/docs/Web/JavaScript/Guide/Control_flow_and_error_handling +/fr/docs/Web/JavaScript/Guide/JavaScript_Overview /fr/docs/conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b +/fr/docs/Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails /fr/docs/Web/JavaScript/Guide/Details_of_the_Object_Model +/fr/docs/Web/JavaScript/Guide/Le_protocole_iterator /fr/docs/Web/JavaScript/Reference/Iteration_protocols +/fr/docs/Web/JavaScript/Guide/Le_protocole_itérateur_historique /fr/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features/The_legacy_Iterator_protocol +/fr/docs/Web/JavaScript/Guide/Métaprogrammation /fr/docs/Web/JavaScript/Guide/Meta_programming +/fr/docs/Web/JavaScript/Guide/Nombres_et_dates /fr/docs/Web/JavaScript/Guide/Numbers_and_dates +/fr/docs/Web/JavaScript/Guide/Objets_élémentaires_JavaScript /fr/docs/conflicting/Web/JavaScript/Guide +/fr/docs/Web/JavaScript/Guide/Retours_sur_héritage /fr/docs/conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain +/fr/docs/Web/JavaScript/Guide/Types_et_grammaire /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/Web/JavaScript/Guide/Utiliser_le_JSON_natif /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/JSON +/fr/docs/Web/JavaScript/Guide/Utiliser_les_objets /fr/docs/Web/JavaScript/Guide/Working_with_Objects +/fr/docs/Web/JavaScript/Guide/Utiliser_les_promesses /fr/docs/Web/JavaScript/Guide/Using_promises +/fr/docs/Web/JavaScript/Guide/Valeurs,_variables,_et_littéraux /fr/docs/Web/JavaScript/Guide/Grammar_and_types +/fr/docs/Web/JavaScript/Guide/iterable /fr/docs/Web/JavaScript/Reference/Iteration_protocols +/fr/docs/Web/JavaScript/Guide/iterateurs_et_generateurs /fr/docs/Web/JavaScript/Guide/Iterators_and_Generators +/fr/docs/Web/JavaScript/Guide/Égalité_en_JavaScript /fr/docs/conflicting/Web/JavaScript/Equality_comparisons_and_sameness +/fr/docs/Web/JavaScript/Héritage_et_chaîne_de_prototypes /fr/docs/Web/JavaScript/Inheritance_and_the_prototype_chain +/fr/docs/Web/JavaScript/Introduction_à_JavaScript_orienté_objet /fr/docs/conflicting/Learn/JavaScript/Objects +/fr/docs/Web/JavaScript/Introduction_à_l_utilisation_de_XPath_avec_JavaScript /fr/docs/Web/XPath/Introduction_to_using_XPath_in_JavaScript +/fr/docs/Web/JavaScript/Les_différents_tests_d_égalité /fr/docs/Web/JavaScript/Equality_comparisons_and_sameness +/fr/docs/Web/JavaScript/Les_différents_tests_d_égalité_comment_les_utiliser /fr/docs/Web/JavaScript/Equality_comparisons_and_sameness /fr/docs/Web/JavaScript/New_in_JavaScript /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript /fr/docs/Web/JavaScript/New_in_JavaScript/1.1 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.1 /fr/docs/Web/JavaScript/New_in_JavaScript/1.2 /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.2 @@ -3282,172 +4733,1110 @@ /fr/docs/Web/JavaScript/New_in_JavaScript/Support_ECMAScript_5_par_Mozilla /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_5_par_Mozilla /fr/docs/Web/JavaScript/New_in_JavaScript/Support_ECMAScript_6_par_Mozilla /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_2015_par_Mozilla /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_6_par_Mozilla /fr/docs/Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_2015_par_Mozilla +/fr/docs/Web/JavaScript/Performance_les_dangers_liés_à_la_modification_de_Prototype /fr/docs/Web/JavaScript/The_performance_hazards_of_prototype_mutation +/fr/docs/Web/JavaScript/Reference/A_propos /fr/docs/Web/JavaScript/Reference/About +/fr/docs/Web/JavaScript/Reference/Classes/Class_fields /fr/docs/Web/JavaScript/Reference/Classes/Public_class_fields /fr/docs/Web/JavaScript/Reference/Commentaires /fr/docs/Web/JavaScript/Reference/Grammaire_lexicale#Commentaires +/fr/docs/Web/JavaScript/Reference/Erreurs /fr/docs/Web/JavaScript/Reference/Errors +/fr/docs/Web/JavaScript/Reference/Erreurs/Already_has_pragma /fr/docs/Web/JavaScript/Reference/Errors/Already_has_pragma +/fr/docs/Web/JavaScript/Reference/Erreurs/Array_sort_argument /fr/docs/Web/JavaScript/Reference/Errors/Array_sort_argument +/fr/docs/Web/JavaScript/Reference/Erreurs/Bad_octal /fr/docs/Web/JavaScript/Reference/Errors/Bad_octal +/fr/docs/Web/JavaScript/Reference/Erreurs/Bad_radix /fr/docs/Web/JavaScript/Reference/Errors/Bad_radix +/fr/docs/Web/JavaScript/Reference/Erreurs/Bad_regexp_flag /fr/docs/Web/JavaScript/Reference/Errors/Bad_regexp_flag +/fr/docs/Web/JavaScript/Reference/Erreurs/Bad_return_or_yield /fr/docs/Web/JavaScript/Reference/Errors/Bad_return_or_yield +/fr/docs/Web/JavaScript/Reference/Erreurs/Called_on_incompatible_type /fr/docs/Web/JavaScript/Reference/Errors/Called_on_incompatible_type +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_access_lexical_declaration_before_init /fr/docs/Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_access_property /fr/docs/Web/JavaScript/Reference/Errors/Cant_access_property +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_assign_to_property /fr/docs/Web/JavaScript/Reference/Errors/Cant_assign_to_property +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_define_property_object_not_extensible /fr/docs/Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_delete /fr/docs/Web/JavaScript/Reference/Errors/Cant_delete +/fr/docs/Web/JavaScript/Reference/Erreurs/Cant_redefine_property /fr/docs/Web/JavaScript/Reference/Errors/Cant_redefine_property +/fr/docs/Web/JavaScript/Reference/Erreurs/Cyclic_object_value /fr/docs/Web/JavaScript/Reference/Errors/Cyclic_object_value +/fr/docs/Web/JavaScript/Reference/Erreurs/Dead_object /fr/docs/Web/JavaScript/Reference/Errors/Dead_object +/fr/docs/Web/JavaScript/Reference/Erreurs/Delete_in_strict_mode /fr/docs/Web/JavaScript/Reference/Errors/Delete_in_strict_mode +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_String_generics /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_String_generics +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_caller_or_arguments_usage /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_expression_closures /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_expression_closures +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_octal /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_octal +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_source_map_pragma /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma +/fr/docs/Web/JavaScript/Reference/Erreurs/Deprecated_toLocaleFormat /fr/docs/Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat +/fr/docs/Web/JavaScript/Reference/Erreurs/Equal_as_assign /fr/docs/Web/JavaScript/Reference/Errors/Equal_as_assign +/fr/docs/Web/JavaScript/Reference/Erreurs/For-each-in_loops_are_deprecated /fr/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated +/fr/docs/Web/JavaScript/Reference/Erreurs/Getter_only /fr/docs/Web/JavaScript/Reference/Errors/Getter_only +/fr/docs/Web/JavaScript/Reference/Erreurs/Identifier_after_number /fr/docs/Web/JavaScript/Reference/Errors/Identifier_after_number +/fr/docs/Web/JavaScript/Reference/Erreurs/Illegal_character /fr/docs/Web/JavaScript/Reference/Errors/Illegal_character +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_array_length /fr/docs/Web/JavaScript/Reference/Errors/Invalid_array_length +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_assignment_left-hand_side /fr/docs/Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_const_assignment /fr/docs/Web/JavaScript/Reference/Errors/Invalid_const_assignment +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_date /fr/docs/Web/JavaScript/Reference/Errors/Invalid_date +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_for-in_initializer /fr/docs/Web/JavaScript/Reference/Errors/Invalid_for-in_initializer +/fr/docs/Web/JavaScript/Reference/Erreurs/Invalid_for-of_initializer /fr/docs/Web/JavaScript/Reference/Errors/Invalid_for-of_initializer +/fr/docs/Web/JavaScript/Reference/Erreurs/JSON_bad_parse /fr/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse +/fr/docs/Web/JavaScript/Reference/Erreurs/Malformed_URI /fr/docs/Web/JavaScript/Reference/Errors/Malformed_URI +/fr/docs/Web/JavaScript/Reference/Erreurs/Malformed_formal_parameter /fr/docs/Web/JavaScript/Reference/Errors/Malformed_formal_parameter +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_bracket_after_list /fr/docs/Web/JavaScript/Reference/Errors/Missing_bracket_after_list +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_colon_after_property_id /fr/docs/Web/JavaScript/Reference/Errors/Missing_colon_after_property_id +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_curly_after_function_body /fr/docs/Web/JavaScript/Reference/Errors/Missing_curly_after_function_body +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_curly_after_property_list /fr/docs/Web/JavaScript/Reference/Errors/Missing_curly_after_property_list +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_formal_parameter /fr/docs/Web/JavaScript/Reference/Errors/Missing_formal_parameter +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_initializer_in_const /fr/docs/Web/JavaScript/Reference/Errors/Missing_initializer_in_const +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_name_after_dot_operator /fr/docs/Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_parenthesis_after_argument_list /fr/docs/Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_parenthesis_after_condition /fr/docs/Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition +/fr/docs/Web/JavaScript/Reference/Erreurs/Missing_semicolon_before_statement /fr/docs/Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement +/fr/docs/Web/JavaScript/Reference/Erreurs/More_arguments_needed /fr/docs/Web/JavaScript/Reference/Errors/More_arguments_needed +/fr/docs/Web/JavaScript/Reference/Erreurs/Negative_repetition_count /fr/docs/Web/JavaScript/Reference/Errors/Negative_repetition_count +/fr/docs/Web/JavaScript/Reference/Erreurs/No_non-null_object /fr/docs/Web/JavaScript/Reference/Errors/No_non-null_object +/fr/docs/Web/JavaScript/Reference/Erreurs/No_properties /fr/docs/Web/JavaScript/Reference/Errors/No_properties +/fr/docs/Web/JavaScript/Reference/Erreurs/No_variable_name /fr/docs/Web/JavaScript/Reference/Errors/No_variable_name +/fr/docs/Web/JavaScript/Reference/Erreurs/Non_configurable_array_element /fr/docs/Web/JavaScript/Reference/Errors/Non_configurable_array_element +/fr/docs/Web/JavaScript/Reference/Erreurs/Not_a_codepoint /fr/docs/Web/JavaScript/Reference/Errors/Not_a_codepoint +/fr/docs/Web/JavaScript/Reference/Erreurs/Not_a_constructor /fr/docs/Web/JavaScript/Reference/Errors/Not_a_constructor +/fr/docs/Web/JavaScript/Reference/Erreurs/Not_a_function /fr/docs/Web/JavaScript/Reference/Errors/Not_a_function +/fr/docs/Web/JavaScript/Reference/Erreurs/Not_defined /fr/docs/Web/JavaScript/Reference/Errors/Not_defined +/fr/docs/Web/JavaScript/Reference/Erreurs/Precision_range /fr/docs/Web/JavaScript/Reference/Errors/Precision_range +/fr/docs/Web/JavaScript/Reference/Erreurs/Property_access_denied /fr/docs/Web/JavaScript/Reference/Errors/Property_access_denied +/fr/docs/Web/JavaScript/Reference/Erreurs/Read-only /fr/docs/Web/JavaScript/Reference/Errors/Read-only +/fr/docs/Web/JavaScript/Reference/Erreurs/Redeclared_parameter /fr/docs/Web/JavaScript/Reference/Errors/Redeclared_parameter +/fr/docs/Web/JavaScript/Reference/Erreurs/Reduce_of_empty_array_with_no_initial_value /fr/docs/Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value +/fr/docs/Web/JavaScript/Reference/Erreurs/Reserved_identifier /fr/docs/Web/JavaScript/Reference/Errors/Reserved_identifier +/fr/docs/Web/JavaScript/Reference/Erreurs/Resulting_string_too_large /fr/docs/Web/JavaScript/Reference/Errors/Resulting_string_too_large +/fr/docs/Web/JavaScript/Reference/Erreurs/Stmt_after_return /fr/docs/Web/JavaScript/Reference/Errors/Stmt_after_return +/fr/docs/Web/JavaScript/Reference/Erreurs/Strict_Non_Simple_Params /fr/docs/Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params +/fr/docs/Web/JavaScript/Reference/Erreurs/Too_much_recursion /fr/docs/Web/JavaScript/Reference/Errors/Too_much_recursion +/fr/docs/Web/JavaScript/Reference/Erreurs/Typed_array_invalid_arguments /fr/docs/Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments +/fr/docs/Web/JavaScript/Reference/Erreurs/Undeclared_var /fr/docs/Web/JavaScript/Reference/Errors/Undeclared_var +/fr/docs/Web/JavaScript/Reference/Erreurs/Undefined_prop /fr/docs/Web/JavaScript/Reference/Errors/Undefined_prop +/fr/docs/Web/JavaScript/Reference/Erreurs/Unexpected_token /fr/docs/Web/JavaScript/Reference/Errors/Unexpected_token +/fr/docs/Web/JavaScript/Reference/Erreurs/Unexpected_type /fr/docs/Web/JavaScript/Reference/Errors/Unexpected_type +/fr/docs/Web/JavaScript/Reference/Erreurs/Unnamed_function_statement /fr/docs/Web/JavaScript/Reference/Errors/Unnamed_function_statement +/fr/docs/Web/JavaScript/Reference/Erreurs/Unterminated_string_literal /fr/docs/Web/JavaScript/Reference/Errors/Unterminated_string_literal +/fr/docs/Web/JavaScript/Reference/Erreurs/Var_hides_argument /fr/docs/Web/JavaScript/Reference/Errors/Var_hides_argument +/fr/docs/Web/JavaScript/Reference/Erreurs/in_operator_no_object /fr/docs/Web/JavaScript/Reference/Errors/in_operator_no_object +/fr/docs/Web/JavaScript/Reference/Erreurs/invalid_right_hand_side_instanceof_operand /fr/docs/Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand +/fr/docs/Web/JavaScript/Reference/Erreurs/is_not_iterable /fr/docs/Web/JavaScript/Reference/Errors/is_not_iterable +/fr/docs/Web/JavaScript/Reference/Fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/Web/JavaScript/Reference/Fonctions/Définition_de_méthode /fr/docs/Web/JavaScript/Reference/Functions/Method_definitions +/fr/docs/Web/JavaScript/Reference/Fonctions/Fonctions_fléchées /fr/docs/Web/JavaScript/Reference/Functions/Arrow_functions /fr/docs/Web/JavaScript/Reference/Fonctions/Strict_mode /fr/docs/Web/JavaScript/Reference/Strict_mode -/fr/docs/Web/JavaScript/Reference/Fonctions/Strict_mode/Passer_au_mode_strict /fr/docs/Web/JavaScript/Reference/Strict_mode/Passer_au_mode_strict -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Fonctions -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Définition_de_méthode /fr/docs/Web/JavaScript/Reference/Fonctions/Définition_de_méthode +/fr/docs/Web/JavaScript/Reference/Fonctions/Strict_mode/Passer_au_mode_strict /fr/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode +/fr/docs/Web/JavaScript/Reference/Fonctions/Valeurs_par_défaut_des_arguments /fr/docs/Web/JavaScript/Reference/Functions/Default_parameters +/fr/docs/Web/JavaScript/Reference/Fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/Web/JavaScript/Reference/Fonctions/arguments/@@iterator /fr/docs/Web/JavaScript/Reference/Functions/arguments/@@iterator +/fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee +/fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/Web/JavaScript/Reference/Fonctions/get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/Web/JavaScript/Reference/Fonctions/paramètres_du_reste /fr/docs/Web/JavaScript/Reference/Functions/rest_parameters +/fr/docs/Web/JavaScript/Reference/Fonctions/set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions /fr/docs/Web/JavaScript/Reference/Functions +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Définition_de_méthode /fr/docs/Web/JavaScript/Reference/Functions/Method_definitions /fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Strict_mode /fr/docs/Web/JavaScript/Reference/Strict_mode -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Strict_mode/Passer_au_mode_strict /fr/docs/Web/JavaScript/Reference/Strict_mode/Passer_au_mode_strict -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Fonctions/arguments -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/callee +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/Strict_mode/Passer_au_mode_strict /fr/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments /fr/docs/Web/JavaScript/Reference/Functions/arguments +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/callee /fr/docs/Web/JavaScript/Reference/Functions/arguments/callee /fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/caller /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/caller -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Fonctions/arguments/length -/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/paramètres_du_reste /fr/docs/Web/JavaScript/Reference/Fonctions/paramètres_du_reste -/fr/docs/Web/JavaScript/Reference/Gabarit_chaînes_caractères /fr/docs/Web/JavaScript/Reference/Littéraux_gabarits -/fr/docs/Web/JavaScript/Reference/Global_Objects/Array /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/isArray -/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/of /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/of -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asIntN /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/asIntN -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asUintN /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/asUintN -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/prototype -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/toLocaleString -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/toString -/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/valueOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/valueOf -/fr/docs/Web/JavaScript/Reference/Global_Objects/JSON /fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON -/fr/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify /fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/stringify -/fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global /fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global -/fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global/prototype +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/arguments/length /fr/docs/Web/JavaScript/Reference/Functions/arguments/length +/fr/docs/Web/JavaScript/Reference/Fonctions_et_portee_des_fonctions/paramètres_du_reste /fr/docs/Web/JavaScript/Reference/Functions/rest_parameters +/fr/docs/Web/JavaScript/Reference/Gabarit_chaînes_caractères /fr/docs/Web/JavaScript/Reference/Template_literals +/fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/BigInt/prototype +/fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global +/fr/docs/Web/JavaScript/Reference/Grammaire_lexicale /fr/docs/Web/JavaScript/Reference/Lexical_grammar /fr/docs/Web/JavaScript/Reference/Index_des_méthodes /fr/docs/Web/JavaScript/Reference /fr/docs/Web/JavaScript/Reference/Index_propriétés /fr/docs/Web/JavaScript/Reference +/fr/docs/Web/JavaScript/Reference/Instructions /fr/docs/Web/JavaScript/Reference/Statements +/fr/docs/Web/JavaScript/Reference/Instructions/Vide /fr/docs/Web/JavaScript/Reference/Statements/Empty +/fr/docs/Web/JavaScript/Reference/Instructions/async_function /fr/docs/Web/JavaScript/Reference/Statements/async_function +/fr/docs/Web/JavaScript/Reference/Instructions/bloc /fr/docs/Web/JavaScript/Reference/Statements/block +/fr/docs/Web/JavaScript/Reference/Instructions/break /fr/docs/Web/JavaScript/Reference/Statements/break +/fr/docs/Web/JavaScript/Reference/Instructions/class /fr/docs/Web/JavaScript/Reference/Statements/class +/fr/docs/Web/JavaScript/Reference/Instructions/const /fr/docs/Web/JavaScript/Reference/Statements/const +/fr/docs/Web/JavaScript/Reference/Instructions/continue /fr/docs/Web/JavaScript/Reference/Statements/continue +/fr/docs/Web/JavaScript/Reference/Instructions/debugger /fr/docs/Web/JavaScript/Reference/Statements/debugger +/fr/docs/Web/JavaScript/Reference/Instructions/default /fr/docs/conflicting/Web/JavaScript/Reference/Statements/switch +/fr/docs/Web/JavaScript/Reference/Instructions/do...while /fr/docs/Web/JavaScript/Reference/Statements/do...while +/fr/docs/Web/JavaScript/Reference/Instructions/export /fr/docs/Web/JavaScript/Reference/Statements/export +/fr/docs/Web/JavaScript/Reference/Instructions/for /fr/docs/Web/JavaScript/Reference/Statements/for +/fr/docs/Web/JavaScript/Reference/Instructions/for-await...of /fr/docs/Web/JavaScript/Reference/Statements/for-await...of +/fr/docs/Web/JavaScript/Reference/Instructions/for...in /fr/docs/Web/JavaScript/Reference/Statements/for...in +/fr/docs/Web/JavaScript/Reference/Instructions/for...of /fr/docs/Web/JavaScript/Reference/Statements/for...of +/fr/docs/Web/JavaScript/Reference/Instructions/function /fr/docs/Web/JavaScript/Reference/Statements/function +/fr/docs/Web/JavaScript/Reference/Instructions/function* /fr/docs/Web/JavaScript/Reference/Statements/function* +/fr/docs/Web/JavaScript/Reference/Instructions/if...else /fr/docs/Web/JavaScript/Reference/Statements/if...else +/fr/docs/Web/JavaScript/Reference/Instructions/import /fr/docs/Web/JavaScript/Reference/Statements/import +/fr/docs/Web/JavaScript/Reference/Instructions/import.meta /fr/docs/Web/JavaScript/Reference/Statements/import.meta +/fr/docs/Web/JavaScript/Reference/Instructions/label /fr/docs/Web/JavaScript/Reference/Statements/label +/fr/docs/Web/JavaScript/Reference/Instructions/let /fr/docs/Web/JavaScript/Reference/Statements/let +/fr/docs/Web/JavaScript/Reference/Instructions/return /fr/docs/Web/JavaScript/Reference/Statements/return +/fr/docs/Web/JavaScript/Reference/Instructions/switch /fr/docs/Web/JavaScript/Reference/Statements/switch +/fr/docs/Web/JavaScript/Reference/Instructions/throw /fr/docs/Web/JavaScript/Reference/Statements/throw +/fr/docs/Web/JavaScript/Reference/Instructions/try...catch /fr/docs/Web/JavaScript/Reference/Statements/try...catch +/fr/docs/Web/JavaScript/Reference/Instructions/var /fr/docs/Web/JavaScript/Reference/Statements/var +/fr/docs/Web/JavaScript/Reference/Instructions/while /fr/docs/Web/JavaScript/Reference/Statements/while +/fr/docs/Web/JavaScript/Reference/Instructions/with /fr/docs/Web/JavaScript/Reference/Statements/with +/fr/docs/Web/JavaScript/Reference/Les_protocoles_iteration /fr/docs/Web/JavaScript/Reference/Iteration_protocols +/fr/docs/Web/JavaScript/Reference/Littéraux_gabarits /fr/docs/Web/JavaScript/Reference/Template_literals /fr/docs/Web/JavaScript/Reference/Methods_Index /fr/docs/Web/JavaScript/Reference -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/contains /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/includes -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/flatten /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/flat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/futexWake /fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/notify -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/futexWakeOrRequeue /fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/wWake /fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/notify -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/wake /fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/notify -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/compare /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/compare -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Date -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/format /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/format -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatRange /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRange -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatRangeToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRangeToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Function -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/format /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/format -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/formatToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/format /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/format -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/formatToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/baseName /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/baseName -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/calendar /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/calendar -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/caseFirst /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/caseFirst -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/collation /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/collation -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/hourCycle /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/hourCycle -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/language /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/language -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/maximize /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/maximize -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/minimize /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/minimize -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/numberingSystem /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numberingSystem -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/numeric /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numeric -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/region /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/region -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/script /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/script -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/toString /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/toString -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/Number -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/format /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/format -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/formatToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/SyntaxError /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError -/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/SyntaxError/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules -/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/select /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/select -/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/format /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/format -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/formatToParts -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/prototype /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/resolvedOptions -/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf -/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/constructor /fr/docs/Web/JavaScript/Reference/Objets_globaux/String -/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimLeft /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimStart -/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimRight /fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimEnd -/fr/docs/Web/JavaScript/Reference/Objets_globaux/pop /fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop -/fr/docs/Web/JavaScript/Reference/Operators /fr/docs/Web/JavaScript/Reference/Opérateurs +/fr/docs/Web/JavaScript/Reference/Mots_réservés /fr/docs/conflicting/Web/JavaScript/Reference/Lexical_grammar +/fr/docs/Web/JavaScript/Reference/Objets_globaux /fr/docs/Web/JavaScript/Reference/Global_Objects +/fr/docs/Web/JavaScript/Reference/Objets_globaux/AggregateError /fr/docs/Web/JavaScript/Reference/Global_Objects/AggregateError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/@@iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/@@unscopables /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/@@unscopables +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/concat /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/concat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/contains /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/includes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/copyWithin /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/copyWithin +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/entries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/every /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/every +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/fill /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/fill +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/filter +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/find /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/find +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/findIndex /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/flat /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/flat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/flatMap /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/flatten /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/flat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/from /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/from +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/includes /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/includes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/isArray /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/join /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/join +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/keys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/length +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/map +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/of /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/of +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/push /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/push +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/reverse /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/shift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/shift +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/slice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/some /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/some +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/sort /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/sort +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/splice /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/splice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/unshift /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/values /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/values +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/byteLength /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/isView /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/ArrayBuffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/AsyncFunction /fr/docs/Web/JavaScript/Reference/Global_Objects/AsyncFunction +/fr/docs/Web/JavaScript/Reference/Objets_globaux/AsyncFunction/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/add /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/add +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/and /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/and +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/compareExchange /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/exchange /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/exchange +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/futexWake /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/notify +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/futexWakeOrRequeue /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/isLockFree /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/load /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/load +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/notify /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/notify +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/or /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/or +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/store /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/store +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/sub /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/sub +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/wWake /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/notify +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/wait /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/wait +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/wake /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/notify +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Atomics/xor /fr/docs/Web/JavaScript/Reference/Global_Objects/Atomics/xor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/asIntN /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asIntN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/asUintN /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asUintN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/prototype /fr/docs/orphaned/Web/JavaScript/Reference/Global_Objects/BigInt/prototype +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigInt64Array /fr/docs/Web/JavaScript/Reference/Global_Objects/BigInt64Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/BigUint64Array /fr/docs/Web/JavaScript/Reference/Global_Objects/BigUint64Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Boolean +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Boolean/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Boolean/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/compare /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Collator/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/buffer /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/buffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/byteLength /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/byteLength +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/byteOffset /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/byteOffset +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getBigInt64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getBigInt64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getBigUint64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getBigUint64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getFloat32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getFloat32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getFloat64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getFloat64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getInt16 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt16 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getInt32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getInt8 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getInt8 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getUint16 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint16 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getUint32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/getUint8 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/getUint8 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/DataView +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setBigInt64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setBigInt64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setBigUint64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setBigUint64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setFloat32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setFloat32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setFloat64 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setFloat64 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setInt16 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt16 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setInt32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setInt8 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setInt8 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setUint16 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint16 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setUint32 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DataView/setUint8 /fr/docs/Web/JavaScript/Reference/Global_Objects/DataView/setUint8 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/@@toPrimitive /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/UTC /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getDay +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMinutes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getSeconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getTimezoneOffset /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCDay /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDay +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getUTCSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/getYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/getYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/now /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/now +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/parse +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMinutes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setMonth +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setSeconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setTime /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setTime +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCDate /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCFullYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCHours /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMilliseconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMinutes /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCMonth /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setUTCSeconds /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setYear /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toDateString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toDateString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toGMTString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toGMTString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toISOString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toJSON /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleTimeString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toTimeString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toUTCString /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/valueOF /fr/docs/Web/JavaScript/Reference/Global_Objects/Date/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatRange /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatRangeToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error /fr/docs/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/Stack /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/columnNumber /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/columnNumber +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/fileName /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/fileName +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/lineNumber /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/lineNumber +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/message /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/message +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/name /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/name +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Error +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Error/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Error/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/EvalError /fr/docs/Web/JavaScript/Reference/Global_Objects/EvalError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/EvalError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/EvalError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Float32Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Float32Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Float64Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Float64Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/apply /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/apply +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/arguments /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/arguments +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/bind /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/bind +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/call /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/call +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/caller /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/caller +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/displayName /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/displayName +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/length /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/length +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/name /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/name +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Function +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Function/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Function/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Generator /fr/docs/Web/JavaScript/Reference/Global_Objects/Generator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Generator/next /fr/docs/Web/JavaScript/Reference/Global_Objects/Generator/next +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Generator/return /fr/docs/Web/JavaScript/Reference/Global_Objects/Generator/return +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Generator/throw /fr/docs/Web/JavaScript/Reference/Global_Objects/Generator/throw +/fr/docs/Web/JavaScript/Reference/Objets_globaux/GeneratorFunction /fr/docs/Web/JavaScript/Reference/Global_Objects/GeneratorFunction +/fr/docs/Web/JavaScript/Reference/Objets_globaux/GeneratorFunction/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Infinity /fr/docs/Web/JavaScript/Reference/Global_Objects/Infinity +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Int16Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Int16Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Int32Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Int32Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Int8Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Int8Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/InternalError /fr/docs/Web/JavaScript/Reference/Global_Objects/InternalError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/InternalError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/InternalError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl.RelativeTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/compare /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Collator/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRange /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRangeToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/baseName /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/baseName +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/calendar /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/caseFirst /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/caseFirst +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/collation /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/collation +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/hourCycle /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/language /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/language +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/maximize /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/maximize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/minimize /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/minimize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numberingSystem /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numberingSystem +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numeric /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numeric +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Locale +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/region /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/region +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/script /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/script +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/Locale/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/select /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/select +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Intl/getCanonicalLocales /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales +/fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON +/fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/parse /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse +/fr/docs/Web/JavaScript/Reference/Objets_globaux/JSON/stringify /fr/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ListFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/baseName /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/baseName +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/calendar /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/caseFirst /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/caseFirst +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/collation /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/collation +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/hourCycle /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/language /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/language +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/maximize /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/maximize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/minimize /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/minimize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/numberingSystem /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numberingSystem +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/numeric /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/numeric +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Locale +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/region /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/region +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/script /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/script +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Locale/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map /fr/docs/Web/JavaScript/Reference/Global_Objects/Map +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/@@iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/@@iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/@@toStringTag /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/clear /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/clear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/delete /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/delete +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/entries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/get /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/get +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/has /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/keys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Map +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/set /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/size /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/size +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Map/values /fr/docs/Web/JavaScript/Reference/Global_Objects/Map/values +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math /fr/docs/Web/JavaScript/Reference/Global_Objects/Math +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/E +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN10 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN10 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LN2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LN2 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG10E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG10E +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/LOG2E /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/LOG2E +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/PI /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/PI +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT1_2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/SQRT2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/SQRT2 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/abs /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/abs +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acos +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/acosh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/acosh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asin +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/asinh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/asinh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atan2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/atanh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/atanh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cbrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cbrt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/ceil /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/clz32 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cos /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cos +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/cosh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/cosh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/exp /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/exp +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/expm1 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/floor /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/floor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/fround /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/fround +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/hypot /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/hypot +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/imul /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/imul +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log10 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log10 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log1p /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log1p +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/log2 /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/log2 +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/max /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/max +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/min /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/min +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/pow /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/pow +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/random /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/random +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/round /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/round +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sign /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sign +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sin /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sin +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sinh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sinh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/sqrt /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tan /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tan +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/tanh /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/tanh +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Math/trunc /fr/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NaN /fr/docs/Web/JavaScript/Reference/Global_Objects/NaN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/EPSILON /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MAX_SAFE_INTEGER /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MAX_VALUE /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MIN_SAFE_INTEGER /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/MIN_VALUE /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/NEGATIVE_INFINITY /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/NaN /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/NaN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/POSITIVE_INFINITY /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/isInteger /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/isSafeInteger /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Number +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toExponential /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toExponential +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toFixed /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toPrecision /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Number/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/NumberFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/SyntaxError /fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/SyntaxError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/assign /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/create /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/create +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__ +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineProperties /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/defineSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__ +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/entries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/freeze /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/fromEntries /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyDescriptor /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyDescriptors /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyNames /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertySymbols /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/getPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/is /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/is +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isExtensible /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isExtensible +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isFrozen /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/isSealed /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/isSealed +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/keys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupGetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__ +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/lookupSetter /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__ +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/preventExtensions /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/preventExtensions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/proto /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/proto +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/seal /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/seal +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/setPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/values /fr/docs/Web/JavaScript/Reference/Global_Objects/Object/values +/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules +/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/select /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/select +/fr/docs/Web/JavaScript/Reference/Objets_globaux/PluralRules/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/all /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/all +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/allSettled /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/allSettled +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/any /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/any +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/catch /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/finally /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Promise +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/race /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/race +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/reject /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/resolve /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/then /fr/docs/Web/JavaScript/Reference/Global_Objects/Promise/then +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/apply /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/construct /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/defineProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/deleteProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/get /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getOwnPropertyDescriptor /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/has /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/isExtensible /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/isExtensible +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/ownKeys /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/preventExtensions /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/preventExtensions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/set /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler/setPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/setPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/revocable /fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/revocable +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RangeError /fr/docs/Web/JavaScript/Reference/Global_Objects/RangeError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RangeError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/RangeError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ReferenceError /fr/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/ReferenceError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/Comparaison_entre_Reflect_et_les_méthodes_Object /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/Comparing_Reflect_and_Object_methods +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/apply /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/apply +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/construct /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/defineProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/deleteProperty /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/get /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/get +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/getOwnPropertyDescriptor /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/getPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/has /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/isExtensible /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/ownKeys /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/preventExtensions /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/set /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Reflect/setPrototypeOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@match /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@match +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@matchAll /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@replace /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@replace +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@search /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@search +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/@@split /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/@@split +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/compile /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/compile +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/dotAll /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/exec /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/flags /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/flags +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/global /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/global +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/ignoreCase /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/input /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/input +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/lastIndex /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/lastMatch /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/lastParen /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastParen +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/leftContext /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/leftContext +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/multiline /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/multiline +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/n /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/n +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/RegExp +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/rightContext /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/rightContext +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/source /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/source +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/sticky /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/sticky +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/test /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RegExp/unicode /fr/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicode +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/Intl.RelativeTimeFormat.supportedLocalesOf() /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/format /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/formatToParts /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/resolvedOptions /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions +/fr/docs/Web/JavaScript/Reference/Objets_globaux/RelativeTimeFormat/supportedLocalesOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set /fr/docs/Web/JavaScript/Reference/Global_Objects/Set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/@@iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/@@iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/add /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/add +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/clear /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/clear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/delete /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/delete +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/entries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/forEach +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/has /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/size /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/size +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Set/values /fr/docs/Web/JavaScript/Reference/Global_Objects/Set/values +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer /fr/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/byteLength /fr/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/@@iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/String/@@iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/Trim /fr/docs/Web/JavaScript/Reference/Global_Objects/String/Trim +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/anchor /fr/docs/Web/JavaScript/Reference/Global_Objects/String/anchor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/big /fr/docs/Web/JavaScript/Reference/Global_Objects/String/big +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/blink /fr/docs/Web/JavaScript/Reference/Global_Objects/String/blink +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/bold /fr/docs/Web/JavaScript/Reference/Global_Objects/String/bold +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/charAt /fr/docs/Web/JavaScript/Reference/Global_Objects/String/charAt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/charCodeAt /fr/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/codePointAt /fr/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/concat /fr/docs/Web/JavaScript/Reference/Global_Objects/String/concat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/constructor /fr/docs/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/endsWith /fr/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/fixed /fr/docs/Web/JavaScript/Reference/Global_Objects/String/fixed +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/fontcolor /fr/docs/Web/JavaScript/Reference/Global_Objects/String/fontcolor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/fontsize /fr/docs/Web/JavaScript/Reference/Global_Objects/String/fontsize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/fromCharCode /fr/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/fromCodePoint /fr/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/includes /fr/docs/Web/JavaScript/Reference/Global_Objects/String/includes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/italics /fr/docs/Web/JavaScript/Reference/Global_Objects/String/italics +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/length /fr/docs/Web/JavaScript/Reference/Global_Objects/String/length +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/link /fr/docs/Web/JavaScript/Reference/Global_Objects/String/link +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/localeCompare /fr/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/match /fr/docs/Web/JavaScript/Reference/Global_Objects/String/match +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/matchAll /fr/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/normalize /fr/docs/Web/JavaScript/Reference/Global_Objects/String/normalize +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/padEnd /fr/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/padStart /fr/docs/Web/JavaScript/Reference/Global_Objects/String/padStart +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/String +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/raw /fr/docs/Web/JavaScript/Reference/Global_Objects/String/raw +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/repeat /fr/docs/Web/JavaScript/Reference/Global_Objects/String/repeat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replace +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/replaceAll /fr/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/search /fr/docs/Web/JavaScript/Reference/Global_Objects/String/search +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/String/slice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/small /fr/docs/Web/JavaScript/Reference/Global_Objects/String/small +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split /fr/docs/Web/JavaScript/Reference/Global_Objects/String/split +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/startsWith /fr/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/strike /fr/docs/Web/JavaScript/Reference/Global_Objects/String/strike +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/sub /fr/docs/Web/JavaScript/Reference/Global_Objects/String/sub +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substr /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substr +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substring /fr/docs/Web/JavaScript/Reference/Global_Objects/String/substring +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/sup /fr/docs/Web/JavaScript/Reference/Global_Objects/String/sup +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toLocaleLowerCase /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toLocaleUpperCase /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toLowerCase /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/toUpperCase /fr/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimEnd /fr/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimLeft /fr/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimRight /fr/docs/Web/JavaScript/Reference/Global_Objects/String/trimEnd +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/trimStart /fr/docs/Web/JavaScript/Reference/Global_Objects/String/trimStart +/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/String/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/@@toPrimitive /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/@@toPrimitive +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/asyncIterator /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/description /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/description +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/for /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/hasInstance /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/isConcatSpreadable /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/keyFor /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/keyFor +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/match /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/matchAll /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/matchAll +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Symbol +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/replace /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/replace +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/search /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/search +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/species /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/split /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/toPrimitive /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/toSource /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toSource +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/toStringTag /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/unscopables /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/unscopables +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Symbol/valueOf /fr/docs/Web/JavaScript/Reference/Global_Objects/Symbol/valueOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError /fr/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypeError /fr/docs/Web/JavaScript/Reference/Global_Objects/TypeError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypeError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/TypeError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/@@iterator /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/@@iterator +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/@@species /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/@@species +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/BYTES_PER_ELEMENT /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/buffer /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/buffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/byteLength /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteLength +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/byteOffset /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/byteOffset +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/copyWithin /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/entries /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/every /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/every +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/fill /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/fill +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/filter /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/find /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/find +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/findIndex /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/forEach /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/forEach +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/from /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/from +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/includes /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/includes +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/indexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/join /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/join +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/keys /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/keys +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/lastIndexOf /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/length /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/length +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/map /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/map +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/name /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/name +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/of /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/of +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/reduce /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/reduceRight /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/reverse /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reverse +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/set /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/slice /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/slice +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/some /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/some +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/sort /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/sort +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/subarray /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/toLocaleString /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toLocaleString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/toString /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/toString +/fr/docs/Web/JavaScript/Reference/Objets_globaux/TypedArray/values /fr/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/values +/fr/docs/Web/JavaScript/Reference/Objets_globaux/URIError /fr/docs/Web/JavaScript/Reference/Global_Objects/URIError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/URIError/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/URIError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Uint16Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Uint32Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Uint8Array /fr/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array +/fr/docs/Web/JavaScript/Reference/Objets_globaux/Uint8ClampedArray /fr/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/clear /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/clear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/delete /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/delete +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/get /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/get +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/has /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/set /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakSet +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet/add /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/add +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet/clear /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/clear +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet/delete /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/delete +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet/has /fr/docs/Web/JavaScript/Reference/Global_Objects/WeakSet/has +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakSet/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/CompileError /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/CompileError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/exports /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance/exports +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/LinkError /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/LinkError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/buffer /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/grow /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/customSections /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/customSections +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/exports /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/exports +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/imports /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/imports +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/RuntimeError /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/RuntimeError +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/get /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/get +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/grow /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/grow +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/length /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/length +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/prototype /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/set /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/set +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/compile /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/compile +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/compileStreaming /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/instantiate /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/instantiateStreaming /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming +/fr/docs/Web/JavaScript/Reference/Objets_globaux/WebAssembly/validate /fr/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/validate +/fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURI +/fr/docs/Web/JavaScript/Reference/Objets_globaux/decodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent +/fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURI /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURI +/fr/docs/Web/JavaScript/Reference/Objets_globaux/encodeURIComponent /fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent +/fr/docs/Web/JavaScript/Reference/Objets_globaux/escape /fr/docs/Web/JavaScript/Reference/Global_Objects/escape +/fr/docs/Web/JavaScript/Reference/Objets_globaux/eval /fr/docs/Web/JavaScript/Reference/Global_Objects/eval +/fr/docs/Web/JavaScript/Reference/Objets_globaux/globalThis /fr/docs/Web/JavaScript/Reference/Global_Objects/globalThis +/fr/docs/Web/JavaScript/Reference/Objets_globaux/isFinite /fr/docs/Web/JavaScript/Reference/Global_Objects/isFinite +/fr/docs/Web/JavaScript/Reference/Objets_globaux/isNaN /fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN +/fr/docs/Web/JavaScript/Reference/Objets_globaux/null /fr/docs/Web/JavaScript/Reference/Global_Objects/null +/fr/docs/Web/JavaScript/Reference/Objets_globaux/parseFloat /fr/docs/Web/JavaScript/Reference/Global_Objects/parseFloat +/fr/docs/Web/JavaScript/Reference/Objets_globaux/parseInt /fr/docs/Web/JavaScript/Reference/Global_Objects/parseInt +/fr/docs/Web/JavaScript/Reference/Objets_globaux/pop /fr/docs/Web/JavaScript/Reference/Global_Objects/Array/pop +/fr/docs/Web/JavaScript/Reference/Objets_globaux/undefined /fr/docs/Web/JavaScript/Reference/Global_Objects/undefined +/fr/docs/Web/JavaScript/Reference/Objets_globaux/unescape /fr/docs/Web/JavaScript/Reference/Global_Objects/unescape +/fr/docs/Web/JavaScript/Reference/Objets_globaux/uneval /fr/docs/Web/JavaScript/Reference/Global_Objects/uneval +/fr/docs/Web/JavaScript/Reference/Opérateurs /fr/docs/Web/JavaScript/Reference/Operators +/fr/docs/Web/JavaScript/Reference/Opérateurs/Addition /fr/docs/Web/JavaScript/Reference/Operators/Addition +/fr/docs/Web/JavaScript/Reference/Opérateurs/Addition_avec_assignement /fr/docs/Web/JavaScript/Reference/Operators/Addition_assignment +/fr/docs/Web/JavaScript/Reference/Opérateurs/Affecter_par_décomposition /fr/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment +/fr/docs/Web/JavaScript/Reference/Opérateurs/Assignement /fr/docs/Web/JavaScript/Reference/Operators/Assignment /fr/docs/Web/JavaScript/Reference/Opérateurs/Generator_comprehensions /fr/docs/Web/JavaScript/Reference/Opérateurs/Compréhensions_de_générateur -/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_get /fr/docs/Web/JavaScript/Reference/Fonctions/get -/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_set /fr/docs/Web/JavaScript/Reference/Fonctions/set +/fr/docs/Web/JavaScript/Reference/Opérateurs/Groupement /fr/docs/Web/JavaScript/Reference/Operators/Grouping +/fr/docs/Web/JavaScript/Reference/Opérateurs/Initialisateur_objet /fr/docs/Web/JavaScript/Reference/Operators/Object_initializer +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel /fr/docs/Web/JavaScript/Reference/Operators/Conditional_Operator +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_delete /fr/docs/Web/JavaScript/Reference/Operators/delete +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_function /fr/docs/Web/JavaScript/Reference/Operators/function +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_get /fr/docs/Web/JavaScript/Reference/Functions/get +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in /fr/docs/Web/JavaScript/Reference/Operators/in +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_new /fr/docs/Web/JavaScript/Reference/Operators/new +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_set /fr/docs/Web/JavaScript/Reference/Functions/set +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_this /fr/docs/Web/JavaScript/Reference/Operators/this +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof /fr/docs/Web/JavaScript/Reference/Operators/typeof +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule /fr/docs/Web/JavaScript/Reference/Operators/Comma_Operator +/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_void /fr/docs/Web/JavaScript/Reference/Operators/void +/fr/docs/Web/JavaScript/Reference/Opérateurs/Nullish_coalescing_operator /fr/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator +/fr/docs/Web/JavaScript/Reference/Opérateurs/Optional_chaining /fr/docs/Web/JavaScript/Reference/Operators/Optional_chaining +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires /fr/docs/conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3 +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation /fr/docs/conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes /fr/docs/conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9 +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison /fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55 +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_de_membres /fr/docs/Web/JavaScript/Reference/Operators/Property_Accessors +/fr/docs/Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques /fr/docs/conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f +/fr/docs/Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs /fr/docs/Web/JavaScript/Reference/Operators/Operator_Precedence +/fr/docs/Web/JavaScript/Reference/Opérateurs/Syntaxe_décomposition /fr/docs/Web/JavaScript/Reference/Operators/Spread_syntax +/fr/docs/Web/JavaScript/Reference/Opérateurs/Tube /fr/docs/Web/JavaScript/Reference/Operators/Pipeline_operator +/fr/docs/Web/JavaScript/Reference/Opérateurs/async_function /fr/docs/Web/JavaScript/Reference/Operators/async_function +/fr/docs/Web/JavaScript/Reference/Opérateurs/await /fr/docs/Web/JavaScript/Reference/Operators/await +/fr/docs/Web/JavaScript/Reference/Opérateurs/class /fr/docs/Web/JavaScript/Reference/Operators/class /fr/docs/Web/JavaScript/Reference/Opérateurs/constructor /fr/docs/Web/JavaScript/Reference/Classes/constructor /fr/docs/Web/JavaScript/Reference/Opérateurs/extends /fr/docs/Web/JavaScript/Reference/Classes/extends -/fr/docs/Web/JavaScript/Reference/Valeurs_par_défaut_des_arguments /fr/docs/Web/JavaScript/Reference/Fonctions/Valeurs_par_défaut_des_arguments -/fr/docs/Web/JavaScript/Reference/fonctions_fléchées /fr/docs/Web/JavaScript/Reference/Fonctions/Fonctions_fléchées -/fr/docs/Web/JavaScript/Same_origin_policy_for_JavaScript /fr/docs/Web/Security/Same_origin_policy_for_JavaScript -/fr/docs/Web/JavaScript/décoder_encoder_en_base64 /fr/docs/Web/API/WindowBase64/Décoder_encoder_en_base64 +/fr/docs/Web/JavaScript/Reference/Opérateurs/function* /fr/docs/Web/JavaScript/Reference/Operators/function* +/fr/docs/Web/JavaScript/Reference/Opérateurs/instanceof /fr/docs/Web/JavaScript/Reference/Operators/instanceof +/fr/docs/Web/JavaScript/Reference/Opérateurs/new.target /fr/docs/Web/JavaScript/Reference/Operators/new.target +/fr/docs/Web/JavaScript/Reference/Opérateurs/super /fr/docs/Web/JavaScript/Reference/Operators/super +/fr/docs/Web/JavaScript/Reference/Opérateurs/yield /fr/docs/Web/JavaScript/Reference/Operators/yield +/fr/docs/Web/JavaScript/Reference/Opérateurs/yield* /fr/docs/Web/JavaScript/Reference/Operators/yield* +/fr/docs/Web/JavaScript/Reference/Strict_mode/Passer_au_mode_strict /fr/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode +/fr/docs/Web/JavaScript/Reference/Valeurs_par_défaut_des_arguments /fr/docs/Web/JavaScript/Reference/Functions/Default_parameters +/fr/docs/Web/JavaScript/Reference/Virgules_finales /fr/docs/Web/JavaScript/Reference/Trailing_commas +/fr/docs/Web/JavaScript/Reference/fonctions_fléchées /fr/docs/Web/JavaScript/Reference/Functions/Arrow_functions +/fr/docs/Web/JavaScript/Same_origin_policy_for_JavaScript /fr/docs/Web/Security/Same-origin_policy +/fr/docs/Web/JavaScript/Structures_de_données /fr/docs/Web/JavaScript/Data_structures +/fr/docs/Web/JavaScript/Tableaux_typés /fr/docs/Web/JavaScript/Typed_arrays +/fr/docs/Web/JavaScript/Une_réintroduction_à_JavaScript /fr/docs/Web/JavaScript/A_re-introduction_to_JavaScript +/fr/docs/Web/JavaScript/décoder_encoder_en_base64 /fr/docs/Glossary/Base64 +/fr/docs/Web/JavaScript/guide_de_demarrage /fr/docs/conflicting/Learn/Getting_started_with_the_web/JavaScript_basics +/fr/docs/Web/MathML/Attribute/Valeurs /fr/docs/Web/MathML/Attribute/Values +/fr/docs/Web/MathML/Exemples /fr/docs/Web/MathML/Examples +/fr/docs/Web/MathML/Exemples/Dériver_la_Formule_Quadratique /fr/docs/Web/MathML/Examples/Deriving_the_Quadratic_Formula +/fr/docs/Web/MathML/Exemples/MathML_Theoreme_de_Pythagore /fr/docs/Web/MathML/Examples/MathML_Pythagorean_Theorem +/fr/docs/Web/Media/Formats/Questions_sur_le_soutien /fr/docs/Web/Media/Formats/Support_issues +/fr/docs/Web/Media/Formats/Types_des_images /fr/docs/Web/Media/Formats/Image_types +/fr/docs/Web/Performance/Budgets_de_performance /fr/docs/Web/Performance/Performance_budgets +/fr/docs/Web/Progressive_web_apps/Adaptative /fr/docs/Web/Progressive_web_apps/Responsive/responsive_design_building_blocks +/fr/docs/Web/Progressive_web_apps/Chargement /fr/docs/Web/Progressive_web_apps/Loading +/fr/docs/Web/Progressive_web_apps/Identifiable /fr/docs/conflicting/Web/Progressive_web_apps +/fr/docs/Web/Progressive_web_apps/Independante_du_reseau /fr/docs/conflicting/Web/Progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31 +/fr/docs/Web/Progressive_web_apps/Installable /fr/docs/conflicting/Web/Progressive_web_apps_7b3e1886320599eacfee6834ead473f1 +/fr/docs/Web/Progressive_web_apps/Partageable /fr/docs/conflicting/Web/Progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc +/fr/docs/Web/Progressive_web_apps/Progressive /fr/docs/conflicting/Web/Progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf +/fr/docs/Web/Progressive_web_apps/Re-engageable /fr/docs/conflicting/Web/Progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67 +/fr/docs/Web/Progressive_web_apps/Relancer_Via_Notifications_Push /fr/docs/Web/Progressive_web_apps/Re-engageable_Notifications_Push +/fr/docs/Web/Progressive_web_apps/Securisee /fr/docs/conflicting/Web/Progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b +/fr/docs/Web/Progressive_web_apps/ajouter_a_lecran_daccueil_a2hs /fr/docs/Web/Progressive_web_apps/Add_to_home_screen +/fr/docs/Web/SVG/Application_d_effets_SVG_a_du_contenu_HTML /fr/docs/Web/SVG/Applying_SVG_effects_to_HTML_content /fr/docs/Web/SVG/Element/cercle /fr/docs/Web/SVG/Element/circle -/fr/docs/Web/SVG/Tutoriel/Découpages_et_masquage /fr/docs/Web/SVG/Tutoriel/Découpages_et_masquages -/fr/docs/Web/SVG/Tutoriel_SVG /fr/docs/Web/SVG/Tutoriel -/fr/docs/Web/SVG/Tutoriel_SVG/Introduction /fr/docs/Web/SVG/Tutoriel/Introduction -/fr/docs/Web/SVG/Tutoriel_SVG/Premiers_pas /fr/docs/Web/SVG/Tutoriel/Premiers_pas +/fr/docs/Web/SVG/SVG_en_tant_qu_image /fr/docs/Web/SVG/SVG_as_an_Image +/fr/docs/Web/SVG/Sources_compatibilite /fr/docs/Web/SVG/Compatibility_sources +/fr/docs/Web/SVG/Tutoriel /fr/docs/Web/SVG/Tutorial +/fr/docs/Web/SVG/Tutoriel/Contenu_embarque_SVG /fr/docs/Web/SVG/Tutorial/Other_content_in_SVG +/fr/docs/Web/SVG/Tutoriel/Découpages_et_masquage /fr/docs/Web/SVG/Tutorial/Clipping_and_masking +/fr/docs/Web/SVG/Tutoriel/Découpages_et_masquages /fr/docs/Web/SVG/Tutorial/Clipping_and_masking +/fr/docs/Web/SVG/Tutoriel/Fills_and_Strokes /fr/docs/Web/SVG/Tutorial/Fills_and_Strokes +/fr/docs/Web/SVG/Tutoriel/Formes_de_base /fr/docs/Web/SVG/Tutorial/Basic_Shapes +/fr/docs/Web/SVG/Tutoriel/Gradients /fr/docs/Web/SVG/Tutorial/Gradients +/fr/docs/Web/SVG/Tutoriel/Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/Web/SVG/Tutoriel/Introduction_à_SVG_dans_HTML /fr/docs/Web/SVG/Tutorial/SVG_In_HTML_Introduction +/fr/docs/Web/SVG/Tutoriel/Motifs /fr/docs/Web/SVG/Tutorial/Patterns +/fr/docs/Web/SVG/Tutoriel/Paths /fr/docs/Web/SVG/Tutorial/Paths +/fr/docs/Web/SVG/Tutoriel/Positionnement /fr/docs/Web/SVG/Tutorial/Positions +/fr/docs/Web/SVG/Tutoriel/Premiers_pas /fr/docs/Web/SVG/Tutorial/Getting_Started +/fr/docs/Web/SVG/Tutoriel/SVG_Image_Tag /fr/docs/Web/SVG/Tutorial/SVG_Image_Tag +/fr/docs/Web/SVG/Tutoriel/Texts /fr/docs/Web/SVG/Tutorial/Texts +/fr/docs/Web/SVG/Tutoriel/Tools_for_SVG /fr/docs/Web/SVG/Tutorial/Tools_for_SVG +/fr/docs/Web/SVG/Tutoriel/Transformations_de_base /fr/docs/Web/SVG/Tutorial/Basic_Transformations +/fr/docs/Web/SVG/Tutoriel/filtres /fr/docs/Web/SVG/Tutorial/Filter_effects +/fr/docs/Web/SVG/Tutoriel/polices_SVG /fr/docs/Web/SVG/Tutorial/SVG_fonts +/fr/docs/Web/SVG/Tutoriel_SVG /fr/docs/Web/SVG/Tutorial +/fr/docs/Web/SVG/Tutoriel_SVG/Introduction /fr/docs/Web/SVG/Tutorial/Introduction +/fr/docs/Web/SVG/Tutoriel_SVG/Premiers_pas /fr/docs/Web/SVG/Tutorial/Getting_Started +/fr/docs/Web/Security/Public_Key_Pinning /fr/docs/Web/HTTP/Public_Key_Pinning +/fr/docs/Web/Security/Same_origin_policy_for_JavaScript /fr/docs/Web/Security/Same-origin_policy +/fr/docs/Web/Tutoriels /fr/docs/Web/Tutorials /fr/docs/Web/WebGL /fr/docs/Web/API/WebGL_API -/fr/docs/Web/WebGL/Adding_2D_content_to_a_WebGL_context /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/Web/WebGL/Animer_des_objets_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL -/fr/docs/Web/WebGL/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -/fr/docs/Web/WebGL/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/Web/WebGL/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -/fr/docs/Web/WebGL/Using_shaders_to_apply_color_in_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders -/fr/docs/Web/WebGL/Utiliser_les_textures_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL +/fr/docs/Web/WebGL/Adding_2D_content_to_a_WebGL_context /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/Web/WebGL/Animer_des_objets_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL +/fr/docs/Web/WebGL/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/Web/WebGL/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/Web/WebGL/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/Web/WebGL/Using_shaders_to_apply_color_in_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/fr/docs/Web/WebGL/Utiliser_les_textures_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL /fr/docs/Web/Web_Components/Shadow_DOM /fr/docs/Web/Web_Components/Using_shadow_DOM -/fr/docs/Web/XSLT/Interface_XSLT_JavaScript_dans_Gecko /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko -/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Définition_de_paramètres /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Définition_de_paramètres -/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_avancé /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_avancé -/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_basique /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_basique -/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Les_liaisons_JavaScript_XSLT -/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Ressources /fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Ressources +/fr/docs/Web/Web_Components/Utilisation_des_templates_et_des_slots /fr/docs/Web/Web_Components/Using_templates_and_slots +/fr/docs/Web/XML/Introduction_à_XML /fr/docs/Web/XML/XML_introduction +/fr/docs/Web/XPath/Fonctions /fr/docs/Web/XPath/Functions +/fr/docs/Web/XPath/Fonctions/boolean /fr/docs/Web/XPath/Functions/boolean +/fr/docs/Web/XPath/Fonctions/ceiling /fr/docs/Web/XPath/Functions/ceiling +/fr/docs/Web/XPath/Fonctions/concat /fr/docs/Web/XPath/Functions/concat +/fr/docs/Web/XPath/Fonctions/contains /fr/docs/Web/XPath/Functions/contains +/fr/docs/Web/XPath/Fonctions/count /fr/docs/Web/XPath/Functions/count +/fr/docs/Web/XPath/Fonctions/current /fr/docs/Web/XPath/Functions/current +/fr/docs/Web/XPath/Fonctions/document /fr/docs/Web/XPath/Functions/document +/fr/docs/Web/XPath/Fonctions/element-available /fr/docs/Web/XPath/Functions/element-available +/fr/docs/Web/XPath/Fonctions/false /fr/docs/Web/XPath/Functions/false +/fr/docs/Web/XPath/Fonctions/floor /fr/docs/Web/XPath/Functions/floor +/fr/docs/Web/XPath/Fonctions/format-number /fr/docs/Web/XPath/Functions/format-number +/fr/docs/Web/XPath/Fonctions/function-available /fr/docs/Web/XPath/Functions/function-available +/fr/docs/Web/XPath/Fonctions/generate-id /fr/docs/Web/XPath/Functions/generate-id +/fr/docs/Web/XPath/Fonctions/id /fr/docs/Web/XPath/Functions/id +/fr/docs/Web/XPath/Fonctions/key /fr/docs/Web/XPath/Functions/key +/fr/docs/Web/XPath/Fonctions/lang /fr/docs/Web/XPath/Functions/lang +/fr/docs/Web/XPath/Fonctions/last /fr/docs/Web/XPath/Functions/last +/fr/docs/Web/XPath/Fonctions/local-name /fr/docs/Web/XPath/Functions/local-name +/fr/docs/Web/XPath/Fonctions/name /fr/docs/Web/XPath/Functions/name +/fr/docs/Web/XPath/Fonctions/namespace-uri /fr/docs/Web/XPath/Functions/namespace-uri +/fr/docs/Web/XPath/Fonctions/normalize-space /fr/docs/Web/XPath/Functions/normalize-space +/fr/docs/Web/XPath/Fonctions/not /fr/docs/Web/XPath/Functions/not +/fr/docs/Web/XPath/Fonctions/number /fr/docs/Web/XPath/Functions/number +/fr/docs/Web/XPath/Fonctions/position /fr/docs/Web/XPath/Functions/position +/fr/docs/Web/XPath/Fonctions/round /fr/docs/Web/XPath/Functions/round +/fr/docs/Web/XPath/Fonctions/starts-with /fr/docs/Web/XPath/Functions/starts-with +/fr/docs/Web/XPath/Fonctions/string /fr/docs/Web/XPath/Functions/string +/fr/docs/Web/XPath/Fonctions/string-length /fr/docs/Web/XPath/Functions/string-length +/fr/docs/Web/XPath/Fonctions/substring /fr/docs/Web/XPath/Functions/substring +/fr/docs/Web/XPath/Fonctions/substring-after /fr/docs/Web/XPath/Functions/substring-after +/fr/docs/Web/XPath/Fonctions/substring-before /fr/docs/Web/XPath/Functions/substring-before +/fr/docs/Web/XPath/Fonctions/sum /fr/docs/Web/XPath/Functions/sum +/fr/docs/Web/XPath/Fonctions/system-property /fr/docs/Web/XPath/Functions/system-property +/fr/docs/Web/XPath/Fonctions/translate /fr/docs/Web/XPath/Functions/translate +/fr/docs/Web/XPath/Fonctions/true /fr/docs/Web/XPath/Functions/true +/fr/docs/Web/XPath/Fonctions/unparsed-entity-url /fr/docs/Web/XPath/Functions/unparsed-entity-url +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Définition_de_paramètres /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_avancé /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_basique /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings +/fr/docs/Web/XSLT/Interface_XSLT_JS_dans_Gecko/Ressources /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources +/fr/docs/Web/XSLT/Interface_XSLT_JavaScript_dans_Gecko /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko +/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Définition_de_paramètres /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters +/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_avancé /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example +/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Exemple_basique /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example +/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Les_liaisons_JavaScript_XSLT /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings +/fr/docs/Web/XSLT/L'interface_XSLT_JavaScript_dans_Gecko/Ressources /fr/docs/Web/XSLT/XSLT_JS_interface_in_Gecko/Resources +/fr/docs/Web/XSLT/Paramètres_des_instructions_de_traitement /fr/docs/Web/XSLT/PI_Parameters +/fr/docs/Web/XSLT/Sommaire /fr/docs/Web/XSLT/Index +/fr/docs/Web/XSLT/Transformations_XML_avec_XSLT /fr/docs/Web/XSLT/Transforming_XML_with_XSLT +/fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Autres_ressources /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading +/fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference +/fr/docs/Web/XSLT/Transformations_XML_avec_XSLT/Présentation /fr/docs/Web/XSLT/Transforming_XML_with_XSLT/An_Overview +/fr/docs/Web/XSLT/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL /fr/docs/Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations +/fr/docs/Web/XSLT/apply-imports /fr/docs/Web/XSLT/Element/apply-imports +/fr/docs/Web/XSLT/apply-templates /fr/docs/Web/XSLT/Element/apply-templates +/fr/docs/Web/XSLT/attribute /fr/docs/Web/XSLT/Element/attribute +/fr/docs/Web/XSLT/attribute-set /fr/docs/Web/XSLT/Element/attribute-set +/fr/docs/Web/XSLT/call-template /fr/docs/Web/XSLT/Element/call-template +/fr/docs/Web/XSLT/choose /fr/docs/Web/XSLT/Element/choose +/fr/docs/Web/XSLT/comment /fr/docs/Web/XSLT/Element/comment +/fr/docs/Web/XSLT/copy /fr/docs/Web/XSLT/Element/copy +/fr/docs/Web/XSLT/copy-of /fr/docs/Web/XSLT/Element/copy-of +/fr/docs/Web/XSLT/decimal-format /fr/docs/Web/XSLT/Element/decimal-format +/fr/docs/Web/XSLT/fallback /fr/docs/Web/XSLT/Element/fallback +/fr/docs/Web/XSLT/for-each /fr/docs/Web/XSLT/Element/for-each +/fr/docs/Web/XSLT/if /fr/docs/Web/XSLT/Element/if +/fr/docs/Web/XSLT/import /fr/docs/Web/XSLT/Element/import +/fr/docs/Web/XSLT/include /fr/docs/Web/XSLT/Element/include +/fr/docs/Web/XSLT/key /fr/docs/Web/XSLT/Element/key +/fr/docs/Web/XSLT/message /fr/docs/Web/XSLT/Element/message +/fr/docs/Web/XSLT/namespace-alias /fr/docs/Web/XSLT/Element/namespace-alias +/fr/docs/Web/XSLT/number /fr/docs/Web/XSLT/Element/number +/fr/docs/Web/XSLT/otherwise /fr/docs/Web/XSLT/Element/otherwise +/fr/docs/Web/XSLT/output /fr/docs/Web/XSLT/Element/output +/fr/docs/Web/XSLT/param /fr/docs/Web/XSLT/Element/param +/fr/docs/Web/XSLT/preserve-space /fr/docs/Web/XSLT/Element/preserve-space +/fr/docs/Web/XSLT/processing-instruction /fr/docs/Web/XSLT/Element/processing-instruction +/fr/docs/Web/XSLT/sort /fr/docs/Web/XSLT/Element/sort +/fr/docs/Web/XSLT/strip-space /fr/docs/Web/XSLT/Element/strip-space +/fr/docs/Web/XSLT/stylesheet /fr/docs/Web/XSLT/Element/stylesheet +/fr/docs/Web/XSLT/template /fr/docs/Web/XSLT/Element/template +/fr/docs/Web/XSLT/text /fr/docs/Web/XSLT/Element/text +/fr/docs/Web/XSLT/transform /fr/docs/Web/XSLT/Element/transform +/fr/docs/Web/XSLT/value-of /fr/docs/Web/XSLT/Element/value-of +/fr/docs/Web/XSLT/variable /fr/docs/Web/XSLT/Element/variable +/fr/docs/Web/XSLT/when /fr/docs/Web/XSLT/Element/when +/fr/docs/Web/XSLT/with-param /fr/docs/Web/XSLT/Element/with-param /fr/docs/Web/XSLT/Éléments /fr/docs/Web/XSLT/Element /fr/docs/Web/XSLT/Éléments/element /fr/docs/Web/XSLT/Element/element +/fr/docs/WebAPI /fr/docs/conflicting/Web/API_dd04ca1265cb79b990b8120e5f5070d3 /fr/docs/WebAPI/Battery_Status /fr/docs/Web/API/Battery_status_API +/fr/docs/WebAPI/Detecting_device_orientation /fr/docs/Web/API/Detecting_device_orientation +/fr/docs/WebAPI/Network_Information /fr/docs/Web/API/Network_Information_API +/fr/docs/WebAPI/Pointer_Lock /fr/docs/Web/API/Pointer_Lock_API +/fr/docs/WebAPI/Proximity /fr/docs/Web/API/Proximity_Events +/fr/docs/WebAPI/Utiliser_les_événéments_de_luminosité /fr/docs/Web/API/Ambient_Light_Events /fr/docs/WebGL /fr/docs/Web/API/WebGL_API -/fr/docs/WebGL/Adding_2D_content_to_a_WebGL_context /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/WebGL/Ajouter_des_couleurs_avec_les_shaders /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders -/fr/docs/WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/WebGL/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -/fr/docs/WebGL/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/WebGL/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL +/fr/docs/WebGL/Adding_2D_content_to_a_WebGL_context /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/WebGL/Ajouter_des_couleurs_avec_les_shaders /fr/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/fr/docs/WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/WebGL/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/WebGL/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/WebGL/Commencer_avec_le_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL /fr/docs/WebGL/Tutorial /fr/docs/Web/API/WebGL_API/Tutorial -/fr/docs/WebGL/Tutorial/Ajouter_des_couleurs_avec_les_shaders /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders -/fr/docs/WebGL/Tutorial/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/WebGL/Tutorial/Animer_des_objets_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL -/fr/docs/WebGL/Tutorial/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL -/fr/docs/WebGL/Tutorial/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL -/fr/docs/WebGL/Tutorial/Creer_des_objets_3D_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Creer_des_objets_3D_avec_WebGL -/fr/docs/WebGL/Tutorial/Utiliser_les_textures_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL -/fr/docs/WebGL/Using_shaders_to_apply_color_in_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders +/fr/docs/WebGL/Tutorial/Ajouter_des_couleurs_avec_les_shaders /fr/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/fr/docs/WebGL/Tutorial/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/WebGL/Tutorial/Animer_des_objets_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL +/fr/docs/WebGL/Tutorial/Commencer_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL +/fr/docs/WebGL/Tutorial/Commencer_avec_WebGL/Ajouter_du_contenu_à_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context +/fr/docs/WebGL/Tutorial/Creer_des_objets_3D_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL +/fr/docs/WebGL/Tutorial/Utiliser_les_textures_avec_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL +/fr/docs/WebGL/Using_shaders_to_apply_color_in_WebGL /fr/docs/Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL +/fr/docs/WebRTC /fr/docs/conflicting/Web/API/WebRTC_API_d8621144cbc61520339c3b10c61731f0 +/fr/docs/WebRTC/Introduction /fr/docs/Web/API/WebRTC_API/Session_lifetime +/fr/docs/WebRTC/MediaStream_API /fr/docs/Web/API/Media_Streams_API +/fr/docs/WebRTC/Prendre_des_photos_avec_la_webcam /fr/docs/Web/API/WebRTC_API/Taking_still_photos +/fr/docs/WebRTC/communication-de-pair-a-pair-avec-WebRTC /fr/docs/Web/Guide/API/WebRTC/Peer-to-peer_communications_with_WebRTC /fr/docs/WebSockets /fr/docs/Web/API/WebSockets_API /fr/docs/WebSockets/Writing_WebSocket_client_applications /fr/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications /fr/docs/WebSockets/Writing_WebSocket_servers /fr/docs/Web/API/WebSockets_API/Writing_WebSocket_servers /fr/docs/WebSockets/Writing_a_WebSocket_server_in_Java /fr/docs/Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java /fr/docs/Web_Development/Mobile/Responsive_design /fr/docs/Web/Progressive_web_apps +/fr/docs/XHTML /fr/docs/Glossary/XHTML /fr/docs/XMLHttpRequest /fr/docs/Web/API/XMLHttpRequest /fr/docs/XMLHttpRequest/FormData /fr/docs/Web/API/FormData -/fr/docs/XMLHttpRequest/Utiliser_XMLHttpRequest /fr/docs/Web/API/XMLHttpRequest/Utiliser_XMLHttpRequest +/fr/docs/XMLHttpRequest/Utiliser_XMLHttpRequest /fr/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest +/fr/docs/XMLSerializer /fr/docs/Web/API/XMLSerializer +/fr/docs/XPCOM/Liaisons_de_langage/Objet_Components /fr/docs/orphaned/XPCOM/Liaisons_de_langage/Objet_Components /fr/docs/XPCOM/Reference/Interface /fr/docs/XPCOM_Interface_Reference +/fr/docs/XPCOM/Reference/Standard_XPCOM_components /fr/docs/orphaned/XPCOM/Reference/Standard_XPCOM_components /fr/docs/XPCOM:Liaisons_de_langage /fr/docs/XPCOM/Liaisons_de_langage /fr/docs/XPath /fr/docs/Web/XPath /fr/docs/XPath/Axes /fr/docs/Web/XPath/Axes @@ -3464,43 +5853,43 @@ /fr/docs/XPath/Axes/preceding /fr/docs/Web/XPath/Axes/preceding /fr/docs/XPath/Axes/preceding-sibling /fr/docs/Web/XPath/Axes/preceding-sibling /fr/docs/XPath/Axes/self /fr/docs/Web/XPath/Axes/self -/fr/docs/XPath/Fonctions /fr/docs/Web/XPath/Fonctions -/fr/docs/XPath/Fonctions/boolean /fr/docs/Web/XPath/Fonctions/boolean -/fr/docs/XPath/Fonctions/ceiling /fr/docs/Web/XPath/Fonctions/ceiling -/fr/docs/XPath/Fonctions/concat /fr/docs/Web/XPath/Fonctions/concat -/fr/docs/XPath/Fonctions/contains /fr/docs/Web/XPath/Fonctions/contains -/fr/docs/XPath/Fonctions/count /fr/docs/Web/XPath/Fonctions/count -/fr/docs/XPath/Fonctions/current /fr/docs/Web/XPath/Fonctions/current -/fr/docs/XPath/Fonctions/document /fr/docs/Web/XPath/Fonctions/document -/fr/docs/XPath/Fonctions/element-available /fr/docs/Web/XPath/Fonctions/element-available -/fr/docs/XPath/Fonctions/false /fr/docs/Web/XPath/Fonctions/false -/fr/docs/XPath/Fonctions/floor /fr/docs/Web/XPath/Fonctions/floor -/fr/docs/XPath/Fonctions/format-number /fr/docs/Web/XPath/Fonctions/format-number -/fr/docs/XPath/Fonctions/function-available /fr/docs/Web/XPath/Fonctions/function-available -/fr/docs/XPath/Fonctions/generate-id /fr/docs/Web/XPath/Fonctions/generate-id -/fr/docs/XPath/Fonctions/id /fr/docs/Web/XPath/Fonctions/id -/fr/docs/XPath/Fonctions/key /fr/docs/Web/XPath/Fonctions/key -/fr/docs/XPath/Fonctions/lang /fr/docs/Web/XPath/Fonctions/lang -/fr/docs/XPath/Fonctions/last /fr/docs/Web/XPath/Fonctions/last -/fr/docs/XPath/Fonctions/local-name /fr/docs/Web/XPath/Fonctions/local-name -/fr/docs/XPath/Fonctions/name /fr/docs/Web/XPath/Fonctions/name -/fr/docs/XPath/Fonctions/namespace-uri /fr/docs/Web/XPath/Fonctions/namespace-uri -/fr/docs/XPath/Fonctions/normalize-space /fr/docs/Web/XPath/Fonctions/normalize-space -/fr/docs/XPath/Fonctions/not /fr/docs/Web/XPath/Fonctions/not -/fr/docs/XPath/Fonctions/number /fr/docs/Web/XPath/Fonctions/number -/fr/docs/XPath/Fonctions/position /fr/docs/Web/XPath/Fonctions/position -/fr/docs/XPath/Fonctions/round /fr/docs/Web/XPath/Fonctions/round -/fr/docs/XPath/Fonctions/starts-with /fr/docs/Web/XPath/Fonctions/starts-with -/fr/docs/XPath/Fonctions/string /fr/docs/Web/XPath/Fonctions/string -/fr/docs/XPath/Fonctions/string-length /fr/docs/Web/XPath/Fonctions/string-length -/fr/docs/XPath/Fonctions/substring /fr/docs/Web/XPath/Fonctions/substring -/fr/docs/XPath/Fonctions/substring-after /fr/docs/Web/XPath/Fonctions/substring-after -/fr/docs/XPath/Fonctions/substring-before /fr/docs/Web/XPath/Fonctions/substring-before -/fr/docs/XPath/Fonctions/sum /fr/docs/Web/XPath/Fonctions/sum -/fr/docs/XPath/Fonctions/system-property /fr/docs/Web/XPath/Fonctions/system-property -/fr/docs/XPath/Fonctions/translate /fr/docs/Web/XPath/Fonctions/translate -/fr/docs/XPath/Fonctions/true /fr/docs/Web/XPath/Fonctions/true -/fr/docs/XPath/Fonctions/unparsed-entity-url /fr/docs/Web/XPath/Fonctions/unparsed-entity-url +/fr/docs/XPath/Fonctions /fr/docs/Web/XPath/Functions +/fr/docs/XPath/Fonctions/boolean /fr/docs/Web/XPath/Functions/boolean +/fr/docs/XPath/Fonctions/ceiling /fr/docs/Web/XPath/Functions/ceiling +/fr/docs/XPath/Fonctions/concat /fr/docs/Web/XPath/Functions/concat +/fr/docs/XPath/Fonctions/contains /fr/docs/Web/XPath/Functions/contains +/fr/docs/XPath/Fonctions/count /fr/docs/Web/XPath/Functions/count +/fr/docs/XPath/Fonctions/current /fr/docs/Web/XPath/Functions/current +/fr/docs/XPath/Fonctions/document /fr/docs/Web/XPath/Functions/document +/fr/docs/XPath/Fonctions/element-available /fr/docs/Web/XPath/Functions/element-available +/fr/docs/XPath/Fonctions/false /fr/docs/Web/XPath/Functions/false +/fr/docs/XPath/Fonctions/floor /fr/docs/Web/XPath/Functions/floor +/fr/docs/XPath/Fonctions/format-number /fr/docs/Web/XPath/Functions/format-number +/fr/docs/XPath/Fonctions/function-available /fr/docs/Web/XPath/Functions/function-available +/fr/docs/XPath/Fonctions/generate-id /fr/docs/Web/XPath/Functions/generate-id +/fr/docs/XPath/Fonctions/id /fr/docs/Web/XPath/Functions/id +/fr/docs/XPath/Fonctions/key /fr/docs/Web/XPath/Functions/key +/fr/docs/XPath/Fonctions/lang /fr/docs/Web/XPath/Functions/lang +/fr/docs/XPath/Fonctions/last /fr/docs/Web/XPath/Functions/last +/fr/docs/XPath/Fonctions/local-name /fr/docs/Web/XPath/Functions/local-name +/fr/docs/XPath/Fonctions/name /fr/docs/Web/XPath/Functions/name +/fr/docs/XPath/Fonctions/namespace-uri /fr/docs/Web/XPath/Functions/namespace-uri +/fr/docs/XPath/Fonctions/normalize-space /fr/docs/Web/XPath/Functions/normalize-space +/fr/docs/XPath/Fonctions/not /fr/docs/Web/XPath/Functions/not +/fr/docs/XPath/Fonctions/number /fr/docs/Web/XPath/Functions/number +/fr/docs/XPath/Fonctions/position /fr/docs/Web/XPath/Functions/position +/fr/docs/XPath/Fonctions/round /fr/docs/Web/XPath/Functions/round +/fr/docs/XPath/Fonctions/starts-with /fr/docs/Web/XPath/Functions/starts-with +/fr/docs/XPath/Fonctions/string /fr/docs/Web/XPath/Functions/string +/fr/docs/XPath/Fonctions/string-length /fr/docs/Web/XPath/Functions/string-length +/fr/docs/XPath/Fonctions/substring /fr/docs/Web/XPath/Functions/substring +/fr/docs/XPath/Fonctions/substring-after /fr/docs/Web/XPath/Functions/substring-after +/fr/docs/XPath/Fonctions/substring-before /fr/docs/Web/XPath/Functions/substring-before +/fr/docs/XPath/Fonctions/sum /fr/docs/Web/XPath/Functions/sum +/fr/docs/XPath/Fonctions/system-property /fr/docs/Web/XPath/Functions/system-property +/fr/docs/XPath/Fonctions/translate /fr/docs/Web/XPath/Functions/translate +/fr/docs/XPath/Fonctions/true /fr/docs/Web/XPath/Functions/true +/fr/docs/XPath/Fonctions/unparsed-entity-url /fr/docs/Web/XPath/Functions/unparsed-entity-url /fr/docs/XPath:Axes /fr/docs/Web/XPath/Axes /fr/docs/XPath:Axes:ancestor /fr/docs/Web/XPath/Axes/ancestor /fr/docs/XPath:Axes:ancestor-or-self /fr/docs/Web/XPath/Axes/ancestor-or-self @@ -3515,121 +5904,127 @@ /fr/docs/XPath:Axes:preceding /fr/docs/Web/XPath/Axes/preceding /fr/docs/XPath:Axes:preceding-sibling /fr/docs/Web/XPath/Axes/preceding-sibling /fr/docs/XPath:Axes:self /fr/docs/Web/XPath/Axes/self -/fr/docs/XPath:Fonctions /fr/docs/Web/XPath/Fonctions -/fr/docs/XPath:Fonctions:boolean /fr/docs/Web/XPath/Fonctions/boolean -/fr/docs/XPath:Fonctions:ceiling /fr/docs/Web/XPath/Fonctions/ceiling -/fr/docs/XPath:Fonctions:concat /fr/docs/Web/XPath/Fonctions/concat -/fr/docs/XPath:Fonctions:contains /fr/docs/Web/XPath/Fonctions/contains -/fr/docs/XPath:Fonctions:count /fr/docs/Web/XPath/Fonctions/count -/fr/docs/XPath:Fonctions:current /fr/docs/Web/XPath/Fonctions/current -/fr/docs/XPath:Fonctions:document /fr/docs/Web/XPath/Fonctions/document -/fr/docs/XPath:Fonctions:element-available /fr/docs/Web/XPath/Fonctions/element-available -/fr/docs/XPath:Fonctions:false /fr/docs/Web/XPath/Fonctions/false -/fr/docs/XPath:Fonctions:floor /fr/docs/Web/XPath/Fonctions/floor -/fr/docs/XPath:Fonctions:format-number /fr/docs/Web/XPath/Fonctions/format-number -/fr/docs/XPath:Fonctions:function-available /fr/docs/Web/XPath/Fonctions/function-available -/fr/docs/XPath:Fonctions:generate-id /fr/docs/Web/XPath/Fonctions/generate-id -/fr/docs/XPath:Fonctions:id /fr/docs/Web/XPath/Fonctions/id -/fr/docs/XPath:Fonctions:key /fr/docs/Web/XPath/Fonctions/key -/fr/docs/XPath:Fonctions:lang /fr/docs/Web/XPath/Fonctions/lang -/fr/docs/XPath:Fonctions:last /fr/docs/Web/XPath/Fonctions/last -/fr/docs/XPath:Fonctions:local-name /fr/docs/Web/XPath/Fonctions/local-name -/fr/docs/XPath:Fonctions:name /fr/docs/Web/XPath/Fonctions/name -/fr/docs/XPath:Fonctions:namespace-uri /fr/docs/Web/XPath/Fonctions/namespace-uri -/fr/docs/XPath:Fonctions:normalize-space /fr/docs/Web/XPath/Fonctions/normalize-space -/fr/docs/XPath:Fonctions:not /fr/docs/Web/XPath/Fonctions/not -/fr/docs/XPath:Fonctions:number /fr/docs/Web/XPath/Fonctions/number -/fr/docs/XPath:Fonctions:position /fr/docs/Web/XPath/Fonctions/position -/fr/docs/XPath:Fonctions:round /fr/docs/Web/XPath/Fonctions/round -/fr/docs/XPath:Fonctions:starts-with /fr/docs/Web/XPath/Fonctions/starts-with -/fr/docs/XPath:Fonctions:string /fr/docs/Web/XPath/Fonctions/string -/fr/docs/XPath:Fonctions:string-length /fr/docs/Web/XPath/Fonctions/string-length -/fr/docs/XPath:Fonctions:substring /fr/docs/Web/XPath/Fonctions/substring -/fr/docs/XPath:Fonctions:substring-after /fr/docs/Web/XPath/Fonctions/substring-after -/fr/docs/XPath:Fonctions:substring-before /fr/docs/Web/XPath/Fonctions/substring-before -/fr/docs/XPath:Fonctions:sum /fr/docs/Web/XPath/Fonctions/sum -/fr/docs/XPath:Fonctions:system-property /fr/docs/Web/XPath/Fonctions/system-property -/fr/docs/XPath:Fonctions:translate /fr/docs/Web/XPath/Fonctions/translate -/fr/docs/XPath:Fonctions:true /fr/docs/Web/XPath/Fonctions/true -/fr/docs/XPath:Fonctions:unparsed-entity-url /fr/docs/Web/XPath/Fonctions/unparsed-entity-url +/fr/docs/XPath:Fonctions /fr/docs/Web/XPath/Functions +/fr/docs/XPath:Fonctions:boolean /fr/docs/Web/XPath/Functions/boolean +/fr/docs/XPath:Fonctions:ceiling /fr/docs/Web/XPath/Functions/ceiling +/fr/docs/XPath:Fonctions:concat /fr/docs/Web/XPath/Functions/concat +/fr/docs/XPath:Fonctions:contains /fr/docs/Web/XPath/Functions/contains +/fr/docs/XPath:Fonctions:count /fr/docs/Web/XPath/Functions/count +/fr/docs/XPath:Fonctions:current /fr/docs/Web/XPath/Functions/current +/fr/docs/XPath:Fonctions:document /fr/docs/Web/XPath/Functions/document +/fr/docs/XPath:Fonctions:element-available /fr/docs/Web/XPath/Functions/element-available +/fr/docs/XPath:Fonctions:false /fr/docs/Web/XPath/Functions/false +/fr/docs/XPath:Fonctions:floor /fr/docs/Web/XPath/Functions/floor +/fr/docs/XPath:Fonctions:format-number /fr/docs/Web/XPath/Functions/format-number +/fr/docs/XPath:Fonctions:function-available /fr/docs/Web/XPath/Functions/function-available +/fr/docs/XPath:Fonctions:generate-id /fr/docs/Web/XPath/Functions/generate-id +/fr/docs/XPath:Fonctions:id /fr/docs/Web/XPath/Functions/id +/fr/docs/XPath:Fonctions:key /fr/docs/Web/XPath/Functions/key +/fr/docs/XPath:Fonctions:lang /fr/docs/Web/XPath/Functions/lang +/fr/docs/XPath:Fonctions:last /fr/docs/Web/XPath/Functions/last +/fr/docs/XPath:Fonctions:local-name /fr/docs/Web/XPath/Functions/local-name +/fr/docs/XPath:Fonctions:name /fr/docs/Web/XPath/Functions/name +/fr/docs/XPath:Fonctions:namespace-uri /fr/docs/Web/XPath/Functions/namespace-uri +/fr/docs/XPath:Fonctions:normalize-space /fr/docs/Web/XPath/Functions/normalize-space +/fr/docs/XPath:Fonctions:not /fr/docs/Web/XPath/Functions/not +/fr/docs/XPath:Fonctions:number /fr/docs/Web/XPath/Functions/number +/fr/docs/XPath:Fonctions:position /fr/docs/Web/XPath/Functions/position +/fr/docs/XPath:Fonctions:round /fr/docs/Web/XPath/Functions/round +/fr/docs/XPath:Fonctions:starts-with /fr/docs/Web/XPath/Functions/starts-with +/fr/docs/XPath:Fonctions:string /fr/docs/Web/XPath/Functions/string +/fr/docs/XPath:Fonctions:string-length /fr/docs/Web/XPath/Functions/string-length +/fr/docs/XPath:Fonctions:substring /fr/docs/Web/XPath/Functions/substring +/fr/docs/XPath:Fonctions:substring-after /fr/docs/Web/XPath/Functions/substring-after +/fr/docs/XPath:Fonctions:substring-before /fr/docs/Web/XPath/Functions/substring-before +/fr/docs/XPath:Fonctions:sum /fr/docs/Web/XPath/Functions/sum +/fr/docs/XPath:Fonctions:system-property /fr/docs/Web/XPath/Functions/system-property +/fr/docs/XPath:Fonctions:translate /fr/docs/Web/XPath/Functions/translate +/fr/docs/XPath:Fonctions:true /fr/docs/Web/XPath/Functions/true +/fr/docs/XPath:Fonctions:unparsed-entity-url /fr/docs/Web/XPath/Functions/unparsed-entity-url /fr/docs/XSLT /fr/docs/Web/XSLT -/fr/docs/XSLT/Paramètres_des_instructions_de_traitement /fr/docs/Web/XSLT/Paramètres_des_instructions_de_traitement -/fr/docs/XSLT/apply-imports /fr/docs/Web/XSLT/apply-imports -/fr/docs/XSLT/apply-templates /fr/docs/Web/XSLT/apply-templates -/fr/docs/XSLT/attribute /fr/docs/Web/XSLT/attribute -/fr/docs/XSLT/attribute-set /fr/docs/Web/XSLT/attribute-set -/fr/docs/XSLT/call-template /fr/docs/Web/XSLT/call-template -/fr/docs/XSLT/choose /fr/docs/Web/XSLT/choose -/fr/docs/XSLT/comment /fr/docs/Web/XSLT/comment -/fr/docs/XSLT/copy /fr/docs/Web/XSLT/copy -/fr/docs/XSLT/copy-of /fr/docs/Web/XSLT/copy-of -/fr/docs/XSLT/decimal-format /fr/docs/Web/XSLT/decimal-format +/fr/docs/XSLT/Paramètres_des_instructions_de_traitement /fr/docs/Web/XSLT/PI_Parameters +/fr/docs/XSLT/apply-imports /fr/docs/Web/XSLT/Element/apply-imports +/fr/docs/XSLT/apply-templates /fr/docs/Web/XSLT/Element/apply-templates +/fr/docs/XSLT/attribute /fr/docs/Web/XSLT/Element/attribute +/fr/docs/XSLT/attribute-set /fr/docs/Web/XSLT/Element/attribute-set +/fr/docs/XSLT/call-template /fr/docs/Web/XSLT/Element/call-template +/fr/docs/XSLT/choose /fr/docs/Web/XSLT/Element/choose +/fr/docs/XSLT/comment /fr/docs/Web/XSLT/Element/comment +/fr/docs/XSLT/copy /fr/docs/Web/XSLT/Element/copy +/fr/docs/XSLT/copy-of /fr/docs/Web/XSLT/Element/copy-of +/fr/docs/XSLT/decimal-format /fr/docs/Web/XSLT/Element/decimal-format /fr/docs/XSLT/element /fr/docs/Web/XSLT/Element/element -/fr/docs/XSLT/fallback /fr/docs/Web/XSLT/fallback -/fr/docs/XSLT/for-each /fr/docs/Web/XSLT/for-each -/fr/docs/XSLT/if /fr/docs/Web/XSLT/if -/fr/docs/XSLT/import /fr/docs/Web/XSLT/import -/fr/docs/XSLT/include /fr/docs/Web/XSLT/include -/fr/docs/XSLT/key /fr/docs/Web/XSLT/key -/fr/docs/XSLT/message /fr/docs/Web/XSLT/message -/fr/docs/XSLT/namespace-alias /fr/docs/Web/XSLT/namespace-alias -/fr/docs/XSLT/number /fr/docs/Web/XSLT/number -/fr/docs/XSLT/otherwise /fr/docs/Web/XSLT/otherwise -/fr/docs/XSLT/output /fr/docs/Web/XSLT/output -/fr/docs/XSLT/param /fr/docs/Web/XSLT/param -/fr/docs/XSLT/preserve-space /fr/docs/Web/XSLT/preserve-space -/fr/docs/XSLT/processing-instruction /fr/docs/Web/XSLT/processing-instruction -/fr/docs/XSLT/sort /fr/docs/Web/XSLT/sort -/fr/docs/XSLT/strip-space /fr/docs/Web/XSLT/strip-space -/fr/docs/XSLT/stylesheet /fr/docs/Web/XSLT/stylesheet -/fr/docs/XSLT/template /fr/docs/Web/XSLT/template -/fr/docs/XSLT/text /fr/docs/Web/XSLT/text -/fr/docs/XSLT/transform /fr/docs/Web/XSLT/transform -/fr/docs/XSLT/value-of /fr/docs/Web/XSLT/value-of -/fr/docs/XSLT/variable /fr/docs/Web/XSLT/variable -/fr/docs/XSLT/when /fr/docs/Web/XSLT/when -/fr/docs/XSLT/with-param /fr/docs/Web/XSLT/with-param +/fr/docs/XSLT/fallback /fr/docs/Web/XSLT/Element/fallback +/fr/docs/XSLT/for-each /fr/docs/Web/XSLT/Element/for-each +/fr/docs/XSLT/if /fr/docs/Web/XSLT/Element/if +/fr/docs/XSLT/import /fr/docs/Web/XSLT/Element/import +/fr/docs/XSLT/include /fr/docs/Web/XSLT/Element/include +/fr/docs/XSLT/key /fr/docs/Web/XSLT/Element/key +/fr/docs/XSLT/message /fr/docs/Web/XSLT/Element/message +/fr/docs/XSLT/namespace-alias /fr/docs/Web/XSLT/Element/namespace-alias +/fr/docs/XSLT/number /fr/docs/Web/XSLT/Element/number +/fr/docs/XSLT/otherwise /fr/docs/Web/XSLT/Element/otherwise +/fr/docs/XSLT/output /fr/docs/Web/XSLT/Element/output +/fr/docs/XSLT/param /fr/docs/Web/XSLT/Element/param +/fr/docs/XSLT/preserve-space /fr/docs/Web/XSLT/Element/preserve-space +/fr/docs/XSLT/processing-instruction /fr/docs/Web/XSLT/Element/processing-instruction +/fr/docs/XSLT/sort /fr/docs/Web/XSLT/Element/sort +/fr/docs/XSLT/strip-space /fr/docs/Web/XSLT/Element/strip-space +/fr/docs/XSLT/stylesheet /fr/docs/Web/XSLT/Element/stylesheet +/fr/docs/XSLT/template /fr/docs/Web/XSLT/Element/template +/fr/docs/XSLT/text /fr/docs/Web/XSLT/Element/text +/fr/docs/XSLT/transform /fr/docs/Web/XSLT/Element/transform +/fr/docs/XSLT/value-of /fr/docs/Web/XSLT/Element/value-of +/fr/docs/XSLT/variable /fr/docs/Web/XSLT/Element/variable +/fr/docs/XSLT/when /fr/docs/Web/XSLT/Element/when +/fr/docs/XSLT/with-param /fr/docs/Web/XSLT/Element/with-param /fr/docs/XSLT/Éléments /fr/docs/Web/XSLT/Element -/fr/docs/XSLT:Paramètres_des_instructions_de_traitement /fr/docs/Web/XSLT/Paramètres_des_instructions_de_traitement -/fr/docs/XSLT:apply-imports /fr/docs/Web/XSLT/apply-imports -/fr/docs/XSLT:apply-templates /fr/docs/Web/XSLT/apply-templates -/fr/docs/XSLT:attribute /fr/docs/Web/XSLT/attribute -/fr/docs/XSLT:attribute-set /fr/docs/Web/XSLT/attribute-set -/fr/docs/XSLT:call-template /fr/docs/Web/XSLT/call-template -/fr/docs/XSLT:choose /fr/docs/Web/XSLT/choose -/fr/docs/XSLT:comment /fr/docs/Web/XSLT/comment -/fr/docs/XSLT:copy /fr/docs/Web/XSLT/copy -/fr/docs/XSLT:copy-of /fr/docs/Web/XSLT/copy-of -/fr/docs/XSLT:decimal-format /fr/docs/Web/XSLT/decimal-format +/fr/docs/XSLT:Paramètres_des_instructions_de_traitement /fr/docs/Web/XSLT/PI_Parameters +/fr/docs/XSLT:apply-imports /fr/docs/Web/XSLT/Element/apply-imports +/fr/docs/XSLT:apply-templates /fr/docs/Web/XSLT/Element/apply-templates +/fr/docs/XSLT:attribute /fr/docs/Web/XSLT/Element/attribute +/fr/docs/XSLT:attribute-set /fr/docs/Web/XSLT/Element/attribute-set +/fr/docs/XSLT:call-template /fr/docs/Web/XSLT/Element/call-template +/fr/docs/XSLT:choose /fr/docs/Web/XSLT/Element/choose +/fr/docs/XSLT:comment /fr/docs/Web/XSLT/Element/comment +/fr/docs/XSLT:copy /fr/docs/Web/XSLT/Element/copy +/fr/docs/XSLT:copy-of /fr/docs/Web/XSLT/Element/copy-of +/fr/docs/XSLT:decimal-format /fr/docs/Web/XSLT/Element/decimal-format /fr/docs/XSLT:element /fr/docs/Web/XSLT/Element/element -/fr/docs/XSLT:fallback /fr/docs/Web/XSLT/fallback -/fr/docs/XSLT:for-each /fr/docs/Web/XSLT/for-each -/fr/docs/XSLT:if /fr/docs/Web/XSLT/if -/fr/docs/XSLT:import /fr/docs/Web/XSLT/import -/fr/docs/XSLT:include /fr/docs/Web/XSLT/include -/fr/docs/XSLT:key /fr/docs/Web/XSLT/key -/fr/docs/XSLT:message /fr/docs/Web/XSLT/message -/fr/docs/XSLT:namespace-alias /fr/docs/Web/XSLT/namespace-alias -/fr/docs/XSLT:number /fr/docs/Web/XSLT/number -/fr/docs/XSLT:otherwise /fr/docs/Web/XSLT/otherwise -/fr/docs/XSLT:output /fr/docs/Web/XSLT/output -/fr/docs/XSLT:param /fr/docs/Web/XSLT/param -/fr/docs/XSLT:preserve-space /fr/docs/Web/XSLT/preserve-space -/fr/docs/XSLT:processing-instruction /fr/docs/Web/XSLT/processing-instruction -/fr/docs/XSLT:sort /fr/docs/Web/XSLT/sort -/fr/docs/XSLT:strip-space /fr/docs/Web/XSLT/strip-space -/fr/docs/XSLT:stylesheet /fr/docs/Web/XSLT/stylesheet -/fr/docs/XSLT:template /fr/docs/Web/XSLT/template -/fr/docs/XSLT:text /fr/docs/Web/XSLT/text -/fr/docs/XSLT:transform /fr/docs/Web/XSLT/transform -/fr/docs/XSLT:value-of /fr/docs/Web/XSLT/value-of -/fr/docs/XSLT:variable /fr/docs/Web/XSLT/variable -/fr/docs/XSLT:when /fr/docs/Web/XSLT/when -/fr/docs/XSLT:with-param /fr/docs/Web/XSLT/with-param +/fr/docs/XSLT:fallback /fr/docs/Web/XSLT/Element/fallback +/fr/docs/XSLT:for-each /fr/docs/Web/XSLT/Element/for-each +/fr/docs/XSLT:if /fr/docs/Web/XSLT/Element/if +/fr/docs/XSLT:import /fr/docs/Web/XSLT/Element/import +/fr/docs/XSLT:include /fr/docs/Web/XSLT/Element/include +/fr/docs/XSLT:key /fr/docs/Web/XSLT/Element/key +/fr/docs/XSLT:message /fr/docs/Web/XSLT/Element/message +/fr/docs/XSLT:namespace-alias /fr/docs/Web/XSLT/Element/namespace-alias +/fr/docs/XSLT:number /fr/docs/Web/XSLT/Element/number +/fr/docs/XSLT:otherwise /fr/docs/Web/XSLT/Element/otherwise +/fr/docs/XSLT:output /fr/docs/Web/XSLT/Element/output +/fr/docs/XSLT:param /fr/docs/Web/XSLT/Element/param +/fr/docs/XSLT:preserve-space /fr/docs/Web/XSLT/Element/preserve-space +/fr/docs/XSLT:processing-instruction /fr/docs/Web/XSLT/Element/processing-instruction +/fr/docs/XSLT:sort /fr/docs/Web/XSLT/Element/sort +/fr/docs/XSLT:strip-space /fr/docs/Web/XSLT/Element/strip-space +/fr/docs/XSLT:stylesheet /fr/docs/Web/XSLT/Element/stylesheet +/fr/docs/XSLT:template /fr/docs/Web/XSLT/Element/template +/fr/docs/XSLT:text /fr/docs/Web/XSLT/Element/text +/fr/docs/XSLT:transform /fr/docs/Web/XSLT/Element/transform +/fr/docs/XSLT:value-of /fr/docs/Web/XSLT/Element/value-of +/fr/docs/XSLT:variable /fr/docs/Web/XSLT/Element/variable +/fr/docs/XSLT:when /fr/docs/Web/XSLT/Element/when +/fr/docs/XSLT:with-param /fr/docs/Web/XSLT/Element/with-param /fr/docs/XSLT:Éléments /fr/docs/Web/XSLT/Element -/fr/docs/XSLT_dans_Gecko:Différences_entre_les_navigateurs /fr/docs/XSLT_dans_Gecko/Différences_entre_les_navigateurs -/fr/docs/XSLT_dans_Gecko:Exemple_basique /fr/docs/XSLT_dans_Gecko/Exemple_basique -/fr/docs/XSLT_dans_Gecko:Génération_de_HTML /fr/docs/XSLT_dans_Gecko/Génération_de_HTML +/fr/docs/XSLTProcessor /fr/docs/conflicting/Web/API/XSLTProcessor_197eea6e529b0a946d29ce7cc292e7ef +/fr/docs/XSLT_dans_Gecko /fr/docs/conflicting/Web/API/XSLTProcessor +/fr/docs/XSLT_dans_Gecko/Différences_entre_les_navigateurs /fr/docs/Web/API/XSLTProcessor/Browser_Differences +/fr/docs/XSLT_dans_Gecko/Exemple_basique /fr/docs/Web/API/XSLTProcessor/Basic_Example +/fr/docs/XSLT_dans_Gecko/Génération_de_HTML /fr/docs/Web/API/XSLTProcessor/Generating_HTML +/fr/docs/XSLT_dans_Gecko:Différences_entre_les_navigateurs /fr/docs/Web/API/XSLTProcessor/Browser_Differences +/fr/docs/XSLT_dans_Gecko:Exemple_basique /fr/docs/Web/API/XSLTProcessor/Basic_Example +/fr/docs/XSLT_dans_Gecko:Génération_de_HTML /fr/docs/Web/API/XSLTProcessor/Generating_HTML +/fr/docs/Zoom_pleine_page /fr/docs/Mozilla/Firefox/Releases/3/Full_page_zoom /fr/docs/appendChild /fr/docs/Web/API/Node/appendChild /fr/docs/chrome.manifest /fr/docs/Mozilla/Enregistrement_chrome /fr/docs/composants /fr/docs/XPCOM_Interface_Reference @@ -3637,6 +6032,10 @@ /fr/docs/document.getElementById /fr/docs/Web/API/Document/getElementById /fr/docs/en /en-US/ /fr/docs/getElementsByTagName /fr/docs/Web/API/Element/getElementsByTagName +/fr/docs/inset-block-end /fr/docs/Web/CSS/inset-block-end +/fr/docs/inset-block-start /fr/docs/Web/CSS/inset-block-start +/fr/docs/inset-inline-end /fr/docs/Web/CSS/inset-inline-end +/fr/docs/inset-inline-start /fr/docs/Web/CSS/inset-inline-start /fr/docs/mozilla-central /fr/docs/Mozilla/Developer_guide/mozilla-central /fr/docs/nsIAccessibleProvider /fr/docs/XPCOM_Interface_Reference/nsIAccessibleProvider /fr/docs/nsIIdleService /fr/docs/XPCOM_Interface_Reference/nsIIdleService @@ -3644,8 +6043,11 @@ /fr/docs/nsIURI /fr/docs/XPCOM_Interface_Reference/nsIURI /fr/docs/nsIXULAppInfo /fr/docs/XPCOM_Interface_Reference/nsIXULAppInfo /fr/docs/setAttribute /fr/docs/Web/API/Element/setAttribute -/fr/docs/valeur_reelle /fr/docs/Web/CSS/valeur_reelle +/fr/docs/toSource /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Object/toSource +/fr/docs/toString /fr/docs/conflicting/Web/JavaScript/Reference/Global_Objects/Date/toString +/fr/docs/valeur_reelle /fr/docs/Web/CSS/actual_value /fr/docs/window.closed /fr/docs/Web/API/Window/closed /fr/docs/zineb_chengab_bonjour_bonsoir_merci /fr/docs/Web -/fr/docs/À_propos_de_JavaScript /fr/docs/Web/JavaScript/A_propos -/fr/docs/Évènements_online_et_offline /fr/docs/Web/API/NavigatorOnLine/Évènements_online_et_offline +/fr/docs/À_propos_de_JavaScript /fr/docs/Web/JavaScript/About_JavaScript +/fr/docs/À_propos_du_Document_Object_Model /fr/docs/conflicting/Web/API/Document_Object_Model +/fr/docs/Évènements_online_et_offline /fr/docs/Web/API/NavigatorOnLine/Online_and_offline_events diff --git a/files/fr/_wikihistory.json b/files/fr/_wikihistory.json index dfbde57c4b..31b0281ca8 100644 --- a/files/fr/_wikihistory.json +++ b/files/fr/_wikihistory.json @@ -1,36276 +1,36787 @@ { - "Accessibilité": { - "modified": "2020-04-12T15:58:54.738Z", + "Games/Techniques": { + "modified": "2020-04-10T15:50:15.159Z", "contributors": [ - "ele-gall-ac-mineducation", - "SphinxKnight", - "NerOcrO", - "Steph", - "tonybengue", - "BenoitL", + "olivierdupon", + "wbamberg", + "loella16", "Fredchat", - "FredB", - "MoniqueB", - "fscholz", - "Chbok", - "Mgjbot", - "VincentN", - "Cedric", - "Mozinet", - "Jean-Yves Cronier", - "Anonymous", - "Laurent Denis", - "Nickolay" + "Halfman", + "chrisdavidmills" ] }, - "Accessibilité/ARIA": { - "modified": "2019-11-08T13:58:24.544Z", + "Games/Techniques/2D_collision_detection": { + "modified": "2019-03-23T23:16:18.305Z", "contributors": [ - "SphinxKnight", - "evefevrier", - "teoli", - "BenoitL", + "wbamberg", + "loella16", + "Halfman", "Fredchat", - "Goofy", - "FredB", - "Anonymous" - ] - }, - "Accessibilité/ARIA/Comment_deposer_un_bug_lie_a_ARIA": { - "modified": "2019-03-23T22:43:55.753Z", - "contributors": [ - "paul.bignier" + "Goofy" ] }, - "Accessibilité/ARIA/FAQ_Applications_Web_et_ARIA": { - "modified": "2019-03-23T23:16:38.785Z", + "Games/Techniques/3D_on_the_web": { + "modified": "2020-05-28T09:39:19.969Z", "contributors": [ - "sdumetz", - "dFegnoux", - "Mozinet", - "Fredchat" + "rponsini", + "wbamberg", + "NerOcrO", + "loella16", + "ngokevin" ] }, - "Accessibilité/ARIA/Guides_ARIA": { - "modified": "2019-03-23T23:17:01.535Z", + "Games/Techniques/3D_on_the_web/Basic_theory": { + "modified": "2019-03-23T22:13:55.102Z", "contributors": [ - "hmore", - "Fredchat" + "wbamberg", + "loella16", + "Dwaaren" ] }, - "Accessibilité/ARIA/Techniques_ARIA": { - "modified": "2019-03-23T23:17:45.799Z", + "Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_PlayCanvas": { + "modified": "2019-03-18T21:38:23.278Z", "contributors": [ - "BenoitL", - "Fredchat" + "wbamberg", + "egidiusmendel" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Modele_Technique_ARIA": { - "modified": "2019-03-23T23:17:02.348Z", + "Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Three.js": { + "modified": "2020-06-28T15:40:46.953Z", "contributors": [ - "BenoitL", - "Fredchat" + "houckontape" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utilisation_du_groupe_rôle": { - "modified": "2019-03-18T21:16:59.818Z", + "Games/Techniques/Audio_for_Web_Games": { + "modified": "2019-03-23T23:04:51.258Z", "contributors": [ - "paul.bignier" + "wbamberg", + "loella16", + "quentin.lamamy" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utilisation_du_groupe_switch": { - "modified": "2019-03-23T22:44:02.313Z", + "Games/Tools": { + "modified": "2020-09-01T06:30:44.644Z", "contributors": [ - "paul.bignier" + "Voulto", + "wbamberg", + "dkocho4" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-describedby": { - "modified": "2019-03-23T23:14:38.539Z", + "Games/Tools/asm.js": { + "modified": "2019-01-17T01:50:29.041Z", "contributors": [ - "hmore", - "P45QU10U", - "Havano", - "Fredchat" + "wbamberg", + "BEHOUBA" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-invalid": { - "modified": "2019-03-23T23:14:24.380Z", + "Glossary/Accessibility_tree": { + "modified": "2020-10-23T07:47:32.798Z", "contributors": [ - "NerOcrO", - "Fredchat" + "chrisdavidmills", + "Voulto", + "UFOcatcher" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-label": { - "modified": "2019-09-16T14:04:28.206Z", + "Glossary/Block": { + "modified": "2019-03-23T22:56:58.228Z", "contributors": [ - "Lo_h", - "mathildebuenerd", - "bcetienne", - "David-Werbrouck", - "yoanmalie", - "oliv06", - "Fredchat" + "loella16", + "vanz", + "Sheppy" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-labelledby": { - "modified": "2020-11-26T01:35:04.943Z", + "Glossary/Block/Scripting": { + "modified": "2019-03-23T22:42:03.185Z", "contributors": [ - "PhilippePerret", - "OlivierNourry", - "dzc34", - "J.DMB", - "Havano", - "Fredchat" + "SphinxKnight", + "loella16", + "xdelatour" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-orientation": { - "modified": "2019-03-23T23:14:15.589Z", + "Glossary/Node": { + "modified": "2019-03-23T22:42:04.167Z", "contributors": [ - "J.DMB", - "Fredchat" + "xdelatour", + "klez" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-relevant": { - "modified": "2019-03-23T22:14:39.098Z", + "Glossary/Node/DOM": { + "modified": "2019-03-23T22:41:33.687Z", "contributors": [ - "NerOcrO", - "clokanku" + "loella16", + "htindon", + "Gibus", + "xdelatour" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-required": { - "modified": "2019-03-23T23:14:22.660Z", + "Glossary/property": { + "modified": "2019-03-23T22:40:25.191Z", "contributors": [ - "clokanku", - "Fredchat" + "xdelatour", + "Jeremie" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuemax": { - "modified": "2019-03-23T23:14:27.575Z", + "Glossary/property/JavaScript": { + "modified": "2019-03-23T22:40:28.485Z", "contributors": [ - "Hell_Carlito", - "Fredchat" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuemin": { - "modified": "2019-03-18T20:46:07.166Z", + "Learn/CSS/First_steps": { + "modified": "2020-10-08T12:02:37.318Z", "contributors": [ - "JeffD", - "Fredchat" + "geraldventadour", + "ylerjen", + "smeden-lod", + "nherbaut", + "chrisdavidmills" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuenow": { - "modified": "2019-03-23T23:14:27.424Z", + "Learn/CSS/First_steps/Getting_started": { + "modified": "2020-10-20T05:38:33.608Z", "contributors": [ - "Gibus", - "Fredchat" + "SebastienLatouche", + "smeden-lod" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_l_attribut_aria-valuetext": { - "modified": "2019-03-18T20:46:06.951Z", + "Learn/CSS/First_steps/How_CSS_is_structured": { + "modified": "2020-11-27T19:02:59.051Z", "contributors": [ - "JeffD", - "Fredchat" + "Chomchaum", + "smeden-lod", + "mrbbp" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_alertdialog": { - "modified": "2019-03-23T23:14:00.888Z", + "Learn/CSS/First_steps/How_CSS_works": { + "modified": "2020-07-16T22:28:00.239Z", "contributors": [ - "trouba", - "AdeLyneBD", - "hmore", - "goetsu", - "BenoitL", - "Fredchat" + "smeden-lod" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_banner": { - "modified": "2019-03-23T23:15:06.469Z", + "Learn/CSS/First_steps/Using_your_new_knowledge": { + "modified": "2020-07-16T22:28:03.815Z", "contributors": [ - "nerville", - "hmore", - "BenoitL", - "Goofy", - "Fredchat" + "SphinxKnight", + "smeden-lod" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_checkbox": { - "modified": "2019-03-23T23:14:59.469Z", + "Learn/CSS/Styling_text": { + "modified": "2020-07-16T22:25:57.902Z", "contributors": [ - "BenoitL", - "Goofy", - "Fredchat" + "Dralyab", + "zakaila", + "loella16", + "chrisdavidmills" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_group": { - "modified": "2020-04-08T04:03:57.859Z", + "Learn/CSS/Styling_text/Styling_lists": { + "modified": "2020-07-16T22:26:12.463Z", "contributors": [ - "olivierdupon", - "Goofy", - "Fredchat" + "Dralyab", + "loella16", + "BOBY2017" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_link": { - "modified": "2019-03-23T23:14:59.014Z", + "Learn/CSS/Styling_text/Typesetting_a_homepage": { + "modified": "2020-07-16T22:26:26.346Z", "contributors": [ - "Manuela", - "Goofy", - "Fredchat" + "Dralyab" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_listbox": { - "modified": "2019-03-23T23:14:58.870Z", + "Learn/CSS/Styling_text/Web_fonts": { + "modified": "2020-07-16T22:26:23.494Z", "contributors": [ - "stevenmouret", - "Goofy", - "Fredchat" + "Dralyab" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_log": { - "modified": "2019-03-23T23:14:20.710Z", + "Learn/JavaScript/First_steps": { + "modified": "2020-07-16T22:29:50.440Z", "contributors": [ - "J.DMB", - "Fredchat" + "smeden-lod", + "mauradelrosario", + "Dralyab", + "tonybengue", + "loella16", + "Badacadabra", + "daufinsyd", + "chrisdavidmills" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_presentation": { - "modified": "2020-02-06T12:23:48.064Z", + "Learn/JavaScript/First_steps/A_first_splash": { + "modified": "2020-07-16T22:30:17.669Z", "contributors": [ - "GeoffreyC.", - "Fredchat" + "smeden-lod", + "Floles", + "Eric-ciccotti", + "clamb", + "Dralyab", + "tonybengue", + "jumperparis", + "Merkrynis", + "withedouard", + "moziyin76" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_progressbar": { - "modified": "2019-03-29T05:52:02.630Z", + "Learn/JavaScript/First_steps/Math": { + "modified": "2020-10-27T06:47:01.734Z", "contributors": [ - "prsdta", - "Fredchat", - "Goofy" + "chuck2kill", + "Chomchaum", + "Jim-Arby", + "grandoc", + "Dralyab", + "tonybengue" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_slider": { - "modified": "2019-03-23T23:14:53.364Z", + "Learn/JavaScript/First_steps/Silly_story_generator": { + "modified": "2020-07-16T22:31:01.217Z", "contributors": [ - "Gibus", - "KrySoar", - "Fredchat" + "smeden-lod", + "daftaupe", + "Opsylac" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_status": { - "modified": "2019-03-23T23:13:50.573Z", + "Learn/JavaScript/First_steps/Strings": { + "modified": "2020-07-16T22:30:39.299Z", "contributors": [ - "J.DMB", - "@lucieLme", - "Fredchat" + "smeden-lod", + "Jim-Arby", + "goofy_mdn", + "grandoc", + "Dralyab", + "be-math", + "tonybengue" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_textbox": { - "modified": "2019-03-23T23:13:40.655Z", + "Learn/JavaScript/First_steps/Variables": { + "modified": "2020-07-16T22:29:58.969Z", "contributors": [ - "J.DMB", - "Fredchat" + "AntoineJT", + "innocenzi", + "smeden-lod", + "chrisdavidmills", + "Jim-Arby", + "Jumper754", + "Eric-ciccotti", + "grandoc", + "Dralyab", + "tonybengue" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_role_toolbar": { - "modified": "2019-03-23T23:15:02.491Z", + "Learn/JavaScript/First_steps/What_is_JavaScript": { + "modified": "2020-07-16T22:30:07.337Z", "contributors": [ - "Fredchat" + "smeden-lod", + "ludivinepoussier", + "chrisdavidmills", + "SphinxKnight", + "wkz3w59", + "abvll", + "Kinskikick", + "Eric-ciccotti", + "clamb", + "Dralyab", + "codingk8", + "TheStarrK", + "tonybengue", + "Idlus" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_alert": { - "modified": "2019-03-23T23:16:30.067Z", + "Learn/JavaScript/First_steps/What_went_wrong": { + "modified": "2020-07-16T22:30:32.918Z", "contributors": [ - "hmore", - "BenoitL", - "Fredchat" + "smeden-lod", + "clamb", + "codeFighting", + "Dralyab", + "tonybengue", + "macjpster" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_article": { - "modified": "2019-03-23T23:16:28.140Z", + "Learn/JavaScript/Objects": { + "modified": "2020-07-16T22:31:49.517Z", "contributors": [ - "hmore", - "Fredchat" + "smeden-lod", + "tonybengue", + "elWombator", + "manuwhat", + "loella16", + "breizhrunner", + "chrisdavidmills" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_button": { - "modified": "2019-03-23T23:16:24.067Z", + "Learn/JavaScript/Objects/Basics": { + "modified": "2020-09-18T09:37:24.602Z", "contributors": [ - "frassinier", - "hmore", - "BenoitL", - "Goofy", - "Fredchat" + "GDFtj", + "FloppyJunior", + "franssu", + "grandoc", + "spike008t", + "srimko", + "LDCL", + "Halkeand", + "SphinxKnight", + "mouffy" ] }, - "Accessibilité/ARIA/Techniques_ARIA/Utiliser_le_rôle_dialog": { - "modified": "2020-10-13T10:16:26.541Z", + "Learn/JavaScript/Objects/JSON": { + "modified": "2020-07-16T22:32:25.278Z", "contributors": [ + "smeden-lod", + "FloppyJunior", + "ThCarrere", "newick", - "BenoitL", - "Fredchat" + "manuwhat", + "sebastien_colbe", + "darthyoh" ] }, - "Accessibilité/ARIA/Zones_live_ARIA": { - "modified": "2019-03-23T23:17:43.700Z", + "Learn/Performance": { + "modified": "2020-11-10T09:39:07.479Z", "contributors": [ - "kantoche", - "cdelhomme", - "BenoitL", - "Fredchat" + "Voulto", + "estelle" ] }, - "Accessibilité/ARIA/formulaires": { - "modified": "2019-03-23T23:18:04.282Z", + "Learn/Performance/CSS": { + "modified": "2020-11-10T09:14:31.465Z", "contributors": [ - "PhilippeV", - "Fredchat" + "Voulto", + "Romain04" ] }, - "Accessibilité/ARIA/formulaires/Alertes": { - "modified": "2019-03-23T23:17:54.084Z", + "Learn/Server-side": { + "modified": "2020-08-31T06:16:11.413Z", "contributors": [ - "P45QU10U", - "hmore", - "Goofy", - "Fredchat" + "Voulto", + "AKAsebu", + "aurelieg", + "KurtC0ba1n", + "tonybengue", + "serorl", + "chrisdavidmills" ] }, - "Accessibilité/ARIA/formulaires/Indications_elementaires_pour_les_formulaires": { - "modified": "2019-03-23T23:17:50.755Z", + "Learn/Server-side/Django": { + "modified": "2020-07-16T22:36:32.263Z", "contributors": [ - "hmore", - "Goofy", - "Fredchat" + "biface", + "skyfrigate", + "As-Sinder", + "KurtC0ba1n", + "pierrotmagic" ] }, - "Accessibilité/ARIA/formulaires/Labels_multi-options": { - "modified": "2019-03-23T23:17:46.968Z", + "Learn/Server-side/Django/Admin_site": { + "modified": "2020-07-16T22:37:03.285Z", "contributors": [ - "hmore", - "Fredchat" + "biface" ] }, - "Accessibilité/Aperçu_d_applications_Web_et_de_composants_dynamiques_accessibles": { - "modified": "2020-05-08T11:21:39.179Z", + "Learn/Server-side/Django/Forms": { + "modified": "2020-07-16T22:37:31.019Z", "contributors": [ - "JNa0", - "P45QU10U", - "tonybengue", - "Louprenard", - "kevamp", - "jMoulis", - "Taver", - "vprigent", - "maeljirari", - "teoli" + "BrRoman", + "Elbofino", + "ben5962" ] }, - "Accessibilité/Checklist_accessibilite_mobile": { - "modified": "2019-03-23T23:16:50.803Z", + "Learn/Server-side/Django/Home_page": { + "modified": "2020-07-16T22:37:08.874Z", "contributors": [ - "Fredchat", - "SphinxKnight" + "biface" ] }, - "Accessibilité/Communauté": { - "modified": "2019-03-23T23:43:56.307Z", + "Learn/Server-side/Django/Introduction": { + "modified": "2020-07-16T22:36:38.887Z", "contributors": [ - "achraf", - "Jeremie", - "Fredchat" + "olivierdupon", + "edaveau", + "biface", + "As-Sinder", + "KurtC0ba1n" ] }, - "Accessibilité/Développement_Web": { - "modified": "2019-03-23T23:16:51.023Z", + "Learn/Server-side/Django/Models": { + "modified": "2020-11-15T11:16:41.925Z", "contributors": [ - "Fredchat" + "fsaid", + "Moh-Said", + "biface", + "skyfrigate" ] }, - "Adaptation_des_applications_XUL_pour_Firefox_1.5": { - "modified": "2019-03-23T23:44:05.298Z", + "Learn/Server-side/Django/Testing": { + "modified": "2020-07-16T22:37:36.868Z", "contributors": [ - "wbamberg", - "Mgjbot", - "BenoitL", - "Sheppy", - "Chbok" + "BrRoman" ] }, - "Améliorations_DOM_dans_Firefox_3": { - "modified": "2019-03-23T23:52:52.677Z", + "Learn/Server-side/Django/Tutorial_local_library_website": { + "modified": "2020-07-16T22:36:48.972Z", "contributors": [ - "wbamberg", - "BenoitL", - "Mgjbot" + "biface", + "skyfrigate" ] }, - "Améliorations_SVG_dans_Firefox_3": { - "modified": "2019-03-23T23:52:40.955Z", + "Learn/Server-side/Django/development_environment": { + "modified": "2020-07-16T22:36:44.147Z", "contributors": [ - "wbamberg", - "BenoitL", - "Mgjbot" + "edaveau" ] }, - "Améliorations_XUL_dans_Firefox_3": { - "modified": "2019-03-24T00:02:27.372Z", + "Learn/Server-side/Django/skeleton_website": { + "modified": "2020-11-14T22:07:57.460Z", "contributors": [ - "wbamberg", - "fscholz", - "BenoitL" + "ThuringEnigma", + "skyfrigate", + "biface" ] }, - "Apprendre": { - "modified": "2020-10-08T14:43:04.373Z", + "Learn/Server-side/Express_Nodejs": { + "modified": "2020-07-16T22:37:52.128Z", "contributors": [ - "geraldventadour", - "stphngrc", "smeden-lod", - "methodx", - "SphinxKnight", - "Melanie.Almeida", - "fredrun14", - "lecoeurseb", - "StrangeRocknRoller", - "tonybengue", - "Dralyab", - "egidiusmendel", - "unsteadyCode", - "W1773ND", - "Ilphrin", - "Raulel", - "JeffD", - "mliatt", - "teoli", - "gcodeur", - "Goofy", - "PetiPandaRou", - "jeromepasquelin", - "ValPom", - "Oliviermoz", - "DamienBertrand", - "wakka27", - "Benedetti", - "maxperchus" - ] - }, - "Apprendre/Accessibilité": { - "modified": "2020-07-16T22:35:46.786Z", - "contributors": [ - "SphinxKnight" + "PhilippePerret", + "Alan_Braut", + "serorl" ] }, - "Apprendre/CSS": { - "modified": "2020-10-08T16:01:55.051Z", + "Learn/Server-side/Express_Nodejs/Introduction": { + "modified": "2020-07-16T22:38:09.613Z", "contributors": [ - "geraldventadour", - "BAHLOUL_Farouk", - "nherbaut", - "Dralyab", - "SphinxKnight", - "dattaz", - "Oliviermoz" + "JNa0", + "carlyne", + "ThCarrere", + "PhilippePerret", + "codingk8", + "Raulel" ] }, - "Apprendre/CSS/Building_blocks": { - "modified": "2020-09-16T07:14:02.390Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks": { + "modified": "2020-09-15T15:45:33.414Z", "contributors": [ + "JNa0", "Voulto", - "smeden-lod", - "AxelGiauffret", - "chrisdavidmills" + "CodeDotJS" ] }, - "Apprendre/CSS/Building_blocks/Advanced_styling_effects": { - "modified": "2020-07-16T22:28:21.276Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction": { + "modified": "2020-11-21T11:56:14.049Z", "contributors": [ - "chrisdavidmills", - "Dralyab" + "tonybengue" ] }, - "Apprendre/CSS/Building_blocks/Backgrounds_and_borders": { - "modified": "2020-10-12T10:29:46.948Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features": { + "modified": "2020-11-21T11:57:54.636Z", "contributors": [ - "chuck2kill", - "pauline.chalus", - "smeden-lod" + "tonybengue" ] }, - "Apprendre/CSS/Building_blocks/Cascade_et_heritage": { - "modified": "2020-10-17T12:41:21.832Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started": { + "modified": "2020-11-21T12:01:48.747Z", "contributors": [ - "geraldventadour", - "smeden-lod" + "tonybengue", + "florestalclaudel878" ] }, - "Apprendre/CSS/Building_blocks/Debugging_CSS": { - "modified": "2020-10-15T22:35:18.278Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning": { + "modified": "2020-11-19T13:18:09.787Z", "contributors": [ - "chuck2kill" + "tonybengue" ] }, - "Apprendre/CSS/Building_blocks/Handling_different_text_directions": { - "modified": "2020-10-12T12:01:46.438Z", + "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started": { + "modified": "2020-10-03T00:57:04.281Z", "contributors": [ - "chuck2kill" + "duduindo", + "Anonymous" ] }, - "Apprendre/CSS/Building_blocks/Le_modele_de_boite": { - "modified": "2020-10-31T20:40:32.362Z", + "Learn/Tools_and_testing/Cross_browser_testing": { + "modified": "2020-11-23T17:27:15.888Z", "contributors": [ - "Romain04", - "devscipline", - "cgz141413", - "vvvaleee" + "Chomchaum", + "Voulto", + "wbamberg", + "arai" ] }, - "Apprendre/CSS/Building_blocks/Overflowing_content": { - "modified": "2020-10-13T05:02:31.498Z", + "Learn/Tools_and_testing/Cross_browser_testing/Introduction": { + "modified": "2020-07-16T22:39:03.351Z", "contributors": [ - "chuck2kill", - "JTR1103" + "Azyme" ] }, - "Apprendre/CSS/Building_blocks/Selectors": { - "modified": "2020-10-09T07:28:41.371Z", + "Learn/Tools_and_testing/Cross_browser_testing/JavaScript": { + "modified": "2020-07-16T22:39:13.632Z", "contributors": [ - "chuck2kill", - "smeden-lod", - "Zouayni" + "jedepaepe", + "Azyme" ] }, - "Apprendre/CSS/Building_blocks/Selectors/Combinateurs": { - "modified": "2020-12-07T09:25:08.631Z", + "Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies": { + "modified": "2020-07-16T22:39:06.838Z", "contributors": [ - "francoistm", - "chuck2kill" + "Azyme" ] }, - "Apprendre/CSS/Building_blocks/Selectors/Pseudo-classes_et_pseudo-éléments": { - "modified": "2020-10-17T16:55:55.753Z", + "Learn/Tools_and_testing/Understanding_client-side_tools": { + "modified": "2020-09-04T08:38:04.330Z", "contributors": [ - "geraldventadour", - "chuck2kill", - "time132", - "smeden-lod" + "Voulto", + "chrisdavidmills" ] }, - "Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_d_atrribut": { - "modified": "2020-07-16T22:28:49.665Z", + "MDN": { + "modified": "2020-02-08T12:54:31.725Z", "contributors": [ - "smeden-lod" + "tristantheb", + "SphinxKnight", + "wbamberg", + "htindon", + "Jeremie", + "tregagnon", + "teoli", + "wakka27", + "Sheppy" ] }, - "Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_de_type_classe_ID": { - "modified": "2020-07-16T22:28:39.961Z", + "MDN/Contribute": { + "modified": "2020-08-31T06:19:39.661Z", "contributors": [ - "smeden-lod" + "Voulto", + "wbamberg", + "zakaila", + "callmemagnus", + "Danette41240", + "SphinxKnight", + "Porkepix", + "thbil", + "Goofy", + "Baball", + "teoli", + "wakka27", + "jswisher" ] }, - "Apprendre/CSS/Building_blocks/Sizing_items_in_CSS": { - "modified": "2020-10-14T08:26:17.339Z", + "MDN/Contribute/Feedback": { + "modified": "2020-09-30T17:50:52.899Z", "contributors": [ - "chuck2kill", - "Guetso", - "JTR1103", - "cgz141413", - "smeden-lod" + "chrisdavidmills", + "jswisher", + "SphinxKnight", + "wbamberg", + "Yvain", + "Jnthnctt", + "PifyZ" ] }, - "Apprendre/CSS/Building_blocks/Styling_tables": { - "modified": "2020-07-16T22:28:15.930Z", + "MDN/Contribute/Getting_started": { + "modified": "2020-09-30T17:11:12.542Z", "contributors": [ - "smeden-lod", "chrisdavidmills", - "manuilambert", - "PhilippeV", - "Dralyab" + "SphinxKnight", + "yasminamess", + "wbamberg", + "NerOcrO", + "Burgito", + "black_cat", + "PhilippePerret", + "Axnyff", + "JDev4U", + "Jeremie", + "mliatt", + "manubcd", + "stephane34", + "Benedetti", + "Nothus", + "BiGrEgGaErOoTs", + "Frigory", + "Goofy", + "B_M", + "tregagnon", + "guillaumev", + "Lamaw", + "G-de-Bruges", + "PetiPandaRou", + "wakka27" ] }, - "Apprendre/CSS/Building_blocks/Values_and_units": { - "modified": "2020-10-13T07:02:20.601Z", + "MDN/Contribute/Howto": { + "modified": "2019-01-16T18:23:52.592Z", "contributors": [ - "chuck2kill" + "wbamberg", + "Porkepix", + "Baball", + "Sheppy" ] }, - "Apprendre/CSS/CSS_layout": { - "modified": "2020-07-16T22:26:30.167Z", + "MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary": { + "modified": "2019-03-23T22:09:42.767Z", "contributors": [ - "Anonymous", - "manuilambert", - "Dralyab", - "tonybengue" + "wbamberg", + "PhilippePerret" ] }, - "Apprendre/CSS/CSS_layout/Exemples_pratiques_de_positionnement": { - "modified": "2020-07-16T22:26:48.222Z", + "MDN/Contribute/Processes": { + "modified": "2020-09-03T03:23:25.806Z", "contributors": [ - "Anonymous" + "Voulto", + "wbamberg", + "jswisher" ] }, - "Apprendre/CSS/CSS_layout/Flexbox": { - "modified": "2020-07-16T22:26:52.633Z", + "MDN/Guidelines": { + "modified": "2020-09-30T15:29:18.429Z", "contributors": [ - "Anonymous", - "interfacteur", - "_julien_", - "Dralyab" + "chrisdavidmills", + "wbamberg", + "Porkepix", + "thbil" ] }, - "Apprendre/CSS/CSS_layout/Flexbox_skills": { - "modified": "2020-07-16T22:27:33.960Z", + "MDN/Structures": { + "modified": "2020-09-30T09:06:58.853Z", "contributors": [ - "Anonymous" + "chrisdavidmills", + "Voulto", + "wbamberg", + "jswisher" ] }, - "Apprendre/CSS/CSS_layout/Floats": { - "modified": "2020-07-16T22:26:37.621Z", + "MDN/Structures/Macros": { + "modified": "2020-09-30T09:06:59.189Z", "contributors": [ - "Anonymous", - "Dralyab", - "Alan_Braut" + "chrisdavidmills", + "wbamberg", + "jmh" ] }, - "Apprendre/CSS/CSS_layout/Fundamental_Layout_Comprehension": { - "modified": "2020-07-16T22:27:24.245Z", + "MDN/Structures/Macros/Commonly-used_macros": { + "modified": "2020-09-30T09:06:59.707Z", "contributors": [ - "tristantheb", - "junior-batilat" + "chrisdavidmills", + "wbamberg", + "teoli", + "fscholz", + "jmh" ] }, - "Apprendre/CSS/CSS_layout/Grids": { - "modified": "2020-07-16T22:26:59.113Z", + "MDN/Tools": { + "modified": "2020-09-30T16:48:32.947Z", "contributors": [ - "Anonymous", - "Dralyab" + "chrisdavidmills", + "Voulto", + "wbamberg", + "jswisher" ] }, - "Apprendre/CSS/CSS_layout/Introduction": { - "modified": "2020-07-16T22:27:04.363Z", + "MDN/Tools/KumaScript": { + "modified": "2020-09-30T16:48:33.592Z", "contributors": [ - "Anonymous", - "Dralyab", - "creposucre", - "Alan_Braut" + "chrisdavidmills", + "JNa0", + "wbamberg", + "SaintCyr" ] }, - "Apprendre/CSS/CSS_layout/Le_positionnement": { - "modified": "2020-11-08T08:33:26.641Z", + "Mozilla": { + "modified": "2019-03-23T23:34:28.870Z", "contributors": [ - "CCR-G", - "Anonymous", "Dralyab", - "Alan_Braut" + "Hell_Carlito", + "PtitPou", + "jmh", + "ethertank" ] }, - "Apprendre/CSS/CSS_layout/Legacy_Layout_Methods": { - "modified": "2020-07-16T22:27:13.887Z", + "Mozilla/Add-ons": { + "modified": "2020-09-03T19:55:47.093Z", "contributors": [ - "Dralyab" + "Dono7", + "Flavien", + "SphinxKnight", + "Mozinet", + "jezdez", + "pt1dav" ] }, - "Apprendre/CSS/CSS_layout/Media_queries": { - "modified": "2020-07-16T22:27:31.483Z", + "Mozilla/Add-ons/WebExtensions": { + "modified": "2020-08-27T19:26:10.093Z", "contributors": [ - "tristantheb" + "NassimSaboundji", + "hellosct1", + "JNa0", + "Mozinet", + "oub", + "arthuretienne", + "xdelatour", + "LaurentBarbareau", + "foxstorm", + "Bat41", + "MERIOULI", + "wbamberg" ] }, - "Apprendre/CSS/CSS_layout/Multiple-column_Layout": { - "modified": "2020-07-16T22:27:09.504Z", + "Mozilla/Add-ons/WebExtensions/API": { + "modified": "2020-05-25T16:55:24.491Z", "contributors": [ - "Dralyab" + "hellosct1", + "JNa0", + "Badacadabra", + "wbamberg" ] }, - "Apprendre/CSS/CSS_layout/Normal_Flow": { - "modified": "2020-07-16T22:27:21.075Z", + "Mozilla/Add-ons/WebExtensions/API/alarms": { + "modified": "2020-10-15T21:49:27.575Z", "contributors": [ - "Anonymous", - "Dralyab" + "hellosct1", + "SphinxKnight", + "Needlex" ] }, - "Apprendre/CSS/CSS_layout/Prise_En_Charge_Des_Anciens_Navigateurs": { - "modified": "2020-07-16T22:27:18.222Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/Alarm": { + "modified": "2020-10-15T21:56:47.391Z", "contributors": [ - "tristantheb" + "hellosct1", + "SphinxKnight" ] }, - "Apprendre/CSS/CSS_layout/Responsive_Design": { - "modified": "2020-07-16T22:27:27.744Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/clear": { + "modified": "2020-10-15T21:56:52.162Z", "contributors": [ - "xavier.boisnon", - "tristantheb", - "Anonymous" + "hellosct1", + "SphinxKnight" ] }, - "Apprendre/CSS/Comment": { - "modified": "2020-07-16T22:25:42.247Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/clearAll": { + "modified": "2020-10-15T21:56:49.302Z", "contributors": [ - "loella16", + "hellosct1", "SphinxKnight" ] }, - "Apprendre/CSS/Comment/Créer_de_belles_boîtes": { - "modified": "2020-07-16T22:25:49.335Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/create": { + "modified": "2020-10-15T21:56:55.595Z", "contributors": [ + "hellosct1", "SphinxKnight" ] }, - "Apprendre/CSS/Comment/Generated_content": { - "modified": "2020-07-16T22:25:47.662Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/get": { + "modified": "2020-10-15T21:56:47.349Z", "contributors": [ - "chrisdavidmills", - "teoli", - "grandoc", - "Mgjbot", - "Verruckt", - "BenoitL" + "hellosct1", + "SphinxKnight" ] }, - "Apprendre/CSS/Comment/Mettre_en_forme_du_texte": { - "modified": "2020-07-16T22:25:49.005Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/getAll": { + "modified": "2020-10-15T21:56:49.563Z", "contributors": [ + "hellosct1", "SphinxKnight" ] }, - "Apprendre/CSS/Comment/personnaliser_une_liste": { - "modified": "2020-07-16T22:25:49.686Z", + "Mozilla/Add-ons/WebExtensions/API/alarms/onAlarm": { + "modified": "2020-10-15T21:56:50.838Z", "contributors": [ - "xdelatour" + "hellosct1", + "SphinxKnight" ] }, - "Apprendre/CSS/Introduction_à_CSS/Fundamental_CSS_comprehension": { - "modified": "2020-07-16T22:28:12.063Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks": { + "modified": "2020-10-15T21:55:09.926Z", "contributors": [ - "Dralyab" + "hellosct1", + "JNa0", + "NerOcrO" ] }, - "Apprendre/CSS/Introduction_à_CSS/La_disposition": { - "modified": "2020-07-16T22:25:40.392Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNode": { + "modified": "2020-10-15T22:06:54.229Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/CSS/Les_propriétés_CSS": { - "modified": "2020-07-16T22:25:39.574Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeType": { + "modified": "2020-10-15T22:06:55.729Z", "contributors": [ - "SphinxKnight", - "Oliviermoz" + "hellosct1" ] }, - "Apprendre/CSS/Utiliser_CSS_dans_une_page_web": { - "modified": "2020-07-16T22:25:39.949Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeUnmodifiable": { + "modified": "2020-10-15T22:06:56.897Z", "contributors": [ - "Loliwe", - "SphinxKnight", - "Oliviermoz" + "hellosct1" ] }, - "Apprendre/CSS/formatage_texte_CSS": { - "modified": "2020-07-16T22:25:39.378Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/CreateDetails": { + "modified": "2020-10-15T22:06:54.030Z", "contributors": [ - "teoli", - "SphinxKnight", - "Mozinet", - "Oliviermoz" + "hellosct1", + "ariasuni" ] }, - "Apprendre/CSS/styliser_boites/A_cool_looking_box": { - "modified": "2020-07-16T22:28:26.748Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/create": { + "modified": "2020-10-15T22:06:53.629Z", "contributors": [ - "Dralyab" + "hellosct1", + "wbamberg" ] }, - "Apprendre/CSS/styliser_boites/Creating_fancy_letterheaded_paper": { - "modified": "2020-07-16T22:28:24.684Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/get": { + "modified": "2020-10-15T22:06:54.282Z", "contributors": [ - "LeMilitaire", - "Dralyab" + "Arzak656", + "hellosct1" ] }, - "Apprendre/Choisir_installer_paramétrer_un_éditeur_de_texte": { - "modified": "2020-07-16T22:35:48.990Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/getChildren": { + "modified": "2020-10-15T22:06:56.873Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web": { - "modified": "2020-07-16T22:33:52.213Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/getRecent": { + "modified": "2020-10-15T22:06:57.277Z", "contributors": [ - "Melanie.Almeida", - "Dralyab", - "Hirevo", - "Ilphrin", - "loella16", - "tonybengue", - "Porkepix", - "Aminelahlou", - "allan.miro", - "SphinxKnight", - "mouloudia1981", - "Oliviermoz", - "qwincy", - "Luejni", - "Goofy", - "maxperchus" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Gérer_les_fichiers": { - "modified": "2020-07-16T22:34:33.292Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree": { + "modified": "2020-10-15T22:06:54.273Z", "contributors": [ - "StrangeRocknRoller", - "Dralyab", - "Ilphrin", - "loella16", - "shoelaces", - "marie-ototoi", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Installation_outils_de_base": { - "modified": "2020-10-20T05:04:23.584Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree": { + "modified": "2020-10-15T22:06:52.492Z", "contributors": [ - "SebastienLatouche", - "goofy_mdn", - "SphinxKnight", - "NacimHarfouche", - "Chomchaum", - "Dralyab", - "zakaila", - "Ilphrin", - "TiCaillou", - "yannicka", - "loella16", - "clamb", - "PifyZ", - "DamienBertrand", - "qwincy", - "Luejni", - "Goofy" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Le_fonctionnement_du_Web": { - "modified": "2020-07-16T22:34:00.161Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/move": { + "modified": "2020-10-15T22:06:58.622Z", "contributors": [ - "grandoc", - "Keyrolus", - "ValentinFlamand", - "Dralyab", - "TheStarrK", - "Ilphrin", - "loella16", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Les_bases_CSS": { - "modified": "2020-07-16T22:34:58.312Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onChanged": { + "modified": "2020-10-15T22:06:59.610Z", "contributors": [ - "Melanie.Almeida", - "Dralyab", - "Ilphrin", - "loella16", - "Mozinet", - "marie-ototoi", - "bl4n", - "SphinxKnight" + "hellosct1", + "duduindo", + "wbamberg" ] }, - "Apprendre/Commencer_avec_le_web/Les_bases_HTML": { - "modified": "2020-07-16T22:34:45.216Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onChildrenReordered": { + "modified": "2020-10-15T22:06:57.747Z", "contributors": [ - "aSeches", - "Chomchaum", - "StrangeRocknRoller", - "Dralyab", - "Ilphrin", - "loella16", - "tonybengue", - "KhalilSnaake", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Les_bases_JavaScript": { - "modified": "2020-07-16T22:35:10.257Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onCreated": { + "modified": "2020-10-15T22:06:56.763Z", "contributors": [ - "edspeedy", - "grandoc", - "SuppWill", - "Melanie.Almeida", - "Drakone", - "clamb", - "manuilambert", - "Maartz", - "codingk8", - "Dralyab", - "TheStarrK", - "loella16", - "TheoDardel", - "bl4n", - "SphinxKnight", - "Aelerinya" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Publier_votre_site_web": { - "modified": "2020-07-16T22:34:25.316Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportBegan": { + "modified": "2020-10-15T22:06:58.178Z", "contributors": [ - "edspeedy", - "Dralyab", - "NemoNobobyPersonne", - "Ilphrin", - "villastien", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site": { - "modified": "2020-07-16T22:34:16.258Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportEnded": { + "modified": "2020-10-15T22:06:57.694Z", "contributors": [ - "Dralyab", - "Ilphrin", - "yannicka", - "loella16", - "SphinxKnight", - "J.DMB", - "Luejni" + "hellosct1" ] }, - "Apprendre/Commencer_avec_le_web/The_web_and_web_standards": { - "modified": "2020-11-28T07:27:01.600Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onMoved": { + "modified": "2020-10-15T22:06:57.181Z", "contributors": [ - "Kinskikick", - "Chomchaum" + "hellosct1" ] }, - "Apprendre/Commencez_votre_projet_web": { - "modified": "2020-07-16T22:35:34.202Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/onRemoved": { + "modified": "2020-10-15T22:06:57.843Z", "contributors": [ - "SphinxKnight", - "rtabusse" + "hellosct1" ] }, - "Apprendre/Comment_contribuer": { - "modified": "2020-07-16T22:33:43.608Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/remove": { + "modified": "2020-10-15T22:06:56.991Z", "contributors": [ - "SphinxKnight", - "Dralyab", - "loella16", - "PetiPandaRou" + "hellosct1" ] }, - "Apprendre/Common_questions": { - "modified": "2020-08-07T08:34:09.122Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/removeTree": { + "modified": "2020-10-15T22:06:56.214Z", "contributors": [ - "ramakuzhou", - "As-Sinder", - "JeffD", - "Willyntobila" + "hellosct1" ] }, - "Apprendre/Common_questions/configurer_un_serveur_de_test_local": { - "modified": "2020-07-16T22:35:52.861Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/search": { + "modified": "2020-10-15T22:06:57.967Z", "contributors": [ - "Duth", - "smeden-lod", - "ThCarrere", - "Zinavolia", - "fleuronvilik", - "TheStarrK", - "Albynton" + "hellosct1" ] }, - "Apprendre/Comprendre_les_URL": { - "modified": "2020-07-16T22:35:29.353Z", + "Mozilla/Add-ons/WebExtensions/API/bookmarks/update": { + "modified": "2020-10-15T22:06:55.775Z", "contributors": [ - "clamb", - "Porkepix", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Comprendre_noms_de_domaine": { - "modified": "2020-07-16T22:35:44.035Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction": { + "modified": "2020-10-15T21:55:16.337Z", "contributors": [ - "Porkepix", - "SphinxKnight" + "hellosct1", + "wbamberg", + "JujuLeVilleurbannais" ] }, - "Apprendre/Compétences": { - "modified": "2020-07-16T22:22:13.196Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/ColorArray": { + "modified": "2020-10-15T21:57:12.722Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Concevoir_page_web": { - "modified": "2020-07-16T22:35:42.406Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/ImageDataType": { + "modified": "2020-10-15T21:57:10.313Z", "contributors": [ - "SphinxKnight", - "Goofy", - "ValPom" + "hellosct1" ] }, - "Apprendre/Concevoir_site_tous_types_utilisateurs": { - "modified": "2020-07-16T22:35:50.809Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/disable": { + "modified": "2020-10-15T21:57:17.917Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Découvrir_outils_développement_navigateurs": { - "modified": "2020-07-16T22:35:47.424Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/enable": { + "modified": "2020-10-15T21:57:15.753Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Fonctionnement_Internet": { - "modified": "2020-07-16T22:35:36.757Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeBackgroundColor": { + "modified": "2020-10-15T21:57:19.839Z", "contributors": [ - "TheStarrK", - "Porkepix", - "SphinxKnight", - "ValPom" + "hellosct1" ] }, - "Apprendre/Front-end_web_developer": { - "modified": "2020-12-12T07:17:26.887Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeText": { + "modified": "2020-10-15T21:57:19.156Z", "contributors": [ - "leeadoukonou", - "Twinklelight", - "geraldventadour", - "KHALIL5benz", - "Gwenishere" + "hellosct1" ] }, - "Apprendre/HTML": { - "modified": "2020-07-16T22:22:17.105Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeTextColor": { + "modified": "2020-10-15T22:08:46.895Z", "contributors": [ - "Th0m4", - "Dralyab", - "zakaila", - "Ilphrin", - "interfacteur", - "Goofy", - "jlagneau", - "gillou58", - "SphinxKnight", - "DamienBertrand" + "hellosct1" ] }, - "Apprendre/HTML/Balises_HTML": { - "modified": "2020-07-16T22:22:27.345Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/getPopup": { + "modified": "2020-10-15T21:57:14.137Z", "contributors": [ - "gudemare", - "Loliwe", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Cheatsheet": { - "modified": "2020-07-16T22:22:44.025Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/getTitle": { + "modified": "2020-10-15T21:57:13.635Z", "contributors": [ - "SphinxKnight", - "Goofy" + "hellosct1" ] }, - "Apprendre/HTML/Comment": { - "modified": "2020-07-16T22:22:28.392Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/isEnabled": { + "modified": "2020-10-15T22:04:36.266Z", "contributors": [ - "Goofy", - "SphinxKnight", - "SisteSkygge" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Afficher_du_code_informatique_avec_HTML": { - "modified": "2020-07-16T22:22:41.102Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/onClicked": { + "modified": "2020-10-15T21:57:11.578Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_carte_zones_cliquables_sur_image": { - "modified": "2020-07-16T22:22:42.935Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/openPopup": { + "modified": "2020-10-15T22:04:36.594Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_citations_sur_page_web": { - "modified": "2020-07-16T22:22:41.315Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeBackgroundColor": { + "modified": "2020-10-15T21:57:20.395Z", "contributors": [ - "teoli", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_contenu_Flash_dans_page_web": { - "modified": "2020-07-16T22:22:42.572Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeText": { + "modified": "2020-10-15T21:57:15.662Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_contenu_audio_vidéo_page_web": { - "modified": "2020-07-16T22:22:40.861Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeTextColor": { + "modified": "2020-10-15T22:08:45.959Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_des_images_adaptatives_à_une_page_web": { - "modified": "2020-12-06T15:45:53.769Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setIcon": { + "modified": "2020-10-15T21:57:18.790Z", "contributors": [ - "Kinskikick", - "jwhitlock", - "ncodefun", - "Bpruneau", - "Dralyab", - "edspeedy", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_des_images_vectorielles_à_une_page_web": { - "modified": "2020-07-16T22:24:39.978Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setPopup": { + "modified": "2020-10-15T21:57:20.848Z", "contributors": [ - "brundozer", - "Dralyab", - "carnival187", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Ajouter_des_images_à_une_page_web": { - "modified": "2020-07-16T22:22:38.961Z", + "Mozilla/Add-ons/WebExtensions/API/browserAction/setTitle": { + "modified": "2020-10-15T21:57:13.171Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Annoter_des_images_et_graphiques": { - "modified": "2020-07-16T22:22:41.471Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings": { + "modified": "2020-10-15T21:57:20.303Z", "contributors": [ - "SphinxKnight" + "vince-origin", + "hellosct1" ] }, - "Apprendre/HTML/Comment/Appliquer_du_CSS_à_une_page_web": { - "modified": "2020-07-16T22:22:39.866Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/allowPopupsForUserEvents": { + "modified": "2020-10-15T21:57:16.502Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Créer_un_document_HTML_simple": { - "modified": "2020-07-16T22:22:38.260Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/cacheEnabled": { + "modified": "2020-10-15T21:57:20.596Z", "contributors": [ - "G4cklez", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Créer_un_hyperlien": { - "modified": "2020-07-16T22:22:39.664Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/closeTabsByDoubleClick": { + "modified": "2020-10-15T22:13:16.558Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Créer_une_liste_d_éléments_avec_HTML": { - "modified": "2020-07-16T22:22:40.566Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/contextMenuShowEvent": { + "modified": "2020-10-15T22:04:59.335Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Découper_une_page_web_en_sections_logiques": { - "modified": "2020-07-16T22:22:39.225Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/ftpProtocolEnabled": { + "modified": "2020-10-15T22:29:18.905Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "vince-origin" ] }, - "Apprendre/HTML/Comment/Définir_des_termes_avec_HTML": { - "modified": "2020-07-16T22:22:41.835Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/homepageOverride": { + "modified": "2020-10-15T22:04:59.231Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Identifier_et_expliquer_des_abréviations": { - "modified": "2020-07-16T22:22:37.801Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/imageAnimationBehavior": { + "modified": "2020-10-15T22:04:59.301Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Intégrer_une_page_web_dans_une_autre_page_web": { - "modified": "2020-07-16T22:22:42.317Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPageOverride": { + "modified": "2020-10-15T22:04:59.445Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Mettre_en_place_une_hiérarchie_de_titres": { - "modified": "2020-07-16T22:22:39.419Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPosition": { + "modified": "2020-10-15T22:06:52.287Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Mettre_l_accent_sur_un_contenu_ou_indiquer_qu_un_texte_est_important": { - "modified": "2020-07-16T22:22:38.547Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/openBookmarksInNewTabs": { + "modified": "2020-10-15T22:04:59.369Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Utiliser_JavaScript_au_sein_d_une_page_web": { - "modified": "2020-07-16T22:22:40.147Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/openSearchResultsInNewTabs": { + "modified": "2020-10-15T22:04:58.861Z", "contributors": [ - "RomainLanz", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Comment/Utiliser_attributs_donnes": { - "modified": "2020-07-16T22:22:34.977Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/openUrlbarResultsInNewTabs": { + "modified": "2020-10-15T22:05:40.306Z", "contributors": [ - "lotfire24", - "SphinxKnight", - "Goofy" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML": { - "modified": "2020-07-16T22:22:47.142Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/overrideDocumentColors": { + "modified": "2020-10-15T22:05:24.428Z", "contributors": [ - "bfritscher", - "NerOcrO", - "Dralyab", - "Ilphrin", - "loella16", - "Porkepix", - "Jeremie", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks": { - "modified": "2020-11-27T09:49:15.655Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/useDocumentFonts": { + "modified": "2020-10-15T22:05:23.408Z", "contributors": [ - "Chomchaum", - "goofy_mdn", - "Dralyab", - "_kud", - "NemoNobobyPersonne", - "zakaila", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/Debugging_HTML": { - "modified": "2020-07-16T22:24:12.781Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/webNotificationsDisabled": { + "modified": "2020-10-15T22:04:59.020Z", "contributors": [ - "chrisdavidmills", - "LeMilitaire", - "Dralyab", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure": { - "modified": "2020-07-16T22:24:04.214Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/zoomFullPage": { + "modified": "2020-10-15T22:29:18.493Z", "contributors": [ - "tonybengue", - "fredckl", - "Dralyab", - "AntoineJacquet", - "olschneider", - "SamuChan", - "Ilphrin" + "hellosct1", + "vince-origin" ] }, - "Apprendre/HTML/Introduction_à_HTML/Getting_started": { - "modified": "2020-07-16T22:23:00.212Z", + "Mozilla/Add-ons/WebExtensions/API/browserSettings/zoomSiteSpecific": { + "modified": "2020-10-15T22:29:16.581Z", "contributors": [ - "aSeches", - "Chomchaum", - "Dralyab", - "bastosh", - "Lizie", - "KhalilSnaake" + "hellosct1", + "vince-origin" ] }, - "Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals": { - "modified": "2020-07-16T22:23:32.043Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData": { + "modified": "2020-10-15T21:57:41.783Z", "contributors": [ - "aSeches", - "Chomchaum", - "LeMilitaire", - "Dralyab", - "gnoyaze", - "clamb", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/Marking_up_a_letter": { - "modified": "2020-12-05T16:03:44.361Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/DataTypeSet": { + "modified": "2020-10-15T22:00:04.307Z", "contributors": [ - "Kinskikick", - "chrisdavidmills", - "LeMilitaire", - "Dralyab", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/Structuring_a_page_of_content": { - "modified": "2020-07-16T22:24:18.719Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/RemovalOptions": { + "modified": "2020-10-15T22:00:01.417Z", "contributors": [ - "LeMilitaire", - "Dralyab", - "Arkelis", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/The_head_metadata_in_HTML": { - "modified": "2020-11-17T15:11:05.138Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/remove": { + "modified": "2020-10-15T21:58:20.101Z", "contributors": [ - "gauthier.delaserraz", - "lord128", - "Chomchaum", - "Dralyab", - "tonybengue", - "bastosh", - "loella16", - "Pethrow", - "KhalilSnaake" + "hellosct1" ] }, - "Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte": { - "modified": "2020-11-29T07:50:37.082Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache": { + "modified": "2020-10-15T22:00:00.917Z", "contributors": [ - "Kinskikick", - "Dralyab", - "zakaila", - "BartGui", - "Goofy" + "hellosct1" ] }, - "Apprendre/HTML/Multimedia_and_embedding": { - "modified": "2020-07-16T22:24:25.278Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeCookies": { + "modified": "2020-10-15T22:00:02.470Z", "contributors": [ - "tristantheb", - "Dralyab", - "AntoineJacquet", - "zakaila", - "Ilphrin" + "hellosct1" ] }, - "Apprendre/HTML/Multimedia_and_embedding/Contenu_audio_et_video": { - "modified": "2020-07-16T22:24:52.741Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeDownloads": { + "modified": "2020-10-15T22:00:02.232Z", "contributors": [ - "Chomchaum", - "LeMilitaire", - "Dralyab", - "zakaila" + "hellosct1" ] }, - "Apprendre/HTML/Multimedia_and_embedding/Images_in_HTML": { - "modified": "2020-07-16T22:24:44.917Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeFormData": { + "modified": "2020-10-15T22:00:02.195Z", "contributors": [ - "BAHLOUL_Farouk", - "didierbroska", - "Chomchaum", - "daftaupe", - "zakaila", - "Dralyab" + "hellosct1" ] }, - "Apprendre/HTML/Multimedia_and_embedding/Mozilla_splash_page": { - "modified": "2020-07-16T22:25:07.018Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeHistory": { + "modified": "2020-10-15T22:00:03.781Z", "contributors": [ - "zakaila" + "hellosct1" ] }, - "Apprendre/HTML/Multimedia_and_embedding/Other_embedding_technologies": { - "modified": "2020-07-16T22:25:01.620Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removeLocalStorage": { + "modified": "2020-10-15T22:00:02.673Z", "contributors": [ - "Dralyab" + "hellosct1" ] }, - "Apprendre/HTML/Tableaux": { - "modified": "2020-07-16T22:25:11.317Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removePasswords": { + "modified": "2020-10-15T22:00:00.174Z", "contributors": [ - "NerOcrO", - "Dralyab", - "loella16", - "tonybengue" + "hellosct1" ] }, - "Apprendre/HTML/Tableaux/Advanced": { - "modified": "2020-07-16T22:25:25.886Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/removePluginData": { + "modified": "2020-10-15T22:00:01.101Z", "contributors": [ - "Dralyab", - "loella16", - "tonybengue" + "hellosct1" ] }, - "Apprendre/HTML/Tableaux/Basics": { - "modified": "2020-12-13T07:01:09.726Z", + "Mozilla/Add-ons/WebExtensions/API/browsingData/settings": { + "modified": "2020-10-15T22:00:00.741Z", "contributors": [ - "Kinskikick", - "ThCarrere", - "Dralyab", - "loella16", - "tonybengue" + "hellosct1" ] }, - "Apprendre/HTML/Tableaux/Structuring_planet_data": { - "modified": "2020-07-16T22:25:29.724Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal": { + "modified": "2020-10-15T22:30:04.270Z", "contributors": [ - "Dralyab", - "loella16", - "tonybengue" + "hellosct1", + "rebloor" ] }, - "Apprendre/HTML/Écrire_une_simple_page_HTML": { - "modified": "2020-07-16T22:22:26.616Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal/canonicalURL": { + "modified": "2020-10-15T22:30:03.440Z", "contributors": [ - "wbamberg", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Index": { - "modified": "2020-07-16T22:33:36.900Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal/getLastChecked": { + "modified": "2020-10-15T22:30:05.691Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/JavaScript": { - "modified": "2020-07-16T22:29:38.759Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal/getState": { + "modified": "2020-10-15T22:30:34.996Z", "contributors": [ - "mper", - "Dralyab", - "tonybengue", - "loella16", - "SphinxKnight", - "Thogusa" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks": { - "modified": "2020-07-16T22:31:07.626Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal/onConnectivityAvailable": { + "modified": "2020-10-15T22:30:05.428Z", "contributors": [ - "smeden-lod", - "tonybengue", - "SphinxKnight", - "benjaminlepine", - "loella16", - "daufinsyd" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks/Build_your_own_function": { - "modified": "2020-07-16T22:31:29.138Z", + "Mozilla/Add-ons/WebExtensions/API/captivePortal/onStateChanged": { + "modified": "2020-10-15T22:30:34.412Z", "contributors": [ - "smeden-lod", - "EmerikC", - "Chaospherae", - "andyquin", - "Gasperowicz" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks/Evènements": { - "modified": "2020-07-16T22:31:37.886Z", + "Mozilla/Add-ons/WebExtensions/API/clipboard": { + "modified": "2020-10-15T21:58:44.611Z", "contributors": [ - "Chaospherae", - "bubzy34", - "tonybengue" + "hellosct1", + "clamb" ] }, - "Apprendre/JavaScript/Building_blocks/Fonctions": { - "modified": "2020-07-16T22:31:24.630Z", + "Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData": { + "modified": "2020-10-15T21:58:52.602Z", "contributors": [ - "Voltariuss", - "smeden-lod", - "vacarme", - "Mania", - "bubzy34", - "tonybengue" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks/Image_gallery": { - "modified": "2020-07-16T22:31:43.231Z", + "Mozilla/Add-ons/WebExtensions/API/commands": { + "modified": "2020-10-15T21:57:41.229Z", "contributors": [ - "tristantheb", - "Chaospherae", - "Jcninho87", - "SphinxKnight", - "tonybengue" + "hellosct1", + "JNa0" ] }, - "Apprendre/JavaScript/Building_blocks/Looping_code": { - "modified": "2020-07-16T22:31:19.091Z", + "Mozilla/Add-ons/WebExtensions/API/commands/Command": { + "modified": "2020-10-15T22:00:15.894Z", "contributors": [ - "JNa0", - "baslumol", - "Eric-ciccotti", - "andyquin", - "ThCarrere", - "bubzy34", - "tonybengue", - "joan38", - "Abrams" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks/Return_values": { - "modified": "2020-07-16T22:31:33.181Z", + "Mozilla/Add-ons/WebExtensions/API/commands/getAll": { + "modified": "2020-10-15T22:00:16.483Z", "contributors": [ - "Chaospherae", - "andyquin", - "tonybengue", - "farantDEV" + "hellosct1" ] }, - "Apprendre/JavaScript/Building_blocks/conditionals": { - "modified": "2020-07-16T22:31:13.085Z", + "Mozilla/Add-ons/WebExtensions/API/commands/onCommand": { + "modified": "2020-10-15T22:00:18.817Z", "contributors": [ - "Tendø", - "smeden-lod", - "Chomchaum", - "Eric-ciccotti", - "grandoc", - "tonybengue", - "Dralyab", - "OxyDesign" + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs": { - "modified": "2020-07-16T22:32:39.093Z", + "Mozilla/Add-ons/WebExtensions/API/commands/reset": { + "modified": "2020-10-15T22:04:36.152Z", "contributors": [ - "a-mt", - "Dralyab", - "bretondev" + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Client-side_storage": { - "modified": "2020-07-16T22:33:04.752Z", + "Mozilla/Add-ons/WebExtensions/API/commands/update": { + "modified": "2020-10-15T22:04:36.445Z", "contributors": [ - "smeden-lod", - "a-mt" + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Drawing_graphics": { - "modified": "2020-07-16T22:33:01.225Z", + "Mozilla/Add-ons/WebExtensions/API/contentScripts": { + "modified": "2020-10-15T22:03:15.588Z", "contributors": [ - "CcelestinC", - "a-mt" + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Fetching_data": { - "modified": "2020-07-16T22:32:57.712Z", + "Mozilla/Add-ons/WebExtensions/API/contentScripts/RegisteredContentScript": { + "modified": "2020-10-15T22:03:05.082Z", "contributors": [ - "nrdAio", - "smeden-lod", - "neytsumi", - "CcelestinC", - "BigBigDoudou", - "a-mt" + "hellosct1", + "wbamberg" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Introduction": { - "modified": "2020-07-16T22:32:44.687Z", + "Mozilla/Add-ons/WebExtensions/API/contentScripts/RegisteredContentScript/unregister": { + "modified": "2020-10-15T22:03:07.948Z", "contributors": [ - "zoora", - "fuentesloic", - "BigBigDoudou", - "a-mt", - "Dralyab", - "elWombator", - "bretondev" + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Manipulating_documents": { - "modified": "2020-07-16T22:32:47.994Z", + "Mozilla/Add-ons/WebExtensions/API/contentScripts/register": { + "modified": "2020-10-15T22:03:07.517Z", "contributors": [ - "Vony", - "a-mt" + "milouse", + "hellosct1" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Third_party_APIs": { - "modified": "2020-07-16T22:32:54.118Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities": { + "modified": "2020-10-15T21:57:40.932Z", "contributors": [ - "SphinxKnight", - "a-mt" + "hellosct1", + "JNa0" ] }, - "Apprendre/JavaScript/Client-side_web_APIs/Video_and_audio_APIs": { - "modified": "2020-07-16T22:32:52.122Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/ContextualIdentity": { + "modified": "2020-10-15T22:03:10.039Z", "contributors": [ - "a-mt", - "Naouak" + "hellosct1" ] }, - "Apprendre/Le_fonctionnement_des_liens_sur_le_Web": { - "modified": "2020-07-16T22:35:43.089Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/create": { + "modified": "2020-10-15T22:03:09.387Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "BenDz" ] }, - "Apprendre/Mettre_en_place_un_environnement_de_travail": { - "modified": "2020-07-16T22:35:46.563Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/get": { + "modified": "2020-10-15T22:03:07.326Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Outils_et_tests": { - "modified": "2020-07-16T22:38:55.131Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onCreated": { + "modified": "2020-10-15T22:03:10.805Z", "contributors": [ - "gnoyaze", - "KrySoar" + "hellosct1" ] }, - "Apprendre/Outils_et_tests/GitHub": { - "modified": "2020-09-09T16:10:57.840Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onRemoved": { + "modified": "2020-10-15T22:03:10.585Z", "contributors": [ - "JNa0" + "hellosct1" ] }, - "Apprendre/Ouvrir_un_fichier_dans_un_navigateur_web": { - "modified": "2020-07-16T22:35:20.536Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onUpdated": { + "modified": "2020-10-15T22:03:11.564Z", "contributors": [ - "ILIKECOOKIE", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Publier_sur_le_Web_combien_ça_coûte": { - "modified": "2020-07-16T22:35:45.519Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/query": { + "modified": "2020-10-15T22:03:06.215Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Qu_est-ce_qu_un_serveur_web": { - "modified": "2020-07-16T22:35:31.313Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/remove": { + "modified": "2020-10-15T22:03:06.492Z", "contributors": [ - "jswisher", - "adupays", - "LooDom", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Quels_logiciels_sont_nécessaires_pour_construire_un_site_web": { - "modified": "2020-07-16T22:35:33.023Z", + "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/update": { + "modified": "2020-10-15T22:03:06.298Z", "contributors": [ - "JNa0", - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Tester_le_bon_fonctionnement_de_votre_site_web": { - "modified": "2020-07-16T22:35:50.068Z", + "Mozilla/Add-ons/WebExtensions/API/cookies": { + "modified": "2020-10-15T21:57:42.517Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "pierregillet" ] }, - "Apprendre/Transférer_des_fichiers_vers_un_serveur_web": { - "modified": "2020-07-16T22:35:41.575Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/Cookie": { + "modified": "2020-10-15T22:00:18.569Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Tutoriels": { - "modified": "2020-08-30T08:21:58.955Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/CookieStore": { + "modified": "2020-10-15T22:00:17.792Z", "contributors": [ - "Voulto", - "SphinxKnight", - "Andrew_Pfeiffer" + "hellosct1" ] }, - "Apprendre/Tutoriels/Comment_construire_un_site_web": { - "modified": "2020-07-16T22:33:41.155Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/OnChangedCause": { + "modified": "2020-10-15T22:00:17.330Z", "contributors": [ - "SphinxKnight", - "Thegennok" + "hellosct1" ] }, - "Apprendre/Tutoriels/Les_bases_de_la_sécurité_informatique": { - "modified": "2019-03-23T22:46:47.760Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/SameSiteStatus": { + "modified": "2019-07-03T06:45:04.077Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Apprendre/Utiliser_les_pages_GitHub": { - "modified": "2020-07-16T22:35:51.735Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/get": { + "modified": "2020-10-15T22:00:19.493Z", "contributors": [ - "tonybengue", - "SphinxKnight" + "hellosct1", + "Loenix" ] }, - "Apprendre/a11y": { - "modified": "2020-07-16T22:39:56.923Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/getAll": { + "modified": "2020-10-15T22:00:18.081Z", "contributors": [ - "smeden-lod", - "KrySoar", - "Mozinet", - "SphinxKnight", - "Steph" + "regseb", + "hellosct1" ] }, - "Apprendre/a11y/Accessibility_troubleshooting": { - "modified": "2020-07-16T22:40:35.382Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/getAllCookieStores": { + "modified": "2020-10-15T22:00:19.042Z", "contributors": [ - "dragon38800" + "hellosct1" ] }, - "Apprendre/a11y/CSS_and_JavaScript": { - "modified": "2020-07-16T22:40:16.805Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/onChanged": { + "modified": "2020-10-15T22:00:17.953Z", "contributors": [ - "smeden-lod", - "JNa0", - "dragon38800" + "hellosct1", + "thomascaillier" ] }, - "Apprendre/a11y/HTML": { - "modified": "2020-11-16T16:49:01.676Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/remove": { + "modified": "2020-10-15T22:00:18.993Z", "contributors": [ - "Mozinet", - "smeden-lod", - "JNa0", - "dragon38800", - "SphinxKnight", - "Tartasprint", - "n-chardon", - "tonybengue" + "hellosct1", + "MusiKid" ] }, - "Apprendre/a11y/Mobile": { - "modified": "2020-07-16T22:40:29.992Z", + "Mozilla/Add-ons/WebExtensions/API/cookies/set": { + "modified": "2020-10-15T22:00:19.267Z", "contributors": [ - "dragon38800" + "hellosct1", + "P45QU10U" ] }, - "Apprendre/a11y/Multimedia": { - "modified": "2020-07-16T22:40:26.301Z", + "Mozilla/Add-ons/WebExtensions/API/devtools": { + "modified": "2020-10-15T22:30:24.003Z", "contributors": [ - "dragon38800" + "hellosct1" ] }, - "Apprendre/a11y/WAI-ARIA_basics": { - "modified": "2020-07-16T22:40:21.563Z", + "Mozilla/Add-ons/WebExtensions/API/dns": { + "modified": "2020-10-15T22:04:28.089Z", "contributors": [ - "JNa0", - "dragon38800" + "hellosct1", + "wbamberg" ] }, - "Apprendre/a11y/What_is_accessibility": { - "modified": "2020-08-21T07:34:09.191Z", + "Mozilla/Add-ons/WebExtensions/API/dns/resolve": { + "modified": "2020-10-15T22:04:22.142Z", "contributors": [ - "geoffctn", - "smeden-lod", - "dragon38800", - "gnoyaze", - "tonybengue" + "hellosct1" ] }, - "Apprendre/page_vs_site_vs_serveur_vs_moteur_recherche": { - "modified": "2020-07-16T22:35:39.748Z", + "Mozilla/Add-ons/WebExtensions/API/downloads": { + "modified": "2020-10-15T21:57:39.749Z", "contributors": [ - "SphinxKnight", - "fndiaye", - "ValPom" + "hellosct1" ] }, - "Astuces_CSS": { - "modified": "2019-01-16T16:09:55.868Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/BooleanDelta": { + "modified": "2020-10-15T22:03:08.682Z", "contributors": [ - "BenoitL" + "hellosct1", + "dragon38800" ] }, - "Astuces_CSS/Couleurs_et_fonds": { - "modified": "2019-01-16T15:51:34.856Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/DangerType": { + "modified": "2020-10-15T22:03:15.056Z", "contributors": [ - "Fredchat", - "Kyodev", - "DirtyF", - "BenoitL" + "hellosct1" ] }, - "Astuces_CSS/Liens": { - "modified": "2019-01-16T15:51:16.166Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/DoubleDelta": { + "modified": "2020-10-15T22:03:02.646Z", "contributors": [ - "Fredchat", - "Kyodev" + "hellosct1" ] }, - "Astuces_CSS/Tableaux": { - "modified": "2019-03-23T23:49:00.263Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadItem": { + "modified": "2020-10-15T22:03:03.375Z", "contributors": [ - "ethertank", - "Fredchat", - "Kyodev", - "Chbok", - "Mgjbot" + "hellosct1" ] }, - "Bugs_importants_corrigés_dans_Firefox_3": { - "modified": "2019-03-23T23:50:56.565Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadQuery": { + "modified": "2020-10-15T22:03:01.801Z", "contributors": [ - "wbamberg", - "Mgjbot", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas": { - "modified": "2019-03-23T23:43:26.964Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadTime": { + "modified": "2020-10-15T22:03:15.782Z", "contributors": [ - "Avent", - "wakka27", - "jparker", - "Delapouite", - "Verruckt", - "VincentN", - "Mgjbot", - "Indigo", - "BenoitL", - "Gorrk", - "Anonymous", - "Nickolay", - "TestUser" + "hellosct1" ] }, - "CSS/Premiers_pas/Boîtes": { - "modified": "2019-03-24T00:11:28.445Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/FilenameConflictAction": { + "modified": "2020-10-15T22:03:03.037Z", "contributors": [ - "grandoc", - "Fredchat", - "Altinfo", - "Verruckt", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Cascade_et_héritage": { - "modified": "2019-03-23T23:43:29.860Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/InterruptReason": { + "modified": "2020-10-15T22:03:02.130Z", "contributors": [ - "teoli", - "Verruckt", - "Mgjbot", - "Mozinet", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Couleurs": { - "modified": "2019-03-23T23:48:37.546Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/State": { + "modified": "2020-10-15T22:03:05.545Z", "contributors": [ - "teoli", - "Mgjbot", - "Verruckt", - "Indigo", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Des_CSS_lisibles": { - "modified": "2019-03-24T00:11:21.223Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/StringDelta": { + "modified": "2020-10-15T22:03:05.192Z", "contributors": [ - "teoli", - "grandoc", - "R greg", - "Mgjbot", - "Verruckt", - "Indigo", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Fonctionnement_de_CSS": { - "modified": "2019-03-23T23:43:30.663Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/acceptDanger": { + "modified": "2020-10-15T22:03:15.128Z", "contributors": [ - "teoli", - "Verruckt", - "Mgjbot", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Graphiques_SVG": { - "modified": "2019-03-23T23:43:35.150Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/cancel": { + "modified": "2020-10-15T22:02:46.073Z", "contributors": [ - "teoli", - "Verruckt", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/JavaScript": { - "modified": "2019-03-23T23:43:36.441Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/download": { + "modified": "2020-10-15T22:03:05.206Z", "contributors": [ - "teoli", - "Verruckt", - "Sheppy", - "BenoitL" + "hellosct1", + "dragon38800" ] }, - "CSS/Premiers_pas/Les_sélecteurs": { - "modified": "2019-03-24T00:11:21.423Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/drag": { + "modified": "2020-10-15T22:03:15.113Z", "contributors": [ - "xseignard", - "teoli", - "grandoc", - "R greg", - "Mgjbot", - "Verruckt", - "BenoitL", - "Mozinet", - "Christian13" + "hellosct1" ] }, - "CSS/Premiers_pas/Listes": { - "modified": "2019-03-23T23:43:24.796Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/erase": { + "modified": "2020-10-15T22:03:02.956Z", "contributors": [ - "teoli", - "Verruckt", - "BenoitL" + "hellosct1", + "wbamberg" ] }, - "CSS/Premiers_pas/Mise_en_page": { - "modified": "2019-03-23T23:43:29.436Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/getFileIcon": { + "modified": "2020-10-15T22:03:04.595Z", "contributors": [ - "teoli", - "Verruckt", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Médias": { - "modified": "2019-03-24T00:11:03.641Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/onChanged": { + "modified": "2020-10-15T22:03:05.044Z", "contributors": [ - "teoli", - "grandoc", - "Verruckt", - "BenoitL" + "hellosct1" ] }, - "CSS/Premiers_pas/Pourquoi_utiliser_CSS": { - "modified": "2019-03-23T23:47:29.274Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/onCreated": { + "modified": "2020-10-15T22:03:02.215Z", "contributors": [ - "teoli", - "Fredchat", - "Verruckt", - "Mgjbot", - "Indigo", - "BenoitL", - "Gorrk" + "hellosct1" ] }, - "CSS/Premiers_pas/Présentation_des_CSS": { - "modified": "2019-03-23T23:47:23.927Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/onErased": { + "modified": "2020-10-15T22:03:15.734Z", "contributors": [ - "wakka27", - "teoli", - "Fredchat", - "Verruckt", - "Mgjbot", - "BenoitL", - "Gorrk", - "Anonymous" + "hellosct1" ] }, - "CSS/Premiers_pas/Styles_de_texte": { - "modified": "2019-03-24T00:11:21.618Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/open": { + "modified": "2020-10-15T22:03:03.328Z", "contributors": [ - "grandoc", - "Mgjbot", - "Verruckt", - "BenoitL", - "Loveuzz59", - "Indigo" + "hellosct1" ] }, - "CSS/Premiers_pas/Tableaux": { - "modified": "2019-03-24T00:11:25.378Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/pause": { + "modified": "2020-10-15T22:02:12.925Z", "contributors": [ - "teoli", - "grandoc", - "Verruckt", - "Pitchum", - "BenoitL" + "hellosct1", + "dragon38800" ] }, - "Changements_dans_Gecko_1.9_affectant_les_sites_Web": { - "modified": "2019-03-23T23:51:24.948Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/removeFile": { + "modified": "2020-10-15T22:03:03.899Z", "contributors": [ - "wbamberg", - "Sheppy", - "Mgjbot", - "BenoitL", - "Kyodev", - "Fredchat" + "hellosct1" ] }, - "Chrome": { - "modified": "2019-03-23T23:48:48.795Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/resume": { + "modified": "2020-10-15T22:02:18.854Z", "contributors": [ - "Delapouite", - "BenoitL", - "Mgjbot", - "VincentN", - "Chbok", - "Fredchat" + "hellosct1" ] }, - "Comment_créer_un_arbre_DOM": { - "modified": "2019-03-24T00:07:12.456Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/search": { + "modified": "2020-10-15T22:03:01.476Z", "contributors": [ - "loella16", - "kmaglione", - "Azema", - "Valacar", - "Fredchat", - "Fping" + "hellosct1", + "wbamberg" ] }, - "Compilation_et_installation": { - "modified": "2019-03-23T23:48:28.119Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/setShelfEnabled": { + "modified": "2020-10-15T22:03:15.953Z", "contributors": [ - "fscholz", - "capgemini-ocs", - "teoli", - "The RedBurn", - "BenoitL", - "Mgjbot" + "hellosct1" ] }, - "Contrôles_DHTML_personnalisés_navigables_au_clavier": { - "modified": "2019-03-23T23:45:41.315Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/show": { + "modified": "2020-10-15T22:03:08.095Z", "contributors": [ - "Jeremie", - "Fredchat", - "Kyodev", - "Daaaaad", - "BenoitL" + "hellosct1" ] }, - "DHTML": { - "modified": "2019-03-24T00:02:32.004Z", + "Mozilla/Add-ons/WebExtensions/API/downloads/showDefaultFolder": { + "modified": "2020-10-15T22:02:35.095Z", "contributors": [ - "loella16", - "fscholz", - "Mgjbot", - "BenoitL", - "Chbok", - "Anonymous" + "hellosct1" ] }, - "DOM/Storage": { - "modified": "2019-03-23T23:53:02.039Z", + "Mozilla/Add-ons/WebExtensions/API/events": { + "modified": "2020-10-15T21:57:40.303Z", "contributors": [ - "AshfaqHossain", - "teoli", - "Nigel_Sheldon", - "BenoitL", - "Mgjbot", - "CedricP", - "Sum2807" + "hellosct1" ] }, - "DOM/dispatchEvent_exemple": { - "modified": "2019-03-23T23:50:28.205Z", + "Mozilla/Add-ons/WebExtensions/API/events/Event": { + "modified": "2020-10-15T22:05:03.208Z", "contributors": [ - "xuancanh", - "Mgjbot", - "BenoitL", - "Elethiomel", - "Fredchat" + "hellosct1" ] }, - "Développement_Web": { - "modified": "2019-03-24T00:13:07.123Z", + "Mozilla/Add-ons/WebExtensions/API/events/Rule": { + "modified": "2020-10-15T22:04:57.145Z", "contributors": [ - "bilali", - "pixelastic", - "traan", - "Owidd", - "BenoitL", - "Mgjbot", - "Takenbot", - "Mozinet", - "Mrueegg", - "Chbok" + "hellosct1" ] }, - "Développement_Web/Développer_des_sites_à_compatibilité_descendante": { - "modified": "2019-03-24T00:13:23.048Z", + "Mozilla/Add-ons/WebExtensions/API/events/UrlFilter": { + "modified": "2020-10-15T22:04:57.285Z", "contributors": [ - "Dralyab", - "pixelastic" + "hellosct1" ] }, - "Développement_Web/Introduction_au_développement_web": { - "modified": "2019-03-24T00:03:04.501Z", + "Mozilla/Add-ons/WebExtensions/API/extension": { + "modified": "2020-10-15T21:57:42.006Z", "contributors": [ - "Jeremie", - "fscholz", - "BenoitL" + "hellosct1" ] }, - "Explorer_un_tableau_HTML_avec_des_interfaces_DOM_et_JavaScript": { - "modified": "2019-03-23T23:47:28.003Z", + "Mozilla/Add-ons/WebExtensions/API/extension/ViewType": { + "modified": "2020-10-15T22:06:07.729Z", "contributors": [ - "loella16", - "BenoitL", - "Mgjbot", - "Planche" + "hellosct1" ] }, - "FAQ_sur_les_transformations_XSL_dans_Mozilla": { - "modified": "2019-01-16T16:04:45.409Z", + "Mozilla/Add-ons/WebExtensions/API/extension/getBackgroundPage": { + "modified": "2020-10-15T22:06:09.291Z", "contributors": [ - "VincentN", - "Mgjbot", - "Kyodev", - "Fredchat", - "BenoitL" + "hellosct1" ] }, - "FUEL/Window/devicemotion_event": { - "modified": "2019-04-18T20:33:39.760Z", + "Mozilla/Add-ons/WebExtensions/API/extension/getExtensionTabs": { + "modified": "2020-10-15T22:06:21.269Z", "contributors": [ - "wbamberg", - "estelle", - "fscholz", - "Kalwyn" + "hellosct1" ] }, - "FUEL/Window/deviceorientation": { - "modified": "2019-04-18T20:33:41.817Z", + "Mozilla/Add-ons/WebExtensions/API/extension/getURL": { + "modified": "2020-10-15T22:06:08.250Z", "contributors": [ - "wbamberg", - "estelle", - "fscholz", - "Kalwyn" + "hellosct1" ] }, - "Games/Techniques": { - "modified": "2020-04-10T15:50:15.159Z", + "Mozilla/Add-ons/WebExtensions/API/extension/getViews": { + "modified": "2020-10-15T22:06:07.060Z", "contributors": [ - "olivierdupon", - "wbamberg", - "loella16", - "Fredchat", - "Halfman", - "chrisdavidmills" + "hellosct1" ] }, - "Games/Techniques/2D_collision_detection": { - "modified": "2019-03-23T23:16:18.305Z", + "Mozilla/Add-ons/WebExtensions/API/extension/inIncognitoContext": { + "modified": "2020-10-15T22:06:06.499Z", "contributors": [ - "wbamberg", - "loella16", - "Halfman", - "Fredchat", - "Goofy" + "hellosct1" ] }, - "Games/Techniques/3D_on_the_web": { - "modified": "2020-05-28T09:39:19.969Z", + "Mozilla/Add-ons/WebExtensions/API/extension/isAllowedFileSchemeAccess": { + "modified": "2020-10-15T22:06:09.327Z", "contributors": [ - "rponsini", - "wbamberg", - "NerOcrO", - "loella16", - "ngokevin" + "hellosct1" ] }, - "Games/Techniques/3D_on_the_web/Basic_theory": { - "modified": "2019-03-23T22:13:55.102Z", + "Mozilla/Add-ons/WebExtensions/API/extension/isAllowedIncognitoAccess": { + "modified": "2020-10-15T22:06:08.273Z", "contributors": [ - "wbamberg", - "loella16", - "Dwaaren" + "hellosct1" ] }, - "Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_PlayCanvas": { - "modified": "2019-03-18T21:38:23.278Z", + "Mozilla/Add-ons/WebExtensions/API/extension/lastError": { + "modified": "2020-10-15T22:06:06.418Z", "contributors": [ - "wbamberg", - "egidiusmendel" + "hellosct1" ] }, - "Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_Three.js": { - "modified": "2020-06-28T15:40:46.953Z", + "Mozilla/Add-ons/WebExtensions/API/extension/onRequest": { + "modified": "2020-10-15T22:06:08.877Z", "contributors": [ - "houckontape" + "hellosct1" ] }, - "Games/Techniques/Audio_for_Web_Games": { - "modified": "2019-03-23T23:04:51.258Z", + "Mozilla/Add-ons/WebExtensions/API/extension/onRequestExternal": { + "modified": "2020-10-15T22:06:07.613Z", "contributors": [ - "wbamberg", - "loella16", - "quentin.lamamy" + "hellosct1" ] }, - "Games/Tools": { - "modified": "2020-09-01T06:30:44.644Z", + "Mozilla/Add-ons/WebExtensions/API/extension/sendRequest": { + "modified": "2020-10-15T22:06:21.926Z", "contributors": [ - "Voulto", - "wbamberg", - "dkocho4" + "hellosct1" ] }, - "Games/Tools/asm.js": { - "modified": "2019-01-17T01:50:29.041Z", + "Mozilla/Add-ons/WebExtensions/API/extension/setUpdateUrlData": { + "modified": "2020-10-15T22:06:08.809Z", "contributors": [ - "wbamberg", - "BEHOUBA" + "hellosct1" ] }, - "Games/Workflows": { - "modified": "2019-03-23T23:13:37.908Z", + "Mozilla/Add-ons/WebExtensions/API/extensionTypes": { + "modified": "2020-10-15T21:56:56.857Z", "contributors": [ - "wbamberg", - "loella16", - "LineVA", - "Antoine", - "groovecoder" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript": { - "modified": "2020-06-27T08:09:27.078Z", + "Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageDetails": { + "modified": "2020-10-15T21:56:51.770Z", "contributors": [ - "PascalLeMerrer", - "wbamberg", - "loella16", - "Flacipe", - "mboultoureau" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Build_the_brick_field": { - "modified": "2020-06-28T04:40:48.007Z", + "Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageFormat": { + "modified": "2020-10-15T21:56:47.737Z", "contributors": [ - "PascalLeMerrer", - "ms-studio", - "NadjaRbgt", - "jgil83000", - "socadance" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Faire_rebondir_la_balle_sur_les_murs": { - "modified": "2020-06-27T07:15:09.503Z", + "Mozilla/Add-ons/WebExtensions/API/extensionTypes/InjectDetails": { + "modified": "2019-07-03T07:34:29.652Z", "contributors": [ - "PascalLeMerrer", - "ms-studio", - "jgil83000", - "wbamberg", - "eerrtrr" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Game_over": { - "modified": "2020-06-27T09:56:22.821Z", + "Mozilla/Add-ons/WebExtensions/API/extensionTypes/RunAt": { + "modified": "2020-10-15T21:56:53.627Z", "contributors": [ - "PascalLeMerrer", - "ms-studio", - "wbamberg", - "GaryJULIEN" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Mouse_controls": { - "modified": "2020-06-28T04:14:12.215Z", + "Mozilla/Add-ons/WebExtensions/API/find": { + "modified": "2020-10-15T21:57:44.346Z", "contributors": [ - "PascalLeMerrer" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Move_the_ball": { - "modified": "2020-06-27T10:00:36.942Z", + "Mozilla/Add-ons/WebExtensions/API/find/find": { + "modified": "2020-10-15T22:00:01.623Z", "contributors": [ - "PascalLeMerrer", - "SphinxKnight", - "jgil83000", - "wbamberg", - "eerrtrr", - "Arhance05", - "Cotting" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Paddle_et_contrôle_clavier": { - "modified": "2020-06-27T09:45:30.950Z", + "Mozilla/Add-ons/WebExtensions/API/find/highlightResults": { + "modified": "2020-10-15T22:00:02.947Z", "contributors": [ - "PascalLeMerrer", - "ms-studio", - "jgil83000", - "wbamberg", - "eerrtrr" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win": { - "modified": "2020-06-28T04:10:36.923Z", + "Mozilla/Add-ons/WebExtensions/API/find/removeHighlighting": { + "modified": "2020-10-15T22:00:05.741Z", "contributors": [ - "PascalLeMerrer", - "ms-studio", - "NadjaRbgt", - "Camrifof" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/creer_element_canvas_et_afficher": { - "modified": "2020-06-27T09:58:29.574Z", + "Mozilla/Add-ons/WebExtensions/API/history": { + "modified": "2020-10-15T21:57:45.044Z", "contributors": [ - "PascalLeMerrer", - "antzilla", - "wbamberg", - "loella16", - "mboultoureau" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/detection_colisions": { - "modified": "2020-06-28T03:56:54.608Z", + "Mozilla/Add-ons/WebExtensions/API/history/HistoryItem": { + "modified": "2020-10-15T22:06:28.558Z", "contributors": [ - "PascalLeMerrer", - "NadjaRbgt", - "Antoine-92" + "hellosct1" ] }, - "Games/Workflows/2D_Breakout_game_pure_JavaScript/finitions": { - "modified": "2020-06-27T06:26:41.729Z", + "Mozilla/Add-ons/WebExtensions/API/history/TransitionType": { + "modified": "2020-10-15T22:06:33.903Z", "contributors": [ - "PascalLeMerrer" + "hellosct1" ] }, - "Games/Workflows/2D_breakout_game_Phaser": { - "modified": "2019-06-20T04:41:51.709Z", + "Mozilla/Add-ons/WebExtensions/API/history/VisitItem": { + "modified": "2020-10-15T22:06:33.995Z", "contributors": [ - "Zyrass" + "hellosct1" ] }, - "Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation_FR": { - "modified": "2019-03-23T23:13:43.165Z", + "Mozilla/Add-ons/WebExtensions/API/history/addUrl": { + "modified": "2020-10-15T22:06:37.057Z", "contributors": [ - "wbamberg", - "loella16", - "mliatt", - "PhilippeS", - "Antoine" + "hellosct1" ] }, - "Glossaire": { - "modified": "2020-10-11T04:48:06.317Z", + "Mozilla/Add-ons/WebExtensions/API/history/deleteAll": { + "modified": "2020-10-15T22:06:35.323Z", "contributors": [ - "peterbe", - "SphinxKnight", - "wbamberg", - "floustier", - "loella16", - "Jeremie", - "Macadam" + "hellosct1" ] }, - "Glossaire/404": { - "modified": "2019-03-23T23:07:59.110Z", + "Mozilla/Add-ons/WebExtensions/API/history/deleteRange": { + "modified": "2020-10-15T22:06:35.709Z", "contributors": [ - "loella16", - "Jeremie", - "Porkepix", - "genma" + "hellosct1" ] }, - "Glossaire/502": { - "modified": "2019-03-23T23:00:23.677Z", + "Mozilla/Add-ons/WebExtensions/API/history/deleteUrl": { + "modified": "2020-10-15T22:06:34.956Z", "contributors": [ - "loella16", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/AJAX": { - "modified": "2020-02-09T18:25:52.010Z", + "Mozilla/Add-ons/WebExtensions/API/history/getVisits": { + "modified": "2020-10-15T22:06:37.073Z", "contributors": [ - "tristantheb", - "tanguymartinez", - "AbdelElMansari", - "NemoNobobyPersonne", - "loella16", - "wakeuteu", - "Tradetnet", - "Gibus", - "vanz", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/ALPN": { - "modified": "2020-09-25T06:08:01.612Z", + "Mozilla/Add-ons/WebExtensions/API/history/onTitleChanged": { + "modified": "2020-10-15T22:06:36.096Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/API": { - "modified": "2019-10-18T09:39:16.224Z", + "Mozilla/Add-ons/WebExtensions/API/history/onVisitRemoved": { + "modified": "2020-10-15T22:06:35.263Z", "contributors": [ - "tanguymartinez", - "loella16", - "vanz", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/ARIA": { - "modified": "2019-03-23T23:00:07.200Z", + "Mozilla/Add-ons/WebExtensions/API/history/onVisited": { + "modified": "2020-10-15T22:06:10.233Z", "contributors": [ - "loella16", - "Hell_Carlito", - "vanz", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/ARPA": { - "modified": "2019-03-23T22:41:59.454Z", + "Mozilla/Add-ons/WebExtensions/API/history/search": { + "modified": "2020-10-15T22:06:37.603Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/ASCII": { - "modified": "2019-03-23T22:46:33.759Z", + "Mozilla/Add-ons/WebExtensions/API/i18n": { + "modified": "2020-10-15T21:57:44.314Z", "contributors": [ - "loella16", - "Porkepix", - "vanz" + "tristantheb", + "hellosct1", + "SphinxKnight", + "rlouvat" ] }, - "Glossaire/ATAG": { - "modified": "2019-03-23T23:00:06.741Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/LanguageCode": { + "modified": "2020-10-15T22:04:59.009Z", "contributors": [ - "loella16", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Abstraction": { - "modified": "2019-03-23T23:00:07.652Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/Locale-Specific_Message_reference": { + "modified": "2019-07-03T07:42:45.286Z", "contributors": [ - "loella16", - "AlemFarid", - "Porkepix", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Accessibilité": { - "modified": "2019-03-23T23:00:06.850Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage": { + "modified": "2020-10-15T22:04:59.961Z", "contributors": [ - "loella16", - "vanz", - "Jeremie", - "Goofy", - "htindon" + "hellosct1", + "TimotheAlbouy" ] }, - "Glossaire/Adobe_Flash": { - "modified": "2019-03-23T23:00:08.019Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages": { + "modified": "2020-10-15T22:04:59.973Z", "contributors": [ - "loella16", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Algorithme": { - "modified": "2019-01-16T20:52:42.595Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/getMessage": { + "modified": "2020-10-15T22:05:02.362Z", "contributors": [ - "loella16", - "vanz", - "SphinxKnight" + "regseb", + "hellosct1" ] }, - "Glossaire/Alignment_Container": { - "modified": "2019-03-18T21:18:07.982Z", + "Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage": { + "modified": "2020-10-15T22:05:00.805Z", "contributors": [ - "AurelieBayre" + "hellosct1" ] }, - "Glossaire/Alignment_Subject": { - "modified": "2019-07-26T06:07:44.096Z", + "Mozilla/Add-ons/WebExtensions/API/identity": { + "modified": "2020-10-15T21:57:44.574Z", "contributors": [ - "necraidan" + "hellosct1" ] }, - "Glossaire/Amélioration_progressive": { - "modified": "2019-03-23T22:39:20.648Z", + "Mozilla/Add-ons/WebExtensions/API/identity/getRedirectURL": { + "modified": "2020-10-15T22:04:47.574Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Apple_Safari": { - "modified": "2019-03-23T23:00:07.474Z", + "Mozilla/Add-ons/WebExtensions/API/identity/launchWebAuthFlow": { + "modified": "2020-10-15T22:04:47.997Z", "contributors": [ - "loella16", - "Porkepix", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Architecture_de_l_information": { - "modified": "2019-03-23T22:02:39.824Z", + "Mozilla/Add-ons/WebExtensions/API/idle": { + "modified": "2020-10-15T21:57:44.432Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Argument": { - "modified": "2019-03-23T23:00:07.319Z", + "Mozilla/Add-ons/WebExtensions/API/idle/IdleState": { + "modified": "2020-10-15T21:58:03.267Z", "contributors": [ - "loella16", - "Porkepix", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Arpanet": { - "modified": "2019-03-23T22:41:20.781Z", + "Mozilla/Add-ons/WebExtensions/API/idle/onStateChanged": { + "modified": "2020-10-15T21:58:03.496Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Asynchronous": { - "modified": "2019-03-23T22:40:37.762Z", + "Mozilla/Add-ons/WebExtensions/API/idle/queryState": { + "modified": "2020-10-15T21:58:02.830Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "icefire" ] }, - "Glossaire/Attaque_DOS": { - "modified": "2019-03-23T22:38:58.117Z", + "Mozilla/Add-ons/WebExtensions/API/idle/setDetectionInterval": { + "modified": "2020-10-15T21:58:02.847Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Attribut": { - "modified": "2019-03-23T23:00:06.975Z", + "Mozilla/Add-ons/WebExtensions/API/management": { + "modified": "2020-10-15T21:56:55.314Z", "contributors": [ - "loella16", - "gharel", - "Jeremie", - "Goofy", - "htindon" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Attribut_global": { - "modified": "2019-03-23T22:41:06.193Z", + "Mozilla/Add-ons/WebExtensions/API/management/ExtensionInfo": { + "modified": "2020-10-15T21:56:55.061Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Axe_de_grille": { - "modified": "2019-03-23T22:03:10.370Z", + "Mozilla/Add-ons/WebExtensions/API/management/get": { + "modified": "2020-10-15T21:56:52.865Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Axe_principal": { - "modified": "2019-03-18T21:45:39.916Z", + "Mozilla/Add-ons/WebExtensions/API/management/getAll": { + "modified": "2020-10-15T21:56:49.913Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Axe_transversal": { - "modified": "2019-03-18T21:45:47.680Z", + "Mozilla/Add-ons/WebExtensions/API/management/getPermissionWarningsById": { + "modified": "2020-10-15T21:56:53.122Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Balise": { - "modified": "2019-03-23T22:57:07.360Z", + "Mozilla/Add-ons/WebExtensions/API/management/getPermissionWarningsByManifest": { + "modified": "2020-10-15T21:56:54.588Z", "contributors": [ - "loella16", - "Porkepix", - "GeekShadow" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Bandwidth": { - "modified": "2019-03-23T22:42:48.033Z", + "Mozilla/Add-ons/WebExtensions/API/management/getSelf": { + "modified": "2020-10-15T21:57:02.041Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/BiDi": { - "modified": "2019-03-23T22:41:59.861Z", + "Mozilla/Add-ons/WebExtensions/API/management/install": { + "modified": "2020-10-15T22:09:55.921Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/BigInt": { - "modified": "2020-09-25T05:47:04.712Z", + "Mozilla/Add-ons/WebExtensions/API/management/onDisabled": { + "modified": "2020-10-15T21:57:10.496Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Blink": { - "modified": "2019-03-23T22:59:53.173Z", + "Mozilla/Add-ons/WebExtensions/API/management/onEnabled": { + "modified": "2020-10-15T21:57:09.562Z", "contributors": [ - "loella16", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Block_cipher_mode_of_operation": { - "modified": "2020-09-25T05:52:15.554Z", + "Mozilla/Add-ons/WebExtensions/API/management/onInstalled": { + "modified": "2020-10-15T21:57:08.652Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Boolean": { - "modified": "2019-03-23T22:58:43.329Z", + "Mozilla/Add-ons/WebExtensions/API/management/onUninstalled": { + "modified": "2020-10-15T21:57:08.612Z", "contributors": [ - "loella16", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Boot2Gecko": { - "modified": "2019-03-23T22:44:37.220Z", + "Mozilla/Add-ons/WebExtensions/API/management/setEnabled": { + "modified": "2020-10-15T21:57:09.341Z", "contributors": [ - "loella16", - "Bat" + "hellosct1" ] }, - "Glossaire/Bootstrap": { - "modified": "2020-10-08T09:01:42.946Z", + "Mozilla/Add-ons/WebExtensions/API/management/uninstall": { + "modified": "2020-10-15T21:56:50.746Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Breadcrumb": { - "modified": "2020-09-25T06:01:58.166Z", + "Mozilla/Add-ons/WebExtensions/API/management/uninstallSelf": { + "modified": "2020-10-15T21:56:55.665Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Browsing_context": { - "modified": "2020-09-27T07:13:04.450Z", + "Mozilla/Add-ons/WebExtensions/API/menus": { + "modified": "2020-10-15T21:57:47.933Z", "contributors": [ - "tomderudder", - "loella16", - "xdelatour" + "hellosct1", + "ariasuni" ] }, - "Glossaire/Bézier_curve": { - "modified": "2020-10-05T03:57:01.254Z", + "Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT": { + "modified": "2020-10-15T22:04:45.584Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/CDN": { - "modified": "2019-03-23T22:40:07.356Z", + "Mozilla/Add-ons/WebExtensions/API/menus/ContextType": { + "modified": "2020-10-15T22:04:44.533Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/CMS": { - "modified": "2019-03-23T22:57:05.726Z", + "Mozilla/Add-ons/WebExtensions/API/menus/ItemType": { + "modified": "2020-10-15T22:04:44.141Z", "contributors": [ - "loella16", - "Porkepix", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/CORS": { - "modified": "2019-03-23T22:40:00.673Z", + "Mozilla/Add-ons/WebExtensions/API/menus/OnClickData": { + "modified": "2020-10-15T22:04:45.674Z", "contributors": [ - "loella16", - "Yves_ASTIER", - "Porkepix", - "xdelatour" + "regseb", + "hellosct1" ] }, - "Glossaire/CRLF": { - "modified": "2019-03-23T22:39:56.107Z", + "Mozilla/Add-ons/WebExtensions/API/menus/create": { + "modified": "2020-10-15T22:04:43.381Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/CRUD": { - "modified": "2019-03-23T22:56:57.160Z", + "Mozilla/Add-ons/WebExtensions/API/menus/createProperties": { + "modified": "2020-10-15T22:30:24.941Z", "contributors": [ - "loella16", - "Goofy", - "Toumitoun" + "hellosct1" ] }, - "Glossaire/CSP": { - "modified": "2020-12-12T07:41:44.720Z", + "Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement": { + "modified": "2020-10-15T22:08:42.353Z", "contributors": [ - "JNa0", - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/CSRF": { - "modified": "2019-03-23T22:39:14.118Z", + "Mozilla/Add-ons/WebExtensions/API/menus/onClicked": { + "modified": "2020-10-15T22:04:44.931Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/CSS": { - "modified": "2020-05-24T07:09:43.791Z", + "Mozilla/Add-ons/WebExtensions/API/menus/onHidden": { + "modified": "2020-10-15T22:04:44.507Z", "contributors": [ - "tristantheb", - "loella16", - "tonybengue", - "arlequin", - "interfacteur", - "ysabelm", - "Porkepix", - "marie-ototoi", - "magikmanu", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Cache": { - "modified": "2019-10-26T12:15:38.533Z", + "Mozilla/Add-ons/WebExtensions/API/menus/onShown": { + "modified": "2020-10-15T22:04:45.669Z", "contributors": [ - "ledenis", - "Othael" + "hellosct1" ] }, - "Glossaire/CalDAV": { - "modified": "2019-03-23T22:42:10.052Z", + "Mozilla/Add-ons/WebExtensions/API/menus/overrideContext": { + "modified": "2019-10-13T09:44:24.526Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "ariasuni" ] }, - "Glossaire/Canvas": { - "modified": "2019-03-23T22:46:31.363Z", + "Mozilla/Add-ons/WebExtensions/API/menus/refresh": { + "modified": "2020-10-15T22:04:44.190Z", "contributors": [ - "loella16", - "vanz" + "hellosct1" ] }, - "Glossaire/CardDAV": { - "modified": "2019-03-23T22:42:06.600Z", + "Mozilla/Add-ons/WebExtensions/API/menus/remove": { + "modified": "2020-10-15T22:04:45.195Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Cellule_de_grille": { - "modified": "2019-03-23T22:03:17.867Z", + "Mozilla/Add-ons/WebExtensions/API/menus/removeAll": { + "modified": "2020-10-15T22:04:46.038Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Certificat_numérique": { - "modified": "2019-03-23T22:40:24.230Z", + "Mozilla/Add-ons/WebExtensions/API/menus/update": { + "modified": "2020-10-15T22:04:46.899Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Certificate_authority": { - "modified": "2019-03-23T22:40:36.402Z", + "Mozilla/Add-ons/WebExtensions/API/notifications": { + "modified": "2020-10-15T21:57:45.083Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg", + "lp177" ] }, - "Glossaire/Certifié": { - "modified": "2019-03-23T22:40:21.550Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/NotificationOptions": { + "modified": "2020-10-15T21:58:04.461Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg", + "Bat41" ] }, - "Glossaire/Character": { - "modified": "2019-03-23T22:57:04.701Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/TemplateType": { + "modified": "2020-10-15T22:04:53.358Z", "contributors": [ - "loella16", - "Porkepix", - "Lizie" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Chiffre": { - "modified": "2019-03-23T22:32:32.968Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/clear": { + "modified": "2020-10-15T22:04:47.769Z", "contributors": [ - "loella16", - "Hell_Carlito", - "sebastien-bartoli" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Chiffrement": { - "modified": "2019-03-23T22:39:39.008Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/create": { + "modified": "2020-10-15T22:04:47.399Z", "contributors": [ - "loella16", - "SphinxKnight", - "xdelatour" + "ariasuni", + "hellosct1", + "wbamberg" ] }, - "Glossaire/Chrome": { - "modified": "2019-03-23T23:04:30.083Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/getAll": { + "modified": "2020-10-15T22:04:53.186Z", "contributors": [ - "loella16", - "Jeremie", - "J.DMB", - "Pierre.Fauconnier", - "oooops" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Class": { - "modified": "2019-03-23T22:41:15.262Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/onButtonClicked": { + "modified": "2020-10-15T22:04:47.252Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Clé": { - "modified": "2019-03-23T22:02:44.687Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/onClicked": { + "modified": "2020-10-15T22:04:53.553Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Codec": { - "modified": "2019-03-23T22:42:11.584Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/onClosed": { + "modified": "2020-10-15T22:04:54.823Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Colonne_de_grille": { - "modified": "2019-03-23T22:03:13.654Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/onShown": { + "modified": "2020-10-15T22:04:55.282Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Compile": { - "modified": "2019-03-23T22:49:54.371Z", + "Mozilla/Add-ons/WebExtensions/API/notifications/update": { + "modified": "2020-10-15T22:04:47.104Z", "contributors": [ - "loella16", - "Hell_Carlito", - "y9mo" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Compression_sans_perte": { - "modified": "2020-11-10T04:48:58.531Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox": { + "modified": "2020-10-15T21:57:45.193Z", "contributors": [ - "Voulto", - "pauladeville" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Computer_Programming": { - "modified": "2019-03-23T22:42:04.675Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/OnInputEnteredDisposition": { + "modified": "2020-10-15T22:04:54.500Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Condensat": { - "modified": "2019-03-23T22:39:24.362Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/SuggestResult": { + "modified": "2020-10-15T22:04:54.402Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Conditionnel": { - "modified": "2019-03-23T22:40:22.363Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputCancelled": { + "modified": "2020-10-15T22:04:56.337Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Constant": { - "modified": "2019-03-23T22:42:08.752Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputChanged": { + "modified": "2020-10-15T22:04:56.335Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Constructeur": { - "modified": "2019-03-23T22:40:24.326Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputEntered": { + "modified": "2020-10-15T22:04:55.151Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Contexte_d_empilement": { - "modified": "2019-03-18T21:45:45.716Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputStarted": { + "modified": "2020-10-15T22:04:56.742Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Conversion_de_type": { - "modified": "2019-03-23T22:41:51.598Z", + "Mozilla/Add-ons/WebExtensions/API/omnibox/setDefaultSuggestion": { + "modified": "2020-10-15T22:04:57.902Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Cookie": { - "modified": "2019-03-23T22:40:01.278Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction": { + "modified": "2020-10-15T21:57:40.850Z", "contributors": [ - "Porkepix", - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Copyleft": { - "modified": "2019-03-23T22:38:55.191Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/ImageDataType": { + "modified": "2020-10-15T21:57:40.386Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Cross-site_scripting": { - "modified": "2020-09-04T02:51:19.273Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/getPopup": { + "modified": "2020-10-15T22:00:13.778Z", "contributors": [ - "SphinxKnight", - "jooo.market", - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Cryptanalyse": { - "modified": "2019-03-23T22:39:19.630Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/getTitle": { + "modified": "2020-10-15T22:00:11.505Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Cryptogramme": { - "modified": "2019-03-23T22:53:37.701Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/hide": { + "modified": "2020-10-15T22:00:11.157Z", "contributors": [ - "loella16", - "Goofy", - "SphinxKnight" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Cryptographie": { - "modified": "2019-03-23T22:39:19.721Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/isShown": { + "modified": "2020-10-15T22:04:36.368Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Curseur_caret": { - "modified": "2019-03-18T21:45:34.459Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/onClicked": { + "modified": "2020-10-15T22:00:11.289Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/DIC": { - "modified": "2019-03-23T22:39:55.578Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/openPopup": { + "modified": "2020-10-15T22:00:13.634Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/DMZ": { - "modified": "2019-03-23T22:03:28.627Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/setIcon": { + "modified": "2020-10-15T22:00:14.155Z", "contributors": [ - "loella16", - "macmorning" + "hellosct1", + "wbamberg" ] }, - "Glossaire/DNS": { - "modified": "2019-03-23T22:56:52.127Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/setPopup": { + "modified": "2020-10-15T22:00:16.798Z", "contributors": [ - "loella16", - "Porkepix", - "Goofy", - "Toumitoun" + "hellosct1", + "wbamberg" ] }, - "Glossaire/DOM": { - "modified": "2019-03-23T22:57:17.449Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/setTitle": { + "modified": "2020-10-15T22:00:06.505Z", "contributors": [ - "loella16", - "davidgourde", - "vanz", - "Goofy", - "htindon" + "hellosct1", + "wbamberg" ] }, - "Glossaire/DTD": { - "modified": "2019-01-16T21:53:56.898Z", + "Mozilla/Add-ons/WebExtensions/API/pageAction/show": { + "modified": "2020-10-15T22:00:05.544Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/DTMF": { - "modified": "2019-03-23T22:03:28.745Z", + "Mozilla/Add-ons/WebExtensions/API/permissions": { + "modified": "2020-10-15T21:57:44.451Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Delta": { - "modified": "2020-10-08T09:27:37.753Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/Permissions": { + "modified": "2020-10-15T21:57:56.351Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Descripteur_(CSS)": { - "modified": "2019-03-23T22:03:25.810Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/contains": { + "modified": "2020-10-15T21:57:57.373Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Developer_Tools": { - "modified": "2019-03-23T22:03:22.936Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/getAll": { + "modified": "2020-10-15T21:58:01.535Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Directive_de_navigation": { - "modified": "2019-03-23T22:03:14.851Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/onAdded": { + "modified": "2020-10-15T21:57:56.950Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Directive_de_rapport": { - "modified": "2019-03-23T22:03:09.311Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/onRemoved": { + "modified": "2020-10-15T21:57:56.881Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Directive_de_récupération": { - "modified": "2019-03-23T22:03:13.368Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/remove": { + "modified": "2020-10-15T21:58:02.493Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Doctype": { - "modified": "2019-03-23T23:06:03.805Z", + "Mozilla/Add-ons/WebExtensions/API/permissions/request": { + "modified": "2020-10-15T21:58:03.038Z", "contributors": [ - "loella16", - "Jeremie", - "Dexter_Deter" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Document_directive": { - "modified": "2019-03-23T22:03:22.186Z", + "Mozilla/Add-ons/WebExtensions/API/pkcs11": { + "modified": "2020-10-15T21:58:39.173Z", "contributors": [ - "Porkepix", - "loella16" + "hellosct1", + "Jeremie" ] }, - "Glossaire/Domaine": { - "modified": "2019-03-23T22:32:24.113Z", + "Mozilla/Add-ons/WebExtensions/API/pkcs11/getModuleSlots": { + "modified": "2020-10-15T22:00:14.823Z", "contributors": [ - "loella16", - "Hell_Carlito", - "htindon" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Domaine_deuxième-niveau": { - "modified": "2019-01-16T21:52:29.757Z", + "Mozilla/Add-ons/WebExtensions/API/pkcs11/installModule": { + "modified": "2020-10-15T22:00:16.239Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Dominant": { - "modified": "2019-03-23T22:03:21.288Z", + "Mozilla/Add-ons/WebExtensions/API/pkcs11/isModuleInstalled": { + "modified": "2020-10-15T22:00:16.486Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Déchiffrement": { - "modified": "2019-03-23T22:39:22.127Z", + "Mozilla/Add-ons/WebExtensions/API/pkcs11/uninstallModule": { + "modified": "2020-10-15T22:00:13.525Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Déni_de_Service": { - "modified": "2019-01-16T22:13:09.374Z", + "Mozilla/Add-ons/WebExtensions/API/privacy": { + "modified": "2020-10-15T21:57:20.922Z", "contributors": [ - "xdelatour" + "hellosct1", + "JeffD" ] }, - "Glossaire/Déni_de_service_distribué": { - "modified": "2019-03-23T22:03:22.826Z", + "Mozilla/Add-ons/WebExtensions/API/privacy/network": { + "modified": "2020-10-15T21:57:19.949Z", "contributors": [ - "loella16" + "hellosct1", + "JeffD" ] }, - "Glossaire/Dépôt": { - "modified": "2019-03-18T21:15:47.756Z", + "Mozilla/Add-ons/WebExtensions/API/privacy/services": { + "modified": "2020-10-15T21:57:19.393Z", "contributors": [ - "xdelatour" + "hellosct1", + "JeffD" ] }, - "Glossaire/Désérialisation": { - "modified": "2019-03-23T22:03:27.594Z", + "Mozilla/Add-ons/WebExtensions/API/privacy/websites": { + "modified": "2020-10-15T21:57:19.498Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Détournement_de_session": { - "modified": "2019-05-23T08:47:32.401Z", + "Mozilla/Add-ons/WebExtensions/API/proxy": { + "modified": "2020-10-15T21:57:43.079Z", "contributors": [ - "Watilin", - "loella16" + "hellosct1", + "wbamberg", + "FlorianHatat" ] }, - "Glossaire/ECMA": { - "modified": "2019-03-23T22:46:33.851Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo": { + "modified": "2020-10-15T22:04:57.639Z", "contributors": [ - "loella16", - "Porkepix", - "vanz" + "hellosct1", + "wbamberg" ] }, - "Glossaire/ECMAScript": { - "modified": "2019-03-23T22:42:01.993Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/RequestDetails": { + "modified": "2020-10-15T22:05:00.086Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Element_vide": { - "modified": "2019-03-23T22:58:49.655Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/onRequest": { + "modified": "2020-10-15T22:04:59.176Z", "contributors": [ - "loella16", - "cdr" + "hellosct1" ] }, - "Glossaire/En-tête": { - "modified": "2019-03-23T22:39:01.787Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/register": { + "modified": "2020-10-15T22:02:15.003Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/En-tête_de_requête": { - "modified": "2019-03-18T21:46:42.307Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/unregister": { + "modified": "2020-10-15T22:02:18.835Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/En-tête_de_réponse_simple": { - "modified": "2019-03-18T21:45:55.399Z", + "Mozilla/Add-ons/WebExtensions/API/runtime": { + "modified": "2020-10-15T21:57:48.381Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/En-tête_entité": { - "modified": "2019-03-23T22:12:49.956Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender": { + "modified": "2020-10-15T22:01:08.573Z", "contributors": [ - "loella16", - "Badacadabra" + "hellosct1" ] }, - "Glossaire/En-tête_simple": { - "modified": "2019-03-18T21:45:54.235Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/OnInstalledReason": { + "modified": "2020-10-15T22:01:07.997Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/En-têtes_de_réponse": { - "modified": "2019-03-18T21:46:41.952Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/OnRestartRequiredReason": { + "modified": "2020-10-15T22:01:08.309Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Encapsulation": { - "modified": "2019-03-23T22:41:15.348Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformArch": { + "modified": "2020-10-15T22:01:06.690Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Endianness": { - "modified": "2019-03-23T22:39:43.705Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformInfo": { + "modified": "2020-10-15T22:01:04.459Z", "contributors": [ - "warpdesign", - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Engine": { - "modified": "2019-03-23T22:42:14.243Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformNaclArch": { + "modified": "2020-10-15T22:01:08.937Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Entity": { - "modified": "2019-03-23T22:42:04.087Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformOs": { + "modified": "2020-10-15T22:00:21.839Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Environnement_de_document": { - "modified": "2019-03-18T21:45:35.460Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/Port": { + "modified": "2020-10-15T22:00:25.981Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Exception": { - "modified": "2019-03-23T22:49:59.707Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/RequestUpdateCheckStatus": { + "modified": "2020-10-15T22:01:06.562Z", "contributors": [ - "loella16", - "Gibus", - "y9mo" + "hellosct1" ] }, - "Glossaire/Expando": { - "modified": "2019-03-23T22:41:24.942Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/connect": { + "modified": "2020-10-15T21:59:39.250Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "Ostefanini" ] }, - "Glossaire/FAI": { - "modified": "2019-03-23T22:41:15.640Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/connectNative": { + "modified": "2020-10-15T22:01:10.130Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg", + "Crikxi" ] }, - "Glossaire/FTP": { - "modified": "2019-03-23T22:57:02.956Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getBackgroundPage": { + "modified": "2020-10-15T22:00:25.503Z", "contributors": [ - "loella16", - "Goofy", - "Toumitoun" + "hellosct1", + "wbamberg" ] }, - "Glossaire/FTU": { - "modified": "2019-03-23T22:39:47.645Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo": { + "modified": "2020-10-15T22:01:08.613Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Falsy": { - "modified": "2019-03-23T22:24:34.255Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getManifest": { + "modified": "2020-10-15T22:01:04.454Z", "contributors": [ - "forresst", - "loella16", - "myrmecia" + "hellosct1" ] }, - "Glossaire/Favicon": { - "modified": "2020-10-08T10:43:13.038Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getPackageDirectoryEntry": { + "modified": "2020-10-15T22:01:15.366Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Fermeture": { - "modified": "2019-03-23T22:38:51.275Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getPlatformInfo": { + "modified": "2020-10-15T22:01:09.499Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Firefox_OS": { - "modified": "2019-03-23T23:08:04.734Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/getURL": { + "modified": "2020-10-15T22:00:25.329Z", "contributors": [ - "loella16", - "Jeremie", - "genma" + "hellosct1" ] }, - "Glossaire/First_contentful_paint": { - "modified": "2020-11-10T08:21:34.381Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/id": { + "modified": "2020-10-15T22:00:23.562Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Flex": { - "modified": "2019-03-18T21:45:53.322Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/lastError": { + "modified": "2020-10-15T22:00:25.937Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Flex_Container": { - "modified": "2019-03-18T21:45:56.489Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onBrowserUpdateAvailable": { + "modified": "2020-10-15T22:01:10.633Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Flex_Item": { - "modified": "2019-03-18T21:45:50.759Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onConnect": { + "modified": "2020-10-15T21:58:16.219Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Flexbox": { - "modified": "2019-03-18T21:45:59.605Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onConnectExternal": { + "modified": "2020-10-15T22:00:44.948Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Fonction": { - "modified": "2019-03-23T22:57:15.355Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onInstalled": { + "modified": "2020-10-15T22:01:07.159Z", "contributors": [ - "loella16", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/Fonction_de_hachage_cryptographique": { - "modified": "2019-03-23T22:39:21.209Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onMessage": { + "modified": "2020-10-15T22:00:46.143Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "Watilin", + "ariasuni", + "Nothus" ] }, - "Glossaire/Fonction_de_première_classe": { - "modified": "2019-03-23T22:03:09.220Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onMessageExternal": { + "modified": "2020-10-15T22:01:07.864Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Fonction_de_rappel": { - "modified": "2019-10-23T02:51:28.575Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onRestartRequired": { + "modified": "2020-10-15T22:01:08.100Z", "contributors": [ - "SphinxKnight", - "loella16" + "hellosct1" ] }, - "Glossaire/Forbidden_header_name": { - "modified": "2019-03-23T22:03:08.442Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onStartup": { + "modified": "2020-10-15T22:01:10.619Z", "contributors": [ - "loella16", - "Porkepix" + "hellosct1" ] }, - "Glossaire/Forbidden_response_header_name": { - "modified": "2019-03-23T22:03:07.354Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onSuspend": { + "modified": "2020-10-15T22:01:12.137Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Fork": { - "modified": "2019-10-16T12:26:16.525Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onSuspendCanceled": { + "modified": "2020-10-15T22:01:15.709Z", "contributors": [ - "Mozinet", "hellosct1" ] }, - "Glossaire/GIJ": { - "modified": "2019-01-16T21:52:08.705Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/onUpdateAvailable": { + "modified": "2020-10-15T22:01:09.956Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/GIT": { - "modified": "2019-03-23T22:56:56.750Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage": { + "modified": "2020-10-15T22:01:05.192Z", "contributors": [ - "loella16", - "Gibus", - "Porkepix", - "Goofy", - "Toumitoun" + "hellosct1" ] }, - "Glossaire/GPL": { - "modified": "2019-03-23T22:41:39.440Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/reload": { + "modified": "2020-10-15T22:00:19.270Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/GPU": { - "modified": "2019-01-17T00:05:22.673Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/requestUpdateCheck": { + "modified": "2020-10-15T22:01:09.435Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/GZip_compression": { - "modified": "2019-03-23T22:03:21.908Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage": { + "modified": "2020-10-15T22:00:52.245Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Gaia": { - "modified": "2019-03-23T22:42:05.161Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/sendNativeMessage": { + "modified": "2020-10-15T22:01:11.077Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Gecko": { - "modified": "2019-03-23T22:42:01.710Z", + "Mozilla/Add-ons/WebExtensions/API/runtime/setUninstallURL": { + "modified": "2020-10-15T22:00:25.239Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/General_header": { - "modified": "2019-03-23T22:17:50.134Z", + "Mozilla/Add-ons/WebExtensions/API/search": { + "modified": "2020-10-15T22:07:14.449Z", "contributors": [ - "loella16", - "Posey1235" + "hellosct1" ] }, - "Glossaire/Glyphe": { - "modified": "2019-08-25T18:38:32.909Z", + "Mozilla/Add-ons/WebExtensions/API/search/get": { + "modified": "2020-10-15T22:07:16.442Z", "contributors": [ - "Pols12" + "hellosct1" ] }, - "Glossaire/Gonk": { - "modified": "2019-03-23T22:41:40.903Z", + "Mozilla/Add-ons/WebExtensions/API/search/search": { + "modified": "2020-10-15T22:07:15.372Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Google_Chrome": { - "modified": "2019-03-23T22:41:41.934Z", + "Mozilla/Add-ons/WebExtensions/API/sessions": { + "modified": "2020-10-15T21:55:14.411Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Graceful_degradation": { - "modified": "2019-03-23T22:03:22.370Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/Filter": { + "modified": "2020-10-15T21:56:01.494Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Grid": { - "modified": "2019-03-23T22:03:08.561Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/MAX_SESSION_RESULTS": { + "modified": "2020-10-15T21:56:00.737Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Guard": { - "modified": "2019-01-17T02:08:05.574Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/Session": { + "modified": "2020-10-15T21:56:01.710Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Gutters": { - "modified": "2019-03-23T22:02:47.196Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/forgetClosedTab": { + "modified": "2020-10-15T22:04:36.912Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/HMAC": { - "modified": "2019-03-23T22:02:44.595Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/forgetClosedWindow": { + "modified": "2020-10-15T22:04:36.603Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/HPKP": { - "modified": "2019-03-23T22:02:44.491Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/getRecentlyClosed": { + "modified": "2020-10-15T21:56:01.554Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/HSTS": { - "modified": "2019-03-23T22:17:04.593Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/getTabValue": { + "modified": "2020-10-15T22:04:38.593Z", "contributors": [ - "loella16", - "David-5-1", - "Porkepix" + "hellosct1" ] }, - "Glossaire/HTML": { - "modified": "2020-02-08T12:46:36.790Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/getWindowValue": { + "modified": "2020-10-15T22:04:37.850Z", "contributors": [ - "tristantheb", - "Porkepix", - "SphinxKnight", - "Brahim-Tb", - "AbdelElMansari", - "Watilin", - "louisgrasset", - "loella16", - "marie-ototoi", - "xdelatour" + "hellosct1" ] }, - "Glossaire/HTML5": { - "modified": "2019-03-23T22:42:01.476Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/onChanged": { + "modified": "2020-10-15T21:56:06.118Z", "contributors": [ - "Mozinet", - "Goofy", - "xdelatour" + "hellosct1" ] }, - "Glossaire/HTTP": { - "modified": "2019-12-04T16:30:35.039Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/removeTabValue": { + "modified": "2020-10-15T22:04:38.272Z", "contributors": [ - "Porkepix", - "marcpicaud", - "loella16", - "marie-ototoi", - "Jeremie", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/HTTP_2": { - "modified": "2020-02-23T18:12:20.047Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/removeWindowValue": { + "modified": "2020-10-15T22:04:37.866Z", "contributors": [ - "tristantheb" + "hellosct1" ] }, - "Glossaire/HTTP_3": { - "modified": "2020-10-08T10:15:56.390Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/restore": { + "modified": "2020-10-15T21:56:02.475Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Header": { - "modified": "2019-03-23T22:13:03.478Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/setTabValue": { + "modified": "2020-10-15T22:04:37.948Z", "contributors": [ - "loella16", - "luccioman" + "hellosct1" ] }, - "Glossaire/Hoisting": { - "modified": "2019-03-23T22:32:08.449Z", + "Mozilla/Add-ons/WebExtensions/API/sessions/setWindowValue": { + "modified": "2020-10-15T22:04:37.991Z", "contributors": [ - "NemoNobobyPersonne", - "loella16", - "latour4", - "ericnsh", - "ylerjen" + "hellosct1" ] }, - "Glossaire/Host": { - "modified": "2019-03-23T22:42:04.779Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction": { + "modified": "2020-10-15T21:57:44.918Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Hotlink": { - "modified": "2019-03-23T22:02:45.441Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/ImageDataType": { + "modified": "2020-10-15T22:05:22.946Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Houdini": { - "modified": "2020-09-25T06:35:50.044Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/close": { + "modified": "2020-10-15T22:05:22.895Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Hyperlien": { - "modified": "2019-03-18T21:43:54.235Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/getPanel": { + "modified": "2020-10-15T22:05:22.102Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Hypertexte": { - "modified": "2019-03-23T22:42:03.435Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/getTitle": { + "modified": "2020-10-15T22:05:23.613Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Héritage": { - "modified": "2019-03-18T21:15:48.792Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/isOpen": { + "modified": "2020-10-15T22:05:23.432Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/I18N": { - "modified": "2019-03-23T22:41:26.912Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/open": { + "modified": "2020-10-15T22:05:23.939Z", "contributors": [ - "Goofy", - "xdelatour" + "hellosct1" ] }, - "Glossaire/IANA": { - "modified": "2019-03-23T22:42:02.685Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setIcon": { + "modified": "2020-10-15T22:05:23.907Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/ICANN": { - "modified": "2019-03-23T22:41:20.475Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setPanel": { + "modified": "2020-10-15T22:05:22.031Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/ICE": { - "modified": "2019-03-18T21:15:41.890Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setTitle": { + "modified": "2020-10-15T22:05:24.111Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/IDE": { - "modified": "2019-03-23T22:42:01.895Z", + "Mozilla/Add-ons/WebExtensions/API/sidebarAction/toggle": { + "modified": "2020-10-15T22:30:04.353Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/IDL": { - "modified": "2019-03-23T22:40:46.124Z", + "Mozilla/Add-ons/WebExtensions/API/storage": { + "modified": "2020-10-15T21:57:44.721Z", "contributors": [ - "xdelatour" + "AntoineJT", + "hellosct1", + "wbamberg", + "Idlus" ] }, - "Glossaire/IETF": { - "modified": "2019-03-23T22:41:14.969Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea": { + "modified": "2020-10-15T22:05:20.120Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/IIFE": { - "modified": "2019-03-23T22:40:31.554Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/clear": { + "modified": "2020-10-15T22:05:24.101Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/IMAP": { - "modified": "2019-03-23T22:40:46.212Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get": { + "modified": "2020-10-15T22:05:24.141Z", "contributors": [ - "loella16", - "xdelatour" + "ariasuni", + "hellosct1" ] }, - "Glossaire/IP_Address": { - "modified": "2019-03-23T22:53:42.998Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/getBytesInUse": { + "modified": "2020-10-15T22:05:21.058Z", "contributors": [ - "loella16", - "Goofy", - "htindon" + "hellosct1" ] }, - "Glossaire/IPv4": { - "modified": "2019-03-23T22:57:18.924Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/remove": { + "modified": "2020-10-15T22:05:20.838Z", "contributors": [ - "loella16", - "Porkepix", - "Goofy", - "dattaz" + "hellosct1" ] }, - "Glossaire/IPv6": { - "modified": "2019-03-23T22:57:21.986Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/set": { + "modified": "2020-10-15T22:05:24.815Z", "contributors": [ - "loella16", - "Porkepix", - "Goofy", - "dattaz" + "hellosct1" ] }, - "Glossaire/IRC": { - "modified": "2019-03-23T22:58:51.295Z", + "Mozilla/Add-ons/WebExtensions/API/storage/StorageChange": { + "modified": "2020-10-15T22:05:21.622Z", "contributors": [ - "loella16", - "Goofy", - "Sodan" + "hellosct1", + "wbamberg" ] }, - "Glossaire/ISO": { - "modified": "2019-03-23T22:40:36.585Z", + "Mozilla/Add-ons/WebExtensions/API/storage/local": { + "modified": "2020-10-15T22:05:23.273Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/ITU": { - "modified": "2020-09-25T06:42:41.752Z", + "Mozilla/Add-ons/WebExtensions/API/storage/managed": { + "modified": "2020-10-15T22:05:22.202Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Idempotent": { - "modified": "2019-03-23T22:02:43.812Z", + "Mozilla/Add-ons/WebExtensions/API/storage/onChanged": { + "modified": "2020-10-15T22:05:23.632Z", "contributors": [ - "SphinxKnight", - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Identifiant": { - "modified": "2019-03-23T22:41:09.348Z", + "Mozilla/Add-ons/WebExtensions/API/storage/sync": { + "modified": "2020-10-15T22:05:23.398Z", "contributors": [ - "loella16", - "SphinxKnight", - "xdelatour" + "Mozinet", + "locness3", + "hellosct1", + "wbamberg", + "Kocal" ] }, - "Glossaire/Image_matricielle": { - "modified": "2019-03-18T21:46:42.119Z", + "Mozilla/Add-ons/WebExtensions/API/tabs": { + "modified": "2020-10-15T21:49:29.878Z", "contributors": [ - "loella16" + "hellosct1", + "Watilin", + "wbamberg", + "Rik", + "Ostefanini", + "Sheppy" ] }, - "Glossaire/Immuable": { - "modified": "2019-03-23T22:40:36.312Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfo": { + "modified": "2020-10-15T22:03:57.638Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Index": { - "modified": "2019-01-16T21:55:44.075Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfoReason": { + "modified": "2020-10-15T22:03:52.917Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/IndexedDB": { - "modified": "2019-03-23T22:46:35.134Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/PageSettings": { + "modified": "2020-10-15T22:03:52.956Z", "contributors": [ - "loella16", - "vanz" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Injection_SQL": { - "modified": "2019-03-18T21:46:32.446Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/TAB_ID_NONE": { + "modified": "2020-10-15T21:58:23.043Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Input_method_editor": { - "modified": "2020-07-20T14:35:12.540Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/Tab": { + "modified": "2020-10-15T22:03:11.629Z", "contributors": [ - "tbetous" + "hellosct1", + "ariasuni" ] }, - "Glossaire/Instance": { - "modified": "2019-03-23T22:41:11.990Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/TabStatus": { + "modified": "2020-10-15T22:03:52.910Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Intergiciel": { - "modified": "2019-03-23T22:02:42.236Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/WindowType": { + "modified": "2020-10-15T22:03:51.484Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Internationalisation_et_localisation": { - "modified": "2020-10-09T08:51:46.428Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettings": { + "modified": "2020-10-15T22:03:54.274Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Internet": { - "modified": "2019-03-23T22:53:44.936Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettingsMode": { + "modified": "2020-10-15T22:03:55.281Z", "contributors": [ - "loella16", - "Goofy", - "htindon" + "hellosct1", + "wbamberg" ] }, - "Glossaire/JSON": { - "modified": "2019-03-23T22:14:27.925Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettingsScope": { + "modified": "2020-10-15T22:03:52.641Z", "contributors": [ - "marcpicaud", - "BenoitL" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Jank": { - "modified": "2019-01-17T02:07:53.363Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/captureTab": { + "modified": "2020-10-15T22:03:53.968Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Java": { - "modified": "2019-03-23T22:40:52.651Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/captureVisibleTab": { + "modified": "2020-10-15T22:03:37.508Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/JavaScript": { - "modified": "2019-07-06T09:36:27.477Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/connect": { + "modified": "2020-10-15T21:58:20.324Z", "contributors": [ - "JNa0", - "abvll", - "loella16", - "marie-ototoi", - "vanz" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Keyword": { - "modified": "2019-03-23T22:40:38.596Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/create": { + "modified": "2020-10-15T22:03:33.431Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/LGPL": { - "modified": "2019-03-23T22:40:24.920Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/detectLanguage": { + "modified": "2020-10-15T22:03:48.243Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Langage_de_programmation_de_haut_niveau": { - "modified": "2019-03-23T22:02:41.493Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/discard": { + "modified": "2020-10-15T22:03:57.449Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Langage_de_programmation_dynamique": { - "modified": "2019-03-23T22:03:22.277Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/duplicate": { + "modified": "2020-10-15T22:03:08.294Z", "contributors": [ - "loella16" + "hellosct1", + "ariasuni", + "wbamberg" ] }, - "Glossaire/Latence": { - "modified": "2019-10-26T12:09:56.716Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/executeScript": { + "modified": "2020-10-15T21:58:22.450Z", "contributors": [ - "ledenis" + "hellosct1", + "wbamberg", + "Watilin" ] }, - "Glossaire/Lazy_load": { - "modified": "2020-08-28T17:22:57.514Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/get": { + "modified": "2020-10-15T22:03:48.764Z", "contributors": [ - "jsiny" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Ligature": { - "modified": "2019-03-23T22:40:33.596Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/getAllInWindow": { + "modified": "2020-10-15T22:03:47.367Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Lignes_de_grille_(Row)": { - "modified": "2019-03-23T22:03:16.488Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/getCurrent": { + "modified": "2020-10-15T22:03:47.217Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Lignes_de_grille_(lines)": { - "modified": "2019-03-23T22:03:18.469Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/getSelected": { + "modified": "2020-10-15T22:03:47.042Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Locale": { - "modified": "2019-03-23T22:53:30.385Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/getZoom": { + "modified": "2020-10-15T22:03:47.459Z", "contributors": [ - "Goofy", - "Porkepix" + "hellosct1", + "wbamberg" ] }, - "Glossaire/MVC": { - "modified": "2019-03-23T22:02:46.018Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/getZoomSettings": { + "modified": "2020-10-15T22:03:49.865Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Machine_d_état": { - "modified": "2019-03-18T21:45:44.311Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/goBack": { + "modified": "2020-10-15T22:30:04.681Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/MathML": { - "modified": "2019-03-23T22:40:42.034Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/goForward": { + "modified": "2020-10-15T22:30:06.344Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Media": { - "modified": "2020-09-25T06:46:27.178Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/hide": { + "modified": "2020-10-15T22:03:53.118Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Media/CSS": { - "modified": "2020-10-09T09:27:07.839Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/highlight": { + "modified": "2020-10-15T22:03:50.648Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Microsoft_Edge": { - "modified": "2019-03-23T22:42:05.336Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/insertCSS": { + "modified": "2020-10-15T21:49:28.464Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg", + "Needlex" ] }, - "Glossaire/Microsoft_Internet_Explorer": { - "modified": "2019-03-23T22:41:39.204Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/move": { + "modified": "2020-10-15T22:03:49.781Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/MitM": { - "modified": "2019-03-23T22:02:42.338Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/moveInSuccession": { + "modified": "2020-10-15T22:15:20.685Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Mixin": { - "modified": "2019-03-23T22:40:20.738Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onActivated": { + "modified": "2020-10-15T22:03:53.409Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Mobile_d_abord": { - "modified": "2019-01-17T02:07:48.652Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onActiveChanged": { + "modified": "2020-10-15T22:03:53.571Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Modem": { - "modified": "2019-03-23T22:01:18.215Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onAttached": { + "modified": "2020-10-15T22:03:53.710Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Moment_de_compilation": { - "modified": "2019-03-23T22:38:58.464Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onCreated": { + "modified": "2020-10-15T22:03:52.917Z", "contributors": [ - "Jeremie", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Moteur_de_recherche": { - "modified": "2019-03-23T22:39:26.753Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onDetached": { + "modified": "2020-10-15T22:03:52.758Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Moteur_de_rendu": { - "modified": "2019-03-23T22:41:58.102Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onHighlightChanged": { + "modified": "2020-10-15T22:03:53.182Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Mozilla_Firefox": { - "modified": "2019-03-23T22:42:01.387Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onHighlighted": { + "modified": "2020-10-15T22:03:55.546Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Muable": { - "modified": "2019-03-23T22:01:19.010Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onMoved": { + "modified": "2020-10-15T22:03:52.892Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Métadonnée": { - "modified": "2019-03-23T22:39:13.695Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onRemoved": { + "modified": "2020-10-15T22:03:54.353Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Méthode": { - "modified": "2019-03-23T22:48:52.633Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onReplaced": { + "modified": "2020-10-15T22:03:54.180Z", "contributors": [ - "loella16", - "Porkepix", - "Gibus", - "CLEm" + "hellosct1", + "wbamberg" ] }, - "Glossaire/NAT": { - "modified": "2019-03-23T22:41:06.552Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onSelectionChanged": { + "modified": "2020-10-15T22:03:53.491Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/NNTP": { - "modified": "2019-03-23T22:40:45.090Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated": { + "modified": "2020-10-15T22:03:55.052Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/NaN": { - "modified": "2019-03-23T22:50:00.212Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/onZoomChange": { + "modified": "2020-10-15T22:03:55.458Z", "contributors": [ - "loella16", - "Gibus", - "Porkepix" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Namespace": { - "modified": "2019-03-23T22:40:18.478Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/print": { + "modified": "2020-10-15T22:03:49.388Z", "contributors": [ - "ylerjen" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Native": { - "modified": "2019-03-23T22:41:39.546Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/printPreview": { + "modified": "2020-10-15T22:03:49.526Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Navigateur": { - "modified": "2019-03-23T22:58:47.673Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/query": { + "modified": "2020-10-15T22:03:31.970Z", "contributors": [ - "loella16", - "Porkepix", - "Goofy", - "Sodan" + "hellosct1", + "duduindo", + "wbamberg" ] }, - "Glossaire/Netscape_Navigator": { - "modified": "2019-03-23T22:41:30.201Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/reload": { + "modified": "2020-10-15T22:03:48.842Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Node.js": { - "modified": "2019-03-23T22:57:00.606Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/remove": { + "modified": "2020-10-15T22:03:49.809Z", "contributors": [ - "loella16", - "vanz", - "Goofy", - "Toumitoun" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Nom_de_domaine": { - "modified": "2019-03-23T22:41:45.215Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/removeCSS": { + "modified": "2020-10-15T22:03:48.685Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Noms_réservés": { - "modified": "2019-03-23T22:01:08.667Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/saveAsPDF": { + "modified": "2020-10-15T22:03:10.663Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Normative": { - "modified": "2019-03-23T22:40:46.036Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/sendMessage": { + "modified": "2020-10-15T21:56:45.906Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg", + "sxilderik", + "Ostefanini" ] }, - "Glossaire/Null": { - "modified": "2019-03-23T22:41:31.875Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/sendRequest": { + "modified": "2020-10-15T22:03:50.232Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Number": { - "modified": "2019-07-30T05:53:43.899Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/setZoom": { + "modified": "2020-10-15T22:03:49.328Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/OTA": { - "modified": "2019-03-23T22:57:20.732Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/setZoomSettings": { + "modified": "2020-10-15T22:03:49.946Z", "contributors": [ - "loella16", - "vanz", - "Goofy", - "dattaz" + "hellosct1", + "wbamberg" ] }, - "Glossaire/OWASP": { - "modified": "2019-03-23T22:40:34.868Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/show": { + "modified": "2020-10-15T22:03:54.896Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Objet": { - "modified": "2019-03-23T22:48:58.921Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/toggleReaderMode": { + "modified": "2020-10-15T22:03:50.644Z", "contributors": [ - "loella16", - "Cobrand", - "CLEm" + "hellosct1" ] }, - "Glossaire/Objet_global": { - "modified": "2019-08-12T02:59:41.540Z", + "Mozilla/Add-ons/WebExtensions/API/tabs/update": { + "modified": "2020-10-15T22:03:52.738Z", "contributors": [ - "SphinxKnight", - "yvisherve", - "loella16", - "xdelatour" + "hellosct1", + "Highbrainer" ] }, - "Glossaire/Objet_parent": { - "modified": "2019-03-23T22:41:08.742Z", + "Mozilla/Add-ons/WebExtensions/API/theme": { + "modified": "2020-10-15T21:57:45.524Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg", + "ntim" ] }, - "Glossaire/OpenGL": { - "modified": "2019-03-23T22:39:58.850Z", + "Mozilla/Add-ons/WebExtensions/API/theme/Theme": { + "modified": "2020-10-15T21:57:51.337Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/OpenSSL": { - "modified": "2019-03-23T22:40:31.413Z", + "Mozilla/Add-ons/WebExtensions/API/theme/getCurrent": { + "modified": "2020-10-15T21:59:29.473Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "ntim" ] }, - "Glossaire/Opera_Browser": { - "modified": "2019-03-23T22:42:05.249Z", + "Mozilla/Add-ons/WebExtensions/API/theme/onUpdated": { + "modified": "2020-10-15T22:00:25.228Z", "contributors": [ - "xdelatour" + "hellosct1", + "ntim" ] }, - "Glossaire/Operand": { - "modified": "2019-03-23T22:42:03.272Z", + "Mozilla/Add-ons/WebExtensions/API/theme/reset": { + "modified": "2020-10-15T21:57:51.422Z", "contributors": [ - "loella16", - "SphinxKnight", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Operator": { - "modified": "2019-03-23T22:41:59.764Z", + "Mozilla/Add-ons/WebExtensions/API/theme/update": { + "modified": "2020-10-15T21:57:50.766Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Ordre_canonique": { - "modified": "2019-03-23T22:03:27.512Z", + "Mozilla/Add-ons/WebExtensions/API/topSites": { + "modified": "2020-10-15T21:57:46.000Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Origine": { - "modified": "2019-03-23T23:05:24.534Z", + "Mozilla/Add-ons/WebExtensions/API/topSites/MostVisitedURL": { + "modified": "2020-10-15T21:58:01.003Z", "contributors": [ - "loella16", - "Jeremie", - "Watilin" + "hellosct1" ] }, - "Glossaire/P2P": { - "modified": "2019-03-23T22:57:06.814Z", + "Mozilla/Add-ons/WebExtensions/API/topSites/get": { + "modified": "2020-10-15T21:58:02.136Z", "contributors": [ - "Goofy", - "Toumitoun" + "hellosct1", + "wbamberg" ] }, - "Glossaire/PAC": { - "modified": "2019-03-23T22:36:31.695Z", + "Mozilla/Add-ons/WebExtensions/API/types": { + "modified": "2019-07-03T11:01:54.372Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/PDF": { - "modified": "2019-03-23T22:57:04.556Z", + "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting": { + "modified": "2020-10-15T21:57:18.321Z", "contributors": [ - "Porkepix", - "Goofy", - "Toumitoun" + "hellosct1", + "andrewtruongmoz" ] }, - "Glossaire/PHP": { - "modified": "2019-03-23T22:57:01.311Z", + "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/clear": { + "modified": "2019-07-03T11:03:45.430Z", "contributors": [ - "loella16", - "Porkepix", - "Toumitoun" + "hellosct1" ] }, - "Glossaire/PNG": { - "modified": "2019-03-23T22:41:50.073Z", + "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/get": { + "modified": "2019-06-05T16:54:03.389Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/POO": { - "modified": "2019-03-23T22:48:59.017Z", + "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/onChange": { + "modified": "2020-10-15T21:57:19.014Z", "contributors": [ - "loella16", - "Gibus", - "CLEm" + "hellosct1" ] }, - "Glossaire/POP": { - "modified": "2019-03-23T22:40:50.975Z", + "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/set": { + "modified": "2019-07-03T11:03:56.666Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Paquet": { - "modified": "2020-10-12T03:29:11.646Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts": { + "modified": "2020-10-15T22:23:35.773Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Parameter": { - "modified": "2019-03-23T22:40:31.655Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript": { + "modified": "2020-10-15T22:23:33.344Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Parse": { - "modified": "2019-03-23T22:40:37.469Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/unregister": { + "modified": "2020-10-15T22:23:35.185Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Parser": { - "modified": "2019-03-23T22:40:29.017Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/UserScriptOptions": { + "modified": "2020-06-09T16:06:52.616Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Pile_d_exécution": { - "modified": "2019-03-23T22:41:33.785Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/onBeforeScript": { + "modified": "2020-10-15T22:23:34.529Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Pistes_de_grille": { - "modified": "2019-03-23T22:02:47.082Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/register": { + "modified": "2020-10-15T22:23:34.422Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Pixel": { - "modified": "2019-03-23T22:40:37.845Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation": { + "modified": "2020-10-15T21:57:52.141Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg", + "sxilderik", + "tiimax" ] }, - "Glossaire/Pixel_CSS": { - "modified": "2020-10-05T04:42:31.706Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/TransitionQualifier": { + "modified": "2020-10-15T22:07:03.896Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Polyfill": { - "modified": "2019-03-18T20:40:41.785Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/TransitionType": { + "modified": "2020-10-15T22:07:02.866Z", "contributors": [ - "GaelWLR", - "caribouflex", - "loella16", - "Ostefanini" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Polymorphisme": { - "modified": "2019-03-23T22:39:57.969Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/getAllFrames": { + "modified": "2020-10-15T22:07:02.793Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Port": { - "modified": "2019-03-23T22:58:43.599Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/getFrame": { + "modified": "2020-10-15T22:07:00.126Z", "contributors": [ - "loella16", - "Porkepix", - "Lulamay", - "Jeremie" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Portée": { - "modified": "2019-03-23T22:40:22.490Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onBeforeNavigate": { + "modified": "2020-10-15T22:07:02.940Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Portée_globale": { - "modified": "2019-03-23T22:41:14.880Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCommitted": { + "modified": "2020-10-15T22:07:02.451Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Portée_locale": { - "modified": "2019-03-23T22:40:56.046Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCompleted": { + "modified": "2020-10-15T22:07:03.742Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Presto": { - "modified": "2019-03-23T22:42:11.378Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCreatedNavigationTarget": { + "modified": "2020-10-15T22:07:03.933Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Primitive": { - "modified": "2019-03-23T22:48:58.549Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onDOMContentLoaded": { + "modified": "2020-10-15T22:07:02.959Z", "contributors": [ - "loella16", - "Gibus", - "CLEm" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Privilégié": { - "modified": "2019-03-23T22:41:29.520Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onErrorOccurred": { + "modified": "2020-10-15T22:07:03.666Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Programmation_orientée_prototype": { - "modified": "2019-03-23T22:01:08.082Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onHistoryStateUpdated": { + "modified": "2020-10-15T22:07:05.669Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Progressive_web_apps": { - "modified": "2019-03-23T22:18:10.153Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onReferenceFragmentUpdated": { + "modified": "2020-10-15T22:07:03.560Z", "contributors": [ - "loella16", - "unpeudetout", - "Jeremie" + "hellosct1" ] }, - "Glossaire/Promesse": { - "modified": "2020-11-29T17:08:43.767Z", + "Mozilla/Add-ons/WebExtensions/API/webNavigation/onTabReplaced": { + "modified": "2020-10-15T22:07:03.017Z", "contributors": [ - "Dimitri_TRAVAILLOUX", - "JNa0", - "tpoisseau" + "hellosct1" ] }, - "Glossaire/Propriete_CSS": { - "modified": "2019-03-23T22:57:05.036Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest": { + "modified": "2020-10-15T21:56:48.858Z", "contributors": [ - "loella16", - "xdelatour", - "Goofy", - "htindon" + "hellosct1", + "wbamberg", + "Ostefanini" ] }, - "Glossaire/Protocol": { - "modified": "2019-03-23T22:42:16.452Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/BlockingResponse": { + "modified": "2020-10-15T22:07:42.613Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Prototype": { - "modified": "2019-03-23T22:40:20.436Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/CertificateInfo": { + "modified": "2020-10-15T22:07:39.362Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Préfixe_Vendeur": { - "modified": "2019-03-23T22:40:15.581Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/HttpHeaders": { + "modified": "2020-10-15T22:07:40.664Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Pseudo-classe": { - "modified": "2019-03-23T22:40:46.877Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES": { + "modified": "2020-10-15T22:07:41.126Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Pseudo-code": { - "modified": "2019-03-18T21:47:09.076Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/RequestFilter": { + "modified": "2020-10-15T22:07:42.125Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Pseudo-élément": { - "modified": "2019-03-23T22:40:07.267Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType": { + "modified": "2020-10-15T22:07:40.764Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Python": { - "modified": "2019-03-23T22:40:49.701Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/SecurityInfo": { + "modified": "2020-10-15T22:07:37.628Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/QUIC": { - "modified": "2020-10-12T03:40:33.880Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter": { + "modified": "2020-10-15T22:07:33.978Z", "contributors": [ - "Voulto" + "hellosct1", + "kernp" ] }, - "Glossaire/Quality_values": { - "modified": "2019-03-18T21:47:07.513Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/close": { + "modified": "2020-10-15T22:07:36.429Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/RAIL": { - "modified": "2020-10-11T05:55:50.398Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/disconnect": { + "modified": "2020-10-15T22:07:37.658Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/RDF": { - "modified": "2019-03-23T22:40:14.803Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/error": { + "modified": "2020-10-15T22:07:36.127Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/REST": { - "modified": "2019-03-23T22:39:50.192Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/ondata": { + "modified": "2020-10-15T22:07:38.841Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/RGB": { - "modified": "2019-03-23T22:39:05.612Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onerror": { + "modified": "2020-10-15T22:07:36.695Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/RIL": { - "modified": "2019-03-23T22:39:40.462Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onstart": { + "modified": "2020-10-15T22:07:36.284Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/RNG": { - "modified": "2019-03-23T22:39:14.416Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onstop": { + "modified": "2020-10-15T22:07:38.862Z", "contributors": [ - "Goofy", - "xdelatour" + "hellosct1" ] }, - "Glossaire/RSS": { - "modified": "2019-03-23T22:40:15.677Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/resume": { + "modified": "2020-10-15T22:07:37.721Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/RTF": { - "modified": "2019-03-23T22:42:05.530Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/status": { + "modified": "2020-10-15T22:07:37.031Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/RTP": { - "modified": "2020-09-30T07:30:27.350Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/suspend": { + "modified": "2020-10-15T22:07:37.750Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Ramasse-miettes": { - "modified": "2019-03-23T22:37:46.005Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/write": { + "modified": "2020-10-15T22:07:35.165Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Real_User_Monitoring": { - "modified": "2020-09-25T05:36:48.774Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/UploadData": { + "modified": "2020-10-15T22:07:36.344Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Reflow": { - "modified": "2019-03-18T21:46:42.626Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/filterResponseData": { + "modified": "2020-10-15T22:07:37.557Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Regular_expression": { - "modified": "2019-03-23T22:46:36.694Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/getSecurityInfo": { + "modified": "2020-10-15T22:07:36.970Z", "contributors": [ - "loella16", - "Porkepix", - "Hell_Carlito", - "sebastien-bartoli", - "vanz" + "hellosct1" ] }, - "Glossaire/Responsive_web_design": { - "modified": "2019-03-18T21:46:42.758Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/handlerBehaviorChanged": { + "modified": "2020-10-15T22:07:41.109Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Robot_d_indexation": { - "modified": "2019-03-23T22:39:26.515Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired": { + "modified": "2020-10-15T22:07:43.648Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Robots.txt": { - "modified": "2019-03-23T22:39:27.042Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRedirect": { + "modified": "2020-10-15T22:07:43.857Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Ruby": { - "modified": "2019-03-23T22:41:17.345Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRequest": { + "modified": "2020-10-15T22:07:42.418Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Récursion": { - "modified": "2019-03-23T22:41:09.659Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeSendHeaders": { + "modified": "2020-10-15T22:07:42.104Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Référence": { - "modified": "2019-03-23T22:40:24.148Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onCompleted": { + "modified": "2020-10-15T22:07:39.958Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Référence_d_objet": { - "modified": "2019-03-23T22:40:23.211Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onErrorOccurred": { + "modified": "2020-10-15T22:07:41.971Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/SCM": { - "modified": "2019-03-23T22:38:57.015Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onHeadersReceived": { + "modified": "2020-10-15T22:07:37.308Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/SCTP": { - "modified": "2019-03-18T21:46:38.825Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onResponseStarted": { + "modified": "2020-10-15T22:07:39.432Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/SDP": { - "modified": "2019-03-23T22:41:12.448Z", + "Mozilla/Add-ons/WebExtensions/API/webRequest/onSendHeaders": { + "modified": "2020-10-15T22:07:44.311Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/SEO": { - "modified": "2019-03-18T21:46:24.952Z", + "Mozilla/Add-ons/WebExtensions/API/windows": { + "modified": "2020-10-15T21:54:01.228Z", "contributors": [ - "loella16" + "hellosct1", + "ariasuni", + "wbamberg" ] }, - "Glossaire/SIMD": { - "modified": "2019-03-23T22:41:12.178Z", + "Mozilla/Add-ons/WebExtensions/API/windows/CreateType": { + "modified": "2020-10-15T21:54:03.517Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SISD": { - "modified": "2019-03-23T22:41:10.120Z", + "Mozilla/Add-ons/WebExtensions/API/windows/WINDOW_ID_CURRENT": { + "modified": "2020-10-15T21:55:56.833Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SLD": { - "modified": "2019-03-23T22:42:04.405Z", + "Mozilla/Add-ons/WebExtensions/API/windows/WINDOW_ID_NONE": { + "modified": "2020-10-15T21:55:57.264Z", "contributors": [ - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SMTP": { - "modified": "2019-03-23T22:40:17.302Z", + "Mozilla/Add-ons/WebExtensions/API/windows/Window": { + "modified": "2020-10-15T21:54:02.522Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg", + "kodliber" ] }, - "Glossaire/SOAP": { - "modified": "2019-03-23T22:40:38.697Z", + "Mozilla/Add-ons/WebExtensions/API/windows/WindowState": { + "modified": "2020-10-15T21:54:02.219Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SQL": { - "modified": "2019-03-23T22:57:00.831Z", + "Mozilla/Add-ons/WebExtensions/API/windows/WindowType": { + "modified": "2020-10-15T21:54:03.274Z", "contributors": [ - "Porkepix", - "Toumitoun" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SRI": { - "modified": "2019-03-18T21:46:37.925Z", + "Mozilla/Add-ons/WebExtensions/API/windows/create": { + "modified": "2020-10-15T21:55:59.984Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/SSL_Glossary": { - "modified": "2019-03-18T21:46:35.161Z", + "Mozilla/Add-ons/WebExtensions/API/windows/get": { + "modified": "2020-10-15T21:55:58.524Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/STUN": { - "modified": "2019-03-23T22:40:15.360Z", + "Mozilla/Add-ons/WebExtensions/API/windows/getAll": { + "modified": "2020-10-15T21:56:00.964Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/SVG": { - "modified": "2019-03-23T22:40:20.842Z", + "Mozilla/Add-ons/WebExtensions/API/windows/getCurrent": { + "modified": "2020-10-15T21:55:58.426Z", "contributors": [ - "loella16", - "Porkepix", - "marie-ototoi", - "xdelatour" + "TontonSancho", + "hellosct1" ] }, - "Glossaire/SVN": { - "modified": "2019-03-23T22:57:07.228Z", + "Mozilla/Add-ons/WebExtensions/API/windows/getLastFocused": { + "modified": "2020-10-15T21:55:59.393Z", "contributors": [ - "loella16", - "Toumitoun" + "hellosct1" ] }, - "Glossaire/Same-origin_policy": { - "modified": "2019-06-14T06:25:34.615Z", + "Mozilla/Add-ons/WebExtensions/API/windows/onCreated": { + "modified": "2020-10-15T21:55:57.655Z", "contributors": [ - "Watilin" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Serveur": { - "modified": "2019-03-23T22:41:08.500Z", + "Mozilla/Add-ons/WebExtensions/API/windows/onFocusChanged": { + "modified": "2020-10-15T21:55:58.239Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Serveur_Web": { - "modified": "2020-10-11T04:52:56.117Z", + "Mozilla/Add-ons/WebExtensions/API/windows/onRemoved": { + "modified": "2020-10-15T21:56:00.938Z", "contributors": [ - "Voulto" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Serveur_proxy": { - "modified": "2019-03-18T21:47:12.657Z", + "Mozilla/Add-ons/WebExtensions/API/windows/remove": { + "modified": "2020-10-15T21:55:58.919Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Shim": { - "modified": "2019-03-18T21:45:43.959Z", + "Mozilla/Add-ons/WebExtensions/API/windows/update": { + "modified": "2020-10-15T21:55:59.013Z", "contributors": [ - "loella16" + "hellosct1", + "wbamberg" ] }, - "Glossaire/Signature": { - "modified": "2019-03-23T22:40:17.194Z", + "Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension": { + "modified": "2019-09-22T20:40:17.710Z", "contributors": [ - "xdelatour" + "hellosct1", + "LeMilitaire", + "EBoespflug", + "Goofy", + "NerOcrO", + "zebu1er", + "lotfire24", + "Lamri" ] }, - "Glossaire/Signature/Fonction": { - "modified": "2019-03-23T22:40:21.442Z", + "Mozilla/Add-ons/WebExtensions/Browser_actions": { + "modified": "2019-03-18T21:02:11.294Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Signature/Sécurité": { - "modified": "2019-03-23T22:40:22.990Z", + "Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json": { + "modified": "2020-10-15T22:06:59.369Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/Site": { - "modified": "2020-10-11T05:33:50.641Z", + "Mozilla/Add-ons/WebExtensions/Content_Security_Policy": { + "modified": "2019-11-07T19:55:56.920Z", "contributors": [ - "Voulto" + "hellosct1", + "SphinxKnight" ] }, - "Glossaire/Site_map": { - "modified": "2020-10-11T05:42:01.722Z", + "Mozilla/Add-ons/WebExtensions/Content_scripts": { + "modified": "2019-09-22T19:42:08.982Z", "contributors": [ - "Voulto" + "hellosct1", + "sblondon", + "JNa0", + "SphinxKnight", + "Idlus", + "SuperTouch", + "Ostefanini" ] }, - "Glossaire/Sloppy_mode": { - "modified": "2019-03-18T21:45:43.833Z", + "Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Thunderbird": { + "modified": "2019-07-08T08:27:00.328Z", "contributors": [ - "loella16" + "hellosct1" ] }, - "Glossaire/Slug": { - "modified": "2019-03-18T21:45:46.971Z", + "Mozilla/Add-ons/WebExtensions/Firefox_differentiators": { + "modified": "2019-12-14T15:20:16.560Z", "contributors": [ - "loella16" + "Mozinet", + "hellosct1" ] }, - "Glossaire/Specification": { - "modified": "2019-03-23T22:41:43.100Z", + "Mozilla/Add-ons/WebExtensions/Firefox_workflow_overview": { + "modified": "2020-05-24T09:38:20.083Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Statement": { - "modified": "2019-03-23T22:42:03.846Z", + "Mozilla/Add-ons/WebExtensions/Index": { + "modified": "2019-03-18T21:01:44.832Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/String": { - "modified": "2019-03-23T22:40:00.102Z", + "Mozilla/Add-ons/WebExtensions/Internationalization": { + "modified": "2019-12-13T05:03:26.676Z", "contributors": [ - "loella16", - "xdelatour" + "timkrief", + "hellosct1", + "Mozinet", + "dauphine-dev", + "Yopadd" ] }, - "Glossaire/Structure_de_contrôle": { - "modified": "2019-03-23T22:41:59.034Z", + "Mozilla/Add-ons/WebExtensions/Match_patterns": { + "modified": "2020-10-15T21:55:13.648Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "JNa0", + "Watilin" ] }, - "Glossaire/Structure_de_données": { - "modified": "2019-09-04T16:13:28.582Z", + "Mozilla/Add-ons/WebExtensions/Modify_a_web_page": { + "modified": "2019-09-23T03:48:09.232Z", "contributors": [ - "SphinxKnight", - "Porkepix", - "xdelatour" + "hellosct1", + "supertanuki" ] }, - "Glossaire/Symbole": { - "modified": "2019-03-23T22:39:08.053Z", + "Mozilla/Add-ons/WebExtensions/Native_messaging": { + "modified": "2019-10-13T07:29:27.829Z", "contributors": [ - "Nopias", - "loella16", - "xdelatour" + "hellosct1", + "fbessou", + "JNa0", + "Drosos", + "SphinxKnight", + "peetcamron", + "Baniway", + "glacambre", + "m4ucoder" ] }, - "Glossaire/Synchronous": { - "modified": "2019-03-23T22:40:33.779Z", + "Mozilla/Add-ons/WebExtensions/Prerequisites": { + "modified": "2019-03-18T21:02:53.858Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Syntax_error": { - "modified": "2019-03-23T22:41:06.855Z", + "Mozilla/Add-ons/WebExtensions/Tips": { + "modified": "2019-07-03T12:01:15.793Z", "contributors": [ - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Syntaxe": { - "modified": "2019-03-23T22:39:03.649Z", + "Mozilla/Add-ons/WebExtensions/User_actions": { + "modified": "2019-07-03T12:01:29.724Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Sélecteur_CSS": { - "modified": "2019-03-23T22:39:53.102Z", + "Mozilla/Add-ons/WebExtensions/What_are_WebExtensions": { + "modified": "2020-08-28T23:27:12.925Z", "contributors": [ - "loella16", - "xdelatour" + "NassimSaboundji", + "hellosct1", + "Ilphrin", + "dark-rabbit", + "SphinxKnight", + "gritchou", + "Ostefanini", + "CarlosAvim", + "unpeudetout" ] }, - "Glossaire/Sémantique": { - "modified": "2019-03-23T22:38:43.484Z", + "Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API": { + "modified": "2019-07-03T12:03:31.339Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Sérialisation": { - "modified": "2019-03-23T22:03:28.172Z", + "Mozilla/Add-ons/WebExtensions/Working_with_files": { + "modified": "2019-05-18T19:31:16.604Z", "contributors": [ - "macmorning", + "hellosct1", + "Torzivalds", "loella16" ] }, - "Glossaire/TCP": { - "modified": "2019-03-23T22:57:04.926Z", + "Mozilla/Add-ons/WebExtensions/Your_first_WebExtension": { + "modified": "2020-09-01T21:52:47.245Z", "contributors": [ - "Porkepix", - "Goofy", - "Toumitoun" + "NassimSaboundji", + "hellosct1", + "TwinProduction", + "NerOcrO", + "Enche", + "DeflatedBimbo" ] }, - "Glossaire/TCP_handshake": { - "modified": "2019-09-15T08:41:25.795Z", + "Mozilla/Add-ons/WebExtensions/Your_second_WebExtension": { + "modified": "2020-05-24T09:19:35.748Z", "contributors": [ - "estelle" + "hellosct1", + "ThCarrere", + "NerOcrO", + "Artusamak", + "b1nj", + "pascalchevrel", + "Hell_Carlito", + "DeflatedBimbo" ] }, - "Glossaire/TCP_slow_start": { - "modified": "2019-09-02T01:46:30.468Z", + "Mozilla/Add-ons/WebExtensions/manifest.json": { + "modified": "2020-10-15T21:39:14.599Z", "contributors": [ - "estelle" + "hellosct1", + "loella16", + "Bat" ] }, - "Glossaire/TLD": { - "modified": "2019-03-23T22:38:54.058Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/browser_action": { + "modified": "2020-10-15T21:54:15.348Z", "contributors": [ - "xdelatour" + "hellosct1", + "loella16", + "SphinxKnight" ] }, - "Glossaire/TLS": { - "modified": "2019-03-23T22:39:14.027Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings": { + "modified": "2020-10-15T21:39:14.644Z", "contributors": [ + "hellosct1", + "ExE-Boss", "loella16", - "xdelatour" + "Goofy", + "Bat" ] }, - "Glossaire/TOFU": { - "modified": "2019-03-18T21:45:44.983Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides": { + "modified": "2020-10-15T21:55:19.782Z", "contributors": [ - "SphinxKnight", - "loella16" + "hellosct1", + "loella16", + "Ostefanini" ] }, - "Glossaire/TTL": { - "modified": "2019-03-18T21:45:45.855Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides": { + "modified": "2020-10-15T21:55:21.140Z", "contributors": [ - "SphinxKnight", + "hellosct1", "loella16" ] }, - "Glossaire/TURN": { - "modified": "2019-03-23T22:40:25.013Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/commands": { + "modified": "2020-10-15T21:55:23.895Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "wbamberg", + "Mozinet", + "edrflt", + "loella16" ] }, - "Glossaire/Tampon": { - "modified": "2019-03-18T21:45:35.327Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts": { + "modified": "2020-10-15T21:55:21.489Z", "contributors": [ + "hellosct1", + "Watilin", "loella16" ] }, - "Glossaire/Telnet": { - "modified": "2019-03-23T22:42:10.476Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy": { + "modified": "2020-10-15T21:55:18.077Z", "contributors": [ - "xdelatour" + "hellosct1", + "Watilin" ] }, - "Glossaire/Test_de_fumée": { - "modified": "2019-03-18T21:45:36.505Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/default_locale": { + "modified": "2020-10-15T21:55:15.929Z", "contributors": [ + "hellosct1", "loella16" ] }, - "Glossaire/Texel": { - "modified": "2020-10-11T05:05:07.567Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/description": { + "modified": "2020-10-15T21:55:19.122Z", "contributors": [ - "Voulto" + "hellosct1", + "loella16" ] }, - "Glossaire/Texte_brut": { - "modified": "2019-03-23T22:39:26.132Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/developer": { + "modified": "2020-10-15T21:55:22.713Z", "contributors": [ - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/Three_js": { - "modified": "2019-03-23T22:40:32.870Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page": { + "modified": "2020-10-15T21:55:10.420Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/Time_to_interactive": { - "modified": "2020-11-10T08:04:33.624Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/dictionaries": { + "modified": "2020-10-15T22:18:47.471Z", "contributors": [ - "Voulto" + "hellosct1" ] }, - "Glossaire/Transmission_Control_Protocol_(TCP)": { - "modified": "2019-09-13T20:23:27.919Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/externally_connectable": { + "modified": "2020-10-15T22:23:08.757Z", "contributors": [ - "estelle" + "hellosct1" ] }, - "Glossaire/Tree_shaking": { - "modified": "2019-03-18T21:45:48.808Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url": { + "modified": "2020-10-15T21:55:17.650Z", "contributors": [ + "hellosct1", + "regseb", "loella16" ] }, - "Glossaire/Tri_par_cartes": { - "modified": "2019-03-23T22:25:45.561Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/icons": { + "modified": "2020-10-15T21:55:13.686Z", "contributors": [ - "loella16", - "Hell_Carlito", - "htindon" + "hellosct1", + "ggrossetie", + "loella16" ] }, - "Glossaire/Trident": { - "modified": "2019-03-23T22:57:05.971Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/incognito": { + "modified": "2020-10-15T21:55:19.216Z", "contributors": [ - "loella16", - "GeekShadow" + "hellosct1", + "loella16" ] }, - "Glossaire/Truthy": { - "modified": "2019-03-23T22:43:00.610Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version": { + "modified": "2020-10-15T21:55:12.053Z", "contributors": [ - "loella16", - "davidbourguignon", - "jswisher", - "raoul632" + "hellosct1", + "loella16" ] }, - "Glossaire/Type": { - "modified": "2019-03-23T22:42:01.802Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/name": { + "modified": "2020-10-15T21:55:11.900Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/Type_MIME": { - "modified": "2019-03-23T22:40:46.635Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/offline_enabled": { + "modified": "2020-10-15T22:11:14.653Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Type_coercion": { - "modified": "2020-08-28T17:39:29.859Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/omnibox": { + "modified": "2020-10-15T21:55:22.642Z", "contributors": [ - "jsiny" + "hellosct1", + "loella16" ] }, - "Glossaire/UDP": { - "modified": "2019-03-23T22:41:59.662Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions": { + "modified": "2020-10-15T21:55:16.335Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/UI": { - "modified": "2019-03-23T22:41:37.563Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/options_page": { + "modified": "2020-10-15T22:08:03.256Z", "contributors": [ - "SphinxKnight", - "Gibus", - "xdelatour" + "hellosct1" ] }, - "Glossaire/URI": { - "modified": "2019-03-23T22:57:00.503Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/options_ui": { + "modified": "2020-10-15T21:55:19.972Z", "contributors": [ + "hellosct1", "loella16", - "Goofy", - "Toumitoun" + "Ostefanini" ] }, - "Glossaire/URL": { - "modified": "2020-10-19T13:47:26.150Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/page_action": { + "modified": "2020-10-15T21:55:24.587Z", "contributors": [ - "Voulto", - "loella16", - "marie-ototoi", - "Porkepix", - "Goofy", - "Toumitoun" + "hellosct1", + "loella16" ] }, - "Glossaire/URN": { - "modified": "2019-03-23T22:39:50.091Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/permissions": { + "modified": "2020-10-15T21:54:37.682Z", "contributors": [ - "xdelatour" + "hellosct1", + "Salamafet", + "Torzivalds", + "loella16", + "lotfire24" ] }, - "Glossaire/UTF-8": { - "modified": "2019-03-23T22:39:53.487Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers": { + "modified": "2020-10-15T21:55:15.617Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/UX": { - "modified": "2019-03-23T22:32:29.107Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/short_name": { + "modified": "2020-10-15T21:55:14.061Z", "contributors": [ - "Gibus", - "htindon" + "hellosct1", + "loella16" ] }, - "Glossaire/Unicode": { - "modified": "2019-03-18T21:45:46.646Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action": { + "modified": "2020-10-15T21:55:14.605Z", "contributors": [ + "hellosct1", "loella16" ] }, - "Glossaire/Usenet": { - "modified": "2019-03-23T22:40:09.482Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/storage": { + "modified": "2020-10-15T22:30:02.853Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/User_agent": { - "modified": "2019-03-23T22:40:37.671Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/theme": { + "modified": "2020-10-15T21:55:34.819Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1", + "ariasuni", + "ntim", + "loella16" ] }, - "Glossaire/Valeur": { - "modified": "2019-03-23T22:40:20.340Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/user_scripts": { + "modified": "2019-10-12T20:43:45.353Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Validator": { - "modified": "2019-03-23T22:57:06.137Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/version": { + "modified": "2020-10-15T21:55:11.372Z", "contributors": [ - "loella16", - "Porkepix", - "Toumitoun" + "hellosct1", + "regseb", + "loella16" ] }, - "Glossaire/Variable": { - "modified": "2019-03-23T22:42:09.601Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/version_name": { + "modified": "2020-10-15T22:04:03.493Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1" ] }, - "Glossaire/Variable_globale": { - "modified": "2019-03-23T22:41:13.951Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources": { + "modified": "2020-10-15T21:55:21.044Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "loella16" ] }, - "Glossaire/Variable_locale": { - "modified": "2019-03-23T22:41:09.572Z", + "Mozilla/Add-ons/WebExtensions/user_interface": { + "modified": "2019-05-19T16:33:54.438Z", "contributors": [ - "loella16", - "xdelatour" + "hellosct1", + "rebloor" ] }, - "Glossaire/Viewport": { - "modified": "2019-03-23T22:39:08.726Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Browser_action": { + "modified": "2019-07-03T12:02:27.727Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "hellosct1" ] }, - "Glossaire/VoIP": { - "modified": "2019-03-23T22:39:39.990Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Browser_styles": { + "modified": "2020-10-15T22:06:57.625Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/W3C": { - "modified": "2019-03-23T22:57:06.246Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Notifications": { + "modified": "2019-09-30T16:39:31.088Z", "contributors": [ - "Porkepix", - "Goofy", - "Toumitoun" + "hellosct1" ] }, - "Glossaire/WAI": { - "modified": "2019-03-23T22:39:58.348Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Omnibox": { + "modified": "2019-07-03T14:25:31.393Z", "contributors": [ - "xdelatour" + "hellosct1" ] }, - "Glossaire/WCAG": { - "modified": "2019-03-23T22:40:02.080Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Options_pages": { + "modified": "2019-10-07T19:06:20.943Z", "contributors": [ - "loella16", - "xdelatour" + "WSH", + "hellosct1" ] }, - "Glossaire/WHATWG": { - "modified": "2019-03-23T22:40:20.041Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Page_actions": { + "modified": "2019-07-03T15:11:50.284Z", "contributors": [ - "xdelatour" + "hellosct1", + "Silbad" ] }, - "Glossaire/WebDAV": { - "modified": "2019-03-23T22:40:37.379Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Popups": { + "modified": "2019-09-30T16:35:45.642Z", "contributors": [ - "tonybengue", - "xdelatour" + "hellosct1", + "supertanuki", + "Silbad" ] }, - "Glossaire/WebExtensions": { - "modified": "2019-03-23T22:07:24.912Z", + "Mozilla/Developer_guide": { + "modified": "2020-08-31T05:54:42.010Z", "contributors": [ - "Mozinet" + "Voulto", + "chrisdavidmills", + "jp.jeaphil", + "echaudron", + "Jonathanlempereur", + "wakka27", + "Delapouite", + "bskari" ] }, - "Glossaire/WebGL": { - "modified": "2019-03-23T22:40:38.243Z", + "Mozilla/Developer_guide/How_to_Submit_a_Patch": { + "modified": "2019-03-23T22:06:44.874Z", "contributors": [ - "xdelatour" + "sylvestre", + "chrisdavidmills", + "loella16", + "KurtC0ba1n" ] }, - "Glossaire/WebIDL": { - "modified": "2019-03-23T22:40:18.690Z", + "Mozilla/Developer_guide/Reviewer_Checklist": { + "modified": "2020-04-06T15:56:36.678Z", "contributors": [ + "olivierdupon", + "chrisdavidmills", "loella16", - "xdelatour" + "CarlosAvim" ] }, - "Glossaire/WebKit": { - "modified": "2019-03-23T22:40:36.496Z", + "Mozilla/Developer_guide/mozilla-central": { + "modified": "2019-03-24T00:02:46.954Z", "contributors": [ - "xdelatour" + "chrisdavidmills", + "QuentinAmelot", + "tregagnon", + "fscholz", + "BenoitL" ] }, - "Glossaire/WebRTC": { - "modified": "2019-03-23T22:41:08.284Z", + "Mozilla/Firefox": { + "modified": "2020-01-18T13:29:35.316Z", "contributors": [ - "loella16", - "xdelatour" + "leela52452", + "SphinxKnight", + "wbamberg", + "cecilebertin", + "arthuretienne", + "zozolulu74", + "Pikexel", + "flo5589", + "FredB", + "ethertank" ] }, - "Glossaire/WebSockets": { - "modified": "2019-03-23T22:40:37.281Z", + "Mozilla/Firefox/Experimental_features": { + "modified": "2020-09-22T03:39:10.062Z", "contributors": [ - "Raul6469", - "loella16", - "xdelatour" + "Mttwt9", + "olivierdupon", + "wbamberg", + "GuiBret", + "Lululion", + "DTSSE" ] }, - "Glossaire/WebVTT": { - "modified": "2019-03-18T21:45:46.184Z", + "Mozilla/Firefox/Releases/25": { + "modified": "2020-09-12T04:13:11.916Z", "contributors": [ - "loella16" + "Voulto", + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/Web_standards": { - "modified": "2019-03-23T22:40:24.427Z", + "Mozilla/Firefox/Releases/25/Site_Compatibility": { + "modified": "2019-01-16T21:57:42.942Z", "contributors": [ - "Porkepix", + "wbamberg", "xdelatour" ] }, - "Glossaire/Whitespace": { - "modified": "2020-09-25T06:24:07.540Z", + "Mozilla/Firefox/Releases/26": { + "modified": "2020-09-16T08:21:14.333Z", "contributors": [ - "Voulto" + "Voulto", + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/World_Wide_Web": { - "modified": "2019-03-23T22:40:59.764Z", + "Mozilla/Firefox/Releases/26/Site_Compatibility": { + "modified": "2019-01-16T21:59:11.115Z", "contributors": [ - "loella16", + "wbamberg", "xdelatour" ] }, - "Glossaire/Wrapper": { - "modified": "2019-03-23T22:40:25.100Z", + "Mozilla/Firefox/Releases/27": { + "modified": "2020-09-20T06:36:32.881Z", "contributors": [ - "loella16", - "xdelatour" + "Voulto", + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/XForm": { - "modified": "2019-03-23T22:40:51.846Z", + "Mozilla/Firefox/Releases/27/Site_Compatibility": { + "modified": "2019-01-16T21:49:05.193Z", "contributors": [ + "wbamberg", "xdelatour" ] }, - "Glossaire/XHR_(XMLHttpRequest)": { - "modified": "2019-03-18T21:45:35.065Z", + "Mozilla/Firefox/Releases/28": { + "modified": "2020-09-30T06:44:33.639Z", "contributors": [ - "Porkepix", - "loella16" - ] - }, - "Glossaire/XInclude": { - "modified": "2019-03-18T21:44:11.126Z", - "contributors": [ - "loella16" + "Voulto", + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/XLink": { - "modified": "2019-03-23T22:39:40.575Z", + "Mozilla/Firefox/Releases/28/Site_Compatibility": { + "modified": "2019-01-16T21:59:08.939Z", "contributors": [ - "loella16", + "wbamberg", "xdelatour" ] }, - "Glossaire/XML": { - "modified": "2019-03-23T22:41:20.251Z", + "Mozilla/Firefox/Releases/29": { + "modified": "2020-10-29T07:27:45.030Z", "contributors": [ - "loella16", - "xdelatour" + "Voulto", + "wbamberg", + "Sebastianz", + "kohei.yoshino" ] }, - "Glossaire/XPath": { - "modified": "2019-03-23T22:40:53.901Z", + "Mozilla/Firefox/Releases/29/Site_Compatibility": { + "modified": "2019-01-16T21:57:45.131Z", "contributors": [ - "loella16", + "wbamberg", "xdelatour" ] }, - "Glossaire/XQuery": { - "modified": "2019-03-23T22:40:51.223Z", + "Mozilla/Firefox/Releases/30": { + "modified": "2020-09-21T08:58:56.014Z", "contributors": [ - "loella16", - "xdelatour" + "Voulto", + "wbamberg", + "fscholz" ] }, - "Glossaire/XSLT": { - "modified": "2019-03-23T22:40:34.285Z", + "Mozilla/Firefox/Releases/30/Site_Compatibility": { + "modified": "2019-01-16T21:57:39.588Z", "contributors": [ + "wbamberg", "xdelatour" ] }, - "Glossaire/Zones_de_grille": { - "modified": "2019-06-14T08:10:14.682Z", + "Mozilla/Firefox/Releases/31": { + "modified": "2019-03-23T22:41:00.540Z", "contributors": [ - "loella16" + "wbamberg", + "teoli" ] }, - "Glossaire/application_context": { - "modified": "2019-03-23T22:25:39.268Z", + "Mozilla/Firefox/Releases/31/Site_Compatibility": { + "modified": "2019-01-16T21:57:55.582Z", "contributors": [ - "loella16", - "Hell_Carlito", - "htindon" + "wbamberg", + "xdelatour" ] }, - "Glossaire/applications_web_modernes": { - "modified": "2019-01-17T02:12:55.112Z", + "Mozilla/Firefox/Releases/32": { + "modified": "2019-03-23T22:59:34.596Z", "contributors": [ - "loella16" + "wbamberg", + "kmaglione" ] }, - "Glossaire/array": { - "modified": "2019-03-23T23:00:07.104Z", + "Mozilla/Firefox/Releases/32/Site_Compatibility": { + "modified": "2019-03-23T22:59:35.978Z", "contributors": [ - "loella16", - "Porkepix", - "Gibus", - "CLEm", - "Jeremie", - "Goofy", - "htindon" + "wbamberg", + "Amandine83" ] }, - "Glossaire/beacon": { - "modified": "2020-09-25T05:38:18.987Z", + "Mozilla/Firefox/Releases/33": { + "modified": "2019-03-23T22:40:55.948Z", "contributors": [ - "Voulto" + "wbamberg", + "Sebastianz", + "teoli" ] }, - "Glossaire/brotli_compression": { - "modified": "2020-09-25T05:08:06.594Z", + "Mozilla/Firefox/Releases/33/Site_Compatibility": { + "modified": "2019-01-16T21:57:26.981Z", "contributors": [ - "Voulto" + "wbamberg", + "xdelatour" ] }, - "Glossaire/cacheable": { - "modified": "2019-03-23T22:03:25.242Z", + "Mozilla/Firefox/Releases/34": { + "modified": "2019-03-23T22:42:55.224Z", "contributors": [ - "loella16" + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/codage_caracteres": { - "modified": "2019-03-23T22:25:41.959Z", + "Mozilla/Firefox/Releases/34/Site_Compatibility": { + "modified": "2019-01-16T21:49:04.698Z", "contributors": [ - "loella16", - "Hell_Carlito", - "htindon" + "wbamberg", + "xdelatour" ] }, - "Glossaire/compression_avec_perte": { - "modified": "2020-05-17T20:09:32.712Z", + "Mozilla/Firefox/Releases/36": { + "modified": "2019-03-23T22:42:49.784Z", "contributors": [ - "pauladeville" + "wbamberg", + "Sebastianz", + "kohei.yoshino" ] }, - "Glossaire/défi_réponse": { - "modified": "2019-03-23T22:03:29.414Z", + "Mozilla/Firefox/Releases/36/Site_Compatibility": { + "modified": "2019-01-16T21:49:12.998Z", "contributors": [ - "loella16" + "wbamberg", + "xdelatour" ] }, - "Glossaire/first_meaningful_paint": { - "modified": "2020-11-10T08:20:23.558Z", + "Mozilla/Firefox/Releases/37": { + "modified": "2019-03-23T22:42:50.839Z", "contributors": [ - "Voulto" + "wbamberg", + "kohei.yoshino" ] }, - "Glossaire/fonction_anonyme_auto-executante": { - "modified": "2019-03-18T21:27:08.446Z", + "Mozilla/Firefox/Releases/37/Site_Compatibility": { + "modified": "2019-01-16T21:49:07.566Z", "contributors": [ - "Porkepix" + "wbamberg", + "xdelatour" ] }, - "Glossaire/gif": { - "modified": "2019-03-23T22:42:12.743Z", + "Mozilla/Firefox/Releases/38": { + "modified": "2019-03-23T22:42:50.499Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "wbamberg", + "teoli" ] }, - "Glossaire/grid_container": { - "modified": "2019-03-30T11:19:32.680Z", + "Mozilla/Firefox/Releases/38/Site_Compatibility": { + "modified": "2019-01-16T21:49:04.613Z", "contributors": [ - "kaderamrichat" + "wbamberg", + "xdelatour" ] }, - "Glossaire/hash": { - "modified": "2019-03-23T22:39:11.400Z", + "Mozilla/Firefox/Releases/39": { + "modified": "2020-09-21T08:17:39.666Z", "contributors": [ - "loella16", - "xdelatour" + "Voulto", + "wbamberg", + "Guillaume-Heras", + "teoli" ] }, - "Glossaire/https": { - "modified": "2019-03-23T22:41:38.751Z", + "Mozilla/Firefox/Releases/39/Site_Compatibility": { + "modified": "2019-01-16T21:49:07.002Z", "contributors": [ - "SphinxKnight", - "loella16", - "Porkepix", + "wbamberg", "xdelatour" ] }, - "Glossaire/jQuery": { - "modified": "2019-03-18T21:44:06.026Z", + "Mozilla/Firefox/Releases/42": { + "modified": "2020-09-20T07:50:40.946Z", "contributors": [ - "loella16" + "Voulto", + "wbamberg", + "SphinxKnight", + "syoichi" ] }, - "Glossaire/jpeg": { - "modified": "2019-03-23T22:42:05.422Z", + "Mozilla/Firefox/Releases/42/Site_Compatibility": { + "modified": "2019-01-16T21:48:30.986Z", "contributors": [ + "wbamberg", "xdelatour" ] }, - "Glossaire/ligne_de_base": { - "modified": "2019-08-25T18:36:58.702Z", + "Web": { + "modified": "2020-02-21T16:24:09.970Z", "contributors": [ - "Pols12" + "inwardmovement", + "SphinxKnight", + "RolandGautier", + "alexetgus", + "ThreadElric", + "tonybengue", + "AvatarWeb", + "Alpha", + "eagleusb", + "x2357", + "udakpakembim", + "teoli", + "Fredchat", + "wakka27", + "Juju77", + "tregagnon", + "Sheppy" ] }, - "Glossaire/loop": { - "modified": "2019-03-23T22:41:58.930Z", + "Web/API": { + "modified": "2019-03-18T20:41:10.621Z", "contributors": [ + "codingk8", + "sbenard", "loella16", - "Porkepix", - "xdelatour" + "teoli", + "tregagnon", + "flo5589", + "SphinxKnight", + "Sheppy" ] }, - "Glossaire/ltr": { - "modified": "2019-01-16T21:54:05.497Z", + "Web/API/AbortSignal": { + "modified": "2020-10-15T22:01:02.561Z", "contributors": [ - "xdelatour" + "Morgan-jarry", + "loella16" ] }, - "Glossaire/mime": { - "modified": "2019-03-23T22:41:30.560Z", + "Web/API/AbstractWorker": { + "modified": "2020-10-15T21:26:01.488Z", "contributors": [ - "loella16", - "xdelatour" + "Arzak656", + "wakka27", + "tregagnon", + "dexterneo" ] }, - "Glossaire/minification": { - "modified": "2020-10-09T09:12:43.676Z", + "Web/API/AbstractWorker/onerror": { + "modified": "2020-10-15T21:32:33.262Z", "contributors": [ - "Voulto" + "Arzak656", + "wakka27", + "jean-pierre.gay", + "fscholz" ] }, - "Glossaire/modularité": { - "modified": "2019-03-23T22:40:53.509Z", + "Web/API/AnalyserNode": { + "modified": "2020-10-15T21:24:02.190Z", "contributors": [ - "Porkepix", - "xdelatour" + "jpcote", + "SphinxKnight", + "moussagigawatt", + "marie-ototoi", + "jmdelafont", + "teoli", + "fscholz", + "Goofy", + "tregagnon", + "dexterneo" ] }, - "Glossaire/non-normative": { - "modified": "2019-03-23T22:40:53.799Z", + "Web/API/AnalyserNode/AnalyserNode": { + "modified": "2019-03-23T22:09:55.975Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "marie-ototoi" ] }, - "Glossaire/pare-feu": { - "modified": "2019-03-23T22:33:06.193Z", + "Web/API/AnalyserNode/fftSize": { + "modified": "2019-03-23T22:36:35.592Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "Yellarkh", + "marie-ototoi", + "pmalhaire" ] }, - "Glossaire/percent-encoding": { - "modified": "2019-03-23T22:01:15.210Z", + "Web/API/AnalyserNode/frequencyBinCount": { + "modified": "2019-03-23T22:36:37.077Z", "contributors": [ - "loella16" + "marie-ototoi" ] }, - "Glossaire/preprocesseur_CSS": { - "modified": "2019-03-23T22:03:31.823Z", + "Web/API/AnalyserNode/getByteFrequencyData": { + "modified": "2019-03-23T22:36:35.277Z", "contributors": [ - "loella16" + "marie-ototoi" ] }, - "Glossaire/privileged_code": { - "modified": "2019-03-18T21:44:10.644Z", + "Web/API/AnalyserNode/getByteTimeDomainData": { + "modified": "2019-03-23T22:36:04.717Z", "contributors": [ - "loella16" + "marie-ototoi" ] }, - "Glossaire/rectangle_limitation_minimum": { - "modified": "2019-01-17T00:01:56.249Z", + "Web/API/AnalyserNode/getFloatFrequencyData": { + "modified": "2019-03-23T22:35:48.718Z", "contributors": [ - "loella16", - "Hell_Carlito", - "htindon" + "marie-ototoi", + "Mr21" ] }, - "Glossaire/requete_pre-verification": { - "modified": "2019-03-23T22:14:22.077Z", + "Web/API/AnalyserNode/getFloatTimeDomainData": { + "modified": "2019-03-23T22:35:47.582Z", "contributors": [ - "Porkepix", - "elias551", - "loella16", - "Yves_ASTIER" + "marie-ototoi" ] }, - "Glossaire/rtl": { - "modified": "2019-01-16T20:52:28.089Z", + "Web/API/AnalyserNode/maxDecibels": { + "modified": "2019-03-23T22:36:35.839Z", "contributors": [ - "Goofy", - "Porkepix" + "marie-ototoi" ] }, - "Glossaire/suite_de_chiffrement": { - "modified": "2019-03-23T22:32:22.378Z", + "Web/API/AnalyserNode/minDecibels": { + "modified": "2019-03-18T21:15:50.310Z", "contributors": [ - "loella16", - "Hell_Carlito", - "sebastien-bartoli" + "marie-ototoi" ] }, - "Glossaire/sécurisée": { - "modified": "2019-03-18T21:46:28.796Z", + "Web/API/AnalyserNode/smoothingTimeConstant": { + "modified": "2019-03-23T22:35:50.453Z", "contributors": [ - "loella16" + "marie-ototoi" ] }, - "Glossaire/typage_dynamique": { - "modified": "2019-03-23T22:41:39.637Z", + "Web/API/Animation": { + "modified": "2019-03-23T22:28:00.225Z", "contributors": [ - "loella16", - "xdelatour" + "GrandSchtroumpf" ] }, - "Glossaire/typage_statique": { - "modified": "2019-03-23T22:41:24.853Z", + "Web/API/AnimationEvent": { + "modified": "2020-11-16T08:35:46.188Z", "contributors": [ - "loella16", - "xdelatour" + "JNa0", + "teoli", + "fscholz", + "tregagnon", + "Goofy", + "dexterneo" ] }, - "Glossaire/undefined": { - "modified": "2019-03-23T22:04:28.704Z", + "Web/API/AnimationEvent/AnimationEvent": { + "modified": "2019-03-23T22:04:06.737Z", "contributors": [ - "loella16", - "michelc" + "tonybengue" ] }, - "Glossaire/webm": { - "modified": "2019-03-23T22:40:30.477Z", + "Web/API/AnimationEvent/animationName": { + "modified": "2020-10-15T21:26:08.479Z", "contributors": [ - "loella16", - "xdelatour" + "SphinxKnight", + "teoli", + "fscholz", + "tregagnon" ] }, - "Glossaire/webp": { - "modified": "2019-03-23T22:40:38.141Z", + "Web/API/AnimationEvent/elapsedTime": { + "modified": "2019-03-23T23:21:17.582Z", "contributors": [ - "xdelatour" + "teoli", + "fscholz", + "tregagnon" ] }, - "Glossaire/Élément": { - "modified": "2019-03-18T21:38:38.555Z", + "Web/API/AnimationEvent/pseudoElement": { + "modified": "2020-10-15T21:26:10.153Z", "contributors": [ - "AurelieBayre", - "gnoyaze" + "SphinxKnight", + "teoli", + "fscholz", + "tregagnon" ] }, - "Glossaire/Éléments_supports_de_script": { - "modified": "2019-03-18T21:46:41.808Z", + "Web/API/Attr": { + "modified": "2019-03-23T23:29:06.471Z", "contributors": [ - "loella16" + "loella16", + "robin850", + "fscholz", + "ntrillaud", + "Jeremie", + "dexterneo" ] }, - "Glossaire/évènement": { - "modified": "2019-03-23T22:03:33.571Z", + "Web/API/Attr/localName": { + "modified": "2019-03-23T22:13:07.184Z", "contributors": [ - "loella16" + "loella16", + "BEHOUBA", + "Joel-Costamagna" ] }, - "Glossary/Accessibility_tree": { - "modified": "2020-10-23T07:47:32.798Z", + "Web/API/Attr/namespaceURI": { + "modified": "2019-03-18T21:42:32.598Z", "contributors": [ - "chrisdavidmills", - "Voulto", - "UFOcatcher" + "loella16" ] }, - "Glossary/Block": { - "modified": "2019-03-23T22:56:58.228Z", + "Web/API/Attr/prefix": { + "modified": "2019-03-23T22:07:36.471Z", "contributors": [ "loella16", - "vanz", - "Sheppy" + "BEHOUBA" ] }, - "Glossary/Block/Block_(CSS)": { - "modified": "2019-03-23T22:56:52.690Z", + "Web/API/AudioBuffer": { + "modified": "2019-03-23T23:29:07.846Z", "contributors": [ - "loella16", + "marie-ototoi", + "fscholz", "Goofy", - "Toumitoun" + "tregagnon", + "dexterneo" ] }, - "Glossary/Block/Scripting": { - "modified": "2019-03-23T22:42:03.185Z", + "Web/API/AudioBuffer/AudioBuffer": { + "modified": "2019-03-23T22:07:03.337Z", "contributors": [ - "SphinxKnight", - "loella16", - "xdelatour" + "Maamouch" ] }, - "Glossary/Node": { - "modified": "2019-03-23T22:42:04.167Z", + "Web/API/AudioBuffer/copyFromChannel": { + "modified": "2019-05-16T07:00:31.805Z", "contributors": [ - "xdelatour", - "klez" + "sizvix", + "marie-ototoi", + "nobe4" ] }, - "Glossary/Node/DOM": { - "modified": "2019-03-23T22:41:33.687Z", + "Web/API/AudioBuffer/copyToChannel": { + "modified": "2019-03-23T22:32:43.512Z", "contributors": [ - "loella16", - "htindon", - "Gibus", - "xdelatour" + "marie-ototoi" ] }, - "Glossary/Node/réseau": { - "modified": "2019-03-23T22:42:03.351Z", + "Web/API/AudioBuffer/duration": { + "modified": "2019-03-23T22:33:02.014Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "marie-ototoi" ] }, - "Glossary/property": { - "modified": "2019-03-23T22:40:25.191Z", + "Web/API/AudioBuffer/getChannelData": { + "modified": "2019-03-23T22:32:47.435Z", "contributors": [ - "xdelatour", - "Jeremie" + "marie-ototoi" ] }, - "Glossary/property/JavaScript": { - "modified": "2019-03-23T22:40:28.485Z", + "Web/API/AudioBuffer/length": { + "modified": "2019-03-23T22:33:05.726Z", "contributors": [ - "loella16", - "Porkepix", - "xdelatour" + "marie-ototoi" ] }, - "HTML/Manipulating_video_using_canvas": { - "modified": "2019-03-23T23:19:48.901Z", + "Web/API/AudioBuffer/numberOfChannels": { + "modified": "2019-03-23T22:32:35.350Z", "contributors": [ - "loella16", - "kuronoyurei" + "marie-ototoi" ] }, - "Inspecteur_DOM": { - "modified": "2020-07-16T22:36:24.288Z", + "Web/API/AudioBuffer/sampleRate": { + "modified": "2019-03-23T22:32:46.659Z", "contributors": [ - "wbamberg", - "maximelore", - "tregagnon", - "Delapouite", - "Mgjbot", - "BenoitL", - "Sheppy", - "Chbok" + "Maamouch", + "marie-ototoi" ] }, - "Inspecteur_DOM/DOM_Inspector_FAQ": { - "modified": "2020-07-16T22:36:25.515Z", + "Web/API/AudioBufferSourceNode": { + "modified": "2020-10-15T21:23:44.789Z", "contributors": [ - "wbamberg", - "maximelore" + "letochagone", + "SphinxKnight", + "marie-ototoi", + "sizvix", + "dooxe", + "fscholz", + "teoli", + "tregagnon", + "dexterneo" ] }, - "Inspecteur_DOM/Internals": { - "modified": "2020-07-16T22:36:25.144Z", + "Web/API/AudioBufferSourceNode/buffer": { + "modified": "2019-03-23T22:24:27.684Z", "contributors": [ - "wbamberg", - "maximelore" + "marie-ototoi" ] }, - "Inspecteur_DOM/Introduction_to_DOM_Inspector": { - "modified": "2020-07-16T22:36:25.833Z", + "Web/API/AudioBufferSourceNode/detune": { + "modified": "2020-10-15T21:45:42.081Z", "contributors": [ - "maximelore", - "wbamberg" + "SphinxKnight", + "marie-ototoi", + "Mr21", + "nobe4" ] }, - "Introduction_(alternative)": { - "modified": "2019-03-23T23:40:01.462Z", + "Web/API/AudioBufferSourceNode/loop": { + "modified": "2019-03-23T22:34:16.953Z", "contributors": [ - "m-r-r", - "FredB" + "marie-ototoi", + "nobe4" ] }, - "Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification": { - "modified": "2019-03-24T00:12:07.320Z", + "Web/API/AudioBufferSourceNode/loopEnd": { + "modified": "2020-10-15T21:46:40.981Z", "contributors": [ - "fsiliadin", "SphinxKnight", - "Sebastianz", - "Sheppy", - "nterray", - "BenoitL", - "Fredchat" + "marie-ototoi" ] }, - "Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement": { - "modified": "2019-03-23T23:47:48.910Z", + "Web/API/AudioBufferSourceNode/loopStart": { + "modified": "2019-03-23T22:32:20.622Z", "contributors": [ - "acemann", - "Sebastianz", - "CedricP", - "Fredchat" + "marie-ototoi" ] }, - "Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats": { - "modified": "2019-03-23T23:47:44.500Z", + "Web/API/AudioBufferSourceNode/playbackRate": { + "modified": "2019-03-23T22:32:12.255Z", "contributors": [ - "acemann", - "Sebastianz", - "fscholz", - "CedricP", - "Fredchat" + "marie-ototoi" ] }, - "Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet": { - "modified": "2019-03-23T23:47:50.104Z", + "Web/API/AudioBufferSourceNode/start": { + "modified": "2019-03-23T22:32:08.127Z", "contributors": [ - "Sebastianz", - "CedricP", - "Fredchat" + "marie-ototoi" ] }, - "Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques": { - "modified": "2019-03-23T23:47:49.334Z", + "Web/API/AudioContext": { + "modified": "2019-03-23T23:29:08.112Z", "contributors": [ - "fsiliadin", - "Sebastianz", - "CedricP", - "Fredchat" + "marie-ototoi", + "fscholz", + "tregagnon", + "dexterneo" ] }, - "JavaScript/Reference/Annexes/Fonctionnalités_dépréciées": { - "modified": "2020-03-12T19:36:16.242Z", + "Web/API/AudioContext/createMediaElementSource": { + "modified": "2020-10-15T22:07:31.399Z", "contributors": [ - "SphinxKnight", - "soleuu", - "Vnicolas", - "teoli", - "LaBoumerde", - "matteodelabre" + "Watilin" ] }, - "Jeux": { - "modified": "2019-09-09T15:31:44.765Z", + "Web/API/AudioListener": { + "modified": "2019-03-23T23:29:10.150Z", "contributors": [ + "marie-ototoi", + "fscholz", + "tregagnon", + "Delapouite", + "Goofy", "SphinxKnight", - "wbamberg", - "gnoyaze", - "Zefling", - "loella16", - "Tetrastorm" + "dexterneo" ] }, - "Jeux/Anatomie": { - "modified": "2019-01-17T06:54:31.636Z", + "Web/API/AudioNode": { + "modified": "2019-03-23T22:20:42.964Z", "contributors": [ - "wbamberg", - "und3rh00d", - "loella16", - "ericfourmaux" + "marie-ototoi" ] }, - "Jeux/Exemples": { - "modified": "2019-03-23T22:44:48.124Z", + "Web/API/AudioParam": { + "modified": "2019-03-23T23:28:58.977Z", "contributors": [ - "wbamberg", - "loella16", - "Gibus", - "samuelbeloola", - "BNedry" + "marie-ototoi", + "fscholz", + "tregagnon", + "dexterneo" ] }, - "Jeux/Index": { - "modified": "2019-01-16T21:55:43.323Z", + "Web/API/AudioProcessingEvent": { + "modified": "2019-03-23T23:28:53.968Z", "contributors": [ - "wbamberg", - "xdelatour" + "marie-ototoi", + "fscholz", + "tregagnon", + "dexterneo" ] }, - "Jeux/Introduction": { - "modified": "2019-04-23T09:34:16.784Z", + "Web/API/AudioWorklet": { + "modified": "2020-10-15T22:29:43.020Z", "contributors": [ - "As-Sinder", - "wbamberg", - "loella16", - "DeathPixHell", - "CarlosAvim", - "Tetrastorm", - "Goofy", - "SphinxKnight" + "hellosct1" ] }, - "Jeux/Introduction_to_HTML5_Game_Gevelopment_(summary)": { - "modified": "2020-09-28T01:50:43.797Z", + "Web/API/AuthenticatorAssertionResponse": { + "modified": "2020-10-15T22:15:38.464Z", "contributors": [ - "Voulto", - "JNa0", - "dragon38800" + "SphinxKnight" ] }, - "Jeux/Publier_jeux": { - "modified": "2020-09-28T03:39:21.488Z", + "Web/API/AuthenticatorAssertionResponse/authenticatorData": { + "modified": "2020-10-15T22:15:42.626Z", "contributors": [ - "Voulto", - "wbamberg", - "NerOcrO", - "Tipoussin" + "SphinxKnight" ] }, - "Jeux/Publier_jeux/Game_monetization": { - "modified": "2020-10-08T10:55:08.029Z", + "Web/API/AuthenticatorAttestationResponse": { + "modified": "2020-10-15T22:15:38.529Z", "contributors": [ - "Voulto" + "SphinxKnight" ] }, - "La_sécurité_dans_Firefox_2": { - "modified": "2019-03-23T23:54:31.258Z", + "Web/API/AuthenticatorResponse": { + "modified": "2020-10-15T22:15:37.142Z", "contributors": [ - "wbamberg", - "Mgjbot", - "BenoitL", - "Fredchat", - "Chbok" + "SphinxKnight" ] }, - "Learn/CSS/First_steps": { - "modified": "2020-10-08T12:02:37.318Z", + "Web/API/BaseAudioContext": { + "modified": "2020-09-07T04:47:49.697Z", "contributors": [ - "geraldventadour", - "ylerjen", - "smeden-lod", - "nherbaut", - "chrisdavidmills" + "Voulto", + "Jedipedia" ] }, - "Learn/CSS/First_steps/Getting_started": { - "modified": "2020-10-20T05:38:33.608Z", + "Web/API/BaseAudioContext/createBiquadFilter": { + "modified": "2020-10-15T22:22:10.010Z", "contributors": [ - "SebastienLatouche", - "smeden-lod" + "JNa0" ] }, - "Learn/CSS/First_steps/How_CSS_is_structured": { - "modified": "2020-11-27T19:02:59.051Z", + "Web/API/BaseAudioContext/createBuffer": { + "modified": "2019-03-18T21:37:57.614Z", "contributors": [ - "Chomchaum", - "smeden-lod", - "mrbbp" + "NemoNobobyPersonne" ] }, - "Learn/CSS/First_steps/How_CSS_works": { - "modified": "2020-07-16T22:28:00.239Z", + "Web/API/BaseAudioContext/createBufferSource": { + "modified": "2020-10-15T22:23:57.305Z", "contributors": [ - "smeden-lod" + "Watilin" ] }, - "Learn/CSS/First_steps/Qu_est_ce_que_CSS": { - "modified": "2020-10-15T22:25:55.680Z", + "Web/API/BaseAudioContext/createPanner": { + "modified": "2020-10-15T22:22:12.658Z", "contributors": [ - "geraldventadour", - "SphinxKnight", - "smeden-lod" + "JNa0" ] }, - "Learn/CSS/First_steps/Using_your_new_knowledge": { - "modified": "2020-07-16T22:28:03.815Z", + "Web/API/BaseAudioContext/createPeriodicWave": { + "modified": "2020-10-15T22:12:41.903Z", "contributors": [ - "SphinxKnight", - "smeden-lod" + "JNa0" ] }, - "Learn/CSS/Styling_text": { - "modified": "2020-07-16T22:25:57.902Z", + "Web/API/BatteryManager": { + "modified": "2019-03-23T23:28:54.126Z", "contributors": [ - "Dralyab", - "zakaila", - "loella16", - "chrisdavidmills" + "LordKBX", + "khalid32", + "teoli", + "dexterneo" ] }, - "Learn/CSS/Styling_text/Mise_en_forme_des_liens": { - "modified": "2020-11-15T18:10:36.319Z", + "Web/API/BatteryManager/charging": { + "modified": "2020-10-15T22:20:44.178Z", "contributors": [ - "NemoNobobyPersonne", - "Dralyab" + "thebrave" ] }, - "Learn/CSS/Styling_text/Styling_lists": { - "modified": "2020-07-16T22:26:12.463Z", + "Web/API/BatteryManager/chargingTime": { + "modified": "2020-10-15T22:20:44.964Z", "contributors": [ - "Dralyab", - "loella16", - "BOBY2017" + "thebrave" ] }, - "Learn/CSS/Styling_text/Typesetting_a_homepage": { - "modified": "2020-07-16T22:26:26.346Z", + "Web/API/BatteryManager/dischargingTime": { + "modified": "2020-10-15T22:20:44.576Z", "contributors": [ - "Dralyab" + "thebrave" ] }, - "Learn/CSS/Styling_text/Web_fonts": { - "modified": "2020-07-16T22:26:23.494Z", + "Web/API/BatteryManager/level": { + "modified": "2020-10-15T22:20:43.803Z", "contributors": [ - "Dralyab" + "thebrave" ] }, - "Learn/CSS/Styling_text/initiation-mise-en-forme-du-texte": { - "modified": "2020-07-16T22:26:05.430Z", + "Web/API/Battery_status_API": { + "modified": "2020-10-15T21:24:14.232Z", "contributors": [ - "Dralyab", - "loella16", - "Oliv" + "thebrave", + "SphinxKnight", + "DTSSE", + "teoli" ] }, - "Learn/JavaScript/First_steps": { - "modified": "2020-07-16T22:29:50.440Z", + "Web/API/BeforeUnloadEvent": { + "modified": "2020-11-10T19:19:54.429Z", "contributors": [ - "smeden-lod", - "mauradelrosario", - "Dralyab", - "tonybengue", - "loella16", - "Badacadabra", - "daufinsyd", - "chrisdavidmills" + "JNa0" ] }, - "Learn/JavaScript/First_steps/A_first_splash": { - "modified": "2020-07-16T22:30:17.669Z", + "Web/API/BiquadFilterNode": { + "modified": "2019-08-24T07:16:34.926Z", "contributors": [ - "smeden-lod", - "Floles", - "Eric-ciccotti", - "clamb", - "Dralyab", - "tonybengue", - "jumperparis", - "Merkrynis", - "withedouard", - "moziyin76" + "JNa0", + "marie-ototoi", + "teoli", + "ouhouhsami", + "fscholz", + "tregagnon", + "Jeremie", + "dexterneo" ] }, - "Learn/JavaScript/First_steps/Math": { - "modified": "2020-10-27T06:47:01.734Z", + "Web/API/BiquadFilterNode/frequency": { + "modified": "2020-10-15T21:43:49.371Z", "contributors": [ - "chuck2kill", - "Chomchaum", - "Jim-Arby", - "grandoc", - "Dralyab", - "tonybengue" + "SphinxKnight", + "marie-ototoi" ] }, - "Learn/JavaScript/First_steps/Silly_story_generator": { - "modified": "2020-07-16T22:31:01.217Z", + "Web/API/Blob": { + "modified": "2019-03-23T23:28:26.396Z", "contributors": [ - "smeden-lod", - "daftaupe", - "Opsylac" + "petosorus", + "SphinxKnight", + "ChristopheBoucaut", + "emersion", + "mekal", + "teoli", + "bfn", + "dexterneo" ] }, - "Learn/JavaScript/First_steps/Strings": { - "modified": "2020-07-16T22:30:39.299Z", + "Web/API/Blob/Blob": { + "modified": "2020-10-15T21:38:35.650Z", "contributors": [ - "smeden-lod", - "Jim-Arby", - "goofy_mdn", - "grandoc", - "Dralyab", - "be-math", - "tonybengue" + "thebrave", + "SphinxKnight", + "wlalele" ] }, - "Learn/JavaScript/First_steps/Testes_vos_competence:_Tableaux": { - "modified": "2020-10-17T18:40:31.138Z", + "Web/API/Blob/type": { + "modified": "2020-10-15T21:55:27.760Z", "contributors": [ - "tonybengue" + "loella16", + "Hennek" ] }, - "Learn/JavaScript/First_steps/Variables": { - "modified": "2020-07-16T22:29:58.969Z", + "Web/API/BlobBuilder": { + "modified": "2020-10-15T22:05:47.307Z", "contributors": [ - "AntoineJT", - "innocenzi", - "smeden-lod", - "chrisdavidmills", - "Jim-Arby", - "Jumper754", - "Eric-ciccotti", - "grandoc", - "Dralyab", - "tonybengue" + "velkro", + "jgroc-de" ] }, - "Learn/JavaScript/First_steps/What_is_JavaScript": { - "modified": "2020-07-16T22:30:07.337Z", + "Web/API/BlobEvent": { + "modified": "2020-10-15T22:01:50.494Z", "contributors": [ - "smeden-lod", - "ludivinepoussier", - "chrisdavidmills", "SphinxKnight", - "wkz3w59", - "abvll", - "Kinskikick", - "Eric-ciccotti", - "clamb", - "Dralyab", - "codingk8", - "TheStarrK", - "tonybengue", - "Idlus" + "illaweb35", + "Sheppy" ] }, - "Learn/JavaScript/First_steps/What_went_wrong": { - "modified": "2020-07-16T22:30:32.918Z", + "Web/API/BlobEvent/BlobEvent": { + "modified": "2020-10-15T22:01:50.313Z", "contributors": [ - "smeden-lod", - "clamb", - "codeFighting", - "Dralyab", - "tonybengue", - "macjpster" + "loella16" ] }, - "Learn/JavaScript/First_steps/methode_chaine_utile": { - "modified": "2020-07-16T22:30:46.814Z", + "Web/API/BlobEvent/data": { + "modified": "2020-10-15T22:01:50.239Z", "contributors": [ - "smeden-lod", - "Dralyab", - "Iwazaru", - "tonybengue" + "loella16" ] }, - "Learn/JavaScript/First_steps/tableaux": { - "modified": "2020-07-16T22:30:53.940Z", + "Web/API/Body": { + "modified": "2020-10-15T22:00:04.273Z", "contributors": [ - "smeden-lod", - "tavax", - "Dralyab", - "tonybengue" + "Voulto", + "Retroscilo", + "Arzak656", + "SphinxKnight", + "vqrs" ] }, - "Learn/JavaScript/Objects": { - "modified": "2020-07-16T22:31:49.517Z", + "Web/API/Body/json": { + "modified": "2020-10-15T22:00:00.599Z", "contributors": [ - "smeden-lod", - "tonybengue", - "elWombator", - "manuwhat", - "loella16", - "breizhrunner", - "chrisdavidmills" + "SphinxKnight", + "jdvauguet", + "enkienki", + "MaximeSarrato", + "Nithramir" ] }, - "Learn/JavaScript/Objects/Ajouter_des_fonctionnalités_à_notre_démo_de_balles_rebondissantes": { - "modified": "2020-07-16T22:32:34.729Z", + "Web/API/ByteString": { + "modified": "2019-03-23T22:50:30.417Z", "contributors": [ - "AkwindFr", - "tonybengue" + "BEHOUBA", + "SphinxKnight", + "Hell_Carlito" ] }, - "Learn/JavaScript/Objects/Basics": { - "modified": "2020-09-18T09:37:24.602Z", + "Web/API/CDATASection": { + "modified": "2020-10-15T21:37:54.310Z", "contributors": [ - "GDFtj", - "FloppyJunior", - "franssu", - "grandoc", - "spike008t", - "srimko", - "LDCL", - "Halkeand", + "loella16", "SphinxKnight", - "mouffy" + "Hell_Carlito" ] }, - "Learn/JavaScript/Objects/Heritage": { - "modified": "2020-07-16T22:32:13.707Z", + "Web/API/CSS": { + "modified": "2019-03-23T22:44:45.496Z", "contributors": [ - "franssu", - "loranger32", - "elWombator", - "lobertrand", - "manuwhat", - "Yopai", - "AntrHaxx", - "MartyO256", - "Alpha" + "PPGirault123" ] }, - "Learn/JavaScript/Objects/JSON": { - "modified": "2020-07-16T22:32:25.278Z", + "Web/API/CSSMediaRule": { + "modified": "2020-10-15T22:27:05.762Z", "contributors": [ - "smeden-lod", - "FloppyJunior", - "ThCarrere", - "newick", - "manuwhat", - "sebastien_colbe", - "darthyoh" + "tristantheb" ] }, - "Learn/JavaScript/Objects/JS_orienté-objet": { - "modified": "2020-07-16T22:32:05.419Z", + "Web/API/CSSRuleList": { + "modified": "2019-03-23T23:28:18.630Z", "contributors": [ - "grandoc", - "FloppyJunior", - "vacarme", - "zoora", - "Jetinho", - "elWombator", - "manuwhat", - "antoninha", - "LDCL", - "Alpha", - "SphinxKnight" + "fscholz", + "Delapouite" ] }, - "Learn/JavaScript/Objects/Prototypes_Objet": { - "modified": "2020-07-16T22:32:19.975Z", + "Web/API/CSSStyleDeclaration": { + "modified": "2019-03-18T21:37:40.971Z", "contributors": [ - "grandoc", - "Etheonor", - "aSeches", - "zoora", - "Jetinho", - "JonGarbayo", - "LDCL", - "Alpha" + "NemoNobobyPersonne" ] }, - "Learn/JavaScript/Objects/la_construction_d_objet_en_pratique": { - "modified": "2020-07-16T22:32:31.265Z", + "Web/API/CSSStyleDeclaration/cssText": { + "modified": "2019-03-18T21:36:22.387Z", "contributors": [ - "smeden-lod", - "loranger32", - "manuwhat" + "NemoNobobyPersonne" ] }, - "Learn/Performance": { - "modified": "2020-11-10T09:39:07.479Z", + "Web/API/CSSStyleRule": { + "modified": "2019-03-23T22:06:59.663Z", "contributors": [ - "Voulto", - "estelle" + "aligatorjmg" ] }, - "Learn/Performance/CSS": { - "modified": "2020-11-10T09:14:31.465Z", + "Web/API/CSSValue": { + "modified": "2020-10-15T21:56:05.370Z", "contributors": [ - "Voulto", - "Romain04" + "loella16", + "BEHOUBA" ] }, - "Learn/Performance/pourquoi_performance_web": { - "modified": "2020-11-10T09:10:02.087Z", + "Web/API/CSSValueList": { + "modified": "2020-10-15T22:01:02.005Z", "contributors": [ - "Voulto" + "loella16" ] }, - "Learn/Server-side": { - "modified": "2020-08-31T06:16:11.413Z", + "Web/API/CSS_Object_Model": { + "modified": "2019-03-23T22:30:29.411Z", "contributors": [ - "Voulto", - "AKAsebu", - "aurelieg", - "KurtC0ba1n", - "tonybengue", - "serorl", - "chrisdavidmills" + "Watilin", + "teoli" ] }, - "Learn/Server-side/Django": { - "modified": "2020-07-16T22:36:32.263Z", + "Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements": { + "modified": "2019-03-18T20:59:05.536Z", "contributors": [ - "biface", - "skyfrigate", - "As-Sinder", - "KurtC0ba1n", - "pierrotmagic" + "SphinxKnight", + "jmh", + "Goofy" ] }, - "Learn/Server-side/Django/Admin_site": { - "modified": "2020-07-16T22:37:03.285Z", + "Web/API/CSS_Object_Model/Managing_screen_orientation": { + "modified": "2019-03-18T21:32:40.291Z", "contributors": [ - "biface" + "a-mt" ] }, - "Learn/Server-side/Django/Forms": { - "modified": "2020-07-16T22:37:31.019Z", + "Web/API/Cache": { + "modified": "2020-10-15T21:44:04.525Z", "contributors": [ - "BrRoman", - "Elbofino", - "ben5962" + "tristantheb", + "jean-pierre.gay" ] }, - "Learn/Server-side/Django/Home_page": { - "modified": "2020-07-16T22:37:08.874Z", + "Web/API/Cache/add": { + "modified": "2020-10-15T21:44:04.898Z", "contributors": [ - "biface" + "tristantheb", + "NuclearPony", + "nobe4" ] }, - "Learn/Server-side/Django/Introduction": { - "modified": "2020-07-16T22:36:38.887Z", + "Web/API/Cache/addAll": { + "modified": "2020-10-15T21:44:04.955Z", "contributors": [ - "olivierdupon", - "edaveau", - "biface", - "As-Sinder", - "KurtC0ba1n" + "tristantheb", + "NuclearPony" ] }, - "Learn/Server-side/Django/Models": { - "modified": "2020-11-15T11:16:41.925Z", + "Web/API/Cache/delete": { + "modified": "2020-10-15T21:44:04.821Z", "contributors": [ - "fsaid", - "Moh-Said", - "biface", - "skyfrigate" + "tristantheb", + "NuclearPony" ] }, - "Learn/Server-side/Django/Testing": { - "modified": "2020-07-16T22:37:36.868Z", + "Web/API/Cache/keys": { + "modified": "2020-10-15T21:44:04.904Z", "contributors": [ - "BrRoman" + "tristantheb", + "NuclearPony" ] }, - "Learn/Server-side/Django/Tutorial_local_library_website": { - "modified": "2020-07-16T22:36:48.972Z", + "Web/API/Cache/match": { + "modified": "2020-10-15T21:44:04.434Z", "contributors": [ - "biface", - "skyfrigate" + "tristantheb", + "vincedew", + "NuclearPony" ] }, - "Learn/Server-side/Django/Vues_generiques": { - "modified": "2020-08-10T12:14:32.253Z", + "Web/API/Cache/matchAll": { + "modified": "2020-10-15T21:44:05.782Z", "contributors": [ - "BrRoman" + "tristantheb", + "NuclearPony" ] }, - "Learn/Server-side/Django/development_environment": { - "modified": "2020-07-16T22:36:44.147Z", + "Web/API/Cache/put": { + "modified": "2020-10-15T21:44:05.632Z", "contributors": [ - "edaveau" + "tristantheb", + "NuclearPony" ] }, - "Learn/Server-side/Django/skeleton_website": { - "modified": "2020-11-14T22:07:57.460Z", + "Web/API/CacheStorage": { + "modified": "2020-10-15T21:44:09.229Z", "contributors": [ - "ThuringEnigma", - "skyfrigate", - "biface" + "tristantheb", + "BlackYoup", + "NuclearPony" ] }, - "Learn/Server-side/Express_Nodejs": { - "modified": "2020-07-16T22:37:52.128Z", + "Web/API/CacheStorage/delete": { + "modified": "2020-10-15T21:44:49.808Z", "contributors": [ - "smeden-lod", - "PhilippePerret", - "Alan_Braut", - "serorl" + "tristantheb", + "nobe4" ] }, - "Learn/Server-side/Express_Nodejs/Introduction": { - "modified": "2020-07-16T22:38:09.613Z", + "Web/API/CacheStorage/has": { + "modified": "2020-10-15T21:44:47.507Z", "contributors": [ - "JNa0", - "carlyne", - "ThCarrere", - "PhilippePerret", - "codingk8", - "Raulel" + "tristantheb", + "jean-pierre.gay", + "nobe4" ] }, - "Learn/Server-side/Premiers_pas": { - "modified": "2020-07-16T22:36:08.675Z", + "Web/API/CacheStorage/keys": { + "modified": "2020-10-15T21:44:49.361Z", "contributors": [ - "Etheonor", - "smeden-lod", - "SphinxKnight", - "JeffD", - "KurtC0ba1n", - "ayshiff", - "chrisdavidmills" + "tristantheb", + "nobe4" ] }, - "Learn/Server-side/Premiers_pas/Client-Serveur": { - "modified": "2020-07-16T22:36:19.848Z", + "Web/API/CacheStorage/match": { + "modified": "2020-10-15T21:44:46.776Z", "contributors": [ - "smeden-lod", - "houckontape", - "SphinxKnight", - "ThCarrere" + "tristantheb", + "nobe4" ] }, - "Learn/Server-side/Premiers_pas/Introduction": { - "modified": "2020-07-16T22:36:13.996Z", + "Web/API/CacheStorage/open": { + "modified": "2020-10-15T21:44:46.743Z", "contributors": [ - "smeden-lod", - "SphinxKnight", - "ThCarrere", - "a-mt" + "tristantheb", + "lotfire24", + "nobe4" ] }, - "Learn/Server-side/Premiers_pas/Web_frameworks": { - "modified": "2020-07-16T22:36:24.273Z", + "Web/API/CanvasGradient": { + "modified": "2020-10-15T21:53:53.503Z", "contributors": [ - "smeden-lod", - "houckontape", "SphinxKnight", - "Mania" + "NemoNobobyPersonne", + "Joel-Costamagna" ] }, - "Learn/Server-side/Premiers_pas/Website_security": { - "modified": "2020-07-16T22:36:28.165Z", + "Web/API/CanvasGradient/addColorStop": { + "modified": "2020-10-15T21:54:37.185Z", "contributors": [ - "smeden-lod", - "ThCarrere", - "LeMilitaire", "SphinxKnight", - "JeffD" + "NemoNobobyPersonne" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks": { - "modified": "2020-09-15T15:45:33.414Z", + "Web/API/CanvasRenderingContext2D": { + "modified": "2019-03-23T23:16:58.158Z", "contributors": [ "JNa0", - "Voulto", - "CodeDotJS" + "steuzz", + "NemoNobobyPersonne", + "Halfman", + "vdrac", + "Y0kaze" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction": { - "modified": "2020-11-21T11:56:14.049Z", + "Web/API/CanvasRenderingContext2D/arc": { + "modified": "2020-10-15T21:41:36.642Z", "contributors": [ - "tonybengue" + "SphinxKnight", + "loella16", + "jmpp" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Main_features": { - "modified": "2020-11-21T11:57:54.636Z", + "Web/API/CanvasRenderingContext2D/beginPath": { + "modified": "2020-10-15T22:05:05.343Z", "contributors": [ - "tonybengue" + "a-mt" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_getting_started": { - "modified": "2020-11-21T12:01:48.747Z", + "Web/API/CanvasRenderingContext2D/bezierCurveTo": { + "modified": "2020-10-15T22:12:46.030Z", "contributors": [ - "tonybengue", - "florestalclaudel878" + "JNa0" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/React_todo_list_beginning": { - "modified": "2020-11-19T13:18:09.787Z", + "Web/API/CanvasRenderingContext2D/canvas": { + "modified": "2020-10-15T21:50:07.563Z", "contributors": [ - "tonybengue" + "SphinxKnight", + "Hell_Carlito", + "JNa0" ] }, - "Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Vue_getting_started": { - "modified": "2020-10-03T00:57:04.281Z", + "Web/API/CanvasRenderingContext2D/clearRect": { + "modified": "2020-10-15T21:50:06.817Z", "contributors": [ - "duduindo", - "Anonymous" + "a-mt", + "Guillaume.Wulpes", + "SphinxKnight", + "NemoNobobyPersonne", + "Hell_Carlito", + "JNa0" ] }, - "Learn/Tools_and_testing/Cross_browser_testing": { - "modified": "2020-11-23T17:27:15.888Z", + "Web/API/CanvasRenderingContext2D/closePath": { + "modified": "2019-03-23T22:22:37.948Z", "contributors": [ - "Chomchaum", - "Voulto", - "wbamberg", - "arai" + "gpenissard" ] }, - "Learn/Tools_and_testing/Cross_browser_testing/Accessibilité": { - "modified": "2020-07-16T22:39:16.445Z", + "Web/API/CanvasRenderingContext2D/createLinearGradient": { + "modified": "2020-10-15T21:54:27.162Z", "contributors": [ - "Dralyab", - "Azyme" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "Learn/Tools_and_testing/Cross_browser_testing/HTML_et_CSS": { - "modified": "2020-07-16T22:39:09.777Z", + "Web/API/CanvasRenderingContext2D/direction": { + "modified": "2020-10-15T21:54:36.516Z", "contributors": [ - "NacimHarfouche", - "Azyme" + "SphinxKnight", + "Loelle", + "NemoNobobyPersonne" ] }, - "Learn/Tools_and_testing/Cross_browser_testing/Introduction": { - "modified": "2020-07-16T22:39:03.351Z", + "Web/API/CanvasRenderingContext2D/drawImage": { + "modified": "2019-03-23T22:24:41.008Z", "contributors": [ - "Azyme" + "PeeWee2201", + "Hell_Carlito", + "JNa0" ] }, - "Learn/Tools_and_testing/Cross_browser_testing/JavaScript": { - "modified": "2020-07-16T22:39:13.632Z", + "Web/API/CanvasRenderingContext2D/ellipse": { + "modified": "2020-10-15T21:54:18.769Z", "contributors": [ - "jedepaepe", - "Azyme" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "Learn/Tools_and_testing/Cross_browser_testing/Testing_strategies": { - "modified": "2020-07-16T22:39:06.838Z", + "Web/API/CanvasRenderingContext2D/fill": { + "modified": "2020-10-15T22:05:15.196Z", "contributors": [ - "Azyme" + "a-mt" ] }, - "Learn/Tools_and_testing/Understanding_client-side_tools": { - "modified": "2020-09-04T08:38:04.330Z", + "Web/API/CanvasRenderingContext2D/fillRect": { + "modified": "2020-10-15T21:50:06.787Z", "contributors": [ - "Voulto", - "chrisdavidmills" + "JNa0", + "SphinxKnight", + "Hell_Carlito" ] }, - "Learn/Tools_and_testing/Understanding_client-side_tools/Ligne_de_commande": { - "modified": "2020-08-07T09:37:14.013Z", + "Web/API/CanvasRenderingContext2D/fillStyle": { + "modified": "2020-10-15T22:05:05.410Z", "contributors": [ - "voronamanga" + "a-mt" ] }, - "Localization": { - "modified": "2019-03-24T00:14:08.788Z", + "Web/API/CanvasRenderingContext2D/fillText": { + "modified": "2019-03-23T22:11:41.288Z", "contributors": [ - "loella16", - "ethertank", - "DirkS", - "Mgjbot", - "Fredchat", - "BenoitL", - "Goofy", - "Verruckt", - "Takenbot", - "Chbok" + "NemoNobobyPersonne" ] }, - "MDN": { - "modified": "2020-02-08T12:54:31.725Z", + "Web/API/CanvasRenderingContext2D/font": { + "modified": "2020-10-15T21:54:28.139Z", "contributors": [ - "tristantheb", "SphinxKnight", - "wbamberg", - "htindon", - "Jeremie", - "tregagnon", - "teoli", - "wakka27", - "Sheppy" + "NemoNobobyPersonne" ] }, - "MDN/A_propos": { - "modified": "2019-03-24T00:12:46.908Z", + "Web/API/CanvasRenderingContext2D/getImageData": { + "modified": "2020-10-15T21:56:10.861Z", "contributors": [ - "wbamberg", - "Porkepix", - "Mozinet", - "fscholz", - "jswisher", - "microsoft", - "wakka27", - "Jeremie", - "teoli", - "tregagnon", - "le penseur", - "Akiro", - "BenoitL", - "Petrus", - "Omnisilver", - "Gege2", - "Dria", - "Cbeard", - "Anonymous" + "JNa0", + "SphinxKnight", + "loella16", + "Nerostalgeek" ] }, - "MDN/Contribute": { - "modified": "2020-08-31T06:19:39.661Z", + "Web/API/CanvasRenderingContext2D/globalAlpha": { + "modified": "2020-10-15T21:54:40.273Z", "contributors": [ - "Voulto", - "wbamberg", - "zakaila", - "callmemagnus", - "Danette41240", "SphinxKnight", - "Porkepix", - "thbil", - "Goofy", - "Baball", - "teoli", - "wakka27", - "jswisher" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Feedback": { - "modified": "2020-09-30T17:50:52.899Z", + "Web/API/CanvasRenderingContext2D/globalCompositeOperation": { + "modified": "2020-10-15T22:25:07.709Z", "contributors": [ - "chrisdavidmills", - "jswisher", + "UFOcatcher" + ] + }, + "Web/API/CanvasRenderingContext2D/imageSmoothingEnabled": { + "modified": "2020-10-15T21:59:28.179Z", + "contributors": [ + "warpdesign", "SphinxKnight", - "wbamberg", - "Yvain", - "Jnthnctt", - "PifyZ" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Getting_started": { - "modified": "2020-09-30T17:11:12.542Z", + "Web/API/CanvasRenderingContext2D/lineCap": { + "modified": "2020-10-15T21:54:48.924Z", "contributors": [ - "chrisdavidmills", "SphinxKnight", - "yasminamess", - "wbamberg", - "NerOcrO", - "Burgito", - "black_cat", - "PhilippePerret", - "Axnyff", - "JDev4U", - "Jeremie", - "mliatt", - "manubcd", - "stephane34", - "Benedetti", - "Nothus", - "BiGrEgGaErOoTs", - "Frigory", - "Goofy", - "B_M", - "tregagnon", - "guillaumev", - "Lamaw", - "G-de-Bruges", - "PetiPandaRou", - "wakka27" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Howto": { - "modified": "2019-01-16T18:23:52.592Z", + "Web/API/CanvasRenderingContext2D/lineJoin": { + "modified": "2020-10-15T22:14:22.519Z", "contributors": [ - "wbamberg", - "Porkepix", - "Baball", - "Sheppy" + "JNa0", + "Mars073" ] }, - "MDN/Contribute/Howto/Comment_créer_un_compte_sur_MDN": { - "modified": "2019-01-16T18:25:23.702Z", + "Web/API/CanvasRenderingContext2D/lineTo": { + "modified": "2020-10-15T21:50:07.144Z", "contributors": [ - "wbamberg", + "a-mt", "SphinxKnight", - "Goofy" + "Hell_Carlito", + "JNa0" ] }, - "MDN/Contribute/Howto/Creer_un_exercice_interactif_pour_apprendre_le_web": { - "modified": "2019-07-17T03:15:29.432Z", + "Web/API/CanvasRenderingContext2D/measureText": { + "modified": "2019-03-23T22:10:28.208Z", "contributors": [ - "SphinxKnight", - "AkwindFr" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Howto/Set_the_summary_for_a_page": { - "modified": "2019-03-23T22:55:58.937Z", + "Web/API/CanvasRenderingContext2D/moveTo": { + "modified": "2020-10-15T22:05:05.756Z", "contributors": [ - "wbamberg", - "loella16", - "Hell_Carlito", - "pixoux", - "diomabb" + "a-mt" ] }, - "MDN/Contribute/Howto/Write_a_new_entry_in_the_Glossary": { - "modified": "2019-03-23T22:09:42.767Z", + "Web/API/CanvasRenderingContext2D/quadraticCurveTo": { + "modified": "2020-10-15T22:12:46.959Z", "contributors": [ - "wbamberg", - "PhilippePerret" + "JNa0" ] }, - "MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web": { - "modified": "2020-02-28T22:24:52.629Z", + "Web/API/CanvasRenderingContext2D/rect": { + "modified": "2020-10-15T22:05:15.196Z", "contributors": [ - "As-Sinder", - "wbamberg", - "Dralyab" + "JNa0", + "a-mt" ] }, - "MDN/Contribute/Howto/convertir_code_pour_etre_direct": { - "modified": "2019-01-16T20:18:20.962Z", + "Web/API/CanvasRenderingContext2D/rotate": { + "modified": "2019-03-23T22:11:43.187Z", "contributors": [ - "wbamberg", - "Maamouch", - "Goofy", - "Lamaw" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Howto/faire_relecture_redactionnelle": { - "modified": "2020-04-12T16:14:40.644Z", + "Web/API/CanvasRenderingContext2D/save": { + "modified": "2020-10-15T22:22:46.023Z", "contributors": [ - "ele-gall-ac-mineducation", - "wbamberg", - "ussmarc", - "SphinxKnight", - "Raulel", - "ThinkDumbIndustries", - "Fabienne1963", - "Requiem75020", - "tregagnon" + "SenpaiWeb", + "Mars073" ] }, - "MDN/Contribute/Howto/faire_relecture_technique": { - "modified": "2019-08-07T15:32:02.446Z", + "Web/API/CanvasRenderingContext2D/scale": { + "modified": "2020-10-15T21:54:33.658Z", "contributors": [ - "mathildebuenerd", - "wbamberg", "SphinxKnight", - "AlemFarid", - "vhf", - "tregagnon" + "NemoNobobyPersonne" ] }, - "MDN/Contribute/Howto/Étiquettes_pages_JavaScript": { - "modified": "2019-01-16T19:52:49.003Z", + "Web/API/CanvasRenderingContext2D/setLineDash": { + "modified": "2020-10-15T22:00:14.768Z", "contributors": [ - "wbamberg", - "NerOcrO", - "jswisher", - "Johann-S", - "Maamouch", - "BiGrEgGaErOoTs", - "Bath66", - "ainouss", - "Wladek92", - "DOCUBE", - "Luejni" + "SphinxKnight", + "GoGoAndroid" ] }, - "MDN/Contribute/Processes": { - "modified": "2020-09-03T03:23:25.806Z", + "Web/API/CanvasRenderingContext2D/setTransform": { + "modified": "2020-10-15T21:54:30.072Z", "contributors": [ - "Voulto", - "wbamberg", - "jswisher" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "MDN/Editor": { - "modified": "2020-09-30T15:38:34.314Z", + "Web/API/CanvasRenderingContext2D/stroke": { + "modified": "2020-10-15T22:01:10.781Z", "contributors": [ - "chrisdavidmills", - "verdy_p", - "wbamberg", - "Keyrolus", - "ftoulouse", - "Mylainos", - "Jeremie", - "teoli", - "BenoitL" + "Loelle" ] }, - "MDN/Editor/Basics": { - "modified": "2020-09-30T15:38:34.461Z", + "Web/API/CanvasRenderingContext2D/strokeRect": { + "modified": "2020-10-15T21:50:08.912Z", "contributors": [ - "chrisdavidmills", - "Voulto", - "jswisher" + "SphinxKnight", + "Hell_Carlito", + "JNa0" ] }, - "MDN/Editor/Basics/Pieces_jointes": { - "modified": "2020-09-30T15:38:34.580Z", + "Web/API/CanvasRenderingContext2D/strokeStyle": { + "modified": "2020-10-15T22:05:15.224Z", "contributors": [ - "chrisdavidmills", - "ele-gall-ac-mineducation" + "a-mt" ] }, - "MDN/Guidelines": { - "modified": "2020-09-30T15:29:18.429Z", + "Web/API/CanvasRenderingContext2D/strokeText": { + "modified": "2020-10-15T21:54:48.430Z", "contributors": [ - "chrisdavidmills", - "wbamberg", - "Porkepix", - "thbil" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "MDN/Guidelines/Code_lignesdirectrices": { - "modified": "2020-09-30T15:29:18.597Z", + "Web/API/CanvasRenderingContext2D/textAlign": { + "modified": "2020-10-15T21:54:32.849Z", "contributors": [ - "chrisdavidmills", - "tristantheb" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "MDN/Kuma": { - "modified": "2020-02-08T12:56:22.102Z", + "Web/API/CanvasRenderingContext2D/textBaseline": { + "modified": "2019-03-23T22:11:43.727Z", "contributors": [ - "tristantheb" + "NemoNobobyPersonne" ] }, - "MDN/Rejoindre_la_communauté": { - "modified": "2019-09-11T08:03:04.252Z", + "Web/API/CanvasRenderingContext2D/transform": { + "modified": "2020-10-15T21:54:37.850Z", "contributors": [ "SphinxKnight", - "wbamberg", - "NerOcrO", - "loella16", - "ZakCodes", - "Mozinet", - "teoli", - "wakka27" - ] - }, - "MDN/Rejoindre_la_communauté/Conversations": { - "modified": "2019-01-17T02:52:45.654Z", - "contributors": [ - "wbamberg", - "zakaila" + "calixte", + "NemoNobobyPersonne" ] }, - "MDN/Rejoindre_la_communauté/Doc_sprints": { - "modified": "2019-03-23T22:40:48.518Z", + "Web/API/CanvasRenderingContext2D/translate": { + "modified": "2020-10-15T21:54:49.704Z", "contributors": [ - "wbamberg", - "qwincy_p", - "Manuela" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "MDN/Rejoindre_la_communauté/Whats_happening": { - "modified": "2020-10-05T06:56:25.370Z", + "Web/API/Canvas_API": { + "modified": "2020-11-13T03:37:17.858Z", "contributors": [ - "Voulto" + "SphinxKnight", + "loella16", + "timkrief", + "NemoNobobyPersonne", + "etienne-gauvin", + "emersion", + "Laurent_Lyaudet", + "Delapouite", + "tregagnon", + "ethertank", + "openjck", + "teoli", + "dextra", + "Mgjbot", + "BenoitL", + "Chbok" ] }, - "MDN/Structures": { - "modified": "2020-09-30T09:06:58.853Z", + "Web/API/CharacterData": { + "modified": "2019-03-18T21:43:27.023Z", "contributors": [ - "chrisdavidmills", - "Voulto", - "wbamberg", - "jswisher" + "loella16" ] }, - "MDN/Structures/Exemples_live": { - "modified": "2020-09-30T09:06:59.551Z", + "Web/API/ChildNode": { + "modified": "2020-10-15T21:28:06.168Z", "contributors": [ - "chrisdavidmills", - "tristantheb", - "wbamberg", - "Johann-S" + "loella16", + "alexandreL", + "thbil", + "khalid32", + "bchaplet" ] }, - "MDN/Structures/Macros": { - "modified": "2020-09-30T09:06:59.189Z", + "Web/API/ChildNode/after": { + "modified": "2020-10-15T21:56:14.439Z", "contributors": [ - "chrisdavidmills", - "wbamberg", - "jmh" + "loella16", + "BEHOUBA" ] }, - "MDN/Structures/Macros/Commonly-used_macros": { - "modified": "2020-09-30T09:06:59.707Z", + "Web/API/ChildNode/before": { + "modified": "2020-10-15T22:01:12.319Z", "contributors": [ - "chrisdavidmills", - "wbamberg", - "teoli", - "fscholz", - "jmh" + "loella16" ] }, - "MDN/Structures/Tables_de_compatibilité": { - "modified": "2020-10-15T22:02:05.521Z", + "Web/API/ChildNode/remove": { + "modified": "2020-10-15T21:49:32.341Z", "contributors": [ - "chrisdavidmills", - "wbamberg", - "jcletousey", - "loella16" + "tristantheb", + "loella16", + "Goofy", + "Copen" ] }, - "MDN/Tools": { - "modified": "2020-09-30T16:48:32.947Z", + "Web/API/ChildNode/replaceWith": { + "modified": "2020-10-15T21:55:03.476Z", "contributors": [ - "chrisdavidmills", - "Voulto", - "wbamberg", - "jswisher" + "tristantheb", + "loella16", + "Spictheweb", + "v-Stein" ] }, - "MDN/Tools/KumaScript": { - "modified": "2020-09-30T16:48:33.592Z", + "Web/API/Client": { + "modified": "2020-11-16T08:56:05.543Z", "contributors": [ - "chrisdavidmills", "JNa0", - "wbamberg", - "SaintCyr" + "nobe4" ] }, - "MDN/Tools/Template_editing": { - "modified": "2020-09-30T16:48:33.737Z", + "Web/API/Client/frameType": { + "modified": "2019-03-23T22:37:02.346Z", "contributors": [ - "chrisdavidmills", - "JNa0" + "nobe4" ] }, - "MDN/User_guide": { - "modified": "2019-01-16T20:49:48.849Z", + "Web/API/Client/id": { + "modified": "2019-03-23T22:37:07.911Z", "contributors": [ - "wbamberg", - "Jacqboel", - "Hell_Carlito", - "Sheppy" + "nobe4" ] }, - "MDN_a_dix_ans": { - "modified": "2019-03-23T22:50:40.435Z", + "Web/API/Client/postMessage": { + "modified": "2019-03-23T22:37:01.942Z", "contributors": [ - "lumiru", - "achraf", - "stephaniehobson", - "Cyber-Tron", - "ArtonP", - "SphinxKnight", - "tchevalier" + "nobe4" ] }, - "MDN_a_dix_ans/Contribuer_à_MDN": { - "modified": "2020-02-19T18:10:07.383Z", + "Web/API/Client/url": { + "modified": "2019-03-23T22:37:03.996Z", "contributors": [ - "jswisher", - "SphinxKnight" + "nobe4" ] }, - "MDN_a_dix_ans/Histoire_MDN": { - "modified": "2019-03-23T22:50:37.833Z", + "Web/API/Clients": { + "modified": "2019-03-23T22:37:04.424Z", "contributors": [ - "stephaniehobson", - "tchevalier", - "SphinxKnight" + "nobe4" ] }, - "Mise_à_jour_des_applications_Web_pour_Firefox_3": { - "modified": "2019-03-23T23:53:12.406Z", + "Web/API/Clients/claim": { + "modified": "2019-03-23T22:37:07.697Z", "contributors": [ - "wbamberg", - "Sheppy", - "Mgjbot", - "BenoitL" + "nobe4" ] }, - "Mise_à_jour_des_extensions_pour_Firefox_2": { - "modified": "2019-03-23T23:50:49.070Z", + "Web/API/Clients/get": { + "modified": "2019-03-23T22:37:03.256Z", "contributors": [ - "wbamberg", - "Mgjbot", - "Fredchat", - "Planche" + "nobe4" ] }, - "Mise_à_jour_des_extensions_pour_Firefox_3": { - "modified": "2019-12-13T20:33:09.962Z", + "Web/API/Clients/matchAll": { + "modified": "2019-03-18T21:15:46.468Z", "contributors": [ - "wbamberg", - "Sheppy", - "Gandoulf", - "BenoitL", - "Mgjbot", - "Fredchat" + "m-r-r", + "nobe4" ] }, - "Mozilla": { - "modified": "2019-03-23T23:34:28.870Z", + "Web/API/Clients/openWindow": { + "modified": "2019-03-23T22:37:03.615Z", "contributors": [ - "Dralyab", - "Hell_Carlito", - "PtitPou", - "jmh", - "ethertank" + "nobe4" ] }, - "Mozilla/Add-ons": { - "modified": "2020-09-03T19:55:47.093Z", + "Web/API/Clipboard": { + "modified": "2020-10-15T22:17:56.225Z", "contributors": [ - "Dono7", - "Flavien", - "SphinxKnight", - "Mozinet", - "jezdez", - "pt1dav" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions": { - "modified": "2020-08-27T19:26:10.093Z", + "Web/API/Clipboard/write": { + "modified": "2020-10-15T22:21:53.300Z", "contributors": [ - "NassimSaboundji", - "hellosct1", - "JNa0", - "Mozinet", - "oub", - "arthuretienne", - "xdelatour", - "LaurentBarbareau", - "foxstorm", - "Bat41", - "MERIOULI", - "wbamberg" + "pldespaigne", + "lp177" ] }, - "Mozilla/Add-ons/WebExtensions/API": { - "modified": "2020-05-25T16:55:24.491Z", + "Web/API/Clipboard/writeText": { + "modified": "2020-10-15T22:17:57.078Z", "contributors": [ - "hellosct1", - "JNa0", - "Badacadabra", - "wbamberg" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms": { - "modified": "2020-10-15T21:49:27.575Z", + "Web/API/CloseEvent": { + "modified": "2019-03-23T22:51:23.474Z", "contributors": [ - "hellosct1", - "SphinxKnight", - "Needlex" + "Hell_Carlito", + "Hyspirit" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/Alarm": { - "modified": "2020-10-15T21:56:47.391Z", + "Web/API/Comment": { + "modified": "2020-11-25T16:12:58.810Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "Wixonic", + "Jeremie", + "loella16", + "luccioman", + "Gibus", + "Hell_Carlito" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/clear": { - "modified": "2020-10-15T21:56:52.162Z", + "Web/API/Comment/Comment": { + "modified": "2020-10-15T21:56:16.592Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "Jeremie", + "loella16", + "BEHOUBA" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/clearAll": { - "modified": "2020-10-15T21:56:49.302Z", + "Web/API/CompositionEvent": { + "modified": "2020-10-15T21:37:10.055Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "fscholz", + "loella16", + "sousmangoosta" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/create": { - "modified": "2020-10-15T21:56:55.595Z", + "Web/API/Console": { + "modified": "2019-05-01T14:25:50.246Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "jcalixte", + "loella16", + "Ostefanini", + "christophe.hurpeau", + "P45QU10U", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/get": { - "modified": "2020-10-15T21:56:47.349Z", + "Web/API/Console/assert": { + "modified": "2020-10-15T21:37:07.545Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "Fenn", + "loella16", + "christophe.hurpeau", + "frederikdussault", + "ElianWonhalf" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/getAll": { - "modified": "2020-10-15T21:56:49.563Z", + "Web/API/Console/clear": { + "modified": "2019-03-23T22:18:57.653Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "christophe.hurpeau", + "DavidLibeau" ] }, - "Mozilla/Add-ons/WebExtensions/API/alarms/onAlarm": { - "modified": "2020-10-15T21:56:50.838Z", + "Web/API/Console/count": { + "modified": "2020-10-15T21:39:57.745Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "loella16", + "christophe.hurpeau", + "normannMarit", + "Styus" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks": { - "modified": "2020-10-15T21:55:09.926Z", + "Web/API/Console/countReset": { + "modified": "2020-10-15T22:22:03.008Z", "contributors": [ - "hellosct1", - "JNa0", - "NerOcrO" + "tbetous", + "quentin.lamamy" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNode": { - "modified": "2020-10-15T22:06:54.229Z", + "Web/API/Console/debug": { + "modified": "2020-10-15T22:21:32.530Z", "contributors": [ - "hellosct1" + "thiag73" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeType": { - "modified": "2020-10-15T22:06:55.729Z", + "Web/API/Console/dir": { + "modified": "2020-10-15T21:43:00.216Z", "contributors": [ - "hellosct1" + "xavierartot", + "loella16", + "sylvaindethier", + "Chevallm" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeUnmodifiable": { - "modified": "2020-10-15T22:06:56.897Z", + "Web/API/Console/dirxml": { + "modified": "2020-10-15T21:56:31.266Z", "contributors": [ - "hellosct1" + "loella16", + "BEHOUBA" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/CreateDetails": { - "modified": "2020-10-15T22:06:54.030Z", + "Web/API/Console/error": { + "modified": "2020-10-15T21:37:29.101Z", "contributors": [ - "hellosct1", - "ariasuni" + "SphinxKnight", + "loella16", + "christophe.hurpeau", + "unpeudetout", + "Goofy", + "JulienItard" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/create": { - "modified": "2020-10-15T22:06:53.629Z", + "Web/API/Console/group": { + "modified": "2020-10-15T21:39:57.936Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "Styus" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/get": { - "modified": "2020-10-15T22:06:54.282Z", + "Web/API/Console/groupCollapsed": { + "modified": "2020-10-15T21:39:57.660Z", "contributors": [ - "Arzak656", - "hellosct1" + "loella16", + "Styus" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/getChildren": { - "modified": "2020-10-15T22:06:56.873Z", + "Web/API/Console/groupEnd": { + "modified": "2020-10-15T21:39:57.905Z", "contributors": [ - "hellosct1" + "loella16", + "christophe.hurpeau", + "Styus" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/getRecent": { - "modified": "2020-10-15T22:06:57.277Z", + "Web/API/Console/info": { + "modified": "2020-11-11T13:53:02.402Z", "contributors": [ - "hellosct1" + "Yukulele.", + "unpeudetout", + "JonGiamp", + "JulienItard" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/getSubTree": { - "modified": "2020-10-15T22:06:54.273Z", + "Web/API/Console/log": { + "modified": "2020-11-11T19:51:04.080Z", "contributors": [ - "hellosct1" + "JNa0", + "Yukulele.", + "loella16", + "christophe.hurpeau", + "fscholz", + "jsx", + "benfarhat.elyes" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/getTree": { - "modified": "2020-10-15T22:06:52.492Z", + "Web/API/Console/profile": { + "modified": "2020-10-15T22:01:10.357Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/move": { - "modified": "2020-10-15T22:06:58.622Z", + "Web/API/Console/profileEnd": { + "modified": "2020-10-15T22:01:12.608Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onChanged": { - "modified": "2020-10-15T22:06:59.610Z", + "Web/API/Console/table": { + "modified": "2020-10-15T21:30:09.666Z", "contributors": [ - "hellosct1", - "duduindo", - "wbamberg" + "loella16", + "DCLAN", + "fscholz", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onChildrenReordered": { - "modified": "2020-10-15T22:06:57.747Z", + "Web/API/Console/time": { + "modified": "2020-10-15T21:26:08.561Z", "contributors": [ - "hellosct1" + "loella16", + "mireero", + "fscholz", + "khalid32", + "fvelcker" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onCreated": { - "modified": "2020-10-15T22:06:56.763Z", + "Web/API/Console/timeEnd": { + "modified": "2020-10-15T21:28:27.222Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "AshfaqHossain", + "Fredchat", + "Automatik" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportBegan": { - "modified": "2020-10-15T22:06:58.178Z", + "Web/API/Console/timeLog": { + "modified": "2020-10-15T22:20:05.673Z", "contributors": [ - "hellosct1" + "ewen-lbh", + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onImportEnded": { - "modified": "2020-10-15T22:06:57.694Z", + "Web/API/Console/timeStamp": { + "modified": "2020-10-15T22:02:32.433Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onMoved": { - "modified": "2020-10-15T22:06:57.181Z", + "Web/API/Console/trace": { + "modified": "2020-10-15T21:37:28.957Z", "contributors": [ - "hellosct1" + "loella16", + "JonGiamp", + "JulienItard" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/onRemoved": { - "modified": "2020-10-15T22:06:57.843Z", + "Web/API/Console/warn": { + "modified": "2020-10-15T21:37:32.060Z", "contributors": [ - "hellosct1" + "loella16", + "unpeudetout", + "JulienItard" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/remove": { - "modified": "2020-10-15T22:06:56.991Z", + "Web/API/Console_API": { + "modified": "2020-10-15T22:34:41.922Z", "contributors": [ - "hellosct1" + "tomderudder" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/removeTree": { - "modified": "2020-10-15T22:06:56.214Z", + "Web/API/Credential": { + "modified": "2020-10-15T22:15:42.154Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/search": { - "modified": "2020-10-15T22:06:57.967Z", + "Web/API/Credential_Management_API": { + "modified": "2019-03-18T20:40:05.156Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/bookmarks/update": { - "modified": "2020-10-15T22:06:55.775Z", + "Web/API/CredentialsContainer": { + "modified": "2020-10-15T22:15:42.732Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction": { - "modified": "2020-10-15T21:55:16.337Z", - "contributors": [ - "hellosct1", - "wbamberg", - "JujuLeVilleurbannais" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/ColorArray": { - "modified": "2020-10-15T21:57:12.722Z", - "contributors": [ - "hellosct1" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/ImageDataType": { - "modified": "2020-10-15T21:57:10.313Z", + "Web/API/CredentialsContainer/create": { + "modified": "2020-10-15T22:15:42.455Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/disable": { - "modified": "2020-10-15T21:57:17.917Z", + "Web/API/CredentialsContainer/get": { + "modified": "2020-10-15T22:15:43.383Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/enable": { - "modified": "2020-10-15T21:57:15.753Z", + "Web/API/CredentialsContainer/preventSilentAccess": { + "modified": "2020-10-15T22:15:43.293Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeBackgroundColor": { - "modified": "2020-10-15T21:57:19.839Z", + "Web/API/CredentialsContainer/store": { + "modified": "2020-10-15T22:15:43.204Z", "contributors": [ - "hellosct1" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeText": { - "modified": "2020-10-15T21:57:19.156Z", + "Web/API/Crypto": { + "modified": "2019-06-12T16:42:03.729Z", "contributors": [ - "hellosct1" + "Maamouch", + "foxstorm" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/getBadgeTextColor": { - "modified": "2020-10-15T22:08:46.895Z", + "Web/API/Crypto/subtle": { + "modified": "2020-06-25T05:07:25.362Z", "contributors": [ - "hellosct1" + "micky008", + "foxstorm" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/getPopup": { - "modified": "2020-10-15T21:57:14.137Z", + "Web/API/CryptoKey": { + "modified": "2019-03-23T22:37:47.323Z", "contributors": [ - "hellosct1" + "Porkepix", + "foxstorm" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/getTitle": { - "modified": "2020-10-15T21:57:13.635Z", + "Web/API/CustomEvent": { + "modified": "2020-10-15T21:27:31.037Z", "contributors": [ - "hellosct1" + "Arilox", + "loella16", + "Hell_Carlito", + "J.DMB", + "jbenoit", + "Porkepix", + "Lionel_Peramo" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/isEnabled": { - "modified": "2020-10-15T22:04:36.266Z", + "Web/API/CustomEvent/detail": { + "modified": "2020-10-15T22:01:25.082Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/onClicked": { - "modified": "2020-10-15T21:57:11.578Z", + "Web/API/CustomEvent/initCustomEvent": { + "modified": "2020-10-15T22:01:25.135Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/openPopup": { - "modified": "2020-10-15T22:04:36.594Z", + "Web/API/DOMError": { + "modified": "2020-10-15T21:21:42.567Z", "contributors": [ - "hellosct1" + "loella16", + "slietar", + "teoli", + "jsx", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeBackgroundColor": { - "modified": "2020-10-15T21:57:20.395Z", + "Web/API/DOMException": { + "modified": "2019-03-18T21:43:29.207Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeText": { - "modified": "2020-10-15T21:57:15.662Z", + "Web/API/DOMHighResTimeStamp": { + "modified": "2020-10-15T22:09:08.657Z", "contributors": [ - "hellosct1" + "BenMorel" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setBadgeTextColor": { - "modified": "2020-10-15T22:08:45.959Z", + "Web/API/DOMImplementation": { + "modified": "2019-03-23T22:57:47.120Z", "contributors": [ - "hellosct1" + "loella16", + "teoli" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setIcon": { - "modified": "2020-10-15T21:57:18.790Z", + "Web/API/DOMImplementation/createDocument": { + "modified": "2019-03-23T22:57:50.841Z", "contributors": [ - "hellosct1" + "loella16", + "FranckCo" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setPopup": { - "modified": "2020-10-15T21:57:20.848Z", + "Web/API/DOMImplementation/createDocumentType": { + "modified": "2019-04-19T04:24:15.205Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserAction/setTitle": { - "modified": "2020-10-15T21:57:13.171Z", + "Web/API/DOMImplementation/createHTMLDocument": { + "modified": "2019-03-23T22:52:22.386Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16", + "SphinxKnight", + "tazzcoco" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings": { - "modified": "2020-10-15T21:57:20.303Z", + "Web/API/DOMImplementation/hasFeature": { + "modified": "2019-03-18T21:41:55.984Z", "contributors": [ - "vince-origin", - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/allowPopupsForUserEvents": { - "modified": "2020-10-15T21:57:16.502Z", + "Web/API/DOMLocator": { + "modified": "2019-03-18T21:41:56.748Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/cacheEnabled": { - "modified": "2020-10-15T21:57:20.596Z", + "Web/API/DOMObject": { + "modified": "2019-03-18T21:41:56.899Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/closeTabsByDoubleClick": { - "modified": "2020-10-15T22:13:16.558Z", + "Web/API/DOMParser": { + "modified": "2019-03-24T00:00:31.565Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "PWeilbacher", + "Yolek", + "Mgjbot", + "Chbok", + "VincentN" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/contextMenuShowEvent": { - "modified": "2020-10-15T22:04:59.335Z", + "Web/API/DOMPoint": { + "modified": "2019-03-18T21:41:56.595Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/ftpProtocolEnabled": { - "modified": "2020-10-15T22:29:18.905Z", + "Web/API/DOMPoint/DOMPoint": { + "modified": "2019-03-18T21:41:53.479Z", "contributors": [ - "hellosct1", - "vince-origin" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/homepageOverride": { - "modified": "2020-10-15T22:04:59.231Z", + "Web/API/DOMPointReadOnly": { + "modified": "2019-03-18T21:41:46.420Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/imageAnimationBehavior": { - "modified": "2020-10-15T22:04:59.301Z", + "Web/API/DOMPointReadOnly/w": { + "modified": "2019-03-18T21:41:53.283Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPageOverride": { - "modified": "2020-10-15T22:04:59.445Z", + "Web/API/DOMPointReadOnly/x": { + "modified": "2019-03-18T21:41:25.837Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPosition": { - "modified": "2020-10-15T22:06:52.287Z", + "Web/API/DOMPointReadOnly/y": { + "modified": "2019-03-18T21:41:24.854Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/openBookmarksInNewTabs": { - "modified": "2020-10-15T22:04:59.369Z", + "Web/API/DOMPointReadOnly/z": { + "modified": "2019-03-18T21:41:33.692Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/openSearchResultsInNewTabs": { - "modified": "2020-10-15T22:04:58.861Z", + "Web/API/DOMQuad": { + "modified": "2019-03-18T21:41:24.469Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/openUrlbarResultsInNewTabs": { - "modified": "2020-10-15T22:05:40.306Z", + "Web/API/DOMRect": { + "modified": "2020-10-15T22:01:35.250Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/overrideDocumentColors": { - "modified": "2020-10-15T22:05:24.428Z", + "Web/API/DOMRect/DOMRect": { + "modified": "2019-03-18T21:41:21.109Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/proxyConfig": { - "modified": "2020-10-15T22:04:59.888Z", + "Web/API/DOMRectReadOnly": { + "modified": "2020-10-15T22:01:33.628Z", "contributors": [ - "hellosct1" + "Voulto", + "SphinxKnight", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/useDocumentFonts": { - "modified": "2020-10-15T22:05:23.408Z", + "Web/API/DOMRectReadOnly/DOMRectReadOnly": { + "modified": "2019-03-18T21:41:33.048Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/webNotificationsDisabled": { - "modified": "2020-10-15T22:04:59.020Z", + "Web/API/DOMRectReadOnly/bottom": { + "modified": "2019-03-18T21:41:33.238Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/zoomFullPage": { - "modified": "2020-10-15T22:29:18.493Z", + "Web/API/DOMRectReadOnly/height": { + "modified": "2019-03-18T21:41:36.495Z", "contributors": [ - "hellosct1", - "vince-origin" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings/zoomSiteSpecific": { - "modified": "2020-10-15T22:29:16.581Z", + "Web/API/DOMRectReadOnly/left": { + "modified": "2019-03-18T21:41:30.332Z", "contributors": [ - "hellosct1", - "vince-origin" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData": { - "modified": "2020-10-15T21:57:41.783Z", + "Web/API/DOMRectReadOnly/right": { + "modified": "2019-03-18T21:41:25.443Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/DataTypeSet": { - "modified": "2020-10-15T22:00:04.307Z", + "Web/API/DOMRectReadOnly/top": { + "modified": "2019-03-18T21:41:25.257Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/RemovalOptions": { - "modified": "2020-10-15T22:00:01.417Z", + "Web/API/DOMRectReadOnly/width": { + "modified": "2019-03-18T21:41:15.373Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/remove": { - "modified": "2020-10-15T21:58:20.101Z", + "Web/API/DOMRectReadOnly/x": { + "modified": "2019-03-18T21:41:26.564Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache": { - "modified": "2020-10-15T22:00:00.917Z", + "Web/API/DOMRectReadOnly/y": { + "modified": "2019-03-18T21:41:25.051Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeCookies": { - "modified": "2020-10-15T22:00:02.470Z", + "Web/API/DOMString": { + "modified": "2019-03-23T23:30:27.295Z", "contributors": [ - "hellosct1" + "loella16", + "Puxarnal", + "FredB", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeDownloads": { - "modified": "2020-10-15T22:00:02.232Z", + "Web/API/DOMString/Binary": { + "modified": "2019-03-18T21:41:36.649Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeFormData": { - "modified": "2020-10-15T22:00:02.195Z", + "Web/API/DOMStringList": { + "modified": "2019-03-18T21:41:20.124Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeHistory": { - "modified": "2020-10-15T22:00:03.781Z", + "Web/API/DOMTimeStamp": { + "modified": "2019-03-23T23:29:44.989Z", "contributors": [ - "hellosct1" + "loella16", + "FredB" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removeLocalStorage": { - "modified": "2020-10-15T22:00:02.673Z", + "Web/API/DOMTokenList": { + "modified": "2020-10-15T21:34:05.793Z", "contributors": [ - "hellosct1" + "loella16", + "SphinxKnight", + "Hell_Carlito", + "P45QU10U" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removePasswords": { - "modified": "2020-10-15T22:00:00.174Z", + "Web/API/DOMTokenList/add": { + "modified": "2020-10-15T22:01:35.712Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/removePluginData": { - "modified": "2020-10-15T22:00:01.101Z", + "Web/API/DOMTokenList/contains": { + "modified": "2020-10-15T22:01:38.901Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/browsingData/settings": { - "modified": "2020-10-15T22:00:00.741Z", + "Web/API/DOMTokenList/entries": { + "modified": "2020-10-15T22:01:37.953Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal": { - "modified": "2020-10-15T22:30:04.270Z", + "Web/API/DOMTokenList/forEach": { + "modified": "2020-10-15T22:01:35.057Z", "contributors": [ - "hellosct1", - "rebloor" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal/canonicalURL": { - "modified": "2020-10-15T22:30:03.440Z", + "Web/API/DOMTokenList/item": { + "modified": "2020-10-15T22:01:44.192Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal/getLastChecked": { - "modified": "2020-10-15T22:30:05.691Z", + "Web/API/DOMTokenList/keys": { + "modified": "2020-10-15T22:01:47.459Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal/getState": { - "modified": "2020-10-15T22:30:34.996Z", + "Web/API/DOMTokenList/length": { + "modified": "2020-10-15T22:01:47.586Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal/onConnectivityAvailable": { - "modified": "2020-10-15T22:30:05.428Z", + "Web/API/DOMTokenList/remove": { + "modified": "2020-10-15T22:01:48.383Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/captivePortal/onStateChanged": { - "modified": "2020-10-15T22:30:34.412Z", + "Web/API/DOMTokenList/replace": { + "modified": "2020-10-15T22:01:47.482Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/clipboard": { - "modified": "2020-10-15T21:58:44.611Z", + "Web/API/DOMTokenList/supports": { + "modified": "2020-10-15T22:01:47.863Z", "contributors": [ - "hellosct1", - "clamb" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData": { - "modified": "2020-10-15T21:58:52.602Z", + "Web/API/DOMTokenList/toggle": { + "modified": "2020-10-15T22:01:47.325Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands": { - "modified": "2020-10-15T21:57:41.229Z", + "Web/API/DOMTokenList/value": { + "modified": "2020-10-15T22:01:52.216Z", "contributors": [ - "hellosct1", - "JNa0" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands/Command": { - "modified": "2020-10-15T22:00:15.894Z", + "Web/API/DOMTokenList/values": { + "modified": "2020-10-15T22:01:52.240Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands/getAll": { - "modified": "2020-10-15T22:00:16.483Z", + "Web/API/DOMUserData": { + "modified": "2019-03-18T21:41:11.030Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands/onCommand": { - "modified": "2020-10-15T22:00:18.817Z", + "Web/API/DataTransfer": { + "modified": "2019-04-20T00:20:42.022Z", "contributors": [ - "hellosct1" + "wbamberg", + "teoli", + "patricepalau", + "Jeremie", + "fscholz", + "virg", + "mekal" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands/reset": { - "modified": "2020-10-15T22:04:36.152Z", + "Web/API/DataTransfer/clearData": { + "modified": "2019-03-23T22:32:20.041Z", "contributors": [ - "hellosct1" + "NicolasGoudry" ] }, - "Mozilla/Add-ons/WebExtensions/API/commands/update": { - "modified": "2020-10-15T22:04:36.445Z", + "Web/API/DataTransfer/files": { + "modified": "2019-03-23T22:10:26.337Z", "contributors": [ - "hellosct1" + "arthurlacoste", + "greg95000" ] }, - "Mozilla/Add-ons/WebExtensions/API/contentScripts": { - "modified": "2020-10-15T22:03:15.588Z", + "Web/API/DedicatedWorkerGlobalScope": { + "modified": "2020-10-15T21:33:24.664Z", "contributors": [ - "hellosct1" + "Arzak656", + "blackfox", + "jean-pierre.gay" ] }, - "Mozilla/Add-ons/WebExtensions/API/contentScripts/RegisteredContentScript": { - "modified": "2020-10-15T22:03:05.082Z", + "Web/API/DedicatedWorkerGlobalScope/close": { + "modified": "2020-10-15T22:01:49.897Z", "contributors": [ - "hellosct1", - "wbamberg" + "Arzak656", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contentScripts/RegisteredContentScript/unregister": { - "modified": "2020-10-15T22:03:07.948Z", + "Web/API/DedicatedWorkerGlobalScope/name": { + "modified": "2020-10-15T22:01:49.649Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contentScripts/register": { - "modified": "2020-10-15T22:03:07.517Z", + "Web/API/DeviceMotionEvent": { + "modified": "2020-09-07T05:26:58.789Z", "contributors": [ - "milouse", - "hellosct1" + "Voulto", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities": { - "modified": "2020-10-15T21:57:40.932Z", + "Web/API/DeviceMotionEvent/DeviceMotionEvent": { + "modified": "2019-03-18T21:41:13.672Z", "contributors": [ - "hellosct1", - "JNa0" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/ContextualIdentity": { - "modified": "2020-10-15T22:03:10.039Z", + "Web/API/DeviceMotionEvent/accelerationIncludingGravity": { + "modified": "2019-03-18T21:41:01.615Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/create": { - "modified": "2020-10-15T22:03:09.387Z", + "Web/API/DeviceMotionEvent/interval": { + "modified": "2020-10-15T22:01:49.895Z", "contributors": [ - "hellosct1", - "BenDz" + "SphinxKnight", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/get": { - "modified": "2020-10-15T22:03:07.326Z", + "Web/API/DeviceMotionEvent/rotationRate": { + "modified": "2020-10-15T22:01:52.234Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onCreated": { - "modified": "2020-10-15T22:03:10.805Z", + "Web/API/DeviceOrientationEvent": { + "modified": "2019-03-23T23:28:16.009Z", "contributors": [ - "hellosct1" + "khalid32", + "Goofy", + "FredB", + "darnuria" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onRemoved": { - "modified": "2020-10-15T22:03:10.585Z", + "Web/API/Document": { + "modified": "2019-03-24T00:01:48.529Z", "contributors": [ - "hellosct1" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onUpdated": { - "modified": "2020-10-15T22:03:11.564Z", - "contributors": [ - "hellosct1" + "edspeedy", + "loella16", + "frederikdussault", + "vava", + "thbil", + "teoli", + "khalid32", + "Delapouite", + "ethertank", + "tregagnon", + "Crash", + "BenoitL", + "Mgjbot", + "Takenbot", + "Gorrk" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/query": { - "modified": "2020-10-15T22:03:06.215Z", + "Web/API/Document/DOMContentLoaded_event": { + "modified": "2020-10-15T22:29:03.455Z", "contributors": [ - "hellosct1" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/remove": { - "modified": "2020-10-15T22:03:06.492Z", + "Web/API/Document/Document": { + "modified": "2019-03-23T22:05:00.212Z", "contributors": [ - "hellosct1" + "loella16", + "cabalpit" ] }, - "Mozilla/Add-ons/WebExtensions/API/contextualIdentities/update": { - "modified": "2020-10-15T22:03:06.298Z", + "Web/API/Document/URL": { + "modified": "2019-03-23T22:50:43.925Z", "contributors": [ - "hellosct1" + "ThibautBremand" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies": { - "modified": "2020-10-15T21:57:42.517Z", + "Web/API/Document/adoptNode": { + "modified": "2019-03-18T21:40:45.731Z", "contributors": [ - "hellosct1", - "pierregillet" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/Cookie": { - "modified": "2020-10-15T22:00:18.569Z", + "Web/API/Document/alinkColor": { + "modified": "2020-10-15T22:21:17.154Z", "contributors": [ - "hellosct1" + "CocoMC98000" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/CookieStore": { - "modified": "2020-10-15T22:00:17.792Z", + "Web/API/Document/applets": { + "modified": "2019-03-23T23:10:50.034Z", "contributors": [ - "hellosct1" + "fscholz", + "jsx", + "fmasy" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/OnChangedCause": { - "modified": "2020-10-15T22:00:17.330Z", + "Web/API/Document/bgColor": { + "modified": "2020-10-15T21:48:00.497Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "Dwaaren" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/SameSiteStatus": { - "modified": "2019-07-03T06:45:04.077Z", + "Web/API/Document/body": { + "modified": "2019-03-23T23:33:33.035Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "mathbr" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/get": { - "modified": "2020-10-15T22:00:19.493Z", + "Web/API/Document/caretRangeFromPoint": { + "modified": "2019-03-18T21:40:33.489Z", "contributors": [ - "hellosct1", - "Loenix" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/getAll": { - "modified": "2020-10-15T22:00:18.081Z", + "Web/API/Document/characterSet": { + "modified": "2020-10-15T21:57:57.499Z", "contributors": [ - "regseb", - "hellosct1" + "SphinxKnight", + "cabalpit" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/getAllCookieStores": { - "modified": "2020-10-15T22:00:19.042Z", + "Web/API/Document/clear": { + "modified": "2020-10-15T22:07:57.497Z", "contributors": [ - "hellosct1" + "Tokami" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/onChanged": { - "modified": "2020-10-15T22:00:17.953Z", + "Web/API/Document/compatMode": { + "modified": "2019-03-18T20:59:10.281Z", "contributors": [ - "hellosct1", - "thomascaillier" + "SphinxKnight", + "loella16", + "fscholz", + "alexandrehebert" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/remove": { - "modified": "2020-10-15T22:00:18.993Z", + "Web/API/Document/contentType": { + "modified": "2019-03-18T21:40:51.962Z", "contributors": [ - "hellosct1", - "MusiKid" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/cookies/set": { - "modified": "2020-10-15T22:00:19.267Z", + "Web/API/Document/createAttribute": { + "modified": "2020-10-15T21:14:37.249Z", "contributors": [ - "hellosct1", - "P45QU10U" + "SphinxKnight", + "loella16", + "fscholz", + "teoli", + "xuancanh", + "Sébastien C.", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools": { - "modified": "2020-10-15T22:30:24.003Z", + "Web/API/Document/createCDATASection": { + "modified": "2019-03-18T21:40:24.223Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow": { - "modified": "2020-10-15T21:55:11.329Z", + "Web/API/Document/createComment": { + "modified": "2019-03-23T23:24:36.077Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "jsx", + "sisyphe" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval": { - "modified": "2020-10-15T21:55:14.114Z", + "Web/API/Document/createDocumentFragment": { + "modified": "2019-03-23T23:32:44.624Z", "contributors": [ - "hellosct1", - "m-r-r" + "loella16", + "JNa0", + "P45QU10U", + "fscholz", + "jsx", + "AshfaqHossain", + "teoli", + "jdvauguet" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/reload": { - "modified": "2020-10-15T21:55:58.911Z", + "Web/API/Document/createElement": { + "modified": "2020-10-15T21:15:29.511Z", "contributors": [ - "hellosct1" + "Watilin", + "loella16", + "VictorLequin", + "Ealhad", + "Misty418", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId": { - "modified": "2020-10-15T21:55:59.720Z", + "Web/API/Document/createElementNS": { + "modified": "2019-03-23T23:06:18.565Z", "contributors": [ - "hellosct1" + "loella16", + "lotfire24", + "fscholz", + "Twidi" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.network": { - "modified": "2020-10-15T21:55:16.357Z", + "Web/API/Document/createEntityReference": { + "modified": "2019-03-18T21:40:14.903Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.network/getHAR": { - "modified": "2020-10-15T22:04:36.939Z", + "Web/API/Document/createEvent": { + "modified": "2019-03-23T22:44:18.504Z", "contributors": [ - "hellosct1" + "loella16", + "jmh" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.network/onNavigated": { - "modified": "2020-10-15T21:56:01.394Z", + "Web/API/Document/createExpression": { + "modified": "2019-03-18T21:40:18.366Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.network/onRequestFinished": { - "modified": "2020-10-15T22:04:12.813Z", + "Web/API/Document/createNSResolver": { + "modified": "2019-03-18T21:40:18.204Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels": { - "modified": "2020-10-15T21:55:15.857Z", + "Web/API/Document/createNodeIterator": { + "modified": "2019-03-18T21:40:21.964Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel": { - "modified": "2020-10-15T21:56:25.683Z", + "Web/API/Document/createProcessingInstruction": { + "modified": "2019-03-18T21:40:28.676Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane": { - "modified": "2020-10-15T22:04:11.111Z", + "Web/API/Document/createRange": { + "modified": "2019-03-23T23:21:36.391Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "Jeremie", + "fvelcker" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/onSelectionChanged": { - "modified": "2020-10-15T21:56:28.564Z", + "Web/API/Document/createTextNode": { + "modified": "2019-03-23T23:53:24.787Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionPanel": { - "modified": "2020-10-15T21:56:01.635Z", + "Web/API/Document/createTreeWalker": { + "modified": "2019-03-18T21:40:20.459Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane": { - "modified": "2020-10-15T22:04:11.081Z", + "Web/API/Document/currentScript": { + "modified": "2019-03-23T22:04:56.348Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16", + "kantoche", + "cabalpit" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onHidden": { - "modified": "2020-10-15T22:04:12.026Z", + "Web/API/Document/defaultView": { + "modified": "2019-03-23T23:28:33.455Z", "contributors": [ - "hellosct1" + "fscholz", + "Delapouite" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onShown": { - "modified": "2020-10-15T22:04:11.474Z", + "Web/API/Document/designMode": { + "modified": "2019-03-23T22:47:19.586Z", "contributors": [ - "hellosct1" + "dark_nemo" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setExpression": { - "modified": "2020-10-15T22:04:11.532Z", + "Web/API/Document/dir": { + "modified": "2020-10-15T22:26:01.944Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "hervems" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setObject": { - "modified": "2020-10-15T22:04:12.294Z", + "Web/API/Document/doctype": { + "modified": "2019-03-18T21:40:14.743Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setPage": { - "modified": "2020-10-15T22:15:03.534Z", + "Web/API/Document/documentElement": { + "modified": "2020-10-15T21:16:26.147Z", "contributors": [ - "hellosct1" + "abvll", + "loella16", + "tzilliox", + "fscholz", + "teoli", + "AshfaqHossain", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/create": { - "modified": "2020-10-15T21:56:02.132Z", + "Web/API/Document/documentURI": { + "modified": "2020-10-15T22:02:10.846Z", "contributors": [ - "hellosct1" + "abvll", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements": { - "modified": "2020-10-15T22:04:11.356Z", + "Web/API/Document/documentURIObject": { + "modified": "2019-03-23T23:50:30.665Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/onThemeChanged": { - "modified": "2020-10-15T21:55:59.922Z", + "Web/API/Document/domain": { + "modified": "2019-03-18T21:16:45.176Z", "contributors": [ - "hellosct1" + "NemoNobobyPersonne", + "marcdahan", + "remi34" ] }, - "Mozilla/Add-ons/WebExtensions/API/devtools.panels/themeName": { - "modified": "2020-10-15T21:55:59.431Z", + "Web/API/Document/drag_event": { + "modified": "2019-04-30T14:17:50.518Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/dns": { - "modified": "2020-10-15T22:04:28.089Z", + "Web/API/Document/dragend_event": { + "modified": "2019-04-30T14:03:40.078Z", "contributors": [ - "hellosct1", - "wbamberg" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/dns/resolve": { - "modified": "2020-10-15T22:04:22.142Z", + "Web/API/Document/dragenter_event": { + "modified": "2019-04-30T14:21:07.497Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads": { - "modified": "2020-10-15T21:57:39.749Z", + "Web/API/Document/dragleave_event": { + "modified": "2019-04-30T14:02:56.864Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/BooleanDelta": { - "modified": "2020-10-15T22:03:08.682Z", + "Web/API/Document/dragover_event": { + "modified": "2019-04-30T14:24:34.192Z", "contributors": [ - "hellosct1", - "dragon38800" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/DangerType": { - "modified": "2020-10-15T22:03:15.056Z", + "Web/API/Document/dragstart_event": { + "modified": "2019-04-30T14:03:33.933Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/DoubleDelta": { - "modified": "2020-10-15T22:03:02.646Z", + "Web/API/Document/drop_event": { + "modified": "2019-04-30T14:21:50.701Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "areltfc", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadItem": { - "modified": "2020-10-15T22:03:03.375Z", + "Web/API/Document/enableStyleSheetsForSet": { + "modified": "2019-03-18T21:40:08.810Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadQuery": { - "modified": "2020-10-15T22:03:01.801Z", + "Web/API/Document/evaluate": { + "modified": "2020-10-15T21:14:48.465Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16", + "fscholz", + "teoli", + "tregagnon", + "Julien.stuby" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/DownloadTime": { - "modified": "2020-10-15T22:03:15.782Z", + "Web/API/Document/execCommand": { + "modified": "2019-03-23T23:34:20.957Z", "contributors": [ - "hellosct1" + "thibault", + "loella16", + "sylvainpolletvillard", + "Fenchister", + "DominiqueDevinci", + "ebear", + "fscholz", + "teoli", + "bfn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/FilenameConflictAction": { - "modified": "2020-10-15T22:03:03.037Z", + "Web/API/Document/exitFullscreen": { + "modified": "2019-03-18T21:40:09.294Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/InterruptReason": { - "modified": "2020-10-15T22:03:02.130Z", + "Web/API/Document/exitPointerLock": { + "modified": "2019-03-23T22:43:28.410Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "kipcode66" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/State": { - "modified": "2020-10-15T22:03:05.545Z", + "Web/API/Document/featurePolicy": { + "modified": "2020-11-02T18:36:11.259Z", "contributors": [ - "hellosct1" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/StringDelta": { - "modified": "2020-10-15T22:03:05.192Z", + "Web/API/Document/forms": { + "modified": "2019-03-23T22:47:49.253Z", "contributors": [ - "hellosct1" + "loella16", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/acceptDanger": { - "modified": "2020-10-15T22:03:15.128Z", + "Web/API/Document/fullscreenchange_event": { + "modified": "2019-07-18T10:46:51.166Z", "contributors": [ - "hellosct1" + "AlaricCalmette", + "irenesmith", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/cancel": { - "modified": "2020-10-15T22:02:46.073Z", + "Web/API/Document/fullscreenerror_event": { + "modified": "2019-03-23T21:59:49.455Z", "contributors": [ - "hellosct1" + "irenesmith", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/download": { - "modified": "2020-10-15T22:03:05.206Z", + "Web/API/Document/getBoxObjectFor": { + "modified": "2019-03-18T21:39:17.387Z", "contributors": [ - "hellosct1", - "dragon38800" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/drag": { - "modified": "2020-10-15T22:03:15.113Z", + "Web/API/Document/getElementById": { + "modified": "2020-10-15T21:13:25.383Z", "contributors": [ - "hellosct1" + "tristantheb", + "loella16", + "db0sch", + "genstor", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Mgjbot", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/erase": { - "modified": "2020-10-15T22:03:02.956Z", + "Web/API/Document/getElementsByClassName": { + "modified": "2020-10-15T21:17:56.718Z", "contributors": [ - "hellosct1", - "wbamberg" + "abvll", + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/getFileIcon": { - "modified": "2020-10-15T22:03:04.595Z", + "Web/API/Document/getElementsByName": { + "modified": "2019-03-23T23:43:51.351Z", "contributors": [ - "hellosct1" + "loella16", + "edspeedy", + "fscholz", + "teoli", + "jsx", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/onChanged": { - "modified": "2020-10-15T22:03:05.044Z", + "Web/API/Document/getElementsByTagName": { + "modified": "2019-03-23T23:50:32.919Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "arunpandianp", + "n_g", + "tregagnon", + "fkhannouf", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/onCreated": { - "modified": "2020-10-15T22:03:02.215Z", + "Web/API/Document/getElementsByTagNameNS": { + "modified": "2019-03-18T21:39:18.440Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/onErased": { - "modified": "2020-10-15T22:03:15.734Z", + "Web/API/Document/hasFocus": { + "modified": "2019-03-23T23:53:18.772Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/open": { - "modified": "2020-10-15T22:03:03.328Z", + "Web/API/Document/head": { + "modified": "2019-03-23T23:28:49.084Z", "contributors": [ - "hellosct1" + "fscholz", + "Goofy", + "Delapouite" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/pause": { - "modified": "2020-10-15T22:02:12.925Z", + "Web/API/Document/height": { + "modified": "2019-03-23T22:35:36.713Z", "contributors": [ - "hellosct1", - "dragon38800" + "Beaver" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/removeFile": { - "modified": "2020-10-15T22:03:03.899Z", + "Web/API/Document/hidden": { + "modified": "2020-10-15T22:15:02.524Z", "contributors": [ - "hellosct1" + "ThCarrere" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/resume": { - "modified": "2020-10-15T22:02:18.854Z", + "Web/API/Document/images": { + "modified": "2019-03-24T00:04:19.350Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "jsx", + "tregagnon", + "RAP1D", + "Julien.stuby", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/search": { - "modified": "2020-10-15T22:03:01.476Z", + "Web/API/Document/implementation": { + "modified": "2019-03-23T23:57:36.312Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "fscholz", + "teoli", + "tregagnon", + "Yanmorin" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/setShelfEnabled": { - "modified": "2020-10-15T22:03:15.953Z", + "Web/API/Document/importNode": { + "modified": "2020-10-15T21:16:48.197Z", "contributors": [ - "hellosct1" + "fscholz", + "wbamberg", + "m-r-r", + "loella16", + "teoli", + "Hasilt", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/show": { - "modified": "2020-10-15T22:03:08.095Z", + "Web/API/Document/keypress_event": { + "modified": "2020-10-15T21:59:28.229Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "ImOverlord", + "chrisdavidmills", + "fscholz", + "NemoNobobyPersonne" ] }, - "Mozilla/Add-ons/WebExtensions/API/downloads/showDefaultFolder": { - "modified": "2020-10-15T22:02:35.095Z", + "Web/API/Document/lastModified": { + "modified": "2020-10-15T21:40:49.228Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "Hell_Carlito", + "DaweedM" ] }, - "Mozilla/Add-ons/WebExtensions/API/events": { - "modified": "2020-10-15T21:57:40.303Z", + "Web/API/Document/lastStyleSheetSet": { + "modified": "2019-03-18T21:39:20.451Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/events/Event": { - "modified": "2020-10-15T22:05:03.208Z", + "Web/API/Document/location": { + "modified": "2020-08-07T14:59:04.090Z", "contributors": [ - "hellosct1" + "jcodeteo", + "NacimHarfouche", + "fscholz", + "tburette" ] }, - "Mozilla/Add-ons/WebExtensions/API/events/Rule": { - "modified": "2020-10-15T22:04:57.145Z", + "Web/API/Document/mozSetImageElement": { + "modified": "2019-03-18T21:39:25.178Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/events/UrlFilter": { - "modified": "2020-10-15T22:04:57.285Z", + "Web/API/Document/mozSyntheticDocument": { + "modified": "2019-03-18T21:39:15.573Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension": { - "modified": "2020-10-15T21:57:42.006Z", + "Web/API/Document/onafterscriptexecute": { + "modified": "2019-03-18T21:16:44.711Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/ViewType": { - "modified": "2020-10-15T22:06:07.729Z", + "Web/API/Document/onbeforescriptexecute": { + "modified": "2019-03-18T21:39:17.231Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/getBackgroundPage": { - "modified": "2020-10-15T22:06:09.291Z", + "Web/API/Document/onfullscreenchange": { + "modified": "2019-03-23T22:29:20.848Z", "contributors": [ - "hellosct1" + "Dwaaren" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/getExtensionTabs": { - "modified": "2020-10-15T22:06:21.269Z", + "Web/API/Document/onoffline": { + "modified": "2019-03-18T21:39:15.173Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/getURL": { - "modified": "2020-10-15T22:06:08.250Z", + "Web/API/Document/ononline": { + "modified": "2019-03-18T21:39:26.555Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/getViews": { - "modified": "2020-10-15T22:06:07.060Z", + "Web/API/Document/open": { + "modified": "2019-03-23T23:45:31.773Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "arunpandianp", + "Delapouite", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/inIncognitoContext": { - "modified": "2020-10-15T22:06:06.499Z", + "Web/API/Document/origin": { + "modified": "2019-03-18T21:39:14.796Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/isAllowedFileSchemeAccess": { - "modified": "2020-10-15T22:06:09.327Z", + "Web/API/Document/popupNode": { + "modified": "2019-04-19T19:08:29.481Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/isAllowedIncognitoAccess": { - "modified": "2020-10-15T22:06:08.273Z", + "Web/API/Document/preferredStyleSheetSet": { + "modified": "2019-03-18T21:17:09.649Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16", + "redorff" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/lastError": { - "modified": "2020-10-15T22:06:06.418Z", + "Web/API/Document/queryCommandState": { + "modified": "2019-03-18T21:39:20.655Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/onRequest": { - "modified": "2020-10-15T22:06:08.877Z", + "Web/API/Document/queryCommandSupported": { + "modified": "2019-03-18T21:39:23.967Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/onRequestExternal": { - "modified": "2020-10-15T22:06:07.613Z", + "Web/API/Document/querySelector": { + "modified": "2019-03-23T23:16:43.222Z", "contributors": [ - "hellosct1" + "khrys", + "loella16", + "juliend2", + "NemoNobobyPersonne", + "fscholz", + "Torvast", + "khalid32", + "Fredchat", + "lithrel", + "Goofy", + "Nek" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/sendRequest": { - "modified": "2020-10-15T22:06:21.926Z", + "Web/API/Document/querySelectorAll": { + "modified": "2019-03-23T22:57:36.074Z", "contributors": [ - "hellosct1" + "loella16", + "fkhannouf", + "tym-network", + "DCK", + "micetf" ] }, - "Mozilla/Add-ons/WebExtensions/API/extension/setUpdateUrlData": { - "modified": "2020-10-15T22:06:08.809Z", + "Web/API/Document/readyState": { + "modified": "2020-11-29T14:54:59.337Z", "contributors": [ - "hellosct1" + "Arzak656", + "GenjoMoz", + "cedeber", + "tobozo", + "thefractaler" ] }, - "Mozilla/Add-ons/WebExtensions/API/extensionTypes": { - "modified": "2020-10-15T21:56:56.857Z", + "Web/API/Document/referrer": { + "modified": "2019-03-23T23:15:05.977Z", "contributors": [ - "hellosct1" + "fscholz", + "Fredchat", + "Akronos" ] }, - "Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageDetails": { - "modified": "2020-10-15T21:56:51.770Z", + "Web/API/Document/registerElement": { + "modified": "2019-03-23T22:43:18.277Z", "contributors": [ - "hellosct1" + "loella16", + "gsavin" ] }, - "Mozilla/Add-ons/WebExtensions/API/extensionTypes/ImageFormat": { - "modified": "2020-10-15T21:56:47.737Z", + "Web/API/Document/releaseCapture": { + "modified": "2019-03-18T21:39:14.396Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/extensionTypes/InjectDetails": { - "modified": "2019-07-03T07:34:29.652Z", + "Web/API/Document/scripts": { + "modified": "2019-03-23T23:20:37.772Z", "contributors": [ - "hellosct1" + "fscholz", + "AshfaqHossain", + "sisyphe" ] }, - "Mozilla/Add-ons/WebExtensions/API/extensionTypes/RunAt": { - "modified": "2020-10-15T21:56:53.627Z", + "Web/API/Document/scroll_event": { + "modified": "2020-11-10T19:16:07.946Z", "contributors": [ - "hellosct1" + "JNa0", + "wbamberg", + "irenesmith", + "Watilin", + "fscholz", + "timkrief", + "florentDieg" ] }, - "Mozilla/Add-ons/WebExtensions/API/find": { - "modified": "2020-10-15T21:57:44.346Z", + "Web/API/Document/selectedStyleSheetSet": { + "modified": "2019-03-18T21:39:17.582Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/find/find": { - "modified": "2020-10-15T22:00:01.623Z", + "Web/API/Document/styleSheetSets": { + "modified": "2019-03-18T21:39:14.023Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/find/highlightResults": { - "modified": "2020-10-15T22:00:02.947Z", + "Web/API/Document/title": { + "modified": "2019-03-23T22:28:27.000Z", "contributors": [ - "hellosct1" + "Hell_Carlito", + "Akio08" ] }, - "Mozilla/Add-ons/WebExtensions/API/find/removeHighlighting": { - "modified": "2020-10-15T22:00:05.741Z", + "Web/API/Document/tooltipNode": { + "modified": "2019-03-18T21:39:13.843Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history": { - "modified": "2020-10-15T21:57:45.044Z", + "Web/API/Document/touchend_event": { + "modified": "2019-04-30T14:08:32.474Z", "contributors": [ - "hellosct1" + "wbamberg", + "irenesmith", + "fscholz", + "alcalyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/HistoryItem": { - "modified": "2020-10-15T22:06:28.558Z", + "Web/API/Document/transitionend_event": { + "modified": "2020-10-15T22:23:39.293Z", "contributors": [ - "hellosct1" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/TransitionType": { - "modified": "2020-10-15T22:06:33.903Z", + "Web/API/Document/visibilityState": { + "modified": "2019-03-18T21:39:28.477Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/VisitItem": { - "modified": "2020-10-15T22:06:33.995Z", + "Web/API/Document/width": { + "modified": "2019-03-23T22:07:26.300Z", "contributors": [ - "hellosct1" + "ap369" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/addUrl": { - "modified": "2020-10-15T22:06:37.057Z", + "Web/API/Document/write": { + "modified": "2019-03-23T23:45:34.301Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "jsx", + "Delapouite", + "Mgjbot", + "BenoitL", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/deleteAll": { - "modified": "2020-10-15T22:06:35.323Z", + "Web/API/Document/writeln": { + "modified": "2020-11-11T07:37:30.795Z", "contributors": [ - "hellosct1" + "JNa0", + "cabalpit" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/deleteRange": { - "modified": "2020-10-15T22:06:35.709Z", + "Web/API/Document/xmlEncoding": { + "modified": "2019-03-18T21:39:14.209Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/deleteUrl": { - "modified": "2020-10-15T22:06:34.956Z", + "Web/API/Document/xmlVersion": { + "modified": "2019-03-18T21:39:27.536Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/getVisits": { - "modified": "2020-10-15T22:06:37.073Z", + "Web/API/DocumentFragment": { + "modified": "2020-10-15T21:52:43.417Z", "contributors": [ - "hellosct1" + "loella16", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/onTitleChanged": { - "modified": "2020-10-15T22:06:36.096Z", + "Web/API/DocumentFragment/DocumentFragment": { + "modified": "2020-10-15T22:02:35.964Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/onVisitRemoved": { - "modified": "2020-10-15T22:06:35.263Z", + "Web/API/DocumentFragment/querySelector": { + "modified": "2020-10-15T22:02:37.385Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/onVisited": { - "modified": "2020-10-15T22:06:10.233Z", + "Web/API/DocumentFragment/querySelectorAll": { + "modified": "2020-10-15T22:02:36.843Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/history/search": { - "modified": "2020-10-15T22:06:37.603Z", + "Web/API/DocumentOrShadowRoot": { + "modified": "2020-10-15T22:25:01.411Z", "contributors": [ - "hellosct1" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n": { - "modified": "2020-10-15T21:57:44.314Z", + "Web/API/DocumentOrShadowRoot/elementsFromPoint": { + "modified": "2020-10-15T22:25:00.754Z", "contributors": [ - "tristantheb", - "hellosct1", "SphinxKnight", - "rlouvat" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/i18n/LanguageCode": { - "modified": "2020-10-15T22:04:59.009Z", - "contributors": [ - "hellosct1" + "RolandGautier" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n/Locale-Specific_Message_reference": { - "modified": "2019-07-03T07:42:45.286Z", + "Web/API/DocumentTouch": { + "modified": "2019-03-23T22:50:40.193Z", "contributors": [ - "hellosct1" + "loella16", + "Hell_Carlito", + "enayfuos" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage": { - "modified": "2020-10-15T22:04:59.961Z", + "Web/API/DocumentType": { + "modified": "2020-04-26T15:13:01.231Z", "contributors": [ - "hellosct1", - "TimotheAlbouy" + "adtrevor", + "loella16", + "SphinxKnight", + "Hell_Carlito" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages": { - "modified": "2020-10-15T22:04:59.973Z", + "Web/API/Document_Object_Model": { + "modified": "2019-03-24T00:04:14.830Z", "contributors": [ - "hellosct1" + "loella16", + "Dralyab", + "SphinxKnight", + "jmh", + "robin850", + "teoli", + "damien.flament", + "BenoitL", + "Mgjbot", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n/getMessage": { - "modified": "2020-10-15T22:05:02.362Z", + "Web/API/Document_Object_Model/Introduction": { + "modified": "2020-10-18T13:14:40.506Z", "contributors": [ - "regseb", - "hellosct1" + "Lolo", + "diassynthesis", + "loella16", + "kekbait", + "SphinxKnight", + "yasakura_", + "teoli", + "khalid32", + "BenoitL", + "Mgjbot", + "Takenbot", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage": { - "modified": "2020-10-15T22:05:00.805Z", + "Web/API/Document_Object_Model/Whitespace": { + "modified": "2020-01-30T13:20:28.299Z", "contributors": [ - "hellosct1" + "chrisdavidmills", + "loella16", + "ethertank", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/identity": { - "modified": "2020-10-15T21:57:44.574Z", + "Web/API/DoubleRange": { + "modified": "2020-11-11T19:01:25.656Z", "contributors": [ - "hellosct1" + "JNa0", + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/API/identity/getRedirectURL": { - "modified": "2020-10-15T22:04:47.574Z", + "Web/API/Element": { + "modified": "2020-11-10T21:11:37.745Z", "contributors": [ - "hellosct1" + "JNa0", + "NacimHarfouche", + "fscholz", + "loella16", + "teoli", + "soumya", + "Delapouite", + "Julien.stuby", + "BenoitL", + "Mgjbot", + "Fredchat", + "Sam.bree", + "Takenbot", + "GT", + "Anonymous" ] }, - "Mozilla/Add-ons/WebExtensions/API/identity/launchWebAuthFlow": { - "modified": "2020-10-15T22:04:47.997Z", + "Web/API/Element/animate": { + "modified": "2019-03-23T22:28:26.628Z", "contributors": [ - "hellosct1" + "gharel", + "HereComesJuju" ] }, - "Mozilla/Add-ons/WebExtensions/API/idle": { - "modified": "2020-10-15T21:57:44.432Z", + "Web/API/Element/attachShadow": { + "modified": "2020-11-16T08:31:28.051Z", "contributors": [ - "hellosct1" + "mherchy", + "linsolas" ] }, - "Mozilla/Add-ons/WebExtensions/API/idle/IdleState": { - "modified": "2020-10-15T21:58:03.267Z", + "Web/API/Element/attributes": { + "modified": "2020-10-15T21:18:22.728Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "senshu", + "Mgjbot", + "Takenbot", + "BenoitL", + "GT" ] }, - "Mozilla/Add-ons/WebExtensions/API/idle/onStateChanged": { - "modified": "2020-10-15T21:58:03.496Z", + "Web/API/Element/classList": { + "modified": "2020-10-15T21:22:02.156Z", "contributors": [ - "hellosct1" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/idle/queryState": { - "modified": "2020-10-15T21:58:02.830Z", + "tristantheb", + "JLuc", + "sir-kain", + "loella16", + "Twidi", + "lyrixx", + "edspeedy", + "DaScritch", + "P45QU10U", + "fscholz", + "teoli", + "khalid32", + "Delapouite", + "juleschz" + ] + }, + "Web/API/Element/className": { + "modified": "2020-10-15T21:09:39.687Z", "contributors": [ - "hellosct1", - "icefire" + "tristantheb", + "loella16", + "arthurlacoste", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "dextra", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/idle/setDetectionInterval": { - "modified": "2020-10-15T21:58:02.847Z", + "Web/API/Element/click_event": { + "modified": "2020-10-15T21:50:40.431Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "irenesmith", + "necraidan", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/management": { - "modified": "2020-10-15T21:56:55.314Z", + "Web/API/Element/clientHeight": { + "modified": "2019-03-23T23:43:32.086Z", "contributors": [ - "hellosct1", - "wbamberg" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "Takenbot", + "BenoitL", + "Peter1789", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/ExtensionInfo": { - "modified": "2020-10-15T21:56:55.061Z", + "Web/API/Element/clientLeft": { + "modified": "2019-03-23T23:50:24.432Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/get": { - "modified": "2020-10-15T21:56:52.865Z", + "Web/API/Element/clientWidth": { + "modified": "2020-11-05T03:12:27.036Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "spirival", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "Takenbot", + "BenoitL", + "Peter1789" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/getAll": { - "modified": "2020-10-15T21:56:49.913Z", + "Web/API/Element/closest": { + "modified": "2020-10-15T21:39:34.749Z", "contributors": [ - "hellosct1", - "wbamberg" + "lgiraudel", + "RemyGuihard", + "BenMorel", + "loella16", + "SphinxKnight", + "gxolin", + "Teepo" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/getPermissionWarningsById": { - "modified": "2020-10-15T21:56:53.122Z", + "Web/API/Element/contextmenu_event": { + "modified": "2020-10-15T21:50:46.121Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "irenesmith", + "ctjhoa", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/getPermissionWarningsByManifest": { - "modified": "2020-10-15T21:56:54.588Z", + "Web/API/Element/currentStyle": { + "modified": "2019-03-18T21:32:08.768Z", "contributors": [ - "hellosct1", - "wbamberg" + "z1057" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/getSelf": { - "modified": "2020-10-15T21:57:02.041Z", + "Web/API/Element/dblclick_event": { + "modified": "2020-10-15T21:49:52.144Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "irenesmith", + "fscholz", + "Copen" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/install": { - "modified": "2020-10-15T22:09:55.921Z", + "Web/API/Element/getAttribute": { + "modified": "2020-11-11T08:07:56.657Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0", + "loella16", + "lehollandaisvolant", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL", + "Fredchat", + "Domif", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/onDisabled": { - "modified": "2020-10-15T21:57:10.496Z", + "Web/API/Element/getAttributeNS": { + "modified": "2020-10-15T21:15:37.517Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/onEnabled": { - "modified": "2020-10-15T21:57:09.562Z", + "Web/API/Element/getAttributeNames": { + "modified": "2019-04-17T13:08:28.913Z", "contributors": [ - "hellosct1" + "gfc", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/onInstalled": { - "modified": "2020-10-15T21:57:08.652Z", + "Web/API/Element/getAttributeNode": { + "modified": "2019-03-23T23:53:08.091Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/onUninstalled": { - "modified": "2020-10-15T21:57:08.612Z", + "Web/API/Element/getAttributeNodeNS": { + "modified": "2019-03-23T23:54:18.423Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "teoli", + "jsx", + "AshfaqHossain", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/setEnabled": { - "modified": "2020-10-15T21:57:09.341Z", + "Web/API/Element/getBoundingClientRect": { + "modified": "2020-11-18T10:29:48.861Z", "contributors": [ - "hellosct1" + "cdoublev", + "SphinxKnight", + "floribon", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Mgjbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/uninstall": { - "modified": "2020-10-15T21:56:50.746Z", + "Web/API/Element/getElementsByClassName": { + "modified": "2020-10-15T21:41:18.545Z", "contributors": [ - "hellosct1", - "wbamberg" + "tristantheb", + "polinux", + "Gibus", + "devethic" ] }, - "Mozilla/Add-ons/WebExtensions/API/management/uninstallSelf": { - "modified": "2020-10-15T21:56:55.665Z", + "Web/API/Element/getElementsByTagName": { + "modified": "2019-03-24T00:14:28.776Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "Mgjbot", + "The RedBurn", + "BenoitL", + "Fredchat", + "Mytony", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus": { - "modified": "2020-10-15T21:57:47.933Z", + "Web/API/Element/getElementsByTagNameNS": { + "modified": "2020-10-15T21:08:26.964Z", "contributors": [ - "hellosct1", - "ariasuni" + "SphinxKnight", + "hervems", + "wbamberg", + "loella16", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT": { - "modified": "2020-10-15T22:04:45.584Z", + "Web/API/Element/hasAttribute": { + "modified": "2019-03-23T23:53:10.754Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/ContextType": { - "modified": "2020-10-15T22:04:44.533Z", + "Web/API/Element/hasAttributeNS": { + "modified": "2019-03-23T23:53:18.889Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "AshfaqHossain", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/ItemType": { - "modified": "2020-10-15T22:04:44.141Z", + "Web/API/Element/hasAttributes": { + "modified": "2020-10-15T21:15:58.454Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "loella16", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/OnClickData": { - "modified": "2020-10-15T22:04:45.674Z", + "Web/API/Element/id": { + "modified": "2019-04-19T09:07:28.280Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "Mgjbot", + "Takenbot", + "BenoitL" + ] + }, + "Web/API/Element/insertAdjacentElement": { + "modified": "2020-10-15T22:01:30.731Z", + "contributors": [ + "Yukulele.", + "tym-network", + "loella16", + "gigouni" + ] + }, + "Web/API/Element/insertAdjacentHTML": { + "modified": "2020-10-15T21:21:30.158Z", + "contributors": [ + "Yukulele.", + "ocombe", + "loella16", + "TTBlist", + "fscholz", + "teoli", + "khalid32", + "JeanDavidDaviet" + ] + }, + "Web/API/Element/insertAdjacentText": { + "modified": "2020-10-15T22:02:37.949Z", + "contributors": [ + "Yukulele.", + "loella16", + "NemoNobobyPersonne" + ] + }, + "Web/API/Element/localName": { + "modified": "2019-03-18T21:38:49.396Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/matches": { + "modified": "2020-10-15T21:37:50.464Z", + "contributors": [ + "loella16", + "nbouvrette", + "Watilin", + "vava" + ] + }, + "Web/API/Element/mousedown_event": { + "modified": "2020-10-15T21:56:54.584Z", + "contributors": [ + "SphinxKnight", + "norival", + "wbamberg", + "JyTosTT", + "irenesmith", + "wgaetan", + "areltfc", + "Halkeand" + ] + }, + "Web/API/Element/mouseenter_event": { + "modified": "2020-10-15T22:26:31.978Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/API/Element/mouseleave_event": { + "modified": "2020-10-15T22:26:33.987Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/API/Element/mousemove_event": { + "modified": "2020-10-15T21:59:29.869Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "irenesmith", + "SteelCode94", + "areltfc" + ] + }, + "Web/API/Element/mouseout_event": { + "modified": "2020-10-15T21:59:51.535Z", + "contributors": [ + "nboisteault", + "SphinxKnight", + "wbamberg", + "irenesmith", + "T-Zahil", + "areltfc" + ] + }, + "Web/API/Element/mouseover_event": { + "modified": "2020-10-15T21:51:43.078Z", + "contributors": [ + "SphinxKnight", + "irenesmith", + "fscholz", + "Copen", + "necraidan" + ] + }, + "Web/API/Element/mouseup_event": { + "modified": "2020-10-15T21:59:51.425Z", + "contributors": [ + "SphinxKnight", + "wbamberg", + "irenesmith", + "areltfc" + ] + }, + "Web/API/Element/namespaceURI": { + "modified": "2019-03-18T21:38:59.961Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/outerHTML": { + "modified": "2020-02-14T07:49:22.857Z", + "contributors": [ + "khalyomede", + "loella16", + "fscholz", + "scaillerie" + ] + }, + "Web/API/Element/prefix": { + "modified": "2019-03-18T21:38:57.778Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/querySelector": { + "modified": "2019-03-23T23:09:24.946Z", + "contributors": [ + "loella16", + "fscholz", + "Ailete619" + ] + }, + "Web/API/Element/querySelectorAll": { + "modified": "2019-03-23T23:09:56.033Z", + "contributors": [ + "loella16", + "fscholz", + "kyfr59" + ] + }, + "Web/API/Element/releasePointerCapture": { + "modified": "2019-03-18T21:38:50.640Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/removeAttribute": { + "modified": "2019-03-23T23:53:07.381Z", + "contributors": [ + "sylv1", + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "Fredchat", + "BenoitL", + "Celelibi" + ] + }, + "Web/API/Element/removeAttributeNS": { + "modified": "2019-03-23T23:54:16.680Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat" + ] + }, + "Web/API/Element/removeAttributeNode": { + "modified": "2019-03-23T23:53:02.731Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "jsx", + "AshfaqHossain", + "Mgjbot", + "BenoitL", + "Fredchat", + "Celelibi" + ] + }, + "Web/API/Element/requestFullScreen": { + "modified": "2019-03-18T21:38:48.086Z", + "contributors": [ + "loella16", + "jena43" + ] + }, + "Web/API/Element/scrollHeight": { + "modified": "2020-05-06T11:11:48.539Z", "contributors": [ "regseb", - "hellosct1" + "SphinxKnight", + "fscholz", + "teoli", + "khalid32", + "Goofy", + "adrienchretien", + "Julien STUBY", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/create": { - "modified": "2020-10-15T22:04:43.381Z", + "Web/API/Element/scrollIntoView": { + "modified": "2020-10-15T21:16:44.187Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "kevin-verschaeve", + "loella16", + "palpalpalpal", + "fscholz", + "teoli", + "khalid32", + "ethertank", + "Mgjbot", + "BenoitL" + ] + }, + "Web/API/Element/scrollIntoViewIfNeeded": { + "modified": "2019-03-18T21:38:48.451Z", + "contributors": [ + "teoli", + "loella16" + ] + }, + "Web/API/Element/scrollLeft": { + "modified": "2019-03-24T00:09:03.253Z", + "contributors": [ + "solidreno", + "fscholz", + "teoli", + "khalid32", + "Julien STUBY", + "BenoitL" + ] + }, + "Web/API/Element/scrollLeftMax": { + "modified": "2019-03-23T22:24:40.413Z", + "contributors": [ + "alexandre-le-borgne" + ] + }, + "Web/API/Element/scrollTo": { + "modified": "2020-10-15T22:23:29.547Z", + "contributors": [ + "rassacnivek", + "innocenzi" + ] + }, + "Web/API/Element/scrollTop": { + "modified": "2019-03-24T00:03:08.360Z", + "contributors": [ + "fscholz", + "teoli", + "khalid32", + "Delapouite", + "Wladimir_Palant", + "Julien STUBY", + "BenoitL" + ] + }, + "Web/API/Element/scrollWidth": { + "modified": "2019-03-23T23:47:11.412Z", + "contributors": [ + "fscholz", + "teoli", + "khalid32", + "BenoitL" + ] + }, + "Web/API/Element/select_event": { + "modified": "2019-03-29T11:42:06.216Z", + "contributors": [ + "irenesmith", + "fscholz", + "NemoNobobyPersonne" + ] + }, + "Web/API/Element/setAttribute": { + "modified": "2019-03-23T23:53:11.574Z", + "contributors": [ + "SphinxKnight", + "Linkus", + "loella16", + "teoli", + "julienw", + "fscholz", + "khalid32", + "Mgjbot", + "BenoitL", + "Takenbot" + ] + }, + "Web/API/Element/setAttributeNS": { + "modified": "2019-03-23T23:53:03.972Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat" + ] + }, + "Web/API/Element/setAttributeNode": { + "modified": "2019-03-23T23:53:12.251Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Celelibi" + ] + }, + "Web/API/Element/setAttributeNodeNS": { + "modified": "2019-03-23T23:54:18.084Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat" + ] + }, + "Web/API/Element/setCapture": { + "modified": "2019-03-18T21:39:21.819Z", + "contributors": [ + "wbamberg", + "loella16" + ] + }, + "Web/API/Element/setPointerCapture": { + "modified": "2019-03-18T21:38:49.004Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/tabStop": { + "modified": "2019-03-18T21:38:50.214Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Element/tagName": { + "modified": "2019-03-23T23:53:29.906Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL" + ] + }, + "Web/API/ElementTraversal": { + "modified": "2019-03-18T21:39:02.443Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Encoding_API": { + "modified": "2020-10-15T22:21:39.244Z", + "contributors": [ + "Torzivalds" + ] + }, + "Web/API/ErrorEvent": { + "modified": "2020-10-15T22:26:44.334Z", + "contributors": [ + "Eliastik" + ] + }, + "Web/API/Event": { + "modified": "2020-10-15T21:17:13.702Z", + "contributors": [ + "loella16", + "hs0ucy", + "teoli", + "jsx", + "AshfaqHossain", + "Mgjbot", + "BenoitL", + "Fredchat", + "Takenbot" + ] + }, + "Web/API/Event/Event": { + "modified": "2020-10-15T22:02:32.493Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Event/bubbles": { + "modified": "2020-10-15T21:49:52.202Z", + "contributors": [ + "loella16", + "Kalwyn" + ] + }, + "Web/API/Event/cancelBubble": { + "modified": "2020-10-15T22:02:41.801Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Event/cancelable": { + "modified": "2020-10-15T21:49:52.647Z", + "contributors": [ + "loella16", + "Kalwyn" + ] + }, + "Web/API/Event/currentTarget": { + "modified": "2020-10-22T12:52:32.833Z", + "contributors": [ + "funguy25637", + "SphinxKnight", + "programgamer-real", + "loella16", + "Kalwyn", + "Nothus", + "P45QU10U" + ] + }, + "Web/API/Event/defaultPrevented": { + "modified": "2020-10-15T21:24:14.815Z", + "contributors": [ + "loella16", + "robin850", + "fscholz", + "AshfaqHossain", + "Delapouite" + ] + }, + "Web/API/Event/eventPhase": { + "modified": "2020-10-15T21:50:01.057Z", + "contributors": [ + "loella16", + "Kalwyn" + ] + }, + "Web/API/Event/explicitOriginalTarget": { + "modified": "2019-03-23T22:52:51.091Z", + "contributors": [ + "SphinxKnight", + "Hell_Carlito" + ] + }, + "Web/API/Event/initEvent": { + "modified": "2020-10-15T21:08:43.295Z", + "contributors": [ + "loella16", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "Mgjbot", + "BenoitL" + ] + }, + "Web/API/Event/isTrusted": { + "modified": "2019-03-23T22:25:09.425Z", + "contributors": [ + "HugoCareil", + "mickro", + "Kalwyn" + ] + }, + "Web/API/Event/originalTarget": { + "modified": "2020-10-15T22:02:43.739Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Event/preventDefault": { + "modified": "2020-10-15T21:24:03.795Z", + "contributors": [ + "watsab", + "loella16", + "Hell_Carlito", + "robin850", + "fscholz", + "khalid32", + "Goofy", + "Delapouite", + "flo5589" + ] + }, + "Web/API/Event/returnValue": { + "modified": "2020-10-15T22:02:41.674Z", + "contributors": [ + "loella16" + ] + }, + "Web/API/Event/srcElement": { + "modified": "2020-10-15T21:50:04.182Z", + "contributors": [ + "loella16", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/createProperties": { - "modified": "2020-10-15T22:30:24.941Z", + "Web/API/Event/stopImmediatePropagation": { + "modified": "2020-10-15T21:50:10.053Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "ebear", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement": { - "modified": "2020-10-15T22:08:42.353Z", + "Web/API/Event/stopPropagation": { + "modified": "2020-10-15T21:21:29.573Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "teoli", + "robin850", + "fscholz", + "matthieusieben", + "Dgellow" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext()": { - "modified": "2019-07-03T07:58:27.877Z", + "Web/API/Event/target": { + "modified": "2020-10-15T21:33:55.755Z", "contributors": [ - "hellosct1" + "loella16", + "Kalwyn", + "P45QU10U" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/onClicked": { - "modified": "2020-10-15T22:04:44.931Z", + "Web/API/Event/timeStamp": { + "modified": "2020-10-15T21:50:06.610Z", "contributors": [ - "hellosct1" + "loella16", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/onHidden": { - "modified": "2020-10-15T22:04:44.507Z", + "Web/API/Event/type": { + "modified": "2020-10-15T21:50:06.134Z", "contributors": [ - "hellosct1" + "loella16", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/onShown": { - "modified": "2020-10-15T22:04:45.669Z", + "Web/API/EventListener": { + "modified": "2019-03-23T22:25:52.637Z", "contributors": [ - "hellosct1" + "loella16", + "Copen" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/overrideContext": { - "modified": "2019-10-13T09:44:24.526Z", + "Web/API/EventSource": { + "modified": "2020-08-20T16:36:34.612Z", "contributors": [ - "hellosct1", - "ariasuni" + "sylvain_floury", + "SphinxKnight", + "Nothus" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/refresh": { - "modified": "2020-10-15T22:04:44.190Z", + "Web/API/EventSource/close": { + "modified": "2019-03-23T22:04:48.136Z", "contributors": [ - "hellosct1" + "Plotisateur" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/remove": { - "modified": "2020-10-15T22:04:45.195Z", + "Web/API/EventSource/onopen": { + "modified": "2020-10-15T22:17:18.152Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "nmerinian" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/removeAll": { - "modified": "2020-10-15T22:04:46.038Z", + "Web/API/EventTarget": { + "modified": "2020-10-15T21:33:04.540Z", "contributors": [ - "hellosct1" + "tomderudder", + "abvll", + "SphinxKnight", + "Gibus", + "Hell_Carlito", + "Iwagg", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/API/menus/update": { - "modified": "2020-10-15T22:04:46.899Z", + "Web/API/EventTarget/EventTarget": { + "modified": "2020-10-15T22:02:43.043Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications": { - "modified": "2020-10-15T21:57:45.083Z", + "Web/API/EventTarget/addEventListener": { + "modified": "2020-10-16T08:15:40.817Z", "contributors": [ - "hellosct1", + "vvvaleee", + "NemoNobobyPersonne", + "SphinxKnight", + "Askrenteam", + "samuelClo", + "erwanjugand", + "loella16", + "cedeber", "wbamberg", - "lp177" + "fscholz", + "teoli", + "Hasilt", + "Pragmateek", + "Delapouite", + "olibre", + "alexnormand", + "Piopier", + "Mgjbot", + "CNeo", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/NotificationOptions": { - "modified": "2020-10-15T21:58:04.461Z", + "Web/API/EventTarget/dispatchEvent": { + "modified": "2020-10-15T21:15:24.071Z", "contributors": [ - "hellosct1", + "loella16", + "Yvain", + "fscholz", + "khalid32", + "teoli", + "Yukulele", + "Mgjbot", + "BenoitL", + "Fredchat" + ] + }, + "Web/API/EventTarget/removeEventListener": { + "modified": "2020-10-15T21:15:05.213Z", + "contributors": [ + "SphinxKnight", + "guillaumegarcia13", + "loella16", "wbamberg", - "Bat41" + "nclsndr", + "fscholz", + "teoli", + "AshfaqHossain", + "Pkjmr", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/TemplateType": { - "modified": "2020-10-15T22:04:53.358Z", + "Web/API/ExtendableEvent": { + "modified": "2019-03-23T22:36:58.080Z", "contributors": [ - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/clear": { - "modified": "2020-10-15T22:04:47.769Z", + "Web/API/ExtendableEvent/ExtendableEvent": { + "modified": "2019-03-23T22:36:32.000Z", "contributors": [ - "hellosct1", - "wbamberg" + "Goofy", + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/create": { - "modified": "2020-10-15T22:04:47.399Z", + "Web/API/ExtendableMessageEvent": { + "modified": "2019-03-23T22:36:23.615Z", "contributors": [ - "ariasuni", - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/getAll": { - "modified": "2020-10-15T22:04:53.186Z", + "Web/API/ExtendableMessageEvent/ExtendableMessageEvent": { + "modified": "2019-03-23T22:35:53.292Z", "contributors": [ - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/onButtonClicked": { - "modified": "2020-10-15T22:04:47.252Z", + "Web/API/ExtendableMessageEvent/data": { + "modified": "2019-03-23T22:34:19.930Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/onClicked": { - "modified": "2020-10-15T22:04:53.553Z", + "Web/API/ExtendableMessageEvent/lastEventId": { + "modified": "2019-03-18T21:15:10.720Z", "contributors": [ - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/onClosed": { - "modified": "2020-10-15T22:04:54.823Z", + "Web/API/ExtendableMessageEvent/origin": { + "modified": "2019-03-23T22:30:09.594Z", "contributors": [ - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/onShown": { - "modified": "2020-10-15T22:04:55.282Z", + "Web/API/ExtendableMessageEvent/ports": { + "modified": "2019-03-23T22:30:10.559Z", "contributors": [ - "hellosct1", - "wbamberg" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/notifications/update": { - "modified": "2020-10-15T22:04:47.104Z", + "Web/API/FeaturePolicy": { + "modified": "2020-10-31T09:28:54.428Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox": { - "modified": "2020-10-15T21:57:45.193Z", + "Web/API/FeaturePolicy/allowedFeatures": { + "modified": "2020-11-05T15:31:32.647Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/OnInputEnteredDisposition": { - "modified": "2020-10-15T22:04:54.500Z", + "Web/API/FeaturePolicy/allowsFeature": { + "modified": "2020-11-05T15:45:40.562Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/SuggestResult": { - "modified": "2020-10-15T22:04:54.402Z", + "Web/API/FeaturePolicy/features": { + "modified": "2020-11-05T15:35:08.623Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputCancelled": { - "modified": "2020-10-15T22:04:56.337Z", + "Web/API/FeaturePolicy/getAllowlistForFeature": { + "modified": "2020-11-05T15:30:12.248Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputChanged": { - "modified": "2020-10-15T22:04:56.335Z", + "Web/API/FederatedCredential": { + "modified": "2020-10-15T22:15:42.146Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputEntered": { - "modified": "2020-10-15T22:04:55.151Z", + "Web/API/FederatedCredential/FederatedCredential": { + "modified": "2020-10-15T22:15:43.153Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/onInputStarted": { - "modified": "2020-10-15T22:04:56.742Z", + "Web/API/FederatedCredential/provider": { + "modified": "2020-10-15T22:15:43.967Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/API/omnibox/setDefaultSuggestion": { - "modified": "2020-10-15T22:04:57.902Z", + "Web/API/FetchEvent": { + "modified": "2019-03-23T22:37:05.029Z", "contributors": [ - "hellosct1", - "wbamberg" + "NuclearPony" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction": { - "modified": "2020-10-15T21:57:40.850Z", + "Web/API/Fetch_API": { + "modified": "2020-10-15T21:42:27.599Z", "contributors": [ - "hellosct1", - "wbamberg" + "codingk8", + "jonathan.cregut", + "Graziellah", + "Elianel", + "blr21560", + "jean-pierre.gay" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/ImageDataType": { - "modified": "2020-10-15T21:57:40.386Z", + "Web/API/Fetch_API/Basic_concepts": { + "modified": "2019-07-08T10:32:12.030Z", "contributors": [ - "hellosct1", - "wbamberg" + "ThCarrere", + "BabaDelNorte" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/getPopup": { - "modified": "2020-10-15T22:00:13.778Z", + "Web/API/Fetch_API/Using_Fetch": { + "modified": "2020-10-15T21:44:53.941Z", "contributors": [ - "hellosct1", - "wbamberg" + "smeden-lod", + "chrisdavidmills", + "ylerjen", + "thibaultboursier", + "Krap", + "laem", + "chaBiselx", + "elie_michel", + "AlainGourves", + "Xstoudi", + "P45QU10U", + "JeffD" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/getTitle": { - "modified": "2020-10-15T22:00:11.505Z", + "Web/API/File": { + "modified": "2020-10-15T21:10:58.299Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin", + "wbamberg", + "nop", + "frassinier", + "mireero", + "teoli", + "tregagnon", + "mekal" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/hide": { - "modified": "2020-10-15T22:00:11.157Z", + "Web/API/File/Using_files_from_web_applications": { + "modified": "2019-08-27T03:14:59.087Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "chrisdavidmills", + "Copen", + "jmh", + "Mr21", + "vava", + "m2c", + "Goofy", + "LoeWzukW", + "jean_pierre" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/isShown": { - "modified": "2020-10-15T22:04:36.368Z", + "Web/API/File/fileName": { + "modified": "2019-03-18T21:38:44.194Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/onClicked": { - "modified": "2020-10-15T22:00:11.289Z", + "Web/API/File/fileSize": { + "modified": "2019-03-18T21:38:36.545Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/openPopup": { - "modified": "2020-10-15T22:00:13.634Z", + "Web/API/FileList": { + "modified": "2020-10-15T21:10:58.823Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "Cid", + "teoli", + "mekal", + "Goofy", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/setIcon": { - "modified": "2020-10-15T22:00:14.155Z", + "Web/API/FileReader": { + "modified": "2019-06-10T09:09:17.422Z", "contributors": [ - "hellosct1", - "wbamberg" + "jerominejournet", + "SphinxKnight", + "EmmanuelBeziat", + "NeptuneK", + "romainlebreton", + "teoli", + "fabien", + "Laowai", + "emersion", + "mekal", + "Jack_Duthen", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/setPopup": { - "modified": "2020-10-15T22:00:16.798Z", + "Web/API/FileReader/FileReader": { + "modified": "2019-12-05T20:52:27.264Z", "contributors": [ - "hellosct1", - "wbamberg" + "Hessabra" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/setTitle": { - "modified": "2020-10-15T22:00:06.505Z", + "Web/API/FileReader/readAsArrayBuffer": { + "modified": "2020-10-15T22:00:47.285Z", "contributors": [ - "hellosct1", - "wbamberg" + "thebrave", + "roptch", + "loella16", + "notnope" ] }, - "Mozilla/Add-ons/WebExtensions/API/pageAction/show": { - "modified": "2020-10-15T22:00:05.544Z", + "Web/API/FileReader/readAsBinaryString": { + "modified": "2020-10-15T22:20:45.031Z", "contributors": [ - "hellosct1", - "wbamberg" + "thebrave" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions": { - "modified": "2020-10-15T21:57:44.451Z", + "Web/API/FileReader/readAsDataURL": { + "modified": "2019-03-23T22:14:23.679Z", "contributors": [ - "hellosct1", - "wbamberg" + "Wintersunshine-Do" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/Permissions": { - "modified": "2020-10-15T21:57:56.351Z", + "Web/API/FileReader/readAsText": { + "modified": "2019-03-18T21:45:42.885Z", "contributors": [ - "hellosct1", - "wbamberg" + "Blipz", + "jeanpul" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/contains": { - "modified": "2020-10-15T21:57:57.373Z", + "Web/API/FileRequest": { + "modified": "2019-03-18T21:38:32.972Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/getAll": { - "modified": "2020-10-15T21:58:01.535Z", + "Web/API/FileRequest/lockedFile": { + "modified": "2019-03-18T21:38:29.049Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/onAdded": { - "modified": "2020-10-15T21:57:56.950Z", + "Web/API/FileRequest/onprogress": { + "modified": "2019-03-18T21:38:33.597Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/onRemoved": { - "modified": "2020-10-15T21:57:56.881Z", + "Web/API/FocusEvent": { + "modified": "2020-10-15T21:50:08.822Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/remove": { - "modified": "2020-10-15T21:58:02.493Z", + "Web/API/Force_Touch_events": { + "modified": "2019-03-18T21:38:38.023Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/permissions/request": { - "modified": "2020-10-15T21:58:03.038Z", + "Web/API/FormData": { + "modified": "2020-10-15T21:21:44.510Z", "contributors": [ - "hellosct1", - "wbamberg" + "tristantheb", + "dhovart", + "WSH", + "teoli", + "jdvauguet", + "maxpain2011" ] }, - "Mozilla/Add-ons/WebExtensions/API/pkcs11": { - "modified": "2020-10-15T21:58:39.173Z", + "Web/API/FormData/FormData": { + "modified": "2020-10-15T22:10:44.093Z", "contributors": [ - "hellosct1", - "Jeremie" + "tristantheb", + "SphinxKnight", + "Pandazaur", + "ThreadElric" ] }, - "Mozilla/Add-ons/WebExtensions/API/pkcs11/getModuleSlots": { - "modified": "2020-10-15T22:00:14.823Z", + "Web/API/FormData/append": { + "modified": "2020-10-15T22:10:52.044Z", "contributors": [ - "hellosct1", - "wbamberg" + "tristantheb", + "ThreadElric", + "cyppan" ] }, - "Mozilla/Add-ons/WebExtensions/API/pkcs11/installModule": { - "modified": "2020-10-15T22:00:16.239Z", + "Web/API/FormData/delete": { + "modified": "2020-10-15T22:29:17.750Z", "contributors": [ - "hellosct1" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/pkcs11/isModuleInstalled": { - "modified": "2020-10-15T22:00:16.486Z", + "Web/API/FormData/entries": { + "modified": "2020-10-15T21:55:57.814Z", "contributors": [ - "hellosct1" + "tristantheb", + "Alexandre-cibot" ] }, - "Mozilla/Add-ons/WebExtensions/API/pkcs11/uninstallModule": { - "modified": "2020-10-15T22:00:13.525Z", + "Web/API/FormData/get": { + "modified": "2020-10-15T22:29:19.506Z", "contributors": [ - "hellosct1" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/privacy": { - "modified": "2020-10-15T21:57:20.922Z", + "Web/API/FormData/getAll": { + "modified": "2020-10-15T22:29:17.809Z", "contributors": [ - "hellosct1", - "JeffD" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/privacy/network": { - "modified": "2020-10-15T21:57:19.949Z", + "Web/API/FormData/has": { + "modified": "2020-10-15T22:29:23.241Z", "contributors": [ - "hellosct1", - "JeffD" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/privacy/services": { - "modified": "2020-10-15T21:57:19.393Z", + "Web/API/FormData/keys": { + "modified": "2020-10-15T22:29:23.766Z", "contributors": [ - "hellosct1", - "JeffD" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/privacy/websites": { - "modified": "2020-10-15T21:57:19.498Z", + "Web/API/FormData/set": { + "modified": "2020-10-15T22:29:23.778Z", "contributors": [ - "hellosct1", - "wbamberg" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy": { - "modified": "2020-10-15T21:57:43.079Z", + "Web/API/FormData/values": { + "modified": "2020-10-15T22:29:22.795Z", "contributors": [ - "hellosct1", - "wbamberg", - "FlorianHatat" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/ProxyInfo": { - "modified": "2020-10-15T22:04:57.639Z", + "Web/API/GainNode": { + "modified": "2019-03-23T23:28:24.109Z", "contributors": [ - "hellosct1", - "wbamberg" + "marie-ototoi", + "fscholz", + "teoli", + "vava", + "tregagnon", + "Delapouite", + "dexterneo" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/RequestDetails": { - "modified": "2020-10-15T22:05:00.086Z", + "Web/API/Gamepad": { + "modified": "2020-10-15T21:50:09.762Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "ea1000", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/onProxyError": { - "modified": "2020-10-15T22:00:36.758Z", + "Web/API/Gamepad_API": { + "modified": "2020-10-15T22:22:14.027Z", "contributors": [ - "hellosct1", - "wbamberg" + "jogemu" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/onRequest": { - "modified": "2020-10-15T22:04:59.176Z", + "Web/API/Geolocation": { + "modified": "2019-03-23T22:12:18.756Z", "contributors": [ - "hellosct1" + "FranckGrosDubois" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/register": { - "modified": "2020-10-15T22:02:15.003Z", + "Web/API/Geolocation/clearWatch": { + "modified": "2019-03-23T22:12:27.261Z", "contributors": [ - "hellosct1", - "wbamberg" + "FranckGrosDubois" ] }, - "Mozilla/Add-ons/WebExtensions/API/proxy/unregister": { - "modified": "2020-10-15T22:02:18.835Z", + "Web/API/Geolocation/getCurrentPosition": { + "modified": "2020-10-15T21:54:12.372Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "Nathan_Mercieca", + "FranckGrosDubois" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime": { - "modified": "2020-10-15T21:57:48.381Z", + "Web/API/Geolocation/watchPosition": { + "modified": "2019-03-23T22:12:20.299Z", "contributors": [ - "hellosct1" + "FranckGrosDubois" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/MessageSender": { - "modified": "2020-10-15T22:01:08.573Z", + "Web/API/GeolocationCoordinates": { + "modified": "2019-12-10T09:34:37.988Z", "contributors": [ - "hellosct1" + "chrisdavidmills", + "DylanGauthier" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/OnInstalledReason": { - "modified": "2020-10-15T22:01:07.997Z", + "Web/API/GeolocationPosition": { + "modified": "2020-10-15T22:26:46.525Z", "contributors": [ - "hellosct1" + "Voulto", + "chrisdavidmills" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/OnRestartRequiredReason": { - "modified": "2020-10-15T22:01:08.309Z", + "Web/API/GeolocationPosition/timestamp": { + "modified": "2020-10-15T22:26:47.312Z", "contributors": [ - "hellosct1" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformArch": { - "modified": "2020-10-15T22:01:06.690Z", + "Web/API/GeolocationPositionError": { + "modified": "2020-10-15T22:26:48.406Z", "contributors": [ - "hellosct1" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformInfo": { - "modified": "2020-10-15T22:01:04.459Z", + "Web/API/Geolocation_API": { + "modified": "2020-10-15T21:20:47.889Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "joellord", + "lotfire24", + "edouard", + "fluxine", + "Nigel_Sheldon" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformNaclArch": { - "modified": "2020-10-15T22:01:08.937Z", + "Web/API/GestureEvent": { + "modified": "2019-03-18T21:38:40.642Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/PlatformOs": { - "modified": "2020-10-15T22:00:21.839Z", + "Web/API/GlobalEventHandlers": { + "modified": "2019-03-23T23:01:24.395Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/Port": { - "modified": "2020-10-15T22:00:25.981Z", + "Web/API/GlobalEventHandlers/onabort": { + "modified": "2019-03-23T22:29:18.151Z", "contributors": [ - "hellosct1" + "NemoNobobyPersonne", + "Dwaaren" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/RequestUpdateCheckStatus": { - "modified": "2020-10-15T22:01:06.562Z", + "Web/API/GlobalEventHandlers/onauxclick": { + "modified": "2020-10-15T22:33:47.986Z", "contributors": [ - "hellosct1" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/connect": { - "modified": "2020-10-15T21:59:39.250Z", + "Web/API/GlobalEventHandlers/onblur": { + "modified": "2019-03-23T23:46:41.843Z", "contributors": [ - "hellosct1", - "Ostefanini" + "OpenStark", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Pitoutompoilu" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/connectNative": { - "modified": "2020-10-15T22:01:10.130Z", + "Web/API/GlobalEventHandlers/onchange": { + "modified": "2019-03-23T23:47:11.218Z", "contributors": [ - "hellosct1", - "wbamberg", - "Crikxi" + "fscholz", + "teoli", + "AshfaqHossain", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getBackgroundPage": { - "modified": "2020-10-15T22:00:25.503Z", + "Web/API/GlobalEventHandlers/onclick": { + "modified": "2020-03-06T22:16:53.219Z", "contributors": [ - "hellosct1", - "wbamberg" + "noelmace", + "sudwebdesign", + "williamdes", + "Bpruneau", + "louity", + "Daimanu06", + "fscholz", + "teoli", + "jsx", + "Priam", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getBrowserInfo": { - "modified": "2020-10-15T22:01:08.613Z", + "Web/API/GlobalEventHandlers/onclose": { + "modified": "2019-03-23T22:45:51.255Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "smumu" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getManifest": { - "modified": "2020-10-15T22:01:04.454Z", + "Web/API/GlobalEventHandlers/ondblclick": { + "modified": "2019-03-23T23:46:40.744Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Pitoutompoilu" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getPackageDirectoryEntry": { - "modified": "2020-10-15T22:01:15.366Z", + "Web/API/GlobalEventHandlers/onerror": { + "modified": "2019-03-23T22:47:31.401Z", "contributors": [ - "hellosct1" + "NemoNobobyPersonne", + "Hell_Carlito", + "FGM", + "ylerjen" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getPlatformInfo": { - "modified": "2020-10-15T22:01:09.499Z", + "Web/API/GlobalEventHandlers/onfocus": { + "modified": "2019-03-23T23:47:18.451Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "AshfaqHossain", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/getURL": { - "modified": "2020-10-15T22:00:25.329Z", + "Web/API/GlobalEventHandlers/ongotpointercapture": { + "modified": "2020-10-15T22:16:22.004Z", "contributors": [ - "hellosct1" + "fmartin5" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/id": { - "modified": "2020-10-15T22:00:23.562Z", + "Web/API/GlobalEventHandlers/onkeydown": { + "modified": "2019-03-24T00:01:53.937Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "AshfaqHossain", + "Julien.stuby", + "BenoitL", + "Mgjbot", + "Pitoutompoilu" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/lastError": { - "modified": "2020-10-15T22:00:25.937Z", + "Web/API/GlobalEventHandlers/onkeypress": { + "modified": "2019-03-24T00:01:54.246Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "AshfaqHossain", + "Julien.stuby", + "BenoitL", + "Pitoutompoilu" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onBrowserUpdateAvailable": { - "modified": "2020-10-15T22:01:10.633Z", + "Web/API/GlobalEventHandlers/onkeyup": { + "modified": "2019-03-24T00:01:52.086Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "Julien.stuby", + "Pitoutompoilu", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onConnect": { - "modified": "2020-10-15T21:58:16.219Z", + "Web/API/GlobalEventHandlers/onload": { + "modified": "2019-03-23T23:45:30.027Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onConnectExternal": { - "modified": "2020-10-15T22:00:44.948Z", + "Web/API/GlobalEventHandlers/onloadend": { + "modified": "2019-03-18T21:35:41.854Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onInstalled": { - "modified": "2020-10-15T22:01:07.159Z", + "Web/API/GlobalEventHandlers/onloadstart": { + "modified": "2020-10-15T22:04:38.335Z", "contributors": [ - "hellosct1" + "fscholz", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onMessage": { - "modified": "2020-10-15T22:00:46.143Z", + "Web/API/GlobalEventHandlers/onmousedown": { + "modified": "2019-03-23T23:47:18.721Z", "contributors": [ - "hellosct1", - "Watilin", - "ariasuni", - "Nothus" + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onMessageExternal": { - "modified": "2020-10-15T22:01:07.864Z", + "Web/API/GlobalEventHandlers/onmousemove": { + "modified": "2019-04-24T11:41:27.577Z", "contributors": [ - "hellosct1" + "JyTosTT", + "fscholz", + "teoli", + "Hasilt", + "Priam", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onRestartRequired": { - "modified": "2020-10-15T22:01:08.100Z", + "Web/API/GlobalEventHandlers/onmouseout": { + "modified": "2019-03-23T23:47:15.838Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onStartup": { - "modified": "2020-10-15T22:01:10.619Z", + "Web/API/GlobalEventHandlers/onmouseover": { + "modified": "2019-03-23T23:47:22.003Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "mimzi_fahia", + "Mgjbot", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onSuspend": { - "modified": "2020-10-15T22:01:12.137Z", + "Web/API/GlobalEventHandlers/onmouseup": { + "modified": "2019-03-23T23:47:26.350Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "mimzi_fahia", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onSuspendCanceled": { - "modified": "2020-10-15T22:01:15.709Z", + "Web/API/GlobalEventHandlers/onreset": { + "modified": "2019-03-18T21:35:42.230Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/onUpdateAvailable": { - "modified": "2020-10-15T22:01:09.956Z", + "Web/API/GlobalEventHandlers/onresize": { + "modified": "2019-03-23T23:47:25.748Z", "contributors": [ - "hellosct1" + "ArthurMaurer", + "fscholz", + "teoli", + "khalid32", + "Chbok" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage": { - "modified": "2020-10-15T22:01:05.192Z", + "Web/API/GlobalEventHandlers/onscroll": { + "modified": "2019-03-23T23:49:06.629Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/reload": { - "modified": "2020-10-15T22:00:19.270Z", + "Web/API/GlobalEventHandlers/onselect": { + "modified": "2020-11-16T16:15:42.515Z", "contributors": [ - "hellosct1" + "NemoNobobyPersonne", + "s6mon" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/requestUpdateCheck": { - "modified": "2020-10-15T22:01:09.435Z", + "Web/API/HTMLBRElement": { + "modified": "2019-03-23T23:30:24.531Z", "contributors": [ - "hellosct1" + "teoli", + "khalid32", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage": { - "modified": "2020-10-15T22:00:52.245Z", + "Web/API/HTMLBaseElement": { + "modified": "2019-11-23T18:10:52.263Z", "contributors": [ - "hellosct1" + "regseb", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/sendNativeMessage": { - "modified": "2020-10-15T22:01:11.077Z", + "Web/API/HTMLBaseFontElement": { + "modified": "2020-10-15T22:35:14.285Z", "contributors": [ - "hellosct1" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/API/runtime/setUninstallURL": { - "modified": "2020-10-15T22:00:25.239Z", + "Web/API/HTMLBodyElement": { + "modified": "2019-04-19T13:59:15.144Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "jmh" ] }, - "Mozilla/Add-ons/WebExtensions/API/search": { - "modified": "2020-10-15T22:07:14.449Z", + "Web/API/HTMLButtonElement": { + "modified": "2020-10-15T22:04:39.590Z", "contributors": [ - "hellosct1" + "Voulto", + "dragon38800", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/API/search/get": { - "modified": "2020-10-15T22:07:16.442Z", + "Web/API/HTMLButtonElement/labels": { + "modified": "2020-10-15T22:04:38.333Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/search/search": { - "modified": "2020-10-15T22:07:15.372Z", + "Web/API/HTMLCanvasElement": { + "modified": "2019-03-23T23:28:23.922Z", "contributors": [ - "hellosct1" + "wbamberg", + "khalid32", + "Delapouite", + "Bobo" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions": { - "modified": "2020-10-15T21:55:14.411Z", + "Web/API/HTMLCanvasElement/getContext": { + "modified": "2019-03-23T22:11:53.953Z", "contributors": [ - "hellosct1" + "NemoNobobyPersonne" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/Filter": { - "modified": "2020-10-15T21:56:01.494Z", + "Web/API/HTMLCanvasElement/height": { + "modified": "2020-10-15T21:54:28.516Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/MAX_SESSION_RESULTS": { - "modified": "2020-10-15T21:56:00.737Z", + "Web/API/HTMLCollection": { + "modified": "2019-03-23T23:00:36.863Z", "contributors": [ - "hellosct1" + "loella16", + "jean-pierre.gay", + "vava", + "Raison" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/Session": { - "modified": "2020-10-15T21:56:01.710Z", + "Web/API/HTMLCollection/item": { + "modified": "2020-04-01T12:50:44.774Z", "contributors": [ - "hellosct1" + "olivierdupon", + "OhNiice" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/forgetClosedTab": { - "modified": "2020-10-15T22:04:36.912Z", + "Web/API/HTMLContentElement": { + "modified": "2019-03-23T22:32:17.762Z", "contributors": [ - "hellosct1" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/forgetClosedWindow": { - "modified": "2020-10-15T22:04:36.603Z", + "Web/API/HTMLContentElement/getDistributedNodes": { + "modified": "2019-03-18T20:46:56.376Z", "contributors": [ - "hellosct1" + "dragon38800", + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/getRecentlyClosed": { - "modified": "2020-10-15T21:56:01.554Z", + "Web/API/HTMLContentElement/select": { + "modified": "2019-03-18T20:46:55.702Z", "contributors": [ - "hellosct1" + "dragon38800", + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/getTabValue": { - "modified": "2020-10-15T22:04:38.593Z", + "Web/API/HTMLDialogElement": { + "modified": "2020-10-15T22:34:56.116Z", "contributors": [ - "hellosct1" + "neoncitylights" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/getWindowValue": { - "modified": "2020-10-15T22:04:37.850Z", + "Web/API/HTMLDialogElement/close_event": { + "modified": "2020-10-15T22:34:54.370Z", "contributors": [ - "hellosct1" + "tomderudder" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/onChanged": { - "modified": "2020-10-15T21:56:06.118Z", + "Web/API/HTMLDivElement": { + "modified": "2020-10-15T21:40:05.712Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "dragon38800", + "jmh" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/removeTabValue": { - "modified": "2020-10-15T22:04:38.272Z", + "Web/API/HTMLDocument": { + "modified": "2019-03-23T22:33:08.931Z", "contributors": [ - "hellosct1" + "crica" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/removeWindowValue": { - "modified": "2020-10-15T22:04:37.866Z", + "Web/API/HTMLElement": { + "modified": "2019-03-23T23:30:24.040Z", "contributors": [ - "hellosct1" + "AshfaqHossain", + "Jeremie", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/restore": { - "modified": "2020-10-15T21:56:02.475Z", + "Web/API/HTMLElement/beforeinput_event": { + "modified": "2020-10-15T22:20:11.192Z", "contributors": [ - "hellosct1" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/setTabValue": { - "modified": "2020-10-15T22:04:37.948Z", + "Web/API/HTMLElement/change_event": { + "modified": "2020-10-15T21:34:35.319Z", "contributors": [ - "hellosct1" + "tristantheb", + "SphinxKnight", + "fscholz", + "loella16", + "Kalwyn", + "karyngaudreau" ] }, - "Mozilla/Add-ons/WebExtensions/API/sessions/setWindowValue": { - "modified": "2020-10-15T22:04:37.991Z", + "Web/API/HTMLElement/click": { + "modified": "2019-03-23T23:47:15.393Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction": { - "modified": "2020-10-15T21:57:44.918Z", + "Web/API/HTMLElement/contentEditable": { + "modified": "2019-03-23T22:15:40.936Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "ebear" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/ImageDataType": { - "modified": "2020-10-15T22:05:22.946Z", + "Web/API/HTMLElement/dir": { + "modified": "2019-03-24T00:13:15.143Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "dextra", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/close": { - "modified": "2020-10-15T22:05:22.895Z", + "Web/API/HTMLElement/hidden": { + "modified": "2020-10-15T22:34:15.806Z", "contributors": [ - "hellosct1" + "asgmeonerandom" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/getPanel": { - "modified": "2020-10-15T22:05:22.102Z", + "Web/API/HTMLElement/input_event": { + "modified": "2019-04-17T07:33:49.618Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "fscholz", + "loella16", + "Sebastianz", + "LoicPuchaux" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/getTitle": { - "modified": "2020-10-15T22:05:23.613Z", + "Web/API/HTMLElement/isContentEditable": { + "modified": "2019-03-23T22:50:36.754Z", "contributors": [ - "hellosct1" + "loella16", + "vava" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/isOpen": { - "modified": "2020-10-15T22:05:23.432Z", + "Web/API/HTMLElement/lang": { + "modified": "2019-03-23T23:46:31.690Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "AshfaqHossain", + "tregagnon", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/open": { - "modified": "2020-10-15T22:05:23.939Z", + "Web/API/HTMLElement/offsetHeight": { + "modified": "2019-03-24T00:05:55.047Z", "contributors": [ - "hellosct1" + "vava", + "fscholz", + "teoli", + "jsx", + "AshfaqHossain", + "Julien STUBY", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setIcon": { - "modified": "2020-10-15T22:05:23.907Z", + "Web/API/HTMLElement/offsetLeft": { + "modified": "2019-03-23T23:47:14.986Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "jsx", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setPanel": { - "modified": "2020-10-15T22:05:22.031Z", + "Web/API/HTMLElement/offsetParent": { + "modified": "2019-03-23T23:47:16.899Z", "contributors": [ - "hellosct1" + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/setTitle": { - "modified": "2020-10-15T22:05:24.111Z", + "Web/API/HTMLElement/offsetTop": { + "modified": "2019-03-23T23:47:50.209Z", "contributors": [ - "hellosct1" + "nhoizey", + "fscholz", + "teoli", + "khalid32", + "cold sun", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/sidebarAction/toggle": { - "modified": "2020-10-15T22:30:04.353Z", + "Web/API/HTMLElement/offsetWidth": { + "modified": "2019-03-23T23:47:15.232Z", "contributors": [ - "hellosct1" + "vincent.tschanz", + "EmixMaxime", + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage": { - "modified": "2020-10-15T21:57:44.721Z", + "Web/API/HTMLElement/outerText": { + "modified": "2019-03-23T22:29:19.506Z", "contributors": [ - "AntoineJT", - "hellosct1", - "wbamberg", - "Idlus" + "loella16", + "HereComesJuju" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea": { - "modified": "2020-10-15T22:05:20.120Z", + "Web/API/HTMLElement/title": { + "modified": "2019-03-18T21:38:30.184Z", "contributors": [ - "hellosct1", - "wbamberg" + "NemoNobobyPersonne" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/clear": { - "modified": "2020-10-15T22:05:24.101Z", + "Web/API/HTMLFormControlsCollection": { + "modified": "2020-10-15T22:04:38.234Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get": { - "modified": "2020-10-15T22:05:24.141Z", + "Web/API/HTMLFormElement": { + "modified": "2020-10-15T21:18:02.094Z", "contributors": [ - "ariasuni", - "hellosct1" + "loella16", + "SphinxKnight", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/getBytesInUse": { - "modified": "2020-10-15T22:05:21.058Z", + "Web/API/HTMLFormElement/acceptCharset": { + "modified": "2019-03-23T22:56:05.617Z", "contributors": [ - "hellosct1" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/remove": { - "modified": "2020-10-15T22:05:20.838Z", + "Web/API/HTMLFormElement/action": { + "modified": "2019-03-23T22:56:10.694Z", "contributors": [ - "hellosct1" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/set": { - "modified": "2020-10-15T22:05:24.815Z", + "Web/API/HTMLFormElement/elements": { + "modified": "2019-03-23T22:56:07.279Z", "contributors": [ - "hellosct1" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/StorageChange": { - "modified": "2020-10-15T22:05:21.622Z", + "Web/API/HTMLFormElement/encoding": { + "modified": "2019-03-23T22:56:05.939Z", "contributors": [ - "hellosct1", - "wbamberg" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/local": { - "modified": "2020-10-15T22:05:23.273Z", + "Web/API/HTMLFormElement/enctype": { + "modified": "2019-03-23T22:56:06.183Z", "contributors": [ - "hellosct1", - "wbamberg" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/managed": { - "modified": "2020-10-15T22:05:22.202Z", + "Web/API/HTMLFormElement/length": { + "modified": "2019-03-23T22:56:03.752Z", "contributors": [ - "hellosct1", - "wbamberg" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/onChanged": { - "modified": "2020-10-15T22:05:23.632Z", + "Web/API/HTMLFormElement/method": { + "modified": "2019-03-23T22:56:06.732Z", "contributors": [ - "hellosct1", - "wbamberg" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/storage/sync": { - "modified": "2020-10-15T22:05:23.398Z", + "Web/API/HTMLFormElement/name": { + "modified": "2019-03-23T22:56:01.559Z", "contributors": [ - "Mozinet", - "locness3", - "hellosct1", - "wbamberg", - "Kocal" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs": { - "modified": "2020-10-15T21:49:29.878Z", + "Web/API/HTMLFormElement/reportValidity": { + "modified": "2020-10-15T22:15:18.266Z", "contributors": [ - "hellosct1", - "Watilin", - "wbamberg", - "Rik", - "Ostefanini", - "Sheppy" + "dragon38800" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfo": { - "modified": "2020-10-15T22:03:57.638Z", + "Web/API/HTMLFormElement/reset": { + "modified": "2019-03-18T21:15:21.862Z", "contributors": [ - "hellosct1", - "wbamberg" + "a-mt" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/MutedInfoReason": { - "modified": "2020-10-15T22:03:52.917Z", + "Web/API/HTMLFormElement/submit": { + "modified": "2020-10-15T22:15:18.900Z", "contributors": [ - "hellosct1", - "wbamberg" + "dragon38800" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/PageSettings": { - "modified": "2020-10-15T22:03:52.956Z", + "Web/API/HTMLFormElement/target": { + "modified": "2019-03-23T22:56:10.264Z", "contributors": [ - "hellosct1", - "wbamberg" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/TAB_ID_NONE": { - "modified": "2020-10-15T21:58:23.043Z", + "Web/API/HTMLFrameSetElement": { + "modified": "2020-10-15T22:35:16.209Z", "contributors": [ - "hellosct1", - "wbamberg" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/Tab": { - "modified": "2020-10-15T22:03:11.629Z", + "Web/API/HTMLIFrameElement": { + "modified": "2019-07-30T13:28:00.924Z", "contributors": [ - "hellosct1", - "ariasuni" + "thbil" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/TabStatus": { - "modified": "2020-10-15T22:03:52.910Z", + "Web/API/HTMLIFrameElement/contentWindow": { + "modified": "2020-10-15T21:42:29.039Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "loella16", + "benjaminW78" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/WindowType": { - "modified": "2020-10-15T22:03:51.484Z", + "Web/API/HTMLIFrameElement/featurePolicy": { + "modified": "2020-11-12T09:04:15.995Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettings": { - "modified": "2020-10-15T22:03:54.274Z", + "Web/API/HTMLImageElement": { + "modified": "2019-03-23T23:38:17.058Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "fscholz", + "khalid32", + "teoli", + "louuis", + "rm1720" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettingsMode": { - "modified": "2020-10-15T22:03:55.281Z", + "Web/API/HTMLImageElement/Image": { + "modified": "2019-09-01T13:58:47.617Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "sztan" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/ZoomSettingsScope": { - "modified": "2020-10-15T22:03:52.641Z", + "Web/API/HTMLInputElement": { + "modified": "2020-10-15T21:34:36.231Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/captureTab": { - "modified": "2020-10-15T22:03:53.968Z", + "Web/API/HTMLInputElement/labels": { + "modified": "2020-10-15T22:04:38.251Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/captureVisibleTab": { - "modified": "2020-10-15T22:03:37.508Z", + "Web/API/HTMLMediaElement": { + "modified": "2020-10-15T21:50:41.898Z", "contributors": [ - "hellosct1", - "wbamberg" + "AntoineJT", + "loella16", + "MrMargouillat" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/connect": { - "modified": "2020-10-15T21:58:20.324Z", + "Web/API/HTMLMediaElement/abort_event": { + "modified": "2020-10-15T22:34:53.863Z", "contributors": [ - "hellosct1", - "wbamberg" + "NEO_the-code" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/create": { - "modified": "2020-10-15T22:03:33.431Z", + "Web/API/HTMLMediaElement/canplay_event": { + "modified": "2019-03-18T20:49:26.215Z", "contributors": [ - "hellosct1" + "estelle", + "fscholz", + "Kalwyn", + "Maxime-T" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/detectLanguage": { - "modified": "2020-10-15T22:03:48.243Z", + "Web/API/HTMLMediaElement/canplaythrough_event": { + "modified": "2020-10-30T13:49:01.434Z", "contributors": [ - "hellosct1", - "wbamberg" + "Sroucheray", + "estelle", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/discard": { - "modified": "2020-10-15T22:03:57.449Z", + "Web/API/HTMLMediaElement/captureStream": { + "modified": "2020-10-15T22:06:00.390Z", "contributors": [ - "hellosct1" + "o0sh4d0w0o" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/duplicate": { - "modified": "2020-10-15T22:03:08.294Z", + "Web/API/HTMLMediaElement/durationchange_event": { + "modified": "2019-03-18T20:49:29.267Z", "contributors": [ - "hellosct1", - "ariasuni", - "wbamberg" + "estelle", + "fscholz", + "Kalwyn", + "BobyTT" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/executeScript": { - "modified": "2020-10-15T21:58:22.450Z", + "Web/API/HTMLMediaElement/emptied_event": { + "modified": "2019-03-18T20:49:29.095Z", "contributors": [ - "hellosct1", - "wbamberg", - "Watilin" + "estelle", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/get": { - "modified": "2020-10-15T22:03:48.764Z", + "Web/API/HTMLMediaElement/ended_event": { + "modified": "2019-03-18T20:49:28.930Z", "contributors": [ - "hellosct1", - "wbamberg" + "estelle", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/getAllInWindow": { - "modified": "2020-10-15T22:03:47.367Z", + "Web/API/HTMLMediaElement/play": { + "modified": "2019-03-18T21:39:19.899Z", "contributors": [ - "hellosct1" + "3dos" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/getCurrent": { - "modified": "2020-10-15T22:03:47.217Z", + "Web/API/HTMLMediaElement/volume": { + "modified": "2020-10-15T22:22:12.837Z", "contributors": [ - "hellosct1", - "wbamberg" + "Mars073" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/getSelected": { - "modified": "2020-10-15T22:03:47.042Z", + "Web/API/HTMLOptionElement": { + "modified": "2019-03-23T23:28:20.044Z", "contributors": [ - "hellosct1", - "wbamberg" + "khalid32", + "MedB" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/getZoom": { - "modified": "2020-10-15T22:03:47.459Z", + "Web/API/HTMLOptionElement/Option": { + "modified": "2019-11-18T08:34:34.768Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "Jmarin" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/getZoomSettings": { - "modified": "2020-10-15T22:03:49.865Z", + "Web/API/HTMLQuoteElement": { + "modified": "2019-03-23T23:30:25.216Z", "contributors": [ - "hellosct1", - "wbamberg" + "teoli", + "khalid32", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/goBack": { - "modified": "2020-10-15T22:30:04.681Z", + "Web/API/HTMLSelectElement": { + "modified": "2019-03-23T22:50:52.276Z", "contributors": [ - "hellosct1" + "Jean-MariePETIT", + "tinou98" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/goForward": { - "modified": "2020-10-15T22:30:06.344Z", + "Web/API/HTMLSelectElement/remove": { + "modified": "2019-03-23T22:45:22.256Z", "contributors": [ - "hellosct1" + "Jean-MariePETIT" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/hide": { - "modified": "2020-10-15T22:03:53.118Z", + "Web/API/HTMLSelectElement/selectedIndex": { + "modified": "2020-10-15T22:10:16.178Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin", + "Bpruneau" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/highlight": { - "modified": "2020-10-15T22:03:50.648Z", + "Web/API/HTMLSelectElement/setCustomValidity": { + "modified": "2019-04-22T04:45:00.486Z", "contributors": [ - "hellosct1" + "kenavoloic", + "v-Stein" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/insertCSS": { - "modified": "2020-10-15T21:49:28.464Z", + "Web/API/HTMLShadowElement": { + "modified": "2019-03-23T22:32:10.748Z", "contributors": [ - "hellosct1", - "wbamberg", - "Needlex" + "nobe4" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/move": { - "modified": "2020-10-15T22:03:49.781Z", + "Web/API/HTMLSpanElement": { + "modified": "2019-03-23T23:30:40.037Z", "contributors": [ - "hellosct1", - "wbamberg" + "teoli", + "khalid32", + "tregagnon" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/moveInSuccession": { - "modified": "2020-10-15T22:15:20.685Z", + "Web/API/HTMLStyleElement": { + "modified": "2019-03-23T23:45:30.418Z", "contributors": [ - "hellosct1" + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onActivated": { - "modified": "2020-10-15T22:03:53.409Z", + "Web/API/HTMLTableCellElement": { + "modified": "2019-03-23T22:22:55.497Z", "contributors": [ - "hellosct1", - "wbamberg" + "Copen" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onActiveChanged": { - "modified": "2020-10-15T22:03:53.571Z", + "Web/API/HTMLTableElement": { + "modified": "2019-03-23T23:46:08.570Z", "contributors": [ - "hellosct1", - "wbamberg" + "teoli", + "jsx", + "ethertank", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onAttached": { - "modified": "2020-10-15T22:03:53.710Z", + "Web/API/HTMLTableElement/caption": { + "modified": "2019-03-23T23:45:21.628Z", "contributors": [ - "hellosct1", - "wbamberg" + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Chbok", + "Marcolive" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onCreated": { - "modified": "2020-10-15T22:03:52.917Z", + "Web/API/HTMLTableElement/insertRow": { + "modified": "2019-03-23T23:31:04.505Z", "contributors": [ - "hellosct1", - "wbamberg" + "WeWantMiles", + "NemoNobobyPersonne", + "fscholz", + "teoli", + "AshfaqHossain", + "Restimel" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onDetached": { - "modified": "2020-10-15T22:03:52.758Z", + "Web/API/HTMLTableRowElement": { + "modified": "2020-10-15T22:17:56.178Z", "contributors": [ - "hellosct1", - "wbamberg" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onHighlightChanged": { - "modified": "2020-10-15T22:03:53.182Z", + "Web/API/HTMLTableRowElement/insertCell": { + "modified": "2020-10-15T22:17:56.662Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onHighlighted": { - "modified": "2020-10-15T22:03:55.546Z", + "Web/API/HTMLTimeElement": { + "modified": "2020-10-15T22:21:35.210Z", "contributors": [ - "hellosct1", - "wbamberg" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onMoved": { - "modified": "2020-10-15T22:03:52.892Z", + "Web/API/HTMLTimeElement/dateTime": { + "modified": "2020-10-15T22:21:37.221Z", "contributors": [ - "hellosct1", - "wbamberg" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onRemoved": { - "modified": "2020-10-15T22:03:54.353Z", + "Web/API/HTMLUnknownElement": { + "modified": "2020-10-15T22:17:58.810Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onReplaced": { - "modified": "2020-10-15T22:03:54.180Z", + "Web/API/HTMLVideoElement": { + "modified": "2020-10-15T22:28:40.533Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "maudsefo" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onSelectionChanged": { - "modified": "2020-10-15T22:03:53.491Z", + "Web/API/Headers": { + "modified": "2020-10-15T22:21:38.336Z", "contributors": [ - "hellosct1", - "wbamberg" + "robin850", + "Torzivalds" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated": { - "modified": "2020-10-15T22:03:55.052Z", + "Web/API/History": { + "modified": "2019-03-23T23:10:25.221Z", "contributors": [ - "hellosct1" + "DavidLibeau", + "remi_grumeau" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/onZoomChange": { - "modified": "2020-10-15T22:03:55.458Z", + "Web/API/History/length": { + "modified": "2020-10-15T22:28:26.926Z", "contributors": [ - "hellosct1", - "wbamberg" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/print": { - "modified": "2020-10-15T22:03:49.388Z", + "Web/API/IDBCursor": { + "modified": "2019-03-23T22:34:39.578Z", "contributors": [ - "hellosct1", - "wbamberg" + "fscholz", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/printPreview": { - "modified": "2020-10-15T22:03:49.526Z", + "Web/API/IDBCursor/advance": { + "modified": "2019-03-23T22:34:38.198Z", "contributors": [ - "hellosct1", - "wbamberg" + "perrinjerome", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/query": { - "modified": "2020-10-15T22:03:31.970Z", + "Web/API/IDBCursor/continue": { + "modified": "2019-03-23T22:34:31.664Z", "contributors": [ - "hellosct1", - "duduindo", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/reload": { - "modified": "2020-10-15T22:03:48.842Z", + "Web/API/IDBDatabase": { + "modified": "2019-03-23T22:31:18.316Z", "contributors": [ - "hellosct1", - "wbamberg" + "v-Stein", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/remove": { - "modified": "2020-10-15T22:03:49.809Z", + "Web/API/IDBDatabase/close": { + "modified": "2019-03-23T22:31:11.263Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/removeCSS": { - "modified": "2020-10-15T22:03:48.685Z", + "Web/API/IDBDatabase/createObjectStore": { + "modified": "2019-03-23T22:31:16.639Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/saveAsPDF": { - "modified": "2020-10-15T22:03:10.663Z", + "Web/API/IDBDatabase/deleteObjectStore": { + "modified": "2019-03-23T22:31:14.248Z", "contributors": [ - "hellosct1", - "wbamberg" + "christophe.hurpeau", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/sendMessage": { - "modified": "2020-10-15T21:56:45.906Z", + "Web/API/IDBDatabase/name": { + "modified": "2019-03-23T22:31:09.217Z", "contributors": [ - "hellosct1", - "wbamberg", - "sxilderik", - "Ostefanini" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/sendRequest": { - "modified": "2020-10-15T22:03:50.232Z", + "Web/API/IDBDatabase/objectStoreNames": { + "modified": "2019-03-23T22:31:09.388Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/setZoom": { - "modified": "2020-10-15T22:03:49.328Z", + "Web/API/IDBDatabase/onabort": { + "modified": "2019-03-23T22:31:09.551Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/setZoomSettings": { - "modified": "2020-10-15T22:03:49.946Z", + "Web/API/IDBDatabase/onerror": { + "modified": "2019-03-23T22:31:08.731Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/show": { - "modified": "2020-10-15T22:03:54.896Z", + "Web/API/IDBDatabase/onversionchange": { + "modified": "2019-03-23T22:30:58.851Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/toggleReaderMode": { - "modified": "2020-10-15T22:03:50.644Z", + "Web/API/IDBDatabase/transaction": { + "modified": "2019-03-23T22:31:19.784Z", "contributors": [ - "hellosct1" + "P45QU10U", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/tabs/update": { - "modified": "2020-10-15T22:03:52.738Z", + "Web/API/IDBDatabase/version": { + "modified": "2020-10-15T21:47:11.268Z", "contributors": [ - "hellosct1", - "Highbrainer" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme": { - "modified": "2020-10-15T21:57:45.524Z", + "Web/API/IDBEnvironment": { + "modified": "2020-10-15T21:45:39.502Z", "contributors": [ - "hellosct1", - "wbamberg", - "ntim" + "loella16", + "SphinxKnight", + "gadgino", + "Brettz9" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme/Theme": { - "modified": "2020-10-15T21:57:51.337Z", + "Web/API/IDBFactory": { + "modified": "2020-10-15T21:45:40.483Z", "contributors": [ - "hellosct1", - "wbamberg" + "bershanskiy", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme/getCurrent": { - "modified": "2020-10-15T21:59:29.473Z", + "Web/API/IDBFactory/cmp": { + "modified": "2019-03-23T22:34:32.314Z", "contributors": [ - "hellosct1", - "ntim" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme/onUpdated": { - "modified": "2020-10-15T22:00:25.228Z", + "Web/API/IDBFactory/deleteDatabase": { + "modified": "2019-03-23T22:34:37.176Z", "contributors": [ - "hellosct1", - "ntim" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme/reset": { - "modified": "2020-10-15T21:57:51.422Z", + "Web/API/IDBFactory/open": { + "modified": "2020-10-15T21:45:42.009Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/theme/update": { - "modified": "2020-10-15T21:57:50.766Z", + "Web/API/IDBIndex": { + "modified": "2020-09-12T05:13:55.776Z", "contributors": [ - "hellosct1" + "Voulto", + "GhislainPhu", + "gadgino", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/API/topSites": { - "modified": "2020-10-15T21:57:46.000Z", + "Web/API/IDBIndex/count": { + "modified": "2019-03-23T22:30:43.317Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/topSites/MostVisitedURL": { - "modified": "2020-10-15T21:58:01.003Z", + "Web/API/IDBIndex/get": { + "modified": "2019-03-18T21:17:42.033Z", "contributors": [ - "hellosct1" + "AdeLyneBD", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/topSites/get": { - "modified": "2020-10-15T21:58:02.136Z", + "Web/API/IDBIndex/getAll": { + "modified": "2020-10-15T21:47:29.237Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "AdeLyneBD", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types": { - "modified": "2019-07-03T11:01:54.372Z", + "Web/API/IDBIndex/getAllKeys": { + "modified": "2020-10-15T21:47:28.678Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting": { - "modified": "2020-10-15T21:57:18.321Z", + "Web/API/IDBIndex/getKey": { + "modified": "2019-03-23T22:30:30.773Z", "contributors": [ - "hellosct1", - "andrewtruongmoz" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/clear": { - "modified": "2019-07-03T11:03:45.430Z", + "Web/API/IDBIndex/isAutoLocale": { + "modified": "2020-10-15T21:47:13.856Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "teoli", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/get": { - "modified": "2019-06-05T16:54:03.389Z", + "Web/API/IDBIndex/keyPath": { + "modified": "2019-03-23T22:30:52.686Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/onChange": { - "modified": "2020-10-15T21:57:19.014Z", + "Web/API/IDBIndex/locale": { + "modified": "2019-03-23T22:30:44.660Z", "contributors": [ - "hellosct1" + "teoli", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/types/BrowserSetting/set": { - "modified": "2019-07-03T11:03:56.666Z", + "Web/API/IDBIndex/multiEntry": { + "modified": "2019-03-23T22:30:48.807Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts": { - "modified": "2020-10-15T22:23:35.773Z", + "Web/API/IDBIndex/name": { + "modified": "2019-03-23T22:30:41.544Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript": { - "modified": "2019-10-13T04:23:03.445Z", + "Web/API/IDBIndex/objectStore": { + "modified": "2019-03-23T22:30:48.435Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript": { - "modified": "2020-10-15T22:23:33.344Z", + "Web/API/IDBIndex/openCursor": { + "modified": "2019-03-23T22:30:31.037Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister()": { - "modified": "2020-10-15T22:23:34.113Z", + "Web/API/IDBIndex/openKeyCursor": { + "modified": "2019-03-23T22:30:32.594Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/unregister": { - "modified": "2020-10-15T22:23:35.185Z", + "Web/API/IDBIndex/unique": { + "modified": "2019-03-23T22:30:45.150Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/UserScriptOptions": { - "modified": "2020-06-09T16:06:52.616Z", + "Web/API/IDBKeyRange": { + "modified": "2020-10-15T21:46:17.358Z", "contributors": [ - "hellosct1" + "Voulto", + "SphinxKnight", + "gadgino", + "Goofy", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/onBeforeScript": { - "modified": "2020-10-15T22:23:34.529Z", + "Web/API/IDBKeyRange/bound": { + "modified": "2019-03-23T22:33:04.699Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/register": { - "modified": "2020-10-15T22:23:34.422Z", + "Web/API/IDBKeyRange/includes": { + "modified": "2019-03-23T22:33:05.590Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/userScripts/travailler_avec_userScripts": { - "modified": "2019-10-13T04:55:15.939Z", + "Web/API/IDBKeyRange/lower": { + "modified": "2019-03-23T22:33:04.885Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation": { - "modified": "2020-10-15T21:57:52.141Z", + "Web/API/IDBKeyRange/lowerBound": { + "modified": "2019-03-23T22:33:05.216Z", "contributors": [ - "hellosct1", - "wbamberg", - "sxilderik", - "tiimax" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/TransitionQualifier": { - "modified": "2020-10-15T22:07:03.896Z", + "Web/API/IDBKeyRange/lowerOpen": { + "modified": "2019-03-23T22:32:57.950Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/TransitionType": { - "modified": "2020-10-15T22:07:02.866Z", + "Web/API/IDBKeyRange/only": { + "modified": "2019-03-23T22:33:01.396Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/getAllFrames": { - "modified": "2020-10-15T22:07:02.793Z", + "Web/API/IDBKeyRange/upper": { + "modified": "2019-03-23T22:33:10.697Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/getFrame": { - "modified": "2020-10-15T22:07:00.126Z", + "Web/API/IDBKeyRange/upperBound": { + "modified": "2019-03-23T22:33:21.510Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onBeforeNavigate": { - "modified": "2020-10-15T22:07:02.940Z", + "Web/API/IDBKeyRange/upperOpen": { + "modified": "2019-03-23T22:32:58.450Z", "contributors": [ - "hellosct1", - "wbamberg" + "Hell_Carlito", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCommitted": { - "modified": "2020-10-15T22:07:02.451Z", + "Web/API/IDBObjectStore": { + "modified": "2019-03-23T22:34:11.877Z", "contributors": [ - "hellosct1", - "wbamberg" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCompleted": { - "modified": "2020-10-15T22:07:03.742Z", + "Web/API/IDBObjectStore/add": { + "modified": "2019-03-23T22:34:09.726Z", "contributors": [ - "hellosct1", - "wbamberg" + "perrinjerome", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onCreatedNavigationTarget": { - "modified": "2020-10-15T22:07:03.933Z", + "Web/API/IDBObjectStore/autoIncrement": { + "modified": "2019-03-23T22:34:10.196Z", "contributors": [ - "hellosct1", - "wbamberg" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onDOMContentLoaded": { - "modified": "2020-10-15T22:07:02.959Z", + "Web/API/IDBObjectStore/clear": { + "modified": "2019-03-23T22:34:03.069Z", "contributors": [ - "hellosct1", - "wbamberg" + "doppelganger9", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onErrorOccurred": { - "modified": "2020-10-15T22:07:03.666Z", + "Web/API/IDBObjectStore/count": { + "modified": "2019-03-23T22:34:13.752Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onHistoryStateUpdated": { - "modified": "2020-10-15T22:07:05.669Z", + "Web/API/IDBObjectStore/createIndex": { + "modified": "2019-03-23T22:34:07.900Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onReferenceFragmentUpdated": { - "modified": "2020-10-15T22:07:03.560Z", + "Web/API/IDBObjectStore/delete": { + "modified": "2019-03-23T22:33:59.327Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webNavigation/onTabReplaced": { - "modified": "2020-10-15T22:07:03.017Z", + "Web/API/IDBObjectStore/deleteIndex": { + "modified": "2019-03-23T22:33:53.159Z", "contributors": [ - "hellosct1" + "AdeLyneBD", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest": { - "modified": "2020-10-15T21:56:48.858Z", + "Web/API/IDBObjectStore/get": { + "modified": "2019-03-23T22:33:58.671Z", "contributors": [ - "hellosct1", - "wbamberg", - "Ostefanini" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/BlockingResponse": { - "modified": "2020-10-15T22:07:42.613Z", + "Web/API/IDBObjectStore/getAll": { + "modified": "2019-05-06T07:04:02.783Z", "contributors": [ - "hellosct1", - "wbamberg" + "Helfics", + "Thomas-Tonneau", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/CertificateInfo": { - "modified": "2020-10-15T22:07:39.362Z", + "Web/API/IDBObjectStore/getAllKeys": { + "modified": "2019-03-23T22:33:43.424Z", "contributors": [ - "hellosct1" + "Nothus", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/HttpHeaders": { - "modified": "2020-10-15T22:07:40.664Z", + "Web/API/IDBObjectStore/getKey": { + "modified": "2019-03-23T22:11:20.472Z", "contributors": [ - "hellosct1", - "wbamberg" + "Nothus", + "julienw" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES": { - "modified": "2020-10-15T22:07:41.126Z", + "Web/API/IDBObjectStore/index": { + "modified": "2019-03-23T22:33:52.521Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/RequestFilter": { - "modified": "2020-10-15T22:07:42.125Z", + "Web/API/IDBObjectStore/indexNames": { + "modified": "2019-03-23T22:34:04.202Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType": { - "modified": "2020-10-15T22:07:40.764Z", + "Web/API/IDBObjectStore/keyPath": { + "modified": "2019-03-23T22:34:05.962Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "Alpha", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/SecurityInfo": { - "modified": "2020-10-15T22:07:37.628Z", + "Web/API/IDBObjectStore/name": { + "modified": "2019-03-23T22:34:05.656Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter": { - "modified": "2020-10-15T22:07:33.978Z", + "Web/API/IDBObjectStore/openCursor": { + "modified": "2019-03-23T22:33:43.786Z", "contributors": [ - "hellosct1", - "kernp" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/close": { - "modified": "2020-10-15T22:07:36.429Z", + "Web/API/IDBObjectStore/openKeyCursor": { + "modified": "2019-03-23T22:33:39.850Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/disconnect": { - "modified": "2020-10-15T22:07:37.658Z", + "Web/API/IDBObjectStore/put": { + "modified": "2019-03-23T22:33:30.943Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/error": { - "modified": "2020-10-15T22:07:36.127Z", + "Web/API/IDBObjectStore/transaction": { + "modified": "2019-03-23T22:34:04.872Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/ondata": { - "modified": "2020-10-15T22:07:38.841Z", + "Web/API/IDBOpenDBRequest": { + "modified": "2019-03-23T22:14:30.384Z", "contributors": [ - "hellosct1" + "loella16", + "Enigma-42" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onerror": { - "modified": "2020-10-15T22:07:36.695Z", + "Web/API/IDBRequest": { + "modified": "2020-10-15T21:45:42.565Z", "contributors": [ - "hellosct1" + "Voulto", + "Arzak656", + "gadgino", + "inexorabletash" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onstart": { - "modified": "2020-10-15T22:07:36.284Z", + "Web/API/IDBRequest/error": { + "modified": "2019-03-23T22:34:15.414Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/onstop": { - "modified": "2020-10-15T22:07:38.862Z", + "Web/API/IDBRequest/onerror": { + "modified": "2019-03-23T22:34:16.420Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/resume": { - "modified": "2020-10-15T22:07:37.721Z", + "Web/API/IDBRequest/onsuccess": { + "modified": "2019-03-23T22:34:17.762Z", "contributors": [ - "hellosct1" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/status": { - "modified": "2020-10-15T22:07:37.031Z", + "Web/API/IDBRequest/readyState": { + "modified": "2019-03-23T22:34:18.824Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/suspend": { - "modified": "2020-10-15T22:07:37.750Z", + "Web/API/IDBRequest/result": { + "modified": "2019-03-23T22:34:18.616Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/StreamFilter/write": { - "modified": "2020-10-15T22:07:35.165Z", + "Web/API/IDBRequest/source": { + "modified": "2019-03-23T22:34:18.295Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/UploadData": { - "modified": "2020-10-15T22:07:36.344Z", + "Web/API/IDBRequest/transaction": { + "modified": "2019-03-23T22:34:14.676Z", "contributors": [ - "hellosct1", - "wbamberg" + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/filterResponseData": { - "modified": "2020-10-15T22:07:37.557Z", + "Web/API/IDBTransaction": { + "modified": "2019-03-23T22:34:48.048Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/getSecurityInfo": { - "modified": "2020-10-15T22:07:36.970Z", + "Web/API/IDBTransaction/ObjectStoreNames": { + "modified": "2019-03-23T22:34:33.787Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/handlerBehaviorChanged": { - "modified": "2020-10-15T22:07:41.109Z", + "Web/API/IDBTransaction/abort": { + "modified": "2019-03-23T22:34:40.971Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onAuthRequired": { - "modified": "2020-10-15T22:07:43.648Z", + "Web/API/IDBTransaction/abort_event": { + "modified": "2019-03-23T22:00:21.766Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRedirect": { - "modified": "2020-10-15T22:07:43.857Z", + "Web/API/IDBTransaction/complete_event": { + "modified": "2019-03-23T22:00:21.434Z", "contributors": [ - "hellosct1" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeRequest": { - "modified": "2020-10-15T22:07:42.418Z", + "Web/API/IDBTransaction/db": { + "modified": "2019-03-23T22:34:41.582Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onBeforeSendHeaders": { - "modified": "2020-10-15T22:07:42.104Z", + "Web/API/IDBTransaction/error": { + "modified": "2019-03-23T22:34:37.959Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onCompleted": { - "modified": "2020-10-15T22:07:39.958Z", + "Web/API/IDBTransaction/mode": { + "modified": "2019-03-23T22:34:37.380Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onErrorOccurred": { - "modified": "2020-10-15T22:07:41.971Z", + "Web/API/IDBTransaction/objectStore": { + "modified": "2019-03-23T22:34:32.499Z", "contributors": [ - "hellosct1" + "Faontetard", + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onHeadersReceived": { - "modified": "2020-10-15T22:07:37.308Z", + "Web/API/IDBTransaction/onabort": { + "modified": "2019-03-23T22:34:39.344Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onResponseStarted": { - "modified": "2020-10-15T22:07:39.432Z", + "Web/API/IDBTransaction/oncomplete": { + "modified": "2019-03-23T22:34:31.462Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/webRequest/onSendHeaders": { - "modified": "2020-10-15T22:07:44.311Z", + "Web/API/IDBTransaction/onerror": { + "modified": "2019-03-23T22:34:27.556Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "gadgino" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows": { - "modified": "2020-10-15T21:54:01.228Z", + "Web/API/ImageData": { + "modified": "2020-10-15T21:29:16.846Z", "contributors": [ - "hellosct1", - "ariasuni", - "wbamberg" + "SphinxKnight", + "loella16", + "fscholz", + "Sandyl" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/CreateType": { - "modified": "2020-10-15T21:54:03.517Z", + "Web/API/ImageData/data": { + "modified": "2020-10-15T22:05:57.237Z", "contributors": [ - "hellosct1", - "wbamberg" + "adrienbecker" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/WINDOW_ID_CURRENT": { - "modified": "2020-10-15T21:55:56.833Z", + "Web/API/InputEvent": { + "modified": "2020-10-15T22:20:10.431Z", "contributors": [ - "hellosct1", - "wbamberg" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/WINDOW_ID_NONE": { - "modified": "2020-10-15T21:55:57.264Z", + "Web/API/IntersectionObserver": { + "modified": "2020-10-15T22:10:55.790Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0", + "lotfire24" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/Window": { - "modified": "2020-10-15T21:54:02.522Z", + "Web/API/IntersectionObserver/IntersectionObserver": { + "modified": "2020-10-15T22:12:46.597Z", "contributors": [ - "hellosct1", - "wbamberg", - "kodliber" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/WindowState": { - "modified": "2020-10-15T21:54:02.219Z", + "Web/API/IntersectionObserver/observe": { + "modified": "2020-10-15T22:12:46.281Z", "contributors": [ - "hellosct1", - "wbamberg" + "SphinxKnight", + "nicolas-t", + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/WindowType": { - "modified": "2020-10-15T21:54:03.274Z", + "Web/API/IntersectionObserver/root": { + "modified": "2020-10-15T22:11:03.625Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/create": { - "modified": "2020-10-15T21:55:59.984Z", + "Web/API/IntersectionObserver/rootMargin": { + "modified": "2020-10-15T22:11:13.398Z", "contributors": [ - "hellosct1" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/get": { - "modified": "2020-10-15T21:55:58.524Z", + "Web/API/IntersectionObserver/thresholds": { + "modified": "2020-10-15T22:12:45.071Z", "contributors": [ - "hellosct1" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/getAll": { - "modified": "2020-10-15T21:56:00.964Z", + "Web/API/IntersectionObserver/unobserve": { + "modified": "2020-10-15T22:12:46.323Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/getCurrent": { - "modified": "2020-10-15T21:55:58.426Z", + "Web/API/IntersectionObserverEntry": { + "modified": "2020-10-15T22:11:13.890Z", "contributors": [ - "TontonSancho", - "hellosct1" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/getLastFocused": { - "modified": "2020-10-15T21:55:59.393Z", + "Web/API/IntersectionObserverEntry/target": { + "modified": "2020-10-15T22:11:14.373Z", "contributors": [ - "hellosct1" + "JNa0" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/onCreated": { - "modified": "2020-10-15T21:55:57.655Z", + "Web/API/Intersection_Observer_API": { + "modified": "2019-05-02T10:59:37.478Z", "contributors": [ - "hellosct1", - "wbamberg" + "JNa0", + "SphinxKnight", + "baptistecolin", + "Marc.V" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/onFocusChanged": { - "modified": "2020-10-15T21:55:58.239Z", + "Web/API/KeyboardEvent": { + "modified": "2020-10-15T21:36:30.379Z", "contributors": [ - "hellosct1", - "wbamberg" + "fscholz", + "wbamberg", + "loella16", + "NemoNobobyPersonne", + "jean-pierre.gay", + "Gibus", + "mikemaccana" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/onRemoved": { - "modified": "2020-10-15T21:56:00.938Z", + "Web/API/KeyboardEvent/KeyboardEvent": { + "modified": "2020-10-15T21:36:29.697Z", "contributors": [ - "hellosct1", - "wbamberg" + "loella16", + "fuzeKlown", + "B_M" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/remove": { - "modified": "2020-10-15T21:55:58.919Z", + "Web/API/KeyboardEvent/charCode": { + "modified": "2020-10-15T21:56:28.108Z", "contributors": [ - "hellosct1", - "wbamberg" + "Lucas-C", + "loella16", + "ManuelEdao" ] }, - "Mozilla/Add-ons/WebExtensions/API/windows/update": { - "modified": "2020-10-15T21:55:59.013Z", + "Web/API/KeyboardEvent/code": { + "modified": "2020-10-15T22:17:28.552Z", "contributors": [ - "hellosct1", - "wbamberg" + "tristantheb", + "SphinxKnight", + "NoxFly" ] }, - "Mozilla/Add-ons/WebExtensions/Ajouter_un_bouton_a_la_barre_d_outils": { - "modified": "2019-07-03T05:22:48.886Z", + "Web/API/KeyboardEvent/key": { + "modified": "2020-10-15T21:45:49.321Z", "contributors": [ - "hellosct1", - "JNa0", - "Goofy" + "tristantheb", + "Jeremie", + "loella16", + "P45QU10U" ] }, - "Mozilla/Add-ons/WebExtensions/Ajouter_une_page_de_paramètres": { - "modified": "2019-05-19T03:44:17.070Z", + "Web/API/KeyboardEvent/key/Key_Values": { + "modified": "2020-04-20T11:30:29.100Z", "contributors": [ - "hellosct1", - "RoyalPanda" + "tristantheb" ] }, - "Mozilla/Add-ons/WebExtensions/Alternative_distribution_options": { - "modified": "2019-07-08T08:22:26.722Z", + "Web/API/LocalFileSystem": { + "modified": "2020-11-02T04:24:20.566Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "SphinxKnight", + "roxaneprovost" ] }, - "Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_for_desktop_apps": { - "modified": "2019-09-30T14:55:22.937Z", + "Web/API/Location": { + "modified": "2020-10-15T21:27:50.600Z", "contributors": [ - "hellosct1" + "Arzak656", + "NacimHarfouche", + "Goofy", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Add-ons_in_the_enterprise": { - "modified": "2019-07-08T08:21:59.137Z", + "Web/API/Location/assign": { + "modified": "2020-10-15T21:27:45.542Z", "contributors": [ - "hellosct1", - "JeffD" + "Arzak656", + "fscholz", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/Alternative_distribution_options/Sideloading_add-ons": { - "modified": "2019-07-08T08:20:57.253Z", + "Web/API/Location/reload": { + "modified": "2020-11-18T15:46:55.367Z", "contributors": [ - "hellosct1" + "Arzak656", + "fscholz", + "teoli", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension": { - "modified": "2019-09-22T20:40:17.710Z", + "Web/API/Location/replace": { + "modified": "2019-03-23T23:15:34.708Z", "contributors": [ - "hellosct1", - "LeMilitaire", - "EBoespflug", - "Goofy", - "NerOcrO", - "zebu1er", - "lotfire24", - "Lamri" + "fscholz", + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/Browser_actions": { - "modified": "2019-03-18T21:02:11.294Z", + "Web/API/MediaDevices": { + "modified": "2020-10-15T21:39:57.500Z", "contributors": [ - "hellosct1" + "Voulto", + "tristantheb", + "jpmedley" ] }, - "Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json": { - "modified": "2020-10-15T22:06:59.369Z", + "Web/API/MediaDevices/getUserMedia": { + "modified": "2019-03-23T22:10:09.687Z", "contributors": [ - "hellosct1" + "SoufianeLasri", + "DonBeny" ] }, - "Mozilla/Add-ons/WebExtensions/Comparaison_avec_le_SDK_Add-on": { - "modified": "2019-05-19T07:28:28.529Z", + "Web/API/MediaSource": { + "modified": "2020-10-15T22:24:17.807Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/Compatibilité_navigateurs_API_JavaScript": { - "modified": "2020-10-15T20:55:07.811Z", + "Web/API/MediaSource/MediaSource": { + "modified": "2020-10-15T22:24:16.976Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "nowlow" ] }, - "Mozilla/Add-ons/WebExtensions/Compte_developpeurs": { - "modified": "2019-10-12T19:14:11.531Z", + "Web/API/MediaStream": { + "modified": "2019-03-23T23:24:56.798Z", "contributors": [ - "hellosct1" + "fscholz", + "AbrahamT" ] }, - "Mozilla/Add-ons/WebExtensions/Content_Security_Policy": { - "modified": "2019-11-07T19:55:56.920Z", + "Web/API/MediaStreamAudioSourceNode": { + "modified": "2019-03-23T22:22:16.693Z", "contributors": [ - "hellosct1", - "SphinxKnight" + "marie-ototoi", + "Nek-" ] }, - "Mozilla/Add-ons/WebExtensions/Content_scripts": { - "modified": "2019-09-22T19:42:08.982Z", + "Web/API/MediaStreamEvent": { + "modified": "2020-10-22T05:56:07.167Z", "contributors": [ - "hellosct1", - "sblondon", - "JNa0", - "SphinxKnight", - "Idlus", - "SuperTouch", - "Ostefanini" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/Debogage_(avant_Firefox_50)": { - "modified": "2019-03-18T21:02:43.036Z", + "Web/API/MessageEvent": { + "modified": "2019-03-23T22:37:35.554Z", "contributors": [ - "hellosct1" + "AClavijo", + "Nothus" ] }, - "Mozilla/Add-ons/WebExtensions/Developing_WebExtensions_for_Thunderbird": { - "modified": "2019-07-08T08:27:00.328Z", + "Web/API/MouseEvent": { + "modified": "2019-03-23T23:09:55.683Z", "contributors": [ - "hellosct1" + "loella16", + "Sebastianz", + "Jean-MariePETIT", + "julienw", + "AlainRinder", + "kipcode66" ] }, - "Mozilla/Add-ons/WebExtensions/Differences_entre_les_implementations_api": { - "modified": "2019-07-08T08:23:30.368Z", + "Web/API/MouseEvent/offsetX": { + "modified": "2019-03-23T22:01:19.710Z", "contributors": [ - "hellosct1" + "shezard", + "imhaage" ] }, - "Mozilla/Add-ons/WebExtensions/Exemples": { - "modified": "2020-05-24T09:35:11.044Z", + "Web/API/MouseEvent/offsetY": { + "modified": "2019-03-23T22:01:15.982Z", "contributors": [ - "hellosct1", - "NerOcrO", - "gritchou" + "imhaage" ] }, - "Mozilla/Add-ons/WebExtensions/Experience_utilisateur_bonnes_pratiques": { - "modified": "2019-05-18T19:46:03.001Z", + "Web/API/MutationObserver": { + "modified": "2019-03-23T23:04:58.339Z", "contributors": [ - "hellosct1" + "loella16", + "cedeber", + "Watilin", + "Goofy", + "jucrouzet", + "gregoryRednet", + "Melkior" ] }, - "Mozilla/Add-ons/WebExtensions/Firefox_differentiators": { - "modified": "2019-12-14T15:20:16.560Z", - "contributors": [ - "Mozinet", - "hellosct1" + "Web/API/NamedNodeMap": { + "modified": "2019-03-23T22:39:49.395Z", + "contributors": [ + "SphinxKnight", + "Puxarnal", + "Dexter_Deter" ] }, - "Mozilla/Add-ons/WebExtensions/Firefox_workflow_overview": { - "modified": "2020-05-24T09:38:20.083Z", + "Web/API/Navigator": { + "modified": "2019-03-23T23:01:28.541Z", "contributors": [ - "hellosct1" + "loella16", + "v-Stein", + "unpeudetout", + "EnzDev", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/Incompatibilités_Chrome": { - "modified": "2019-10-13T06:54:47.652Z", + "Web/API/Navigator/battery": { + "modified": "2019-03-23T23:37:50.722Z", "contributors": [ - "hellosct1", - "SphinxKnight", - "lp177", - "wtoscer", - "Goofy", - "Bat41" + "Perraudeau", + "fscholz", + "khalid32", + "Florent_ATo" ] }, - "Mozilla/Add-ons/WebExtensions/Index": { - "modified": "2019-03-18T21:01:44.832Z", + "Web/API/Navigator/connection": { + "modified": "2019-03-23T22:11:57.924Z", "contributors": [ - "hellosct1" + "loella16", + "fsenat" ] }, - "Mozilla/Add-ons/WebExtensions/Intercepter_requêtes_HTTP": { - "modified": "2019-07-03T05:48:59.759Z", + "Web/API/Navigator/cookieEnabled": { + "modified": "2020-10-15T22:13:20.569Z", "contributors": [ - "hellosct1", - "Wintersunshine-Do" + "bloblga" ] }, - "Mozilla/Add-ons/WebExtensions/Internationalization": { - "modified": "2019-12-13T05:03:26.676Z", + "Web/API/Navigator/credentials": { + "modified": "2020-10-15T22:15:44.720Z", "contributors": [ - "timkrief", - "hellosct1", - "Mozinet", - "dauphine-dev", - "Yopadd" + "SphinxKnight" ] }, - "Mozilla/Add-ons/WebExtensions/Match_patterns": { - "modified": "2020-10-15T21:55:13.648Z", + "Web/API/Navigator/doNotTrack": { + "modified": "2019-03-23T23:15:47.123Z", "contributors": [ - "hellosct1", - "JNa0", - "Watilin" + "loella16", + "fscholz", + "khalid32", + "T2A5H1A1" ] }, - "Mozilla/Add-ons/WebExtensions/Modify_a_web_page": { - "modified": "2019-09-23T03:48:09.232Z", + "Web/API/Navigator/geolocation": { + "modified": "2019-03-23T22:26:18.567Z", "contributors": [ - "hellosct1", - "supertanuki" + "Goofy", + "Lornkor" ] }, - "Mozilla/Add-ons/WebExtensions/Native_messaging": { - "modified": "2019-10-13T07:29:27.829Z", + "Web/API/Navigator/getGamepads": { + "modified": "2020-10-15T21:31:17.970Z", "contributors": [ - "hellosct1", - "fbessou", - "JNa0", - "Drosos", - "SphinxKnight", - "peetcamron", - "Baniway", - "glacambre", - "m4ucoder" + "Arzak656", + "fscholz", + "matteodelabre" ] }, - "Mozilla/Add-ons/WebExtensions/Portage_d_une_extension_Firefox_heritee": { - "modified": "2019-05-19T03:42:46.903Z", + "Web/API/Navigator/mozIsLocallyAvailable": { + "modified": "2019-03-23T23:52:20.754Z", "contributors": [ - "hellosct1", - "TheSirC" + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/Prerequisites": { - "modified": "2019-03-18T21:02:53.858Z", + "Web/API/Navigator/registerProtocolHandler": { + "modified": "2019-03-23T23:52:04.757Z", "contributors": [ - "hellosct1" + "Fluorinx", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Mgjbot" ] }, - "Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension": { - "modified": "2019-09-22T20:09:03.419Z", + "Web/API/Navigator/registerProtocolHandler/Web-based_protocol_handlers": { + "modified": "2019-03-23T23:58:55.939Z", "contributors": [ - "hellosct1", - "zecakeh", - "adorsaz", - "ValentinG", - "romainneutron" + "SphinxKnight", + "chrisdavidmills", + "tregagnon", + "muffinchoco", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/Tips": { - "modified": "2019-07-03T12:01:15.793Z", + "Web/API/Navigator/sendBeacon": { + "modified": "2020-10-15T21:52:49.634Z", "contributors": [ - "hellosct1" + "ylerjen", + "regseb", + "fireyoshiqc" ] }, - "Mozilla/Add-ons/WebExtensions/Travailler_avec_l_API_Tabs": { - "modified": "2019-10-13T09:50:25.032Z", + "Web/API/Navigator/serviceWorker": { + "modified": "2019-03-23T22:46:34.715Z", "contributors": [ - "hellosct1" + "mazoutzecat", + "isac83" ] }, - "Mozilla/Add-ons/WebExtensions/User_actions": { - "modified": "2019-07-03T12:01:29.724Z", + "Web/API/Navigator/share": { + "modified": "2020-10-15T22:19:51.304Z", "contributors": [ - "hellosct1" + "antoinerousseau", + "AlexisColin" ] }, - "Mozilla/Add-ons/WebExtensions/What_are_WebExtensions": { - "modified": "2020-08-28T23:27:12.925Z", + "Web/API/Navigator/vibrate": { + "modified": "2020-10-15T22:22:06.618Z", "contributors": [ - "NassimSaboundji", - "hellosct1", - "Ilphrin", - "dark-rabbit", - "SphinxKnight", - "gritchou", - "Ostefanini", - "CarlosAvim", - "unpeudetout" + "nboisteault", + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/Work_with_the_Bookmarks_API": { - "modified": "2019-07-03T12:03:31.339Z", + "Web/API/NavigatorLanguage": { + "modified": "2020-11-13T08:13:18.543Z", "contributors": [ - "hellosct1" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/Working_with_files": { - "modified": "2019-05-18T19:31:16.604Z", + "Web/API/NavigatorLanguage/language": { + "modified": "2020-11-13T09:34:12.937Z", "contributors": [ - "hellosct1", - "Torzivalds", - "loella16" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/Your_first_WebExtension": { - "modified": "2020-09-01T21:52:47.245Z", + "Web/API/NavigatorLanguage/languages": { + "modified": "2020-11-13T11:23:05.443Z", "contributors": [ - "NassimSaboundji", - "hellosct1", - "TwinProduction", - "NerOcrO", - "Enche", - "DeflatedBimbo" + "Arzak656" ] }, - "Mozilla/Add-ons/WebExtensions/Your_second_WebExtension": { - "modified": "2020-05-24T09:19:35.748Z", + "Web/API/NavigatorOnLine": { + "modified": "2020-10-15T21:33:01.047Z", "contributors": [ - "hellosct1", - "ThCarrere", - "NerOcrO", - "Artusamak", - "b1nj", - "pascalchevrel", - "Hell_Carlito", - "DeflatedBimbo" + "Arzak656", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/bonnes_pratiques_pour_la_mise_a_jour_de_votre_extension": { - "modified": "2019-07-05T09:31:56.338Z", + "Web/API/NavigatorOnLine/onLine": { + "modified": "2020-10-15T21:16:47.165Z", "contributors": [ - "hellosct1" + "tomderudder", + "thibaultboursier", + "nicodel", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/choisissez_une_version_firefox_pour_le_developpement_extensions_web": { - "modified": "2019-10-12T17:29:13.794Z", + "Web/API/NavigatorStorage": { + "modified": "2020-10-15T22:17:55.760Z" + }, + "Web/API/NavigatorStorage/storage": { + "modified": "2020-10-15T22:17:55.620Z", "contributors": [ - "hellosct1" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/construction_extension_cross_browser": { - "modified": "2019-09-22T19:56:40.143Z", + "Web/API/Node": { + "modified": "2020-11-10T19:53:04.820Z", "contributors": [ - "hellosct1", - "ponsfrilus" + "JNa0", + "loella16", + "3dos", + "SphinxKnight", + "Hell_Carlito", + "teoli", + "jsx", + "tregagnon", + "Julien.stuby" ] }, - "Mozilla/Add-ons/WebExtensions/demander_les_bonnes_permissions": { - "modified": "2019-07-03T12:00:26.344Z", + "Web/API/Node/appendChild": { + "modified": "2019-04-19T11:04:07.094Z", "contributors": [ - "hellosct1", - "regseb" + "dhb33", + "loella16", + "gpenissard", + "P45QU10U", + "fscholz", + "teoli", + "khalid32", + "oooo", + "Jeremie", + "Shikiryu", + "Julien STUBY", + "Mgjbot", + "Chbok", + "ErgoUser", + "BenoitL", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/demandes_de_permission": { - "modified": "2019-05-18T18:06:34.313Z", + "Web/API/Node/baseURI": { + "modified": "2019-03-18T21:40:03.713Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/extension_des_outils_de_developpement": { - "modified": "2019-07-08T08:20:22.550Z", + "Web/API/Node/childNodes": { + "modified": "2020-10-15T21:13:37.347Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "time132", + "Julien STUBY", + "BenoitL", + "Mgjbot", + "Takenbot", + "GT" ] }, - "Mozilla/Add-ons/WebExtensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page": { - "modified": "2019-07-03T12:00:39.099Z", + "Web/API/Node/cloneNode": { + "modified": "2019-03-23T23:49:43.842Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "jsx", + "Twistede", + "Mgjbot", + "BenoitL", + "Fredchat", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/installation_temporaire_dans_Firefox": { - "modified": "2019-03-28T06:57:14.853Z", + "Web/API/Node/compareDocumentPosition": { + "modified": "2019-03-18T21:40:11.785Z", "contributors": [ - "hellosct1", - "zecakeh", - "fbessou" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/interagir_avec_le_presse_papier": { - "modified": "2019-07-03T05:46:49.789Z", + "Web/API/Node/contains": { + "modified": "2019-03-23T23:10:58.748Z", "contributors": [ - "hellosct1", - "MyriamB" + "loella16", + "vava", + "fscholz", + "AshfaqHossain", + "R_403" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json": { - "modified": "2020-10-15T21:39:14.599Z", + "Web/API/Node/firstChild": { + "modified": "2020-10-15T21:15:37.706Z", "contributors": [ - "hellosct1", + "Eric-ciccotti", "loella16", - "Bat" + "fscholz", + "AshfaqHossain", + "Sheppy", + "Mgjbot", + "BenoitL", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/arriere-plan": { - "modified": "2020-10-15T21:53:54.965Z", + "Web/API/Node/getRootNode": { + "modified": "2020-10-15T22:02:10.046Z", "contributors": [ - "hellosct1", - "Porkepix", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/auteur": { - "modified": "2020-10-15T21:53:55.193Z", + "Web/API/Node/getUserData": { + "modified": "2019-03-18T21:40:10.400Z", "contributors": [ - "hellosct1", - "fscholz", - "regseb", - "Porkepix", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/browser_action": { - "modified": "2020-10-15T21:54:15.348Z", + "Web/API/Node/hasChildNodes": { + "modified": "2019-03-23T23:54:17.372Z", "contributors": [ - "hellosct1", "loella16", - "SphinxKnight" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Fredchat", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings": { - "modified": "2020-10-15T21:39:14.644Z", + "Web/API/Node/insertBefore": { + "modified": "2019-03-23T23:59:37.542Z", "contributors": [ - "hellosct1", - "ExE-Boss", "loella16", - "Goofy", - "Bat" + "trebly", + "fscholz", + "teoli", + "Hasilt", + "tregagnon", + "Julien.stuby", + "Mgjbot", + "BenoitL", + "Cerbere13" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/chrome_settings_overrides": { - "modified": "2020-10-15T21:55:19.782Z", + "Web/API/Node/isConnected": { + "modified": "2020-10-15T22:02:12.631Z", "contributors": [ - "hellosct1", - "loella16", - "Ostefanini" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides": { - "modified": "2020-10-15T21:55:21.140Z", + "Web/API/Node/isDefaultNamespace": { + "modified": "2019-03-18T21:40:10.800Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/commands": { - "modified": "2020-10-15T21:55:23.895Z", + "Web/API/Node/isEqualNode": { + "modified": "2019-03-23T22:54:52.633Z", "contributors": [ - "hellosct1", - "wbamberg", - "Mozinet", - "edrflt", - "loella16" + "loella16", + "mjeanroy" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts": { - "modified": "2020-10-15T21:55:21.489Z", + "Web/API/Node/isSameNode": { + "modified": "2019-03-18T21:39:55.776Z", "contributors": [ - "hellosct1", - "Watilin", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy": { - "modified": "2020-10-15T21:55:18.077Z", + "Web/API/Node/isSupported": { + "modified": "2019-03-18T21:15:15.385Z", "contributors": [ - "hellosct1", - "Watilin" + "loella16", + "fscholz", + "teoli", + "jsx", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/default_locale": { - "modified": "2020-10-15T21:55:15.929Z", + "Web/API/Node/lastChild": { + "modified": "2020-10-15T21:15:08.719Z", "contributors": [ - "hellosct1", - "loella16" + "loella16", + "fscholz", + "teoli", + "mimzi_fahia", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/description": { - "modified": "2020-10-15T21:55:19.122Z", + "Web/API/Node/localName": { + "modified": "2020-10-15T21:17:55.986Z", "contributors": [ - "hellosct1", - "loella16" + "loella16", + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/developer": { - "modified": "2020-10-15T21:55:22.713Z", + "Web/API/Node/lookupNamespaceURI": { + "modified": "2019-03-18T21:39:45.898Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/devtools_page": { - "modified": "2020-10-15T21:55:10.420Z", + "Web/API/Node/lookupPrefix": { + "modified": "2019-03-18T21:40:12.652Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/dictionaries": { - "modified": "2020-10-15T22:18:47.471Z", + "Web/API/Node/namespaceURI": { + "modified": "2020-10-15T21:17:54.747Z", "contributors": [ - "hellosct1" + "loella16", + "fscholz", + "teoli", + "khalid32", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/externally_connectable": { - "modified": "2020-10-15T22:23:08.757Z", + "Web/API/Node/nextSibling": { + "modified": "2020-10-15T21:15:37.751Z", "contributors": [ - "hellosct1" + "wbamberg", + "loella16", + "fscholz", + "AshfaqHossain", + "Sheppy", + "Mgjbot", + "BenoitL", + "Pitoutompoilu", + "Takenbot" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/homepage_url": { - "modified": "2020-10-15T21:55:17.650Z", + "Web/API/Node/nodeName": { + "modified": "2020-10-15T21:16:21.067Z", "contributors": [ - "hellosct1", - "regseb", - "loella16" + "loella16", + "mparisot", + "fscholz", + "teoli", + "jsx", + "AshfaqHossain", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/icons": { - "modified": "2020-10-15T21:55:13.686Z", + "Web/API/Node/nodeType": { + "modified": "2020-10-15T21:16:45.416Z", "contributors": [ - "hellosct1", - "ggrossetie", - "loella16" + "loella16", + "fscholz", + "teoli", + "arunpandianp", + "ethertank", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/incognito": { - "modified": "2020-10-15T21:55:19.216Z", + "Web/API/Node/nodeValue": { + "modified": "2020-10-15T21:09:31.818Z", "contributors": [ - "hellosct1", - "loella16" + "loella16", + "fscholz", + "jsx", + "teoli", + "dextra", + "BenoitL", + "Kamel" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version": { - "modified": "2020-10-15T21:55:12.053Z", + "Web/API/Node/normalize": { + "modified": "2019-03-23T23:47:18.882Z", "contributors": [ - "hellosct1", - "loella16" + "Watilin", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Fredchat" + ] + }, + "Web/API/Node/ownerDocument": { + "modified": "2020-10-15T21:15:33.193Z", + "contributors": [ + "loella16", + "fscholz", + "Jeremie", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/name": { - "modified": "2020-10-15T21:55:11.900Z", + "Web/API/Node/parentElement": { + "modified": "2020-10-15T21:34:10.422Z", "contributors": [ - "hellosct1", - "loella16" + "loella16", + "Hell_Carlito", + "CLEm", + "Goofy", + "Eyelock" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/offline_enabled": { - "modified": "2020-10-15T22:11:14.653Z", + "Web/API/Node/parentNode": { + "modified": "2020-10-15T21:15:23.433Z", "contributors": [ - "hellosct1" + "mickro", + "loella16", + "vava", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/omnibox": { - "modified": "2020-10-15T21:55:22.642Z", + "Web/API/Node/prefix": { + "modified": "2020-10-15T21:17:23.469Z", "contributors": [ - "hellosct1", - "loella16" + "loella16", + "fscholz", + "teoli", + "soumya", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/optional_permissions": { - "modified": "2020-10-15T21:55:16.335Z", + "Web/API/Node/previousSibling": { + "modified": "2020-10-15T21:15:38.177Z", "contributors": [ - "hellosct1", - "loella16" + "wbamberg", + "loella16", + "fscholz", + "jsx", + "Sheppy", + "Mgjbot", + "BenoitL", + "Pitoutompoilu" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/options_page": { - "modified": "2020-10-15T22:08:03.256Z", + "Web/API/Node/removeChild": { + "modified": "2019-05-05T22:02:06.657Z", "contributors": [ - "hellosct1" + "loella16", + "Hell_Carlito", + "Copen", + "antmout", + "fscholz", + "teoli", + "khalid32", + "Julien STUBY", + "Mgjbot", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/options_ui": { - "modified": "2020-10-15T21:55:19.972Z", + "Web/API/Node/replaceChild": { + "modified": "2019-03-23T23:54:19.719Z", "contributors": [ - "hellosct1", "loella16", - "Ostefanini" + "lexoyo", + "fscholz", + "teoli", + "jsx", + "Mgjbot", + "BenoitL", + "Fredchat", + "Celelibi" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/page_action": { - "modified": "2020-10-15T21:55:24.587Z", + "Web/API/Node/setUserData": { + "modified": "2019-03-18T21:39:40.470Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/permissions": { - "modified": "2020-10-15T21:54:37.682Z", + "Web/API/Node/textContent": { + "modified": "2020-10-15T21:17:31.045Z", "contributors": [ - "hellosct1", - "Salamafet", - "Torzivalds", "loella16", - "lotfire24" + "fscholz", + "teoli", + "Etienne_WATTEBLED", + "khalid32", + "Delapouite", + "BenoitL" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/protocol_handlers": { - "modified": "2020-10-15T21:55:15.617Z", + "Web/API/NodeFilter": { + "modified": "2020-10-15T22:02:05.638Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/short_name": { - "modified": "2020-10-15T21:55:14.061Z", + "Web/API/NodeFilter/acceptNode": { + "modified": "2020-10-15T22:02:05.206Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/sidebar_action": { - "modified": "2020-10-15T21:55:14.605Z", + "Web/API/NodeIterator": { + "modified": "2019-03-18T21:40:15.210Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/storage": { - "modified": "2020-10-15T22:30:02.853Z", + "Web/API/NodeIterator/detach": { + "modified": "2020-10-15T22:02:07.225Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/theme": { - "modified": "2020-10-15T21:55:34.819Z", + "Web/API/NodeIterator/expandEntityReferences": { + "modified": "2020-10-15T22:02:07.409Z", "contributors": [ - "hellosct1", - "ariasuni", - "ntim", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/theme_experimentation": { - "modified": "2020-10-15T22:23:34.499Z", + "Web/API/NodeIterator/filter": { + "modified": "2020-10-15T22:02:07.204Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/user_scripts": { - "modified": "2019-10-12T20:43:45.353Z", + "Web/API/NodeIterator/nextNode": { + "modified": "2020-10-15T22:02:07.539Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/version": { - "modified": "2020-10-15T21:55:11.372Z", + "Web/API/NodeIterator/pointerBeforeReferenceNode": { + "modified": "2020-10-15T22:02:09.377Z", "contributors": [ - "hellosct1", - "regseb", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/version_name": { - "modified": "2020-10-15T22:04:03.493Z", + "Web/API/NodeIterator/previousNode": { + "modified": "2020-10-15T22:02:08.258Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources": { - "modified": "2020-10-15T21:55:21.044Z", + "Web/API/NodeIterator/referenceNode": { + "modified": "2020-10-15T22:02:07.308Z", "contributors": [ - "hellosct1", "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/manifests_native": { - "modified": "2019-09-30T13:34:40.128Z", + "Web/API/NodeIterator/root": { + "modified": "2020-10-15T22:02:05.574Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/partage_d_objets_avec_des_scripts_de_page": { - "modified": "2020-09-21T20:21:11.522Z", + "Web/API/NodeIterator/whatToShow": { + "modified": "2020-10-15T22:02:06.711Z", "contributors": [ - "JackNUMBER", - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/que_faire_ensuite": { - "modified": "2020-05-24T10:03:42.606Z", + "Web/API/NodeList": { + "modified": "2019-03-23T22:57:59.165Z", "contributors": [ - "hellosct1" + "madarche", + "loella16", + "uniqid", + "Fredchat", + "taorepoara" ] }, - "Mozilla/Add-ons/WebExtensions/que_signifie_le_rejet_d_une_revision_pour_les_utilisateurs": { - "modified": "2019-09-30T16:27:32.411Z", + "Web/API/NodeList/entries": { + "modified": "2020-10-15T22:02:16.295Z", "contributors": [ - "hellosct1" + "edspeedy", + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/securite_bonne_pratique": { - "modified": "2019-05-18T18:20:19.136Z", + "Web/API/NodeList/forEach": { + "modified": "2020-10-15T22:02:31.449Z", "contributors": [ - "hellosct1", - "JNa0" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/test_des_fonctionnalites_persistantes_et_de_redemarrage": { - "modified": "2019-05-19T02:44:57.977Z", + "Web/API/NodeList/item": { + "modified": "2020-10-15T22:02:18.906Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/travailler_avec_des_identites_contextuelles": { - "modified": "2019-07-03T12:03:14.858Z", + "Web/API/NodeList/keys": { + "modified": "2020-10-15T22:02:31.309Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/travailler_avec_l_API_cookies": { - "modified": "2019-07-03T12:04:24.574Z", + "Web/API/NodeList/length": { + "modified": "2020-10-15T22:02:17.633Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface": { - "modified": "2019-05-19T16:33:54.438Z", + "Web/API/NodeList/values": { + "modified": "2020-10-15T22:02:32.815Z", "contributors": [ - "hellosct1", - "rebloor" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Browser_action": { - "modified": "2019-07-03T12:02:27.727Z", + "Web/API/Notation": { + "modified": "2019-03-18T21:40:13.820Z", "contributors": [ - "hellosct1" + "loella16" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Browser_styles": { - "modified": "2020-10-15T22:06:57.625Z", + "Web/API/NotificationEvent": { + "modified": "2020-09-27T20:47:13.129Z", "contributors": [ - "hellosct1" + "SphinxKnight", + "dzlabs" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Notifications": { - "modified": "2019-09-30T16:39:31.088Z", + "Web/API/Notifications_API": { + "modified": "2020-10-15T22:34:42.573Z", "contributors": [ - "hellosct1" + "tomderudder" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Omnibox": { - "modified": "2019-07-03T14:25:31.393Z", + "Web/API/NotifyAudioAvailableEvent": { + "modified": "2020-10-13T11:44:03.313Z", "contributors": [ - "hellosct1" + "Voulto" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Options_pages": { - "modified": "2019-10-07T19:06:20.943Z", + "Web/API/OffscreenCanvas": { + "modified": "2019-03-18T21:46:24.440Z", "contributors": [ - "WSH", - "hellosct1" + "NemoNobobyPersonne" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Page_actions": { - "modified": "2019-07-03T15:11:50.284Z", + "Web/API/OscillatorNode": { + "modified": "2019-03-23T22:53:15.413Z", "contributors": [ - "hellosct1", - "Silbad" + "marie-ototoi", + "kbeaulieu", + "Goofy", + "fscholz", + "Poyoman39" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/Popups": { - "modified": "2019-09-30T16:35:45.642Z", + "Web/API/PageTransitionEvent": { + "modified": "2019-03-23T22:48:09.437Z", "contributors": [ - "hellosct1", - "supertanuki", - "Silbad" + "Watilin", + "ashnet" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales": { - "modified": "2020-06-21T16:36:44.213Z", + "Web/API/Page_Visibility_API": { + "modified": "2019-03-23T22:01:56.477Z", "contributors": [ - "hellosct1", - "Eonm" + "Watilin" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel": { - "modified": "2019-09-30T14:46:57.757Z", + "Web/API/ParentNode": { + "modified": "2020-10-15T21:33:02.872Z", "contributors": [ - "hellosct1", - "chrisspb", - "Outpox" + "abvll", + "loella16", + "fscholz" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/lignes_directrices_en_matiere_accessibilite": { - "modified": "2019-10-12T19:02:53.249Z", + "Web/API/ParentNode/append": { + "modified": "2020-10-15T21:59:23.058Z", "contributors": [ - "hellosct1" + "Yukulele.", + "Watilin", + "ayshiff" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/pages_web_incluses": { - "modified": "2020-06-09T16:59:51.409Z", + "Web/API/ParentNode/childElementCount": { + "modified": "2020-10-15T21:37:50.913Z", "contributors": [ - "hellosct1", - "JNa0" + "abvll", + "loella16", + "xavierartot", + "vava" ] }, - "Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools": { - "modified": "2019-07-03T14:11:08.292Z", + "Web/API/ParentNode/children": { + "modified": "2020-10-15T21:43:07.206Z", "contributors": [ - "hellosct1" + "Arzak656", + "jMoulis", + "loella16", + "NemoNobobyPersonne", + "xavierartot" ] }, - "Mozilla/Add-ons_bonnes_pratiques_performances_extensions": { - "modified": "2019-03-23T22:52:30.998Z", + "Web/API/ParentNode/firstElementChild": { + "modified": "2019-03-23T23:35:50.443Z", "contributors": [ - "ArakNoPhob" + "pdonias", + "fscholz", + "teoli", + "khalid32", + "Delapouite", + "Beaver" ] }, - "Mozilla/Developer_guide": { - "modified": "2020-08-31T05:54:42.010Z", + "Web/API/ParentNode/lastElementChild": { + "modified": "2019-03-18T21:39:15.409Z", "contributors": [ - "Voulto", - "chrisdavidmills", - "jp.jeaphil", - "echaudron", - "Jonathanlempereur", - "wakka27", - "Delapouite", - "bskari" + "loella16" ] }, - "Mozilla/Developer_guide/How_to_Submit_a_Patch": { - "modified": "2019-03-23T22:06:44.874Z", + "Web/API/ParentNode/prepend": { + "modified": "2020-10-15T22:02:32.998Z", "contributors": [ - "sylvestre", - "chrisdavidmills", - "loella16", - "KurtC0ba1n" + "Yukulele.", + "Seblor", + "loella16" ] }, - "Mozilla/Developer_guide/Reviewer_Checklist": { - "modified": "2020-04-06T15:56:36.678Z", + "Web/API/ParentNode/querySelector": { + "modified": "2020-10-15T22:30:52.578Z", "contributors": [ - "olivierdupon", - "chrisdavidmills", - "loella16", - "CarlosAvim" + "NeaVy" ] }, - "Mozilla/Developer_guide/Vous_venez_juste_de_compiler_Firefox": { - "modified": "2019-03-23T23:19:14.291Z", + "Web/API/ParentNode/querySelectorAll": { + "modified": "2020-10-15T22:02:32.472Z", "contributors": [ - "chrisdavidmills", - "juleschz" + "abvll", + "loella16" ] }, - "Mozilla/Developer_guide/mozilla-central": { - "modified": "2019-03-24T00:02:46.954Z", + "Web/API/PasswordCredential": { + "modified": "2020-10-15T22:15:37.555Z", "contributors": [ - "chrisdavidmills", - "QuentinAmelot", - "tregagnon", - "fscholz", - "BenoitL" + "SphinxKnight", + "fscholz" ] }, - "Mozilla/Firefox": { - "modified": "2020-01-18T13:29:35.316Z", + "Web/API/PasswordCredential/PasswordCredential": { + "modified": "2020-10-15T22:15:43.158Z", "contributors": [ - "leela52452", - "SphinxKnight", - "wbamberg", - "cecilebertin", - "arthuretienne", - "zozolulu74", - "Pikexel", - "flo5589", - "FredB", - "ethertank" + "SphinxKnight" ] }, - "Mozilla/Firefox/Experimental_features": { - "modified": "2020-09-22T03:39:10.062Z", + "Web/API/PasswordCredential/additionalData": { + "modified": "2020-10-15T22:15:45.161Z", "contributors": [ - "Mttwt9", - "olivierdupon", - "wbamberg", - "GuiBret", - "Lululion", - "DTSSE" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/25": { - "modified": "2020-09-12T04:13:11.916Z", + "Web/API/PasswordCredential/iconURL": { + "modified": "2020-10-15T22:15:45.183Z", "contributors": [ - "Voulto", - "wbamberg", - "kohei.yoshino" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/25/Site_Compatibility": { - "modified": "2019-01-16T21:57:42.942Z", + "Web/API/PasswordCredential/idName": { + "modified": "2020-10-15T22:15:37.132Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/26": { - "modified": "2020-09-16T08:21:14.333Z", + "Web/API/PasswordCredential/name": { + "modified": "2020-10-15T22:15:42.939Z", "contributors": [ - "Voulto", - "wbamberg", - "kohei.yoshino" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/26/Site_Compatibility": { - "modified": "2019-01-16T21:59:11.115Z", + "Web/API/PasswordCredential/password": { + "modified": "2020-10-15T22:15:44.068Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/27": { - "modified": "2020-09-20T06:36:32.881Z", + "Web/API/PasswordCredential/passwordName": { + "modified": "2020-10-15T22:15:42.960Z", "contributors": [ - "Voulto", - "wbamberg", - "kohei.yoshino" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/27/Site_Compatibility": { - "modified": "2019-01-16T21:49:05.193Z", + "Web/API/Payment_Request_API": { + "modified": "2020-10-15T22:20:45.922Z", "contributors": [ - "wbamberg", - "xdelatour" + "codingk8" ] }, - "Mozilla/Firefox/Releases/28": { - "modified": "2020-09-30T06:44:33.639Z", + "Web/API/Performance": { + "modified": "2020-10-15T21:33:03.900Z", "contributors": [ - "Voulto", - "wbamberg", - "kohei.yoshino" + "cdoublev", + "fscholz", + "maeljirari" ] }, - "Mozilla/Firefox/Releases/28/Site_Compatibility": { - "modified": "2019-01-16T21:59:08.939Z", + "Web/API/Performance/navigation": { + "modified": "2020-10-15T22:03:54.846Z", "contributors": [ - "wbamberg", - "xdelatour" + "fscholz", + "maeljirari" ] }, - "Mozilla/Firefox/Releases/29": { - "modified": "2020-10-29T07:27:45.030Z", + "Web/API/Performance/now": { + "modified": "2020-10-15T21:27:41.866Z", "contributors": [ - "Voulto", - "wbamberg", - "Sebastianz", - "kohei.yoshino" + "Watilin", + "NemoNobobyPersonne", + "fscholz", + "Goofy", + "ilaborie" ] }, - "Mozilla/Firefox/Releases/29/Site_Compatibility": { - "modified": "2019-01-16T21:57:45.131Z", + "Web/API/PeriodicWave": { + "modified": "2020-10-15T22:09:54.557Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight", + "JNa0", + "simdax" ] }, - "Mozilla/Firefox/Releases/30": { - "modified": "2020-09-21T08:58:56.014Z", + "Web/API/Permissions_API": { + "modified": "2020-10-15T22:21:53.625Z", "contributors": [ - "Voulto", - "wbamberg", - "fscholz" + "lp177" ] }, - "Mozilla/Firefox/Releases/30/Site_Compatibility": { - "modified": "2019-01-16T21:57:39.588Z", + "Web/API/Plugin": { + "modified": "2019-03-18T21:43:51.138Z", "contributors": [ - "wbamberg", - "xdelatour" + "ayshiff" ] }, - "Mozilla/Firefox/Releases/31": { - "modified": "2019-03-23T22:41:00.540Z", + "Web/API/PointerEvent": { + "modified": "2020-10-15T22:17:19.185Z", "contributors": [ - "wbamberg", - "teoli" + "brunostasse", + "cdoublev" ] }, - "Mozilla/Firefox/Releases/31/Site_Compatibility": { - "modified": "2019-01-16T21:57:55.582Z", + "Web/API/Pointer_events": { + "modified": "2020-11-02T15:44:40.619Z", "contributors": [ - "wbamberg", - "xdelatour" + "lephemere", + "a-mt", + "davidhbrown" ] }, - "Mozilla/Firefox/Releases/32": { - "modified": "2019-03-23T22:59:34.596Z", + "Web/API/PositionOptions": { + "modified": "2019-08-26T09:46:33.509Z", "contributors": [ - "wbamberg", - "kmaglione" + "ReinWired", + "guizmo51", + "JeanLucB" ] }, - "Mozilla/Firefox/Releases/32/Site_Compatibility": { - "modified": "2019-03-23T22:59:35.978Z", + "Web/API/PositionOptions/enableHighAccuracy": { + "modified": "2019-03-18T21:37:11.224Z", "contributors": [ - "wbamberg", - "Amandine83" + "JeanLucB" ] }, - "Mozilla/Firefox/Releases/33": { - "modified": "2019-03-23T22:40:55.948Z", + "Web/API/PositionOptions/maximumAge": { + "modified": "2019-03-18T21:37:16.913Z", "contributors": [ - "wbamberg", - "Sebastianz", - "teoli" + "JeanLucB" ] }, - "Mozilla/Firefox/Releases/33/Site_Compatibility": { - "modified": "2019-01-16T21:57:26.981Z", + "Web/API/PositionOptions/timeout": { + "modified": "2020-10-15T22:03:34.783Z", "contributors": [ - "wbamberg", - "xdelatour" + "Arzak656", + "JeanLucB" ] }, - "Mozilla/Firefox/Releases/34": { - "modified": "2019-03-23T22:42:55.224Z", + "Web/API/ProcessingInstruction": { + "modified": "2019-03-18T21:40:23.342Z", "contributors": [ - "wbamberg", - "kohei.yoshino" + "loella16" ] }, - "Mozilla/Firefox/Releases/34/Site_Compatibility": { - "modified": "2019-01-16T21:49:04.698Z", + "Web/API/PublicKeyCredential": { + "modified": "2020-10-15T22:15:37.633Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight" ] }, - "Mozilla/Firefox/Releases/36": { - "modified": "2019-03-23T22:42:49.784Z", + "Web/API/PushEvent": { + "modified": "2019-03-18T21:17:31.867Z", "contributors": [ - "wbamberg", - "Sebastianz", - "kohei.yoshino" + "Hell_Carlito", + "JeffD" ] }, - "Mozilla/Firefox/Releases/36/Site_Compatibility": { - "modified": "2019-01-16T21:49:12.998Z", + "Web/API/Push_API": { + "modified": "2020-10-15T21:44:48.386Z", "contributors": [ - "wbamberg", - "xdelatour" + "tristantheb", + "Hell_Carlito", + "nicolashenry", + "JeffD" ] }, - "Mozilla/Firefox/Releases/37": { - "modified": "2019-03-23T22:42:50.839Z", + "Web/API/RTCIceServer": { + "modified": "2020-09-12T07:23:54.439Z", "contributors": [ - "wbamberg", - "kohei.yoshino" + "MisterDA", + "amineSsa" ] }, - "Mozilla/Firefox/Releases/37/Site_Compatibility": { - "modified": "2019-01-16T21:49:07.566Z", + "Web/API/RTCPeerConnection": { + "modified": "2020-10-15T22:22:14.553Z", "contributors": [ - "wbamberg", - "xdelatour" + "plyd", + "philbhur" ] }, - "Mozilla/Firefox/Releases/38": { - "modified": "2019-03-23T22:42:50.499Z", + "Web/API/RTCPeerConnection/setConfiguration": { + "modified": "2020-10-15T22:22:53.605Z", "contributors": [ - "wbamberg", - "teoli" + "SphinxKnight", + "bbataini" ] }, - "Mozilla/Firefox/Releases/38/Site_Compatibility": { - "modified": "2019-01-16T21:49:04.613Z", + "Web/API/Range": { + "modified": "2019-03-18T20:49:38.585Z", "contributors": [ - "wbamberg", - "xdelatour" + "Watilin", + "stefmaster", + "teoli", + "jsx", + "Mgjbot", + "BenoitL", + "Fredchat", + "VincentN", + "Learning" ] }, - "Mozilla/Firefox/Releases/39": { - "modified": "2020-09-21T08:17:39.666Z", + "Web/API/Range/createContextualFragment": { + "modified": "2019-03-18T21:42:33.795Z", "contributors": [ - "Voulto", - "wbamberg", - "Guillaume-Heras", - "teoli" + "Watilin" ] }, - "Mozilla/Firefox/Releases/39/Site_Compatibility": { - "modified": "2019-01-16T21:49:07.002Z", + "Web/API/Range/detach": { + "modified": "2020-10-15T22:06:40.189Z", "contributors": [ - "wbamberg", - "xdelatour" + "jonasgrilleres" ] }, - "Mozilla/Firefox/Releases/42": { - "modified": "2020-09-20T07:50:40.946Z", + "Web/API/Range/extractContents": { + "modified": "2020-10-15T22:01:04.338Z", "contributors": [ - "Voulto", - "wbamberg", "SphinxKnight", - "syoichi" + "Watilin" ] }, - "Mozilla/Firefox/Releases/42/Site_Compatibility": { - "modified": "2019-01-16T21:48:30.986Z", + "Web/API/Range/insertNode": { + "modified": "2019-03-23T22:26:49.211Z", "contributors": [ - "wbamberg", - "xdelatour" + "Hell_Carlito", + "Watilin" ] }, - "Mozilla/Firefox/Versions": { - "modified": "2020-09-04T09:36:06.531Z", + "Web/API/Range/selectNode": { + "modified": "2019-03-18T21:38:58.634Z", "contributors": [ - "Voulto", - "wbamberg", - "FredB", - "Sheppy" + "NemoNobobyPersonne" ] }, - "Mozilla/Firefox/Versions/1.5": { - "modified": "2019-03-24T00:15:36.655Z", + "Web/API/Range/setStart": { + "modified": "2019-03-23T22:02:21.472Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner", - "BenoitL", - "Mgjbot", - "Mozinet", - "Chbok" + "cabalpit" ] }, - "Mozilla/Firefox/Versions/11": { - "modified": "2019-03-23T23:38:04.029Z", + "Web/API/Range/surroundContents": { + "modified": "2020-10-15T22:15:03.441Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "Watilin" ] }, - "Mozilla/Firefox/Versions/12": { - "modified": "2019-03-18T21:08:58.052Z", + "Web/API/Request": { + "modified": "2020-10-15T21:45:46.926Z", "contributors": [ - "fscholz", - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "Voulto", + "SphinxKnight", + "Sheppy" ] }, - "Mozilla/Firefox/Versions/13": { - "modified": "2019-03-23T23:38:05.142Z", + "Web/API/Request/Request": { + "modified": "2020-10-15T21:58:38.703Z", "contributors": [ - "wbamberg", - "prayash", - "tregagnon", - "FredB", - "ThePrisoner" + "SphinxKnight", + "rpereira-dev", + "NemoNobobyPersonne" ] }, - "Mozilla/Firefox/Versions/15": { - "modified": "2019-03-23T23:06:29.503Z", + "Web/API/Request/credentials": { + "modified": "2020-10-15T21:59:03.816Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "SphinxKnight", + "Flavien" ] }, - "Mozilla/Firefox/Versions/16": { - "modified": "2019-03-23T23:37:32.181Z", + "Web/API/Request/mode": { + "modified": "2020-10-15T21:45:44.176Z", "contributors": [ - "wbamberg", - "mrstork", - "tregagnon", - "FredB", - "ThePrisoner" + "SphinxKnight", + "m1ch3lcl", + "P45QU10U" ] }, - "Mozilla/Firefox/Versions/17": { - "modified": "2019-03-18T21:08:57.759Z", + "Web/API/Resize_Observer_API": { + "modified": "2020-11-16T08:29:15.752Z", "contributors": [ - "fscholz", - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "JNa0" ] }, - "Mozilla/Firefox/Versions/17/Site_compatibility": { - "modified": "2019-01-16T21:49:04.673Z", + "Web/API/Response": { + "modified": "2019-03-23T22:02:32.946Z", "contributors": [ - "wbamberg", - "xdelatour" + "Hennek" ] }, - "Mozilla/Firefox/Versions/18": { - "modified": "2019-03-23T23:35:11.165Z", + "Web/API/SVGAElement": { + "modified": "2019-03-23T23:09:32.730Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "Goofy", + "Barbrousse" ] }, - "Mozilla/Firefox/Versions/18/Site_compatibility": { - "modified": "2019-01-16T21:57:32.133Z", + "Web/API/SVGDescElement": { + "modified": "2020-10-15T21:34:30.445Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight", + "B_M" ] }, - "Mozilla/Firefox/Versions/19": { - "modified": "2019-03-23T23:34:04.814Z", + "Web/API/SVGElement": { + "modified": "2019-03-23T23:05:24.715Z", "contributors": [ - "wbamberg", - "Sebastianz", - "tregagnon", - "FredB", - "ThePrisoner", - "Skoua" + "thePivottt" ] }, - "Mozilla/Firefox/Versions/19/Site_compatibility": { - "modified": "2019-01-16T21:57:39.651Z", + "Web/API/SVGMatrix": { + "modified": "2019-03-23T23:03:00.534Z", "contributors": [ - "wbamberg", - "xdelatour" + "Arioch" ] }, - "Mozilla/Firefox/Versions/2": { - "modified": "2019-03-24T00:04:11.055Z", + "Web/API/SVGRect": { + "modified": "2019-03-23T23:02:52.318Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "fscholz", - "Mgjbot", - "BenoitL", - "Fredchat", - "Chbok", - "Lefou", - "Planche", - "Mozinet" + "Arioch" ] }, - "Mozilla/Firefox/Versions/20": { - "modified": "2019-03-23T23:33:26.421Z", + "Web/API/SVGRectElement": { + "modified": "2020-10-15T22:16:03.247Z", "contributors": [ - "wbamberg", - "FredB", - "ThePrisoner", - "Martial76" + "Arzak656" ] }, - "Mozilla/Firefox/Versions/20/Site_compatibility": { - "modified": "2019-01-16T21:58:36.580Z", + "Web/API/SVGStylable": { + "modified": "2020-10-15T21:34:30.185Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight", + "B_M" ] }, - "Mozilla/Firefox/Versions/21": { - "modified": "2019-11-20T21:19:06.767Z", + "Web/API/SVGTitleElement": { + "modified": "2019-03-23T22:57:49.129Z", "contributors": [ - "wbamberg", - "tregagnon", - "Delapouite" + "B_M" ] }, - "Mozilla/Firefox/Versions/21/Site_compatibility": { - "modified": "2019-01-16T21:57:29.270Z", + "Web/API/Screen_Capture_API": { + "modified": "2020-10-15T22:21:38.382Z", "contributors": [ - "wbamberg", - "xdelatour" + "Torzivalds" ] }, - "Mozilla/Firefox/Versions/22": { - "modified": "2019-03-23T23:28:17.543Z", + "Web/API/Selection": { + "modified": "2020-10-15T21:17:12.773Z", "contributors": [ - "wbamberg", - "chrisdavidmills", - "Skoua" + "scientificware", + "jeangab62", + "thiberaw", + "Hell_Carlito", + "Goofy", + "Watilin", + "Nothus", + "gaelb", + "teoli", + "jsx", + "Mgjbot", + "Chbok" ] }, - "Mozilla/Firefox/Versions/22/Site_compatibility": { - "modified": "2019-01-16T21:57:40.074Z", + "Web/API/Selection/collapse": { + "modified": "2019-03-23T22:40:49.435Z", "contributors": [ - "wbamberg", - "xdelatour" + "Hell_Carlito", + "zede-master" ] }, - "Mozilla/Firefox/Versions/23": { - "modified": "2019-03-23T22:59:15.612Z", + "Web/API/Selection/toString": { + "modified": "2019-03-23T23:47:21.731Z", "contributors": [ - "wbamberg", - "benaddou", - "ThePrisoner" + "fscholz", + "teoli", + "jsx", + "Chbok" ] }, - "Mozilla/Firefox/Versions/23/Site_compatibility": { - "modified": "2019-01-16T21:57:25.542Z", + "Web/API/Selection/type": { + "modified": "2020-10-15T22:28:11.070Z", "contributors": [ - "wbamberg", - "xdelatour" + "G-Couvert" ] }, - "Mozilla/Firefox/Versions/24": { - "modified": "2019-03-23T22:43:17.357Z", + "Web/API/Server-sent_events": { + "modified": "2020-08-31T06:12:15.737Z", "contributors": [ - "wbamberg", - "ThePrisoner" + "Voulto", + "SphinxKnight", + "Arterrien", + "ethertank" ] }, - "Mozilla/Firefox/Versions/24/Site_compatibility": { - "modified": "2019-01-16T21:57:47.692Z", + "Web/API/Server-sent_events/Using_server-sent_events": { + "modified": "2019-10-23T03:46:57.246Z", "contributors": [ - "wbamberg", - "xdelatour" + "SphinxKnight", + "Watilin", + "tartinesKiller", + "duchesne.andre", + "ygarbage", + "QuentinChx", + "mikadev" ] }, - "Mozilla/Firefox/Versions/3": { - "modified": "2019-03-23T23:57:59.495Z", + "Web/API/ServiceWorker": { + "modified": "2020-10-15T21:44:04.910Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "BenoitL", - "Mgjbot", - "Chbok", - "Mozinet", - "Fredchat", - "Rishtarz", - "Kyodev" + "tomderudder", + "JNa0", + "pdesjardins90", + "nobe4" ] }, - "Mozilla/Firefox/Versions/3.5": { - "modified": "2019-03-24T00:01:24.251Z", + "Web/API/ServiceWorker/onstatechange": { + "modified": "2019-03-23T22:37:05.749Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "BenoitL", - "Chbok", - "Goofy", - "Mgjbot" + "nobe4" ] }, - "Mozilla/Firefox/Versions/3.6": { - "modified": "2019-12-13T20:33:39.144Z", + "Web/API/ServiceWorkerContainer": { + "modified": "2019-03-23T22:15:17.877Z", "contributors": [ - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner", - "fryn", - "fscholz", - "Thomash", - "BenoitL" + "Tranber0" ] }, - "Mozilla/Firefox/Versions/35": { - "modified": "2019-12-13T20:33:22.682Z", + "Web/API/ServiceWorkerContainer/getRegistration": { + "modified": "2020-10-15T22:33:54.801Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "mliatt", - "Godrod", - "Runatal" + "Arzak656" ] }, - "Mozilla/Firefox/Versions/35/Site_Compatibility": { - "modified": "2019-01-16T21:49:04.592Z", + "Web/API/ServiceWorkerContainer/register": { + "modified": "2020-10-15T22:34:39.454Z", "contributors": [ - "wbamberg", - "xdelatour" + "tomderudder" ] }, - "Mozilla/Firefox/Versions/4": { - "modified": "2019-11-21T00:43:25.071Z", + "Web/API/ServiceWorkerGlobalScope": { + "modified": "2020-10-15T22:34:58.233Z", "contributors": [ - "wbamberg", - "Sebastianz", - "tregagnon", - "FredB", - "ThePrisoner" + "alattalatta" ] }, - "Mozilla/Firefox/Versions/40": { - "modified": "2019-03-23T22:51:13.163Z", + "Web/API/ServiceWorkerGlobalScope/onnotificationclick": { + "modified": "2020-10-15T22:34:57.743Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "BenoitEsnard", - "ov357" + "tomderudder" ] }, - "Mozilla/Firefox/Versions/40/Site_Compatibility": { - "modified": "2019-01-16T21:48:27.545Z", + "Web/API/ServiceWorkerRegistration": { + "modified": "2020-10-15T22:15:48.505Z", "contributors": [ - "wbamberg", - "xdelatour" + "chrisdavidmills" ] }, - "Mozilla/Firefox/Versions/41": { - "modified": "2019-03-23T22:49:38.696Z", + "Web/API/ServiceWorkerRegistration/active": { + "modified": "2020-10-15T22:15:46.844Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "Paleno" + "Watilin" ] }, - "Mozilla/Firefox/Versions/41/Site_Compatibility": { - "modified": "2019-01-16T21:48:49.107Z", + "Web/API/ServiceWorkerRegistration/getNotifications": { + "modified": "2020-10-15T22:34:57.266Z", "contributors": [ - "wbamberg", - "xdelatour" + "tomderudder" ] }, - "Mozilla/Firefox/Versions/5": { - "modified": "2019-03-23T23:38:10.236Z", + "Web/API/ServiceWorkerRegistration/scope": { + "modified": "2020-10-15T22:35:02.366Z", "contributors": [ - "fscholz", - "wbamberg", - "tregagnon", - "FredB", - "ThePrisoner" + "tomderudder" ] }, - "Mozilla/Firefox/Versions/50": { - "modified": "2019-03-23T22:23:32.722Z", + "Web/API/ServiceWorkerRegistration/showNotification": { + "modified": "2020-10-15T22:34:57.967Z", "contributors": [ - "wbamberg", - "Xhelas" + "tomderudder" ] }, - "Mozilla/Firefox/Versions/59": { - "modified": "2019-03-18T21:37:37.649Z", + "Web/API/ServiceWorkerState": { + "modified": "2019-03-18T21:18:01.317Z", "contributors": [ - "wbamberg", - "julienw" + "AurelieBayre" ] }, - "Mozilla/Firefox/Versions/6": { - "modified": "2019-11-21T00:43:13.867Z", + "Web/API/Service_Worker_API": { + "modified": "2019-03-23T22:40:14.713Z", "contributors": [ - "wbamberg", - "tregagnon", - "ThePrisoner" + "onra87", + "STudio26", + "JeffD", + "jean-pierre.gay" ] }, - "Mozilla/Firefox/Versions/63": { - "modified": "2019-03-18T21:22:08.997Z", + "Web/API/Service_Worker_API/Using_Service_Workers": { + "modified": "2020-07-26T01:50:40.763Z", "contributors": [ - "algorun77" + "yanabess", + "bArraxas", + "yanns1", + "Faenzar", + "lp177", + "NerOcrO", + "paulintrognon", + "bgondy", + "luminecence", + "drskullster", + "zikinf", + "vthibault", + "nhoizey", + "jean-pierre.gay" ] }, - "Mozilla/Firefox/Versions/65": { - "modified": "2019-03-18T20:39:08.555Z", + "Web/API/ShadowRoot": { + "modified": "2020-10-15T21:48:45.645Z", "contributors": [ - "samus35" + "SphinxKnight", + "EnzDev" ] }, - "Mozilla/Firefox/Versions/68": { - "modified": "2019-08-22T13:01:38.971Z", + "Web/API/ShadowRoot/delegatesFocus": { + "modified": "2020-10-15T22:25:00.485Z", "contributors": [ - "BuzzRage" + "SphinxKnight" ] }, - "Mozilla/Firefox/Versions/69": { - "modified": "2019-08-14T05:59:15.506Z", + "Web/API/ShadowRoot/host": { + "modified": "2020-10-15T22:25:00.578Z", "contributors": [ - "Kuzcoo" + "SphinxKnight" ] }, - "Mozilla/Firefox/Versions/7": { - "modified": "2019-03-23T23:38:06.097Z", + "Web/API/ShadowRoot/innerHTML": { + "modified": "2020-10-15T22:25:01.691Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "tregagnon", - "FredB", - "ThePrisoner" + "SphinxKnight" ] }, - "Mozilla/Firefox/Versions/70": { - "modified": "2019-09-02T05:07:52.712Z", + "Web/API/ShadowRoot/mode": { + "modified": "2020-10-15T22:25:00.485Z", "contributors": [ - "pbrosset" + "SphinxKnight" ] }, - "Mozilla/Firefox/Versions/76": { - "modified": "2020-05-10T16:11:03.049Z", + "Web/API/SharedWorker": { + "modified": "2020-10-15T21:27:22.248Z", "contributors": [ - "tristantheb" + "Arzak656", + "a-mt", + "wakka27", + "jean-pierre.gay", + "FuturLiberta" ] }, - "Mozilla/Firefox/Versions/77": { - "modified": "2020-05-10T15:53:10.394Z", + "Web/API/SharedWorker/SharedWorker": { + "modified": "2020-10-15T22:27:12.056Z", "contributors": [ - "tristantheb", - "Neku3721" + "Arzak656" ] }, - "Mozilla/Firefox/Versions/8": { - "modified": "2019-11-21T00:43:06.185Z", + "Web/API/SharedWorker/port": { + "modified": "2020-10-15T22:27:03.021Z", "contributors": [ - "wbamberg", - "Sebastianz", - "tregagnon", - "FredB", - "ThePrisoner" + "Arzak656" ] }, - "Mozilla/Firefox/Versions/9": { - "modified": "2019-12-13T20:33:26.081Z", + "Web/API/SharedWorkerGlobalScope": { + "modified": "2020-10-15T22:26:31.672Z", "contributors": [ - "wbamberg", - "fscholz", - "tregagnon", - "FredB", - "ThePrisoner" + "SphinxKnight", + "mfuji09" ] }, - "NPAPI/Constantes": { - "modified": "2019-03-24T00:03:23.228Z", + "Web/API/SharedWorkerGlobalScope/applicationCache": { + "modified": "2020-10-15T22:26:34.435Z", "contributors": [ - "Delapouite", - "Demos" + "Arzak656" ] }, - "NavigatorUserMedia.getUserMedia": { - "modified": "2019-03-23T23:05:32.482Z", + "Web/API/SharedWorkerGlobalScope/onconnect": { + "modified": "2020-10-15T22:26:31.419Z", "contributors": [ - "a-mt", - "Nek-", - "Eric013", - "SuperStrong" + "Arzak656" ] }, - "Outils": { - "modified": "2020-07-16T22:44:14.844Z", + "Web/API/SpeechRecognition": { + "modified": "2019-03-18T21:42:43.926Z", "contributors": [ - "SphinxKnight", - "maximelore", - "sunazerty", - "wbamberg", - "Dralyab", - "unpeudetout", - "stephane34", - "enguerran", - "BenoitL", - "Pierrot", - "Goofy", - "Sabine", - "Azurrea", - "thequestion", - "KittenOverlord", - "ninovelena", - "tregagnon", - "teoli", - "wakka27", - "Juju77", - "tchevalier", - "Delapouite", - "FredB", - "ethertank", - "julienw", - "tcit", - "Fredchat", - "Kyodev", - "Mgjbot", - "Takenbot", - "Andreas Wuest", - "Jean-Yves Cronier", - "Chbok", - "Jep", - "Nickolay", - "TestUser" + "SamuelCompagnon" ] }, - "Outils/Accessing_the_Developer_Tools": { - "modified": "2020-07-16T22:35:25.957Z", + "Web/API/SpeechSynthesisUtterance": { + "modified": "2019-03-23T22:05:52.587Z", "contributors": [ - "wbamberg", - "maximelore" + "necraidan" ] }, - "Outils/Add-ons": { - "modified": "2020-07-16T22:36:23.351Z", + "Web/API/Storage": { + "modified": "2020-10-15T21:32:34.574Z", "contributors": [ - "maximelore", - "wbamberg" + "tristantheb", + "SphinxKnight", + "CaribouFute", + "EmilienD", + "gpenissard" ] }, - "Outils/Boîte_à_outils_du_navigateur": { - "modified": "2020-07-16T22:35:55.531Z", + "Web/API/Storage/clear": { + "modified": "2020-10-15T21:46:22.875Z", "contributors": [ - "hellosct1", - "wbamberg", - "maximelore", - "nico_nc", - "teoli", - "KittenOverlord", - "nora" + "tristantheb", + "JNa0", + "Axnyff", + "Hell_Carlito", + "EmilienD" ] }, - "Outils/CSS_Coverage": { - "modified": "2019-03-23T22:51:54.141Z", + "Web/API/Storage/getItem": { + "modified": "2020-11-11T20:24:08.906Z", "contributors": [ - "maximelore", - "wbamberg" + "tristantheb", + "JNa0", + "Axnyff", + "gharel", + "Sofness", + "EmilienD" ] }, - "Outils/Console_JavaScript": { - "modified": "2020-07-16T22:35:42.346Z", + "Web/API/Storage/key": { + "modified": "2019-03-23T22:21:16.859Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli", - "Jeremie", - "tregagnon", - "Delapouite", - "SylvainPasche", - "BenoitL", - "Pablor44", - "Fredchat", - "Matdere" + "JNa0", + "Axnyff", + "Sofness" ] }, - "Outils/Console_Web": { - "modified": "2020-07-16T22:34:05.900Z", + "Web/API/Storage/length": { + "modified": "2019-03-23T22:11:25.445Z", "contributors": [ - "maximelore", - "wbamberg", - "glickind", - "Coraline", - "teoli", - "Thegennok", - "trevorh", - "J.DMB", - "tregagnon", - "milc", - "sperling", - "dataG" + "JNa0", + "Axnyff" ] }, - "Outils/Console_Web/Console_messages": { - "modified": "2020-08-29T03:46:11.424Z", + "Web/API/Storage/removeItem": { + "modified": "2020-11-19T06:32:26.629Z", "contributors": [ - "stphngrc", - "wbamberg", - "maximelore", - "glickind" + "tristantheb", + "JNa0", + "refschool" ] }, - "Outils/Console_Web/Fonctions_d_aide": { - "modified": "2020-08-28T09:54:35.807Z", + "Web/API/Storage/setItem": { + "modified": "2019-10-31T12:01:56.712Z", "contributors": [ - "stphngrc", - "wbamberg", - "maximelore", - "teoli", - "tregagnon" + "KoalaMoala", + "JNa0", + "Axnyff", + "rmNyro" ] }, - "Outils/Console_Web/Keyboard_shortcuts": { - "modified": "2020-07-16T22:34:22.621Z", + "Web/API/StorageEstimate": { + "modified": "2020-10-15T22:17:55.065Z", "contributors": [ - "maximelore", - "wbamberg" + "Watilin" ] }, - "Outils/Console_Web/Opening_the_Web_Console": { - "modified": "2020-07-16T22:34:17.163Z", + "Web/API/StorageManager": { + "modified": "2020-10-15T22:17:54.664Z" + }, + "Web/API/StorageManager/estimate": { + "modified": "2020-10-15T22:17:54.758Z", "contributors": [ - "maximelore", - "wbamberg", - "glickind" + "Watilin" ] }, - "Outils/Console_Web/Rich_output": { - "modified": "2020-07-16T22:34:20.227Z", + "Web/API/StorageManager/persist": { + "modified": "2020-10-15T22:17:54.254Z", "contributors": [ - "maximelore", - "wbamberg" + "Watilin" ] }, - "Outils/Console_Web/Split_console": { - "modified": "2020-07-16T22:34:20.903Z", + "Web/API/StorageManager/persisted": { + "modified": "2020-10-15T22:17:55.112Z", "contributors": [ - "maximelore", - "wbamberg" + "Watilin" ] }, - "Outils/Console_Web/The_command_line_interpreter": { - "modified": "2020-08-28T09:12:31.516Z", + "Web/API/Storage_API": { + "modified": "2020-10-15T22:17:55.127Z", "contributors": [ - "stphngrc", - "tchioubak", - "aminelch", - "A-312", - "maximelore", - "wbamberg" + "Watilin" ] }, - "Outils/Couleurs_des_DevTools": { - "modified": "2020-07-16T22:35:53.314Z", + "Web/API/Streams_API": { + "modified": "2020-10-15T22:14:40.364Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "Kuzcoo", + "sbenard" ] }, - "Outils/DOM_Property_Viewer": { - "modified": "2020-07-16T22:36:34.322Z", + "Web/API/StyleSheet": { + "modified": "2020-10-15T21:55:12.566Z", "contributors": [ - "maximelore", - "wbamberg" + "SphinxKnight", + "remibremont", + "JNa0", + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)": { - "modified": "2019-03-23T22:22:28.971Z", + "Web/API/StyleSheet/disabled": { + "modified": "2019-03-23T22:10:02.805Z", "contributors": [ - "wbamberg", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/Disable_breakpoints": { - "modified": "2019-03-23T22:21:17.073Z", + "Web/API/StyleSheet/href": { + "modified": "2019-03-23T22:10:02.014Z", "contributors": [ - "wbamberg", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to": { - "modified": "2019-03-23T22:22:26.886Z", + "Web/API/StyleSheet/media": { + "modified": "2019-03-23T22:10:08.278Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons": { - "modified": "2019-03-23T22:21:33.063Z", + "Web/API/StyleSheet/ownerNode": { + "modified": "2019-03-23T22:10:07.966Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Black_box_a_source": { - "modified": "2019-03-23T22:21:44.269Z", + "Web/API/StyleSheet/parentStyleSheet": { + "modified": "2019-03-23T22:10:09.954Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event": { - "modified": "2019-03-23T22:22:11.943Z", + "Web/API/StyleSheet/title": { + "modified": "2019-03-23T22:09:59.139Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources": { - "modified": "2019-03-23T22:22:29.066Z", + "Web/API/StyleSheet/type": { + "modified": "2019-03-23T22:10:03.329Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Crg" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints": { - "modified": "2019-03-23T22:22:13.461Z", + "Web/API/StyleSheetList": { + "modified": "2019-03-23T22:56:21.510Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Goofy", + "weeger" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables": { - "modified": "2019-03-23T22:22:09.066Z", + "Web/API/SubtleCrypto": { + "modified": "2020-10-15T22:30:51.870Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Sheppy" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes": { - "modified": "2019-03-23T22:22:10.389Z", + "Web/API/SubtleCrypto/digest": { + "modified": "2020-10-15T22:30:49.992Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Arzak656" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Open_the_debugger": { - "modified": "2019-03-23T22:22:10.293Z", + "Web/API/SyncManager": { + "modified": "2020-10-15T22:21:29.924Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli" + "necraidan" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file": { - "modified": "2019-03-23T22:22:11.012Z", + "Web/API/Text": { + "modified": "2019-03-18T21:43:23.092Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "loella16" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Search_and_filter": { - "modified": "2019-03-23T22:21:42.961Z", + "Web/API/Text/splitText": { + "modified": "2019-03-18T21:43:29.396Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Watilin" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint": { - "modified": "2019-03-23T22:21:42.671Z", + "Web/API/TextEncoder": { + "modified": "2020-10-15T22:13:59.801Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "JNa0" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint": { - "modified": "2019-03-23T22:21:51.627Z", + "Web/API/TextEncoder/TextEncoder": { + "modified": "2020-10-15T22:31:11.795Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Arzak656" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Step_through_code": { - "modified": "2019-03-23T22:21:44.640Z", + "Web/API/TextMetrics": { + "modified": "2019-03-23T22:10:26.189Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Debugger_(before_Firefox_52)/How_to/Use_a_source_map": { - "modified": "2019-03-23T22:21:49.457Z", + "Web/API/TextMetrics/width": { + "modified": "2019-03-23T22:10:36.977Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "gamifiq", + "NemoNobobyPersonne" ] }, - "Outils/Debugger_(before_Firefox_52)/Keyboard_shortcuts": { - "modified": "2019-03-23T22:21:50.707Z", + "Web/API/TimeRanges": { + "modified": "2019-03-18T20:47:45.518Z", "contributors": [ - "wbamberg", - "maximelore" + "monlouisj", + "efusien" ] }, - "Outils/Debugger_(before_Firefox_52)/Settings": { - "modified": "2019-03-23T22:14:03.961Z", + "Web/API/Transferable": { + "modified": "2020-10-15T21:33:28.712Z", "contributors": [ - "wbamberg", - "maximelore" + "Arzak656", + "AClavijo", + "jean-pierre.gay" ] }, - "Outils/Debugger_(before_Firefox_52)/UI_Tour": { - "modified": "2019-03-23T22:19:32.754Z", + "Web/API/TransitionEvent": { + "modified": "2019-03-23T22:10:07.091Z", "contributors": [ - "wbamberg", - "maximelore" + "SphinxKnight", + "Crg" ] }, - "Outils/DevToolsAPI": { - "modified": "2020-07-16T22:35:24.078Z", + "Web/API/TreeWalker": { + "modified": "2019-03-18T21:40:16.199Z", "contributors": [ - "maximelore", - "wbamberg" + "loella16" ] }, - "Outils/Débogage_distant": { - "modified": "2020-07-16T22:35:37.277Z", + "Web/API/TreeWalker/currentNode": { + "modified": "2019-03-18T21:40:23.895Z", "contributors": [ - "maximelore", - "wbamberg", - "glickind", - "teoli", - "J.DMB", - "G-de-Bruges", - "medhi.naveau@hotmail.be", - "Omnilaika02", - "KIDY" + "loella16" ] }, - "Outils/Débogage_distant/Chrome_Desktop": { - "modified": "2020-07-16T22:35:40.256Z", + "Web/API/TreeWalker/expandEntityReferences": { + "modified": "2019-03-18T21:40:21.457Z", "contributors": [ - "wbamberg", - "SphinxKnight", - "teoli", - "jsx", - "dorianecampagne" + "loella16" ] }, - "Outils/Débogage_distant/Debugging_Firefox_Desktop": { - "modified": "2020-07-16T22:35:40.983Z", + "Web/API/TreeWalker/filter": { + "modified": "2019-03-18T21:40:31.482Z", "contributors": [ - "maximelore", - "wbamberg" + "loella16" ] }, - "Outils/Débogage_distant/Debugging_Firefox_for_Android_with_WebIDE_clone": { - "modified": "2020-07-16T22:35:40.616Z", + "Web/API/TreeWalker/firstChild": { + "modified": "2019-03-18T21:40:34.770Z", "contributors": [ - "wbamberg", - "maximelore" + "loella16" ] }, - "Outils/Débogage_distant/Thunderbird": { - "modified": "2020-07-16T22:35:39.867Z", + "Web/API/TreeWalker/lastChild": { + "modified": "2019-03-18T21:40:24.414Z", "contributors": [ - "wbamberg", - "maximelore" + "loella16" ] }, - "Outils/Débogueur": { - "modified": "2020-07-16T22:35:04.438Z", + "Web/API/TreeWalker/nextNode": { + "modified": "2019-03-18T21:40:20.647Z", "contributors": [ - "maximelore", - "wbamberg", - "glickind", - "teoli", - "SphinxKnight", - "Omnilaika02", - "nora" + "loella16" ] }, - "Outils/Débogueur/Comment": { - "modified": "2020-09-04T07:36:16.042Z", + "Web/API/TreeWalker/nextSibling": { + "modified": "2019-03-18T21:40:14.024Z", "contributors": [ - "Voulto", - "wbamberg", - "maximelore", - "teoli", - "sidgan" + "loella16" ] }, - "Outils/Débogueur/Comment/Accéder_au_débogage_depuis_un_module_complàmentaire": { - "modified": "2020-07-16T22:35:14.754Z", + "Web/API/TreeWalker/parentNode": { + "modified": "2019-03-18T21:40:31.869Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli" + "loella16" ] }, - "Outils/Débogueur/Comment/Afficher_en_surbrillance_et_inspecter_le_DOM": { - "modified": "2020-07-16T22:35:13.697Z", + "Web/API/TreeWalker/previousNode": { + "modified": "2019-03-18T21:40:32.593Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli" + "loella16" ] }, - "Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt": { - "modified": "2020-07-16T22:35:09.962Z", + "Web/API/TreeWalker/previousSibling": { + "modified": "2019-03-18T21:40:17.837Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "loella16" ] }, - "Outils/Débogueur/Comment/Ajouter_un_point_d_arrêt_conditionnel": { - "modified": "2020-07-16T22:35:10.533Z", + "Web/API/TreeWalker/root": { + "modified": "2019-03-18T21:40:33.877Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "loella16" ] }, - "Outils/Débogueur/Comment/Breaking_on_exceptions": { - "modified": "2020-07-16T22:35:15.043Z", + "Web/API/TreeWalker/whatToShow": { + "modified": "2020-10-15T22:02:07.579Z", "contributors": [ - "maximelore", - "wbamberg" + "SphinxKnight", + "loella16" ] }, - "Outils/Débogueur/Comment/Déboguer_des_sources_évaluées": { - "modified": "2020-07-16T22:35:14.396Z", + "Web/API/UIEvent": { + "modified": "2020-11-05T16:01:13.811Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "JNa0", + "loella16", + "fscholz" ] }, - "Outils/Débogueur/Comment/Désactiver_des_points_d_arrêts": { - "modified": "2020-07-16T22:35:11.273Z", + "Web/API/UIEvent/detail": { + "modified": "2020-10-15T21:49:56.915Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "SphinxKnight", + "Goofy", + "Kalwyn" ] }, - "Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables": { - "modified": "2020-07-16T22:35:12.981Z", + "Web/API/UIEvent/layerX": { + "modified": "2019-04-19T04:25:56.943Z", "contributors": [ - "wbamberg", - "maximelore", - "EIJDOLL", - "teoli", - "Goofy" + "SphinxKnight", + "NemoNobobyPersonne", + "fscholz", + "khalid32", + "Feugy" ] }, - "Outils/Débogueur/Comment/Formater_et_indenter_un_fichier_minifié": { - "modified": "2020-07-16T22:35:13.988Z", + "Web/API/ULongRange": { + "modified": "2020-10-15T22:35:00.304Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "Voulto" ] }, - "Outils/Débogueur/Comment/Mettre_une_source_dans_une_boîte_noire": { - "modified": "2020-07-16T22:35:13.367Z", + "Web/API/URL": { + "modified": "2019-04-05T15:11:45.608Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "loella16", + "fscholz" ] }, - "Outils/Débogueur/Comment/Ouvrir_le_débogueur": { - "modified": "2020-07-16T22:35:09.012Z", + "Web/API/URL/URL": { + "modified": "2020-10-15T22:04:11.269Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "spike008t", + "cdelamarre" ] }, - "Outils/Débogueur/Comment/Parcourir_le_code": { - "modified": "2020-07-16T22:35:11.898Z", + "Web/API/URL/createObjectURL": { + "modified": "2020-10-15T21:21:40.672Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "Watilin", + "Arzak656", + "Blodangan", + "fscholz", + "teoli", + "nicofrand", + "alaric" ] }, - "Outils/Débogueur/Comment/S_arrêter_sur_un_évènement_DOM": { - "modified": "2020-07-16T22:35:11.566Z", + "Web/API/URL/hash": { + "modified": "2020-10-15T22:17:10.984Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "noelmace", + "spike008t" ] }, - "Outils/Débogueur/Comment/Search": { - "modified": "2020-07-16T22:35:15.360Z", + "Web/API/URL/protocol": { + "modified": "2020-10-15T22:17:10.990Z", "contributors": [ - "maximelore", - "wbamberg" + "spike008t" ] }, - "Outils/Débogueur/Comment/Set_Watch_Expressions": { - "modified": "2020-07-16T22:35:15.802Z", + "Web/API/URL/revokeObjectURL": { + "modified": "2020-10-15T22:07:59.746Z", "contributors": [ - "maximelore", - "wbamberg" + "Watilin" ] }, - "Outils/Débogueur/Comment/Utiliser_une_source_map": { - "modified": "2020-07-16T22:35:12.417Z", + "Web/API/URL/search": { + "modified": "2020-10-15T22:17:09.818Z", "contributors": [ - "tchevalier", - "maximelore", - "wbamberg", - "hervehobbes", - "necraidan", - "teoli", - "franckuser16" + "SphinxKnight", + "spike008t" ] }, - "Outils/Débogueur/Limitations_of_the_new_debugger": { - "modified": "2019-03-23T22:22:02.266Z", + "Web/API/URL/searchParams": { + "modified": "2020-10-15T22:17:08.530Z", "contributors": [ - "wbamberg", - "maximelore" + "spike008t" ] }, - "Outils/Débogueur/Raccourcis_clavier": { - "modified": "2020-07-16T22:35:18.146Z", + "Web/API/URL/toJSON": { + "modified": "2020-10-15T22:17:08.519Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "spike008t" ] }, - "Outils/Débogueur/Set_an_XHR_breakpoint": { - "modified": "2020-07-16T22:35:20.080Z", + "Web/API/URL/toString": { + "modified": "2020-10-15T22:13:58.455Z", "contributors": [ - "maximelore" + "martialseron" ] }, - "Outils/Débogueur/Source_map_errors": { - "modified": "2020-07-16T22:35:19.304Z", + "Web/API/URLSearchParams": { + "modified": "2019-03-18T21:39:55.036Z", "contributors": [ - "maximelore", - "wbamberg" + "Watilin", + "cdelamarre" ] }, - "Outils/Débogueur/Visite_guidée_de_l_interface_utilisateur": { - "modified": "2020-07-16T22:35:16.333Z", + "Web/API/URLSearchParams/entries": { + "modified": "2020-10-15T22:08:32.278Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli", - "Goofy" + "moshir" ] }, - "Outils/Editeur_Web_Audio": { - "modified": "2020-07-16T22:36:08.440Z", + "Web/API/URLUtilsReadOnly": { + "modified": "2020-10-15T22:17:11.893Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli", - "tregagnon", - "batisteo" + "spike008t" ] }, - "Outils/Editeur_de_shaders": { - "modified": "2020-07-16T22:35:54.397Z", + "Web/API/USVString": { + "modified": "2020-04-28T10:35:09.074Z", "contributors": [ - "maximelore", - "wbamberg", - "stephaniehobson", - "teoli", - "bassam", - "tregagnon" + "tristantheb" ] }, - "Outils/Firefox_OS_Simulator_clone": { - "modified": "2020-07-16T22:36:22.890Z", + "Web/API/VRDisplayCapabilities": { + "modified": "2019-03-23T22:12:25.995Z", "contributors": [ - "wbamberg", - "xdelatour" + "frankymacster" ] }, - "Outils/Frise_chronologique": { - "modified": "2020-07-16T22:36:22.616Z", + "Web/API/Vibration_API": { + "modified": "2019-03-23T22:45:55.163Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "Hell_Carlito", + "lynxhack" ] }, - "Outils/Index": { - "modified": "2020-07-16T22:36:03.885Z", + "Web/API/VideoTrack": { + "modified": "2020-10-15T22:20:15.596Z", "contributors": [ - "wbamberg", - "xdelatour" + "Voulto", + "Wind1808" ] }, - "Outils/Inspecteur": { - "modified": "2020-07-16T22:34:27.499Z", + "Web/API/VideoTrack/id": { + "modified": "2020-10-15T22:20:11.798Z", "contributors": [ - "maximelore", - "wbamberg", - "clementpolito", - "teoli", - "J.DMB", - "tregagnon", - "milc", - "tchevalier", - "Delapouite" + "Arzak656" ] }, - "Outils/Inspecteur/3-pane_mode": { - "modified": "2020-07-16T22:34:53.714Z", + "Web/API/WebGL2RenderingContext": { + "modified": "2020-10-15T21:59:56.462Z", "contributors": [ - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment": { - "modified": "2020-07-16T22:34:31.149Z", + "Web/API/WebGLBuffer": { + "modified": "2020-10-15T21:59:33.541Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli", - "sidgan" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Edition_filtres_css": { - "modified": "2020-07-16T22:34:45.240Z", + "Web/API/WebGLFramebuffer": { + "modified": "2020-10-15T21:59:35.211Z", "contributors": [ - "maximelore", - "wbamberg", - "MRdotB" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Examine_grid_layouts": { - "modified": "2020-07-16T22:34:47.223Z", + "Web/API/WebGLProgram": { + "modified": "2020-10-15T21:59:07.199Z", "contributors": [ - "GregMorel", - "maximelore", - "wbamberg", - "Mozinet", - "PhilippePerret" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Examiner_et_modifier_le_CSS": { - "modified": "2020-07-16T22:34:42.394Z", + "Web/API/WebGLRenderingContext": { + "modified": "2020-10-15T21:51:29.279Z", "contributors": [ - "wbamberg", - "Alan_Braut", - "maximelore", - "Loliwe", - "SphinxKnight", + "BonoBX", "teoli" ] }, - "Outils/Inspecteur/Comment/Examiner_et_modifier_le_modèle_de_boîte": { - "modified": "2020-07-16T22:34:34.287Z", + "Web/API/WebGLRenderingContext/activeTexture": { + "modified": "2020-10-15T22:01:31.601Z", "contributors": [ - "wbamberg", - "maximelore", - "clementpolito", - "teoli", - "jsx" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Examiner_et_éditer_le_code_HTML": { - "modified": "2020-07-16T22:34:40.766Z", + "Web/API/WebGLRenderingContext/attachShader": { + "modified": "2020-10-15T21:59:28.122Z", "contributors": [ - "maximelore", - "wbamberg", - "JeffD", - "teoli", - "micetf", - "SphinxKnight", - "Goofy" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Examiner_les_écouteurs_d_évènements": { - "modified": "2020-07-16T22:34:35.648Z", + "Web/API/WebGLRenderingContext/bindBuffer": { + "modified": "2020-10-15T21:59:37.132Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Inspecter_et_sélectionner_des_couleurs": { - "modified": "2020-07-16T22:34:34.991Z", + "Web/API/WebGLRenderingContext/bindTexture": { + "modified": "2020-10-15T21:59:54.842Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli", - "jsx" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Ouvrir_l_Inspecteur": { - "modified": "2020-07-16T22:34:32.703Z", + "Web/API/WebGLRenderingContext/bufferData": { + "modified": "2020-10-15T21:59:40.058Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Prévisualiser_des_images_de_fond": { - "modified": "2020-07-16T22:34:44.112Z", + "Web/API/WebGLRenderingContext/clear": { + "modified": "2020-10-15T21:51:28.582Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli" + "NemoNobobyPersonne", + "SphinxKnight", + "Noctisdark" ] }, - "Outils/Inspecteur/Comment/Reposition_elements_in_the_page": { - "modified": "2020-07-16T22:34:45.853Z", + "Web/API/WebGLRenderingContext/compileShader": { + "modified": "2020-10-15T21:59:28.703Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Select_and_highlight_elements": { - "modified": "2020-07-16T22:34:46.553Z", + "Web/API/WebGLRenderingContext/createBuffer": { + "modified": "2020-10-15T21:59:33.748Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Sélectionner_un_élément": { - "modified": "2020-07-16T22:34:33.580Z", + "Web/API/WebGLRenderingContext/createProgram": { + "modified": "2020-10-15T21:59:33.912Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli", - "jsx" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Utiliser_l_API_de_l_Inspecteur": { - "modified": "2020-07-16T22:34:44.851Z", + "Web/API/WebGLRenderingContext/createShader": { + "modified": "2020-10-15T21:59:29.550Z", "contributors": [ - "maximelore", - "wbamberg", - "daimebag", - "teoli" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Utiliser_l_Inspecteur_depuis_la_Console_Web": { - "modified": "2020-07-16T22:34:44.470Z", + "Web/API/WebGLRenderingContext/createTexture": { + "modified": "2020-10-15T21:59:54.835Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Visualiser_les_transformations": { - "modified": "2020-07-16T22:34:39.528Z", + "Web/API/WebGLRenderingContext/deleteBuffer": { + "modified": "2020-10-15T21:59:40.774Z", "contributors": [ - "maximelore", - "wbamberg", - "teoli" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Work_with_animations": { - "modified": "2020-07-16T22:34:36.523Z", + "Web/API/WebGLRenderingContext/deleteShader": { + "modified": "2020-10-15T21:59:32.565Z", "contributors": [ - "maximelore", - "wbamberg", - "daimebag", - "colibri83", - "hutrd", - "MRdotB" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Work_with_animations/Animation_inspector_(Firefox_41_and_42)": { - "modified": "2020-07-16T22:34:37.976Z", + "Web/API/WebGLRenderingContext/drawArrays": { + "modified": "2020-10-15T21:59:35.395Z", "contributors": [ - "maximelore", - "wbamberg" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Work_with_animations/Animation_inspector_example:_Web_Animations_API": { - "modified": "2020-07-16T22:34:38.254Z", + "Web/API/WebGLRenderingContext/enableVertexAttribArray": { + "modified": "2020-10-15T21:59:35.034Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Comment/Work_with_animations/Animations_examples": { - "modified": "2020-07-16T22:34:37.720Z", + "Web/API/WebGLRenderingContext/generateMipmap": { + "modified": "2020-10-15T22:01:31.184Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/Panneau_HTML": { - "modified": "2020-07-16T22:34:30.496Z", + "Web/API/WebGLRenderingContext/getAttribLocation": { + "modified": "2020-10-15T21:59:38.706Z", "contributors": [ - "wbamberg", - "teoli", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur/UI_Tour": { - "modified": "2020-07-16T22:34:49.046Z", + "Web/API/WebGLRenderingContext/getError": { + "modified": "2020-10-15T21:59:32.173Z", "contributors": [ - "maximelore", - "wbamberg", - "fixius69gggg", - "hutrd", - "clementpolito" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur_accessibilite": { - "modified": "2020-07-16T22:36:39.636Z", + "Web/API/WebGLRenderingContext/getShaderParameter": { + "modified": "2020-10-15T21:59:29.618Z", "contributors": [ - "maximelore", - "hellosct1", - "SphinxKnight" + "NemoNobobyPersonne" ] }, - "Outils/Inspecteur_accessibilite/Simulation": { - "modified": "2020-07-16T22:36:40.512Z", + "Web/API/WebGLRenderingContext/getTexParameter": { + "modified": "2020-10-15T22:01:31.142Z", "contributors": [ - "MarieComet" + "NemoNobobyPersonne" ] }, - "Outils/JSON_viewer": { - "modified": "2020-07-16T22:36:31.458Z", + "Web/API/WebGLRenderingContext/getUniformLocation": { + "modified": "2020-10-15T21:59:34.949Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Measure_a_portion_of_the_page": { - "modified": "2020-07-16T22:36:38.831Z", + "Web/API/WebGLRenderingContext/isBuffer": { + "modified": "2020-10-15T21:59:35.831Z", "contributors": [ - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory": { - "modified": "2020-07-16T22:36:26.928Z", + "Web/API/WebGLRenderingContext/shaderSource": { + "modified": "2020-10-15T21:59:30.850Z", "contributors": [ - "wbamberg", - "maximelore", - "unpeudetout" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Aggregate_view": { - "modified": "2020-07-16T22:36:28.617Z", + "Web/API/WebGLRenderingContext/texImage2D": { + "modified": "2020-10-15T21:59:56.336Z", "contributors": [ - "wbamberg", - "maximelore", - "solfen" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Basic_operations": { - "modified": "2020-07-16T22:36:29.526Z", + "Web/API/WebGLRenderingContext/texParameter": { + "modified": "2020-10-15T22:01:30.454Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Comparing_heap_snapshots": { - "modified": "2020-07-16T22:36:28.898Z", + "Web/API/WebGLRenderingContext/uniform": { + "modified": "2020-10-15T22:01:33.704Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/DOM_allocation_example": { - "modified": "2020-07-16T22:36:30.900Z", + "Web/API/WebGLRenderingContext/uniformMatrix": { + "modified": "2020-10-15T21:59:37.493Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Dominators": { - "modified": "2020-07-16T22:36:29.172Z", + "Web/API/WebGLRenderingContext/useProgram": { + "modified": "2020-10-15T21:59:35.227Z", "contributors": [ - "wkz3w59", - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Dominators_view": { - "modified": "2020-07-16T22:36:28.146Z", + "Web/API/WebGLRenderingContext/vertexAttribPointer": { + "modified": "2020-10-15T21:59:38.458Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Monster_example": { - "modified": "2020-07-16T22:36:29.974Z", + "Web/API/WebGLRenderingContext/viewport": { + "modified": "2020-10-15T21:59:28.597Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Open_the_Memory_tool": { - "modified": "2020-07-16T22:36:27.674Z", + "Web/API/WebGLShader": { + "modified": "2020-10-15T21:59:07.385Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Take_a_heap_snapshot": { - "modified": "2020-07-16T22:36:27.834Z", + "Web/API/WebGLTexture": { + "modified": "2020-10-15T22:03:21.533Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Memory/Tree_map_view": { - "modified": "2020-07-16T22:36:30.334Z", + "Web/API/WebGL_API": { + "modified": "2019-03-24T00:15:31.256Z", "contributors": [ - "wbamberg", - "maximelore" + "NemoNobobyPersonne", + "Chbok", + "teoli", + "fscholz", + "Bat", + "TimN" ] }, - "Outils/Migrating_from_Firebug": { - "modified": "2020-07-16T22:36:37.454Z", + "Web/API/WebGL_API/By_example": { + "modified": "2019-03-23T22:42:41.529Z", "contributors": [ - "maximelore", - "wbamberg" + "chrisdavidmills", + "SphinxKnight" ] }, - "Outils/Moniteur_réseau": { - "modified": "2020-07-16T22:35:30.164Z", + "Web/API/WebGL_API/By_example/Hello_GLSL": { + "modified": "2019-03-23T22:42:47.561Z", "contributors": [ - "maximelore", - "roiLeo", - "wbamberg", - "Breizhim", - "Hell_Carlito", - "marie-ototoi", - "teoli", - "J.DMB", - "P45QU10U", - "Omnilaika02", - "Goofy" + "chrisdavidmills", + "SphinxKnight" ] }, - "Outils/Moniteur_réseau/Performance_Analysis": { - "modified": "2020-11-12T09:23:11.969Z", + "Web/API/WebGL_API/Tutorial": { + "modified": "2019-12-30T09:02:46.688Z", "contributors": [ "JNa0", - "maximelore", - "zatteo" + "NemoNobobyPersonne", + "frankymacster", + "teoli", + "fscholz" ] }, - "Outils/Moniteur_réseau/Throttling": { - "modified": "2020-07-16T22:35:36.195Z", + "Web/API/WebGL_API/Types": { + "modified": "2019-03-23T22:01:49.667Z", "contributors": [ - "maximelore" + "NemoNobobyPersonne" ] }, - "Outils/Moniteur_réseau/recording": { - "modified": "2020-07-16T22:35:35.319Z", + "Web/API/WebRTC_API": { + "modified": "2020-10-22T05:44:55.105Z", "contributors": [ - "maximelore" + "Voulto", + "tonybengue", + "thourayabenali", + "Sheppy" ] }, - "Outils/Moniteur_réseau/request_details": { - "modified": "2020-11-12T09:26:09.919Z", + "Web/API/WebSocket": { + "modified": "2019-03-23T23:02:45.010Z", "contributors": [ - "JNa0", - "hellosct1", - "maximelore" + "lessonsharing", + "Ilphrin", + "VinceOPS" ] }, - "Outils/Moniteur_réseau/request_list": { - "modified": "2020-07-16T22:35:33.669Z", + "Web/API/WebSocket/close_event": { + "modified": "2019-03-23T21:59:50.351Z", "contributors": [ - "maximelore" + "irenesmith", + "fscholz", + "Kalwyn" ] }, - "Outils/Moniteur_réseau/toolbar": { - "modified": "2020-07-16T22:35:32.750Z", + "Web/API/WebSockets_API": { + "modified": "2020-12-10T09:30:55.791Z", "contributors": [ - "maximelore", - "hellosct1" + "tristantheb", + "Kayoshi-dev", + "SphinxKnight", + "Graziellah", + "cydelic", + "Nothus", + "Goofy", + "filipovi" ] }, - "Outils/Outils_boite_à_outils": { - "modified": "2020-07-16T22:35:27.255Z", + "Web/API/WebSockets_API/Writing_WebSocket_client_applications": { + "modified": "2019-03-18T20:48:00.893Z", "contributors": [ - "maximelore", - "sunazerty", - "wbamberg", - "Amandine83", - "joel.costamagna" + "SphinxKnight", + "greizgh", + "alexca93", + "fbessou", + "marie-ototoi", + "Goofy", + "sisyphe" ] }, - "Outils/Paint_Flashing_Tool": { - "modified": "2020-07-16T22:35:43.506Z", + "Web/API/WebSockets_API/Writing_WebSocket_servers": { + "modified": "2019-07-08T10:30:19.533Z", "contributors": [ - "nicofrand", - "maximelore", - "wbamberg" + "ThCarrere", + "SphinxKnight", + "cbdt", + "H4dr1en", + "Jibec", + "Nek-", + "ynno", + "Nothus" ] }, - "Outils/Performance": { - "modified": "2020-07-16T22:36:12.629Z", + "Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java": { + "modified": "2019-03-18T20:48:00.087Z", "contributors": [ - "maximelore", - "wbamberg", - "Porkepix", - "KrySoar", - "WSH", - "adim" + "SphinxKnight", + "Jibec" ] }, - "Outils/Performance/Allocations": { - "modified": "2020-07-16T22:36:22.257Z", + "Web/API/WebVR_API": { + "modified": "2019-06-08T20:04:07.795Z", "contributors": [ - "wbamberg", - "maximelore" + "frankymacster", + "DavidLibeau" ] }, - "Outils/Performance/Call_Tree": { - "modified": "2020-07-16T22:36:19.677Z", + "Web/API/WebVTT_API": { + "modified": "2020-10-15T22:20:12.504Z", "contributors": [ - "maximelore", - "wbamberg", - "Puxarnal" + "fffjacquier", + "Arzak656" ] }, - "Outils/Performance/Examples": { - "modified": "2020-07-16T22:36:20.791Z", + "Web/API/WebXR_Device_API": { + "modified": "2020-10-15T22:34:09.543Z", "contributors": [ - "wbamberg", - "maximelore" + "Hans_PRESTAT" ] }, - "Outils/Performance/Examples/Sorting_algorithms_comparison": { - "modified": "2020-07-16T22:36:21.341Z", + "Web/API/Web_Animations_API": { + "modified": "2020-12-08T03:44:03.958Z", "contributors": [ - "wbamberg", - "maximelore" + "SphinxKnight", + "AdalbertPungu" ] }, - "Outils/Performance/Flame_Chart": { - "modified": "2020-07-16T22:36:20.412Z", + "Web/API/Web_Audio_API": { + "modified": "2019-03-23T23:07:29.151Z", "contributors": [ - "wbamberg", - "maximelore" + "Mr21", + "a-cordier", + "MAKIO135", + "Elfhir", + "marie-ototoi", + "SphinxKnight", + "mtrabelsi", + "raphael0202", + "FBerthelot", + "Buridan", + "theGlenn" ] }, - "Outils/Performance/Frame_rate": { - "modified": "2020-07-16T22:36:19.001Z", + "Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API": { + "modified": "2019-03-23T22:41:04.256Z", "contributors": [ - "wbamberg", - "maximelore" + "VS64", + "marie-ototoi" ] }, - "Outils/Performance/How_to": { - "modified": "2020-07-16T22:36:21.749Z", + "Web/API/Web_Audio_API/Using_Web_Audio_API": { + "modified": "2019-03-23T22:37:49.629Z", "contributors": [ - "wbamberg", - "Porkepix", - "maximelore" + "marie-ototoi", + "jcbohin" ] }, - "Outils/Performance/Scenarios": { - "modified": "2020-07-16T22:36:15.683Z", + "Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API": { + "modified": "2019-03-23T22:37:03.451Z", "contributors": [ - "wbamberg", - "maximelore" + "marie-ototoi" ] }, - "Outils/Performance/Scenarios/Animating_CSS_properties": { - "modified": "2020-07-16T22:36:16.242Z", + "Web/API/Web_Audio_API/Web_audio_spatialization_basics": { + "modified": "2019-03-23T22:09:00.124Z", "contributors": [ - "maximelore", - "wbamberg" + "marie-ototoi" ] }, - "Outils/Performance/Scenarios/Intensive_JavaScript": { - "modified": "2020-07-16T22:36:16.709Z", + "Web/API/Web_Speech_API": { + "modified": "2020-11-16T08:41:59.799Z", "contributors": [ - "wbamberg", - "maximelore" + "JNa0", + "codingk8" ] }, - "Outils/Performance/UI_Tour": { - "modified": "2020-07-16T22:36:14.899Z", + "Web/API/Web_Speech_API/Using_the_Web_Speech_API": { + "modified": "2020-06-20T07:22:44.915Z", "contributors": [ - "Thomsath", - "wbamberg", - "elsawalker", - "maximelore", - "axel8591" + "matbe19" ] }, - "Outils/Performance/Waterfall": { - "modified": "2020-07-16T22:36:17.448Z", + "Web/API/Web_Storage_API": { + "modified": "2020-10-15T21:39:12.031Z", "contributors": [ - "maximelore", - "wbamberg", - "P45QU10U" + "ThCarrere", + "abvll", + "olivier-axyome", + "ericGuyaderBerger", + "necraidan", + "Dexter_Deter", + "teoli" ] }, - "Outils/Pipette_à_couleur": { - "modified": "2020-07-16T22:36:07.358Z", + "Web/API/Web_Storage_API/Using_the_Web_Storage_API": { + "modified": "2020-10-15T21:39:11.598Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli", - "Goofy", - "maybe", - "AnthonyMaton", - "louloutche" + "Alan_Braut", + "SphinxKnight", + "Vifier-Lockla", + "edspeedy", + "Hell_Carlito", + "hostar_mdn", + "JeffD", + "rmNyro" ] }, - "Outils/Raccourcis_claviers": { - "modified": "2020-07-16T22:35:47.095Z", + "Web/API/Web_Workers_API": { + "modified": "2020-02-13T03:21:00.537Z", "contributors": [ - "Mozinet", - "maximelore", - "wbamberg", - "maybe", - "teoli", - "SphinxKnight", - "fscholz", - "tregagnon", - "Fredchat", - "Omnilaika02" + "Arzak656", + "GregMorel", + "wakka27", + "jean-pierre.gay" ] }, - "Outils/Responsive_Design_Mode_(before_Firefox_52)": { - "modified": "2020-07-16T22:36:36.829Z", + "Web/API/WheelEvent": { + "modified": "2020-11-05T15:49:11.373Z", "contributors": [ - "wbamberg", - "maximelore" + "JNa0", + "Voulto" ] }, - "Outils/Rulers": { - "modified": "2020-07-16T22:36:26.322Z", + "Web/API/WheelEvent/deltaX": { + "modified": "2020-10-15T22:35:00.346Z", "contributors": [ - "maximelore", - "wbamberg", - "sayabiws" + "Voulto" ] }, - "Outils/Settings": { - "modified": "2020-07-16T22:36:34.961Z", + "Web/API/WheelEvent/deltaY": { + "modified": "2020-10-15T22:35:00.628Z", "contributors": [ - "maximelore", - "wbamberg" + "Voulto" ] }, - "Outils/Taking_screenshots": { - "modified": "2020-07-16T22:36:38.392Z", + "Web/API/WheelEvent/deltaZ": { + "modified": "2020-10-15T22:35:00.253Z", "contributors": [ - "maximelore", - "wbamberg", - "Porkepix", - "QuaiSera" + "Voulto" ] }, - "Outils/Tips": { - "modified": "2020-07-16T22:36:36.322Z", + "Web/API/Window": { + "modified": "2019-06-20T16:27:26.215Z", "contributors": [ - "maximelore", - "wbamberg", - "JeffD" + "grandoc", + "m-r-r", + "NemoNobobyPersonne", + "hellosct1", + "teoli", + "flexbox", + "khalid32", + "Crash", + "Julien.stuby", + "BenoitL", + "Mgjbot", + "Chbok", + "Takenbot", + "Gorrk" ] }, - "Outils/Travailler_avec_les_iframes": { - "modified": "2020-07-16T22:36:11.851Z", + "Web/API/Window/alert": { + "modified": "2019-03-23T23:50:34.370Z", "contributors": [ - "maximelore", - "wbamberg", - "unpeudetout", - "yaaboukir", + "fscholz", "teoli", - "maybe", - "Sheppy", - "J.DMB" + "icefire", + "khalid32", + "Mgjbot", + "Chbok", + "BenoitL" ] }, - "Outils/Validateurs": { - "modified": "2020-07-16T22:35:03.388Z", + "Web/API/Window/applicationCache": { + "modified": "2019-05-15T12:55:24.617Z", "contributors": [ - "wbamberg", - "maximelore", - "tregagnon", - "Mgjbot", - "Kyodev", - "Fredchat", - "Jean-Yves Cronier" + "Lonylis", + "personnel" ] }, - "Outils/View_source": { - "modified": "2020-07-16T22:35:02.805Z", + "Web/API/Window/back": { + "modified": "2020-08-30T04:11:10.912Z", "contributors": [ - "maximelore", - "wbamberg" + "Voulto" ] }, - "Outils/Vue_3D": { - "modified": "2020-07-16T22:34:25.273Z", + "Web/API/Window/blur": { + "modified": "2020-10-15T22:33:51.982Z", "contributors": [ - "Kearny", - "maximelore", - "wbamberg", - "erwandf", - "Red-Phoenix", - "Bene", - "tregagnon", - "ModernGames" + "Voulto" ] }, - "Outils/Vue_adaptative": { - "modified": "2020-07-16T22:35:21.388Z", + "Web/API/Window/cancelAnimationFrame": { + "modified": "2020-10-15T22:25:28.586Z", "contributors": [ - "maximelore", - "Machou", - "wbamberg", - "LaurentGarnier", - "WillyReyno", - "trevorh", - "J.DMB", - "Nadra", - "Omnilaika02", - "wakka27", - "tregagnon", - "Goofy", - "Delapouite", - "mh_nichts" + "SphinxKnight", + "eloidrai" ] }, - "Outils/about:debugging": { - "modified": "2020-07-16T22:36:32.303Z", + "Web/API/Window/cancelIdleCallback": { + "modified": "2019-03-18T21:15:28.832Z", "contributors": [ - "maximelore", - "wbamberg" + "Adrael" ] }, - "Outils/about:debugging/about:debugging_before_Firefox_68": { - "modified": "2020-07-16T22:36:33.804Z", + "Web/API/Window/captureEvents": { + "modified": "2020-08-26T09:45:14.172Z", "contributors": [ - "caleyz" + "Voulto" ] }, - "Outils/inspecteur/Raccourcis_clavier": { - "modified": "2020-07-16T22:34:50.971Z", + "Web/API/Window/clearImmediate": { + "modified": "2020-10-15T22:33:31.501Z", "contributors": [ - "wbamberg", - "maximelore", - "teoli" + "Voulto" ] }, - "Outils/Éditeur_de_style": { - "modified": "2020-07-16T22:35:00.333Z", + "Web/API/Window/close": { + "modified": "2019-03-23T23:49:10.598Z", "contributors": [ - "maximelore", - "wbamberg", + "fscholz", "teoli", - "tregagnon", - "salsero" + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Référence_DOM_Gecko": { - "modified": "2019-03-24T00:11:57.509Z", + "Web/API/Window/closed": { + "modified": "2019-03-23T23:49:10.478Z", "contributors": [ - "Goofy", + "fscholz", "teoli", - "bou22" + "jsx", + "Mgjbot", + "BenoitL", + "Gorrk" ] }, - "SGML": { - "modified": "2019-03-23T23:31:44.178Z", + "Web/API/Window/confirm": { + "modified": "2019-03-23T23:50:38.060Z", "contributors": [ - "loella16", - "Hell_Carlito", - "sebastien-bartoli", - "SphinxKnight" + "fffjacquier", + "fscholz", + "teoli", + "icefire", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "SVG_dans_Firefox": { - "modified": "2019-03-23T23:49:52.334Z", + "Web/API/Window/console": { + "modified": "2019-03-18T21:43:50.040Z", "contributors": [ - "marie-ototoi", - "wakka27", - "Fredchat", - "BenoitL", - "VincentN", - "Mgjbot", - "Chbok" + "tweqx" ] }, - "Type_MIME_incorrect_pour_les_fichiers_CSS": { - "modified": "2020-04-19T02:52:23.292Z", + "Web/API/Window/content": { + "modified": "2019-03-23T23:49:48.265Z", "contributors": [ - "vvvaleee", + "fscholz", + "teoli", + "jsx", + "Mgjbot", "BenoitL" ] }, - "Un_raycaster_basique_avec_canvas": { - "modified": "2019-03-23T23:44:18.702Z", + "Web/API/Window/controllers": { + "modified": "2019-03-18T21:38:06.814Z", "contributors": [ - "loella16", - "teoli", - "Delapouite", - "Fredchat", - "VincentN", - "Planche" + "NemoNobobyPersonne" ] }, - "Utilisation_de_XPath": { - "modified": "2019-01-16T14:19:09.912Z", + "Web/API/Window/copy_event": { + "modified": "2020-10-15T22:33:31.446Z", "contributors": [ - "kmaglione", - "Mgjbot", - "Elethiomel", - "Fredchat" + "Voulto" ] }, - "Utilisation_du_cache_de_Firefox_1.5": { - "modified": "2019-03-24T00:03:08.986Z", + "Web/API/Window/crypto": { + "modified": "2019-06-12T16:41:52.512Z", "contributors": [ - "wbamberg", - "nicofrand", - "fscholz", - "Mgjbot", - "Sheppy", - "BenoitL", - "Doozer", - "Chbok" + "plyd", + "foxstorm", + "alandrieu" ] }, - "Web": { - "modified": "2020-02-21T16:24:09.970Z", + "Web/API/Window/customElements": { + "modified": "2019-03-18T21:37:51.562Z", "contributors": [ - "inwardmovement", - "SphinxKnight", - "RolandGautier", - "alexetgus", - "ThreadElric", - "tonybengue", - "AvatarWeb", - "Alpha", - "eagleusb", - "x2357", - "udakpakembim", - "teoli", - "Fredchat", - "wakka27", - "Juju77", - "tregagnon", - "Sheppy" + "NemoNobobyPersonne" ] }, - "Web/API": { - "modified": "2019-03-18T20:41:10.621Z", + "Web/API/Window/cut_event": { + "modified": "2020-10-15T22:33:51.319Z", "contributors": [ - "codingk8", - "sbenard", - "loella16", - "teoli", - "tregagnon", - "flo5589", - "SphinxKnight", - "Sheppy" + "Voulto" ] }, - "Web/API/API_HTML_Drag_and_Drop": { - "modified": "2019-10-25T04:36:55.763Z", + "Web/API/Window/defaultStatus": { + "modified": "2020-08-26T10:36:08.889Z", "contributors": [ - "SphinxKnight", - "jledentu", - "teoli", - "kazma", - "goofy_bz", - "azurakaiser", - "Delapouite", - "rd6137" + "Voulto" ] }, - "Web/API/API_HTML_Drag_and_Drop/Opérations_de_glissement": { - "modified": "2019-11-28T11:30:12.535Z", + "Web/API/Window/devicePixelRatio": { + "modified": "2019-03-23T22:41:51.233Z", "contributors": [ - "azocankara", - "arthurlacoste", - "SphinxKnight", - "teoli", - "Jeremie", - "Chbok" + "plyd" ] }, - "Web/API/API_IndexedDB": { - "modified": "2020-05-12T10:06:55.343Z", + "Web/API/Window/dialogArguments": { + "modified": "2020-10-15T22:33:30.968Z", "contributors": [ - "floreengrad", - "giloop", - "matmorel", - "eiro", - "EloD10", - "onra87", - "loella16", - "gharel", - "SphinxKnight", - "JeffD", - "P45QU10U", - "Caudralys", - "moins52" + "Voulto" ] }, - "Web/API/API_IndexedDB/Basic_Concepts_Behind_IndexedDB": { - "modified": "2020-03-19T07:25:26.127Z", + "Web/API/Window/directories": { + "modified": "2020-08-26T10:46:42.910Z", "contributors": [ - "ChristopheBoucaut", - "loella16", - "Alpha", - "SphinxKnight", - "teoli", - "julienw" + "Voulto" ] }, - "Web/API/API_IndexedDB/Browser_storage_limits_and_eviction_criteria": { - "modified": "2019-07-09T03:14:33.430Z", + "Web/API/Window/document": { + "modified": "2020-10-15T22:33:30.190Z", "contributors": [ - "SphinxKnight", - "xavieralt", - "loella16", - "Billos" + "Voulto" ] }, - "Web/API/API_IndexedDB/Using_IndexedDB": { - "modified": "2019-11-09T09:03:11.340Z", + "Web/API/Window/dump": { + "modified": "2019-03-24T00:09:26.929Z", "contributors": [ - "JNa0", - "wbamberg", - "loella16", - "P45QU10U", - "SphinxKnight", - "zap221" + "fscholz", + "teoli", + "AshfaqHossain", + "omarce", + "Mgjbot", + "Chbok" ] }, - "Web/API/API_fichier_systeme": { - "modified": "2019-03-23T22:35:43.265Z", + "Web/API/Window/event": { + "modified": "2020-10-15T22:33:50.857Z", "contributors": [ - "alexisdelee" + "Voulto" ] }, - "Web/API/AbortSignal": { - "modified": "2020-10-15T22:01:02.561Z", + "Web/API/Window/find": { + "modified": "2020-08-30T05:23:27.822Z", "contributors": [ - "Morgan-jarry", - "loella16" + "Voulto" ] }, - "Web/API/AbstractWorker": { - "modified": "2020-10-15T21:26:01.488Z", + "Web/API/Window/focus": { + "modified": "2019-03-23T22:47:01.519Z", "contributors": [ - "Arzak656", - "wakka27", - "tregagnon", - "dexterneo" + "mmerian" ] }, - "Web/API/AbstractWorker/onerror": { - "modified": "2020-10-15T21:32:33.262Z", + "Web/API/Window/frameElement": { + "modified": "2020-10-15T22:33:32.894Z", "contributors": [ - "Arzak656", - "wakka27", - "jean-pierre.gay", - "fscholz" + "Voulto" ] }, - "Web/API/AnalyserNode": { - "modified": "2020-10-15T21:24:02.190Z", + "Web/API/Window/frames": { + "modified": "2019-03-23T23:07:57.219Z", "contributors": [ - "jpcote", - "SphinxKnight", - "moussagigawatt", - "marie-ototoi", - "jmdelafont", - "teoli", + "Ac1521", "fscholz", + "SphinxKnight", "Goofy", - "tregagnon", - "dexterneo" + "MatthieuHa" ] }, - "Web/API/AnalyserNode/AnalyserNode": { - "modified": "2019-03-23T22:09:55.975Z", + "Web/API/Window/fullScreen": { + "modified": "2019-03-23T23:50:27.730Z", "contributors": [ - "marie-ototoi" + "fscholz", + "teoli", + "Hasilt", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AnalyserNode/fftSize": { - "modified": "2019-03-23T22:36:35.592Z", + "Web/API/Window/gamepadconnected_event": { + "modified": "2019-03-23T21:59:49.070Z", "contributors": [ - "Yellarkh", - "marie-ototoi", - "pmalhaire" + "irenesmith", + "fscholz", + "Kalwyn" ] }, - "Web/API/AnalyserNode/frequencyBinCount": { - "modified": "2019-03-23T22:36:37.077Z", + "Web/API/Window/gamepaddisconnected_event": { + "modified": "2019-03-23T21:59:48.411Z", "contributors": [ - "marie-ototoi" + "irenesmith", + "Snosky", + "fscholz", + "Kalwyn" ] }, - "Web/API/AnalyserNode/getByteFrequencyData": { - "modified": "2019-03-23T22:36:35.277Z", + "Web/API/Window/getComputedStyle": { + "modified": "2019-03-23T23:39:22.750Z", "contributors": [ - "marie-ototoi" + "scaillerie", + "Jean-MariePETIT", + "fscholz", + "teoli", + "khalid32", + "tregagnon", + "Zlitus" ] }, - "Web/API/AnalyserNode/getByteTimeDomainData": { - "modified": "2019-03-23T22:36:04.717Z", + "Web/API/Window/getDefaultComputedStyle": { + "modified": "2019-03-18T21:37:50.335Z", "contributors": [ - "marie-ototoi" + "teoli", + "NemoNobobyPersonne" ] }, - "Web/API/AnalyserNode/getFloatFrequencyData": { - "modified": "2019-03-23T22:35:48.718Z", + "Web/API/Window/getSelection": { + "modified": "2019-09-25T07:23:01.504Z", "contributors": [ - "marie-ototoi", - "Mr21" + "julienc", + "sudwebdesign", + "fscholz", + "jsx", + "teoli", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AnalyserNode/getFloatTimeDomainData": { - "modified": "2019-03-23T22:35:47.582Z", + "Web/API/Window/hashchange_event": { + "modified": "2020-06-01T06:05:14.156Z", "contributors": [ - "marie-ototoi" + "CommandMaker", + "fscholz", + "SaintCyr" ] }, - "Web/API/AnalyserNode/maxDecibels": { - "modified": "2019-03-23T22:36:35.839Z", + "Web/API/Window/history": { + "modified": "2020-10-15T21:25:14.236Z", "contributors": [ - "marie-ototoi" + "Arzak656", + "SphinxKnight", + "fscholz", + "khalid32", + "Goofy", + "Jeuxclic" ] }, - "Web/API/AnalyserNode/minDecibels": { - "modified": "2019-03-18T21:15:50.310Z", + "Web/API/Window/home": { + "modified": "2020-10-15T22:33:52.712Z", "contributors": [ - "marie-ototoi" + "Voulto" ] }, - "Web/API/AnalyserNode/smoothingTimeConstant": { - "modified": "2019-03-23T22:35:50.453Z", + "Web/API/Window/innerHeight": { + "modified": "2019-03-23T23:51:40.324Z", "contributors": [ - "marie-ototoi" + "Copen", + "fscholz", + "teoli", + "khalid32", + "BenoitL", + "Mgjbot", + "Druss" ] }, - "Web/API/Animation": { - "modified": "2019-03-23T22:28:00.225Z", + "Web/API/Window/innerWidth": { + "modified": "2019-03-23T23:51:38.427Z", "contributors": [ - "GrandSchtroumpf" + "callmemagnus", + "jdeniau", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "Druss" ] }, - "Web/API/AnimationEffectTimingProperties": { - "modified": "2019-03-23T22:28:24.754Z", + "Web/API/Window/isSecureContext": { + "modified": "2020-10-15T22:33:30.685Z", "contributors": [ - "SphinxKnight", - "HereComesJuju", - "rachelnabors" + "Voulto" ] }, - "Web/API/AnimationEffectTimingProperties/delay": { - "modified": "2019-03-23T22:28:20.379Z", + "Web/API/Window/languagechange_event": { + "modified": "2020-10-15T22:33:51.717Z", "contributors": [ - "SphinxKnight", - "HereComesJuju" + "Voulto" ] }, - "Web/API/AnimationEvent": { - "modified": "2020-11-16T08:35:46.188Z", + "Web/API/Window/length": { + "modified": "2019-03-23T22:49:39.967Z", "contributors": [ - "JNa0", - "teoli", - "fscholz", - "tregagnon", - "Goofy", - "dexterneo" + "Scott99" ] }, - "Web/API/AnimationEvent/AnimationEvent": { - "modified": "2019-03-23T22:04:06.737Z", + "Web/API/Window/localStorage": { + "modified": "2020-10-15T21:38:24.266Z", "contributors": [ - "tonybengue" + "tristantheb", + "begmans", + "Bpruneau", + "Axnyff", + "EmmanuelBeziat", + "Nolwennig", + "goofy_bz", + "mfrederic" ] }, - "Web/API/AnimationEvent/animationName": { - "modified": "2020-10-15T21:26:08.479Z", + "Web/API/Window/locationbar": { + "modified": "2020-10-15T22:33:31.052Z", "contributors": [ - "SphinxKnight", - "teoli", - "fscholz", - "tregagnon" + "Voulto" ] }, - "Web/API/AnimationEvent/elapsedTime": { - "modified": "2019-03-23T23:21:17.582Z", + "Web/API/Window/matchMedia": { + "modified": "2019-03-23T23:36:43.486Z", "contributors": [ - "teoli", "fscholz", - "tregagnon" - ] - }, - "Web/API/AnimationEvent/pseudoElement": { - "modified": "2020-10-15T21:26:10.153Z", - "contributors": [ - "SphinxKnight", "teoli", - "fscholz", - "tregagnon" + "khalid32", + "kim_doudou" ] }, - "Web/API/Attr": { - "modified": "2019-03-23T23:29:06.471Z", + "Web/API/Window/menubar": { + "modified": "2020-10-15T22:33:33.066Z", "contributors": [ - "loella16", - "robin850", - "fscholz", - "ntrillaud", - "Jeremie", - "dexterneo" + "Voulto" ] }, - "Web/API/Attr/localName": { - "modified": "2019-03-23T22:13:07.184Z", + "Web/API/Window/message_event": { + "modified": "2020-10-15T22:33:32.981Z", "contributors": [ - "loella16", - "BEHOUBA", - "Joel-Costamagna" + "Voulto" ] }, - "Web/API/Attr/namespaceURI": { - "modified": "2019-03-18T21:42:32.598Z", + "Web/API/Window/messageerror_event": { + "modified": "2020-10-15T22:33:50.217Z", "contributors": [ - "loella16" + "Voulto" ] }, - "Web/API/Attr/prefix": { - "modified": "2019-03-23T22:07:36.471Z", + "Web/API/Window/mozAnimationStartTime": { + "modified": "2020-10-15T22:33:31.316Z", "contributors": [ - "loella16", - "BEHOUBA" + "Voulto" ] }, - "Web/API/AudioBuffer": { - "modified": "2019-03-23T23:29:07.846Z", + "Web/API/Window/mozInnerScreenX": { + "modified": "2020-10-15T22:33:30.539Z", "contributors": [ - "marie-ototoi", - "fscholz", - "Goofy", - "tregagnon", - "dexterneo" + "Voulto" ] }, - "Web/API/AudioBuffer/AudioBuffer": { - "modified": "2019-03-23T22:07:03.337Z", + "Web/API/Window/mozInnerScreenY": { + "modified": "2020-10-15T22:33:31.996Z", "contributors": [ - "Maamouch" + "Voulto" ] }, - "Web/API/AudioBuffer/copyFromChannel": { - "modified": "2019-05-16T07:00:31.805Z", + "Web/API/Window/mozPaintCount": { + "modified": "2020-10-15T22:33:32.495Z", "contributors": [ - "sizvix", - "marie-ototoi", - "nobe4" + "Voulto" ] }, - "Web/API/AudioBuffer/copyToChannel": { - "modified": "2019-03-23T22:32:43.512Z", + "Web/API/Window/name": { + "modified": "2019-03-23T22:14:13.942Z", "contributors": [ - "marie-ototoi" + "Copen" ] }, - "Web/API/AudioBuffer/duration": { - "modified": "2019-03-23T22:33:02.014Z", + "Web/API/Window/navigator": { + "modified": "2019-07-01T12:52:20.296Z", "contributors": [ - "marie-ototoi" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AudioBuffer/getChannelData": { - "modified": "2019-03-23T22:32:47.435Z", + "Web/API/Window/offline_event": { + "modified": "2020-10-15T22:32:51.446Z", "contributors": [ - "marie-ototoi" + "Voulto", + "discipolat" ] }, - "Web/API/AudioBuffer/length": { - "modified": "2019-03-23T22:33:05.726Z", + "Web/API/Window/ondevicelight": { + "modified": "2020-10-15T22:33:47.080Z", "contributors": [ - "marie-ototoi" + "Voulto" ] }, - "Web/API/AudioBuffer/numberOfChannels": { - "modified": "2019-03-23T22:32:35.350Z", + "Web/API/Window/online_event": { + "modified": "2020-10-15T22:33:30.848Z", "contributors": [ - "marie-ototoi" + "Voulto" ] }, - "Web/API/AudioBuffer/sampleRate": { - "modified": "2019-03-23T22:32:46.659Z", + "Web/API/Window/onpaint": { + "modified": "2020-08-30T03:31:57.086Z", "contributors": [ - "Maamouch", - "marie-ototoi" + "Voulto" ] }, - "Web/API/AudioBufferSourceNode": { - "modified": "2020-10-15T21:23:44.789Z", + "Web/API/Window/open": { + "modified": "2019-10-13T15:48:24.493Z", "contributors": [ - "letochagone", + "Sibian2019", + "P45QU10U", "SphinxKnight", - "marie-ototoi", - "sizvix", - "dooxe", + "trebly", + "jigs12", + "jnoelEFL", "fscholz", + "khalid32", "teoli", - "tregagnon", - "dexterneo" + "damien.flament", + "GT", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AudioBufferSourceNode/buffer": { - "modified": "2019-03-23T22:24:27.684Z", + "Web/API/Window/openDialog": { + "modified": "2020-10-15T21:14:00.787Z", "contributors": [ - "marie-ototoi" + "velkro", + "fscholz", + "teoli", + "jsx", + "tregagnon", + "damien.flament" ] }, - "Web/API/AudioBufferSourceNode/detune": { - "modified": "2020-10-15T21:45:42.081Z", + "Web/API/Window/opener": { + "modified": "2019-03-23T23:49:11.676Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "Mr21", - "nobe4" + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AudioBufferSourceNode/loop": { - "modified": "2019-03-23T22:34:16.953Z", + "Web/API/Window/orientation": { + "modified": "2020-10-15T22:33:28.551Z", "contributors": [ - "marie-ototoi", - "nobe4" + "Voulto" ] }, - "Web/API/AudioBufferSourceNode/loopEnd": { - "modified": "2020-10-15T21:46:40.981Z", + "Web/API/Window/outerHeight": { + "modified": "2019-03-23T22:35:54.960Z", "contributors": [ - "SphinxKnight", - "marie-ototoi" + "Nlmc", + "cyriil_dev" ] }, - "Web/API/AudioBufferSourceNode/loopStart": { - "modified": "2019-03-23T22:32:20.622Z", + "Web/API/Window/outerWidth": { + "modified": "2019-03-18T21:37:58.232Z", "contributors": [ - "marie-ototoi" + "NemoNobobyPersonne" ] }, - "Web/API/AudioBufferSourceNode/playbackRate": { - "modified": "2019-03-23T22:32:12.255Z", + "Web/API/Window/parent": { + "modified": "2019-03-23T23:50:11.432Z", "contributors": [ - "marie-ototoi" + "fscholz", + "khalid32", + "teoli", + "Mgjbot", + "Takenbot", + "BenoitL" ] }, - "Web/API/AudioBufferSourceNode/start": { - "modified": "2019-03-23T22:32:08.127Z", + "Web/API/Window/paste_event": { + "modified": "2020-10-15T22:33:30.919Z", "contributors": [ - "marie-ototoi" + "Voulto" ] }, - "Web/API/AudioContext": { - "modified": "2019-03-23T23:29:08.112Z", + "Web/API/Window/popstate_event": { + "modified": "2019-04-26T08:34:01.571Z", "contributors": [ - "marie-ototoi", + "chrisdavidmills", + "irenesmith", "fscholz", - "tregagnon", - "dexterneo" + "Hell_Carlito", + "DuaelFr" ] }, - "Web/API/AudioContext/createGain": { - "modified": "2019-03-23T22:43:18.087Z", + "Web/API/Window/postMessage": { + "modified": "2020-10-15T21:31:31.287Z", "contributors": [ - "JNa0", - "marie-ototoi", - "Threstle" + "abvll", + "J.DMB", + "fscholz", + "Watilin" ] }, - "Web/API/AudioContext/createMediaElementSource": { - "modified": "2020-10-15T22:07:31.399Z", + "Web/API/Window/print": { + "modified": "2019-03-23T22:47:25.609Z", "contributors": [ - "Watilin" + "Bringdal", + "clementgarbay", + "Chealer" ] }, - "Web/API/AudioListener": { - "modified": "2019-03-23T23:29:10.150Z", + "Web/API/Window/prompt": { + "modified": "2020-10-20T04:53:05.942Z", "contributors": [ - "marie-ototoi", - "fscholz", - "tregagnon", - "Delapouite", - "Goofy", + "Yopai", + "goofy_mdn", "SphinxKnight", - "dexterneo" + "SUN-D-IA-L", + "fscholz", + "teoli", + "icefire", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/API/AudioNode": { - "modified": "2019-03-23T22:20:42.964Z", + "Web/API/Window/rejectionhandled_event": { + "modified": "2020-10-15T22:33:52.394Z", "contributors": [ - "marie-ototoi" + "Voulto" ] }, - "Web/API/AudioParam": { - "modified": "2019-03-23T23:28:58.977Z", + "Web/API/Window/requestAnimationFrame": { + "modified": "2020-10-15T21:25:38.318Z", "contributors": [ - "marie-ototoi", + "gsavin", + "Hell_Carlito", + "Gibus", + "kiux", + "xUMi", + "Durindo", + "Huntedpix", "fscholz", - "tregagnon", - "dexterneo" + "youssefj", + "wakooka", + "juleschz" ] }, - "Web/API/AudioProcessingEvent": { - "modified": "2019-03-23T23:28:53.968Z", + "Web/API/Window/requestIdleCallback": { + "modified": "2019-03-23T22:21:17.753Z", "contributors": [ - "marie-ototoi", - "fscholz", - "tregagnon", - "dexterneo" + "Adrael" ] }, - "Web/API/AudioWorklet": { - "modified": "2020-10-15T22:29:43.020Z", + "Web/API/Window/resizeBy": { + "modified": "2020-10-15T22:33:30.846Z", "contributors": [ - "hellosct1" + "Voulto" ] }, - "Web/API/AuthenticatorAssertionResponse": { - "modified": "2020-10-15T22:15:38.464Z", + "Web/API/Window/screen": { + "modified": "2020-10-15T22:13:48.969Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "AurelieBayre" ] }, - "Web/API/AuthenticatorAssertionResponse/authenticatorData": { - "modified": "2020-10-15T22:15:42.626Z", + "Web/API/Window/screenX": { + "modified": "2019-03-23T22:30:27.252Z", "contributors": [ - "SphinxKnight" + "tutosfaciles48" ] }, - "Web/API/AuthenticatorAttestationResponse": { - "modified": "2020-10-15T22:15:38.529Z", + "Web/API/Window/scroll": { + "modified": "2019-03-23T23:38:26.784Z", "contributors": [ - "SphinxKnight" + "fscholz", + "khalid32", + "rd6137" ] }, - "Web/API/AuthenticatorResponse": { - "modified": "2020-10-15T22:15:37.142Z", + "Web/API/Window/scrollBy": { + "modified": "2019-01-16T23:16:12.982Z", "contributors": [ - "SphinxKnight" + "gharel", + "OhNiice" ] }, - "Web/API/BaseAudioContext": { - "modified": "2020-09-07T04:47:49.697Z", + "Web/API/Window/scrollByLines": { + "modified": "2019-03-23T22:28:15.817Z", "contributors": [ - "Voulto", - "Jedipedia" + "OhNiice" ] - }, - "Web/API/BaseAudioContext/createBiquadFilter": { - "modified": "2020-10-15T22:22:10.010Z", + }, + "Web/API/Window/scrollByPages": { + "modified": "2019-03-23T22:28:29.251Z", "contributors": [ - "JNa0" + "OhNiice" ] }, - "Web/API/BaseAudioContext/createBuffer": { - "modified": "2019-03-18T21:37:57.614Z", + "Web/API/Window/scrollTo": { + "modified": "2019-03-23T23:51:36.100Z", "contributors": [ - "NemoNobobyPersonne" + "victorlevasseur", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/API/BaseAudioContext/createBufferSource": { - "modified": "2020-10-15T22:23:57.305Z", + "Web/API/Window/scrollY": { + "modified": "2019-09-06T18:25:26.774Z", "contributors": [ - "Watilin" + "Awebsome", + "blr21560", + "Buzut", + "romuleald", + "cyriil_dev" ] }, - "Web/API/BaseAudioContext/createPanner": { - "modified": "2020-10-15T22:22:12.658Z", + "Web/API/Window/scrollbars": { + "modified": "2020-10-15T22:33:49.792Z", "contributors": [ - "JNa0" + "Voulto" ] }, - "Web/API/BaseAudioContext/createPeriodicWave": { - "modified": "2020-10-15T22:12:41.903Z", + "Web/API/Window/sessionStorage": { + "modified": "2020-10-15T21:38:20.068Z", "contributors": [ - "JNa0" + "madidier", + "SphinxKnight", + "Prestine", + "begmans", + "carvallegro", + "cedeber", + "gharel", + "Puxarnal", + "Weeple" ] }, - "Web/API/BatteryManager": { - "modified": "2019-03-23T23:28:54.126Z", + "Web/API/Window/showModalDialog": { + "modified": "2019-03-23T23:49:12.676Z", "contributors": [ - "LordKBX", - "khalid32", + "Enoryon", + "fscholz", "teoli", - "dexterneo" + "MatthieuHa", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/API/BatteryManager/charging": { - "modified": "2020-10-15T22:20:44.178Z", + "Web/API/Window/stop": { + "modified": "2020-10-15T22:33:32.200Z", "contributors": [ - "thebrave" + "Voulto" ] }, - "Web/API/BatteryManager/chargingTime": { - "modified": "2020-10-15T22:20:44.964Z", + "Web/API/Window/storage_event": { + "modified": "2020-10-15T22:33:50.498Z", "contributors": [ - "thebrave" + "Voulto" ] }, - "Web/API/BatteryManager/dischargingTime": { - "modified": "2020-10-15T22:20:44.576Z", + "Web/API/Window/top": { + "modified": "2020-10-15T22:33:34.095Z", "contributors": [ - "thebrave" + "Voulto" ] }, - "Web/API/BatteryManager/level": { - "modified": "2020-10-15T22:20:43.803Z", + "Web/API/Window/vrdisplayconnect_event": { + "modified": "2020-10-15T22:33:51.404Z", "contributors": [ - "thebrave" + "Voulto" ] }, - "Web/API/Battery_status_API": { - "modified": "2020-10-15T21:24:14.232Z", + "Web/API/Window/vrdisplaydisconnect_event": { + "modified": "2020-10-15T22:33:50.659Z", "contributors": [ - "thebrave", - "SphinxKnight", - "DTSSE", - "teoli" + "Voulto" ] }, - "Web/API/BeforeUnloadEvent": { - "modified": "2020-11-10T19:19:54.429Z", + "Web/API/Window/vrdisplaypresentchange_event": { + "modified": "2020-10-15T22:33:50.217Z", "contributors": [ - "JNa0" + "Voulto" ] }, - "Web/API/BiquadFilterNode": { - "modified": "2019-08-24T07:16:34.926Z", + "Web/API/WindowClient": { + "modified": "2019-03-23T22:34:19.127Z", "contributors": [ - "JNa0", - "marie-ototoi", - "teoli", - "ouhouhsami", - "fscholz", - "tregagnon", - "Jeremie", - "dexterneo" + "NuclearPony" ] }, - "Web/API/BiquadFilterNode/frequency": { - "modified": "2020-10-15T21:43:49.371Z", + "Web/API/WindowClient/focus": { + "modified": "2019-03-23T22:34:17.444Z", "contributors": [ - "SphinxKnight", - "marie-ototoi" + "NuclearPony" ] }, - "Web/API/Blob": { - "modified": "2019-03-23T23:28:26.396Z", + "Web/API/WindowClient/focused": { + "modified": "2019-03-23T22:06:02.438Z", "contributors": [ - "petosorus", - "SphinxKnight", - "ChristopheBoucaut", - "emersion", - "mekal", - "teoli", - "bfn", - "dexterneo" + "aligatorjmg" ] }, - "Web/API/Blob/Blob": { - "modified": "2020-10-15T21:38:35.650Z", + "Web/API/WindowClient/navigate": { + "modified": "2019-03-23T22:05:57.858Z", "contributors": [ - "thebrave", - "SphinxKnight", - "wlalele" + "aligatorjmg" ] }, - "Web/API/Blob/type": { - "modified": "2020-10-15T21:55:27.760Z", + "Web/API/WindowClient/visibilityState": { + "modified": "2019-03-23T22:05:58.402Z", "contributors": [ - "loella16", - "Hennek" + "aligatorjmg" ] }, - "Web/API/BlobBuilder": { - "modified": "2020-10-15T22:05:47.307Z", + "Web/API/WindowEventHandlers": { + "modified": "2020-10-15T21:33:02.753Z", "contributors": [ - "velkro", - "jgroc-de" + "a-mt", + "fscholz" ] }, - "Web/API/BlobEvent": { - "modified": "2020-10-15T22:01:50.494Z", + "Web/API/WindowEventHandlers/onafterprint": { + "modified": "2020-10-15T22:10:57.103Z", "contributors": [ - "SphinxKnight", - "illaweb35", - "Sheppy" + "velkro" ] }, - "Web/API/BlobEvent/BlobEvent": { - "modified": "2020-10-15T22:01:50.313Z", + "Web/API/WindowEventHandlers/onbeforeprint": { + "modified": "2020-10-15T22:10:57.975Z", "contributors": [ - "loella16" + "velkro" ] }, - "Web/API/BlobEvent/data": { - "modified": "2020-10-15T22:01:50.239Z", + "Web/API/WindowEventHandlers/onbeforeunload": { + "modified": "2019-04-18T06:36:38.075Z", "contributors": [ - "loella16" + "ocommeng", + "Chocobozzz", + "Yves_ASTIER", + "teoli", + "fscholz", + "Ender-events", + "Jeremie", + "Delapouite", + "souen", + "matteodelabre", + "Jacqhal" ] }, - "Web/API/Body": { - "modified": "2020-10-15T22:00:04.273Z", + "Web/API/WindowEventHandlers/onhashchange": { + "modified": "2019-03-23T22:29:53.876Z", "contributors": [ - "Voulto", - "Retroscilo", - "Arzak656", - "SphinxKnight", - "vqrs" + "romuleald", + "Restimel", + "electrotiti" ] }, - "Web/API/Body/json": { - "modified": "2020-10-15T22:00:00.599Z", + "Web/API/WindowEventHandlers/onlanguagechange": { + "modified": "2020-10-15T22:33:47.473Z", "contributors": [ - "SphinxKnight", - "jdvauguet", - "enkienki", - "MaximeSarrato", - "Nithramir" + "Voulto" ] }, - "Web/API/ByteString": { - "modified": "2019-03-23T22:50:30.417Z", + "Web/API/WindowEventHandlers/onpopstate": { + "modified": "2020-03-22T20:22:18.860Z", "contributors": [ - "BEHOUBA", - "SphinxKnight", - "Hell_Carlito" + "noelmace", + "JouxRose", + "fscholz", + "teoli", + "khalid32", + "gudoy", + "matteodelabre" ] }, - "Web/API/CDATASection": { - "modified": "2020-10-15T21:37:54.310Z", + "Web/API/WindowEventHandlers/onunload": { + "modified": "2020-10-15T21:34:36.558Z", "contributors": [ - "loella16", + "Sibian2019", "SphinxKnight", - "Hell_Carlito" + "regzd" ] }, - "Web/API/CSS": { - "modified": "2019-03-23T22:44:45.496Z", + "Web/API/WindowOrWorkerGlobalScope": { + "modified": "2020-08-30T06:30:00.848Z", "contributors": [ - "PPGirault123" + "Voulto", + "Bzbarsky" ] }, - "Web/API/CSSMatrix": { - "modified": "2019-03-23T22:45:55.560Z", + "Web/API/WindowOrWorkerGlobalScope/caches": { + "modified": "2020-10-15T22:06:53.037Z", "contributors": [ - "SphinxKnight", - "morganPolitano" + "Arzak656", + "jonasgrilleres" ] }, - "Web/API/CSSMediaRule": { - "modified": "2020-10-15T22:27:05.762Z", + "Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated": { + "modified": "2020-10-15T22:26:34.641Z", "contributors": [ - "tristantheb" + "Eliastik" ] }, - "Web/API/CSSRuleList": { - "modified": "2019-03-23T23:28:18.630Z", + "Web/API/WindowOrWorkerGlobalScope/fetch": { + "modified": "2020-11-16T08:26:54.613Z", "contributors": [ + "JNa0", + "PxlCtzn", "fscholz", - "Delapouite" + "Hell_Carlito", + "Bat41" ] }, - "Web/API/CSSStyleDeclaration": { - "modified": "2019-03-18T21:37:40.971Z", + "Web/API/WindowOrWorkerGlobalScope/indexedDB": { + "modified": "2020-10-15T21:45:39.555Z", "contributors": [ - "NemoNobobyPersonne" + "Arzak656", + "SphinxKnight", + "gadgino" ] }, - "Web/API/CSSStyleDeclaration/cssText": { - "modified": "2019-03-18T21:36:22.387Z", + "Web/API/WindowOrWorkerGlobalScope/isSecureContext": { + "modified": "2020-10-15T22:06:53.371Z", "contributors": [ - "NemoNobobyPersonne" + "jonasgrilleres" ] }, - "Web/API/CSSStyleRule": { - "modified": "2019-03-23T22:06:59.663Z", + "Web/API/WindowOrWorkerGlobalScope/origin": { + "modified": "2020-10-15T22:06:53.236Z", "contributors": [ - "aligatorjmg" + "jonasgrilleres" ] }, - "Web/API/CSSValue": { - "modified": "2020-10-15T21:56:05.370Z", + "Web/API/WindowOrWorkerGlobalScope/queueMicrotask": { + "modified": "2020-10-15T22:26:44.474Z", "contributors": [ - "loella16", - "BEHOUBA" + "Eliastik" ] }, - "Web/API/CSSValueList": { - "modified": "2020-10-15T22:01:02.005Z", + "Web/API/WindowOrWorkerGlobalScope/setTimeout": { + "modified": "2020-10-15T21:13:52.309Z", "contributors": [ - "loella16" + "SphinxKnight", + "jmh", + "fscholz", + "teoli", + "jsx", + "Automatik", + "zanz", + "Tiller", + "Ceth", + "BenoitL", + "Mgjbot" ] }, - "Web/API/CSS_Object_Model": { - "modified": "2019-03-23T22:30:29.411Z", + "Web/API/Worker": { + "modified": "2020-10-15T21:25:14.944Z", "contributors": [ - "Watilin", - "teoli" + "Arzak656", + "laruiss", + "khalid32", + "DrJeffrey", + "JonathanMM", + "benjiiiiii" ] }, - "Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements": { - "modified": "2019-03-18T20:59:05.536Z", + "Web/API/Worker/Worker": { + "modified": "2020-10-15T21:32:56.649Z", "contributors": [ - "SphinxKnight", - "jmh", - "Goofy" + "Arzak656", + "wakka27", + "fscholz", + "jean-pierre.gay" ] }, - "Web/API/CSS_Object_Model/Managing_screen_orientation": { - "modified": "2019-03-18T21:32:40.291Z", + "Web/API/Worker/onmessage": { + "modified": "2020-10-15T21:32:57.785Z", "contributors": [ - "a-mt" + "Arzak656", + "wakka27", + "fscholz", + "jean-pierre.gay" ] }, - "Web/API/Cache": { - "modified": "2020-10-15T21:44:04.525Z", + "Web/API/Worker/postMessage": { + "modified": "2020-10-15T21:28:27.233Z", "contributors": [ - "tristantheb", + "Arzak656", + "fscholz", + "J.DMB", + "Whimzfreak" + ] + }, + "Web/API/Worker/terminate": { + "modified": "2020-10-15T21:32:32.338Z", + "contributors": [ + "Arzak656", + "fscholz", "jean-pierre.gay" ] }, - "Web/API/Cache/add": { - "modified": "2020-10-15T21:44:04.898Z", + "Web/API/WorkerGlobalScope": { + "modified": "2020-10-03T00:59:22.962Z", "contributors": [ - "tristantheb", - "NuclearPony", - "nobe4" + "duduindo", + "Voulto", + "chrisdavidmills" ] }, - "Web/API/Cache/addAll": { - "modified": "2020-10-15T21:44:04.955Z", + "Web/API/WorkerGlobalScope/close": { + "modified": "2020-10-15T21:36:58.427Z", "contributors": [ - "tristantheb", - "NuclearPony" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/Cache/delete": { - "modified": "2020-10-15T21:44:04.821Z", + "Web/API/WorkerGlobalScope/console": { + "modified": "2020-10-15T22:26:34.613Z", "contributors": [ - "tristantheb", - "NuclearPony" + "Eliastik" ] }, - "Web/API/Cache/keys": { - "modified": "2020-10-15T21:44:04.904Z", + "Web/API/WorkerGlobalScope/dump": { + "modified": "2020-10-15T22:27:11.681Z", "contributors": [ - "tristantheb", - "NuclearPony" + "Arzak656" ] }, - "Web/API/Cache/match": { - "modified": "2020-10-15T21:44:04.434Z", + "Web/API/WorkerGlobalScope/importScripts": { + "modified": "2020-10-15T21:36:58.896Z", "contributors": [ - "tristantheb", - "vincedew", - "NuclearPony" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/Cache/matchAll": { - "modified": "2020-10-15T21:44:05.782Z", + "Web/API/WorkerGlobalScope/location": { + "modified": "2020-10-15T21:33:55.947Z", "contributors": [ - "tristantheb", - "NuclearPony" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/Cache/put": { - "modified": "2020-10-15T21:44:05.632Z", + "Web/API/WorkerGlobalScope/navigator": { + "modified": "2020-10-15T21:33:53.933Z", "contributors": [ - "tristantheb", - "NuclearPony" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage": { - "modified": "2020-10-15T21:44:09.229Z", + "Web/API/WorkerGlobalScope/onclose": { + "modified": "2020-10-15T21:33:54.728Z", "contributors": [ - "tristantheb", - "BlackYoup", - "NuclearPony" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage/delete": { - "modified": "2020-10-15T21:44:49.808Z", + "Web/API/WorkerGlobalScope/onerror": { + "modified": "2020-10-15T21:33:56.757Z", "contributors": [ - "tristantheb", - "nobe4" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage/has": { - "modified": "2020-10-15T21:44:47.507Z", + "Web/API/WorkerGlobalScope/onlanguagechange": { + "modified": "2020-10-15T21:33:55.141Z", "contributors": [ - "tristantheb", - "jean-pierre.gay", - "nobe4" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage/keys": { - "modified": "2020-10-15T21:44:49.361Z", + "Web/API/WorkerGlobalScope/onoffline": { + "modified": "2020-10-15T21:33:24.512Z", "contributors": [ - "tristantheb", - "nobe4" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage/match": { - "modified": "2020-10-15T21:44:46.776Z", + "Web/API/WorkerGlobalScope/ononline": { + "modified": "2020-10-15T21:33:24.530Z", "contributors": [ - "tristantheb", - "nobe4" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CacheStorage/open": { - "modified": "2020-10-15T21:44:46.743Z", + "Web/API/WorkerGlobalScope/self": { + "modified": "2020-10-15T21:33:24.526Z", "contributors": [ - "tristantheb", - "lotfire24", - "nobe4" + "Arzak656", + "jean-pierre.gay" ] }, - "Web/API/CanvasGradient": { - "modified": "2020-10-15T21:53:53.503Z", + "Web/API/WorkerLocation": { + "modified": "2020-10-15T21:49:33.462Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne", - "Joel-Costamagna" + "Arzak656", + "Hell_Carlito", + "Copen" ] }, - "Web/API/CanvasGradient/addColorStop": { - "modified": "2020-10-15T21:54:37.185Z", + "Web/API/XMLDocument": { + "modified": "2020-10-15T22:03:21.753Z", "contributors": [ - "SphinxKnight", "NemoNobobyPersonne" ] }, - "Web/API/CanvasRenderingContext2D": { - "modified": "2019-03-23T23:16:58.158Z", + "Web/API/XMLDocument/async": { + "modified": "2019-04-24T21:08:31.361Z", "contributors": [ - "JNa0", - "steuzz", - "NemoNobobyPersonne", - "Halfman", - "vdrac", - "Y0kaze" + "ExE-Boss", + "loella16" ] }, - "Web/API/CanvasRenderingContext2D/arc": { - "modified": "2020-10-15T21:41:36.642Z", + "Web/API/XMLDocument/load": { + "modified": "2020-10-15T22:04:13.899Z", "contributors": [ - "SphinxKnight", - "loella16", - "jmpp" + "NemoNobobyPersonne" ] }, - "Web/API/CanvasRenderingContext2D/beginPath": { - "modified": "2020-10-15T22:05:05.343Z", + "Web/API/XMLHttpRequest": { + "modified": "2020-10-15T21:15:49.505Z", "contributors": [ - "a-mt" + "tramber30", + "SphinxKnight", + "lessonsharing", + "NemoNobobyPersonne", + "JoJoMimosa", + "lipki", + "teoli", + "JulienRobitaille", + "BenoitL", + "Mgjbot", + "Chbok", + "Laurent Denis", + "Anonymous" ] }, - "Web/API/CanvasRenderingContext2D/bezierCurveTo": { - "modified": "2020-10-15T22:12:46.030Z", + "Web/API/XMLHttpRequest/XMLHttpRequest": { + "modified": "2019-11-25T21:11:58.899Z", "contributors": [ - "JNa0" + "Lyokolux" ] }, - "Web/API/CanvasRenderingContext2D/canvas": { - "modified": "2020-10-15T21:50:07.563Z", + "Web/API/XMLHttpRequest/onreadystatechange": { + "modified": "2020-10-15T22:12:50.281Z", "contributors": [ - "SphinxKnight", - "Hell_Carlito", - "JNa0" + "AdminXVII" ] }, - "Web/API/CanvasRenderingContext2D/clearRect": { - "modified": "2020-10-15T21:50:06.817Z", + "Web/API/XMLHttpRequest/open": { + "modified": "2020-10-15T22:20:27.895Z", "contributors": [ - "a-mt", - "Guillaume.Wulpes", - "SphinxKnight", - "NemoNobobyPersonne", - "Hell_Carlito", - "JNa0" + "ThCarrere" ] }, - "Web/API/CanvasRenderingContext2D/closePath": { - "modified": "2019-03-23T22:22:37.948Z", + "Web/API/XMLHttpRequest/readyState": { + "modified": "2020-10-15T22:33:49.573Z", "contributors": [ - "gpenissard" + "devweb157" ] }, - "Web/API/CanvasRenderingContext2D/createLinearGradient": { - "modified": "2020-10-15T21:54:27.162Z", + "Web/API/XMLHttpRequest/response": { + "modified": "2019-03-18T21:46:41.662Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "lpoujade" ] }, - "Web/API/CanvasRenderingContext2D/direction": { - "modified": "2020-10-15T21:54:36.516Z", + "Web/API/XMLHttpRequest/responseText": { + "modified": "2020-10-15T22:32:45.494Z", "contributors": [ - "SphinxKnight", - "Loelle", - "NemoNobobyPersonne" + "la.boutique.art" ] }, - "Web/API/CanvasRenderingContext2D/drawImage": { - "modified": "2019-03-23T22:24:41.008Z", + "Web/API/XMLHttpRequest/send": { + "modified": "2020-10-15T22:20:28.816Z", "contributors": [ - "PeeWee2201", - "Hell_Carlito", - "JNa0" + "koala819", + "LocsLight", + "ThCarrere" ] }, - "Web/API/CanvasRenderingContext2D/ellipse": { - "modified": "2020-10-15T21:54:18.769Z", + "Web/API/XMLHttpRequest/sendAsBinary": { + "modified": "2020-10-15T22:26:07.337Z", "contributors": [ "SphinxKnight", - "NemoNobobyPersonne" + "MasterFox" ] }, - "Web/API/CanvasRenderingContext2D/fill": { - "modified": "2020-10-15T22:05:15.196Z", + "Web/API/XMLHttpRequest/setRequestHeader": { + "modified": "2020-10-15T22:22:04.139Z", "contributors": [ - "a-mt" + "AkwindFr" ] }, - "Web/API/CanvasRenderingContext2D/fillRect": { - "modified": "2020-10-15T21:50:06.787Z", + "Web/API/XMLHttpRequest/status": { + "modified": "2020-10-15T22:33:50.087Z", "contributors": [ - "JNa0", - "SphinxKnight", - "Hell_Carlito" + "devweb157" ] }, - "Web/API/CanvasRenderingContext2D/fillStyle": { - "modified": "2020-10-15T22:05:05.410Z", + "Web/API/XMLHttpRequest/timeout": { + "modified": "2020-10-15T22:25:10.471Z", "contributors": [ - "a-mt" + "SphinxKnight" ] }, - "Web/API/CanvasRenderingContext2D/fillText": { - "modified": "2019-03-23T22:11:41.288Z", + "Web/API/XMLHttpRequest/withCredentials": { + "modified": "2020-10-15T22:15:36.714Z", "contributors": [ - "NemoNobobyPersonne" + "innocenzi", + "hsdino", + "SphinxKnight" ] }, - "Web/API/CanvasRenderingContext2D/font": { - "modified": "2020-10-15T21:54:28.139Z", + "Web/API/XMLHttpRequestEventTarget": { + "modified": "2020-10-15T22:31:14.301Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "Voulto", + "devweb157" ] }, - "Web/API/CanvasRenderingContext2D/getImageData": { - "modified": "2020-10-15T21:56:10.861Z", + "Web/API/XMLHttpRequestEventTarget/onload": { + "modified": "2020-10-15T22:31:14.653Z", "contributors": [ - "JNa0", - "SphinxKnight", - "loella16", - "Nerostalgeek" + "fatmalimem19" ] }, - "Web/API/CanvasRenderingContext2D/globalAlpha": { - "modified": "2020-10-15T21:54:40.273Z", + "Web/API/XPathExpression": { + "modified": "2019-03-18T21:40:34.918Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "loella16" ] }, - "Web/API/CanvasRenderingContext2D/globalCompositeOperation": { - "modified": "2020-10-15T22:25:07.709Z", + "Web/API/XSLTProcessor": { + "modified": "2020-08-30T07:26:30.646Z", "contributors": [ - "UFOcatcher" + "Voulto", + "Mars073", + "erikadoyle" ] }, - "Web/API/CanvasRenderingContext2D/imageSmoothingEnabled": { - "modified": "2020-10-15T21:59:28.179Z", + "Web/API/notification": { + "modified": "2020-10-15T21:26:50.253Z", "contributors": [ - "warpdesign", - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder", + "robin850", + "Omnilaika02", + "AshfaqHossain", + "P45QU10U" ] }, - "Web/API/CanvasRenderingContext2D/lineCap": { - "modified": "2020-10-15T21:54:48.924Z", + "Web/API/notification/Notification": { + "modified": "2020-10-15T22:34:41.434Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/lineJoin": { - "modified": "2020-10-15T22:14:22.519Z", + "Web/API/notification/actions": { + "modified": "2020-10-15T22:34:52.498Z", "contributors": [ - "JNa0", - "Mars073" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/lineTo": { - "modified": "2020-10-15T21:50:07.144Z", + "Web/API/notification/badge": { + "modified": "2020-10-15T22:34:53.335Z", "contributors": [ - "a-mt", - "SphinxKnight", - "Hell_Carlito", - "JNa0" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/measureText": { - "modified": "2019-03-23T22:10:28.208Z", + "Web/API/notification/body": { + "modified": "2020-10-15T22:34:54.457Z", "contributors": [ - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/moveTo": { - "modified": "2020-10-15T22:05:05.756Z", + "Web/API/notification/close": { + "modified": "2020-10-15T22:34:52.199Z", "contributors": [ - "a-mt" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/quadraticCurveTo": { - "modified": "2020-10-15T22:12:46.959Z", + "Web/API/notification/data": { + "modified": "2020-10-15T22:34:54.481Z", "contributors": [ - "JNa0" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/rect": { - "modified": "2020-10-15T22:05:15.196Z", + "Web/API/notification/dir": { + "modified": "2020-10-15T22:34:54.338Z", "contributors": [ - "JNa0", - "a-mt" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/rotate": { - "modified": "2019-03-23T22:11:43.187Z", + "Web/API/notification/icon": { + "modified": "2020-10-15T22:34:54.321Z", "contributors": [ - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/save": { - "modified": "2020-10-15T22:22:46.023Z", + "Web/API/notification/image": { + "modified": "2020-10-15T22:34:54.254Z", "contributors": [ - "SenpaiWeb", - "Mars073" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/scale": { - "modified": "2020-10-15T21:54:33.658Z", + "Web/API/notification/lang": { + "modified": "2020-10-15T22:34:54.385Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/setLineDash": { - "modified": "2020-10-15T22:00:14.768Z", + "Web/API/notification/maxActions": { + "modified": "2020-10-15T22:34:53.286Z", "contributors": [ - "SphinxKnight", - "GoGoAndroid" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/setTransform": { - "modified": "2020-10-15T21:54:30.072Z", + "Web/API/notification/onclick": { + "modified": "2020-10-15T21:46:42.833Z", "contributors": [ "SphinxKnight", - "NemoNobobyPersonne" + "matthieurambert" ] }, - "Web/API/CanvasRenderingContext2D/stroke": { - "modified": "2020-10-15T22:01:10.781Z", + "Web/API/notification/onclose": { + "modified": "2020-10-15T22:34:55.643Z", "contributors": [ - "Loelle" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/strokeRect": { - "modified": "2020-10-15T21:50:08.912Z", + "Web/API/notification/onerror": { + "modified": "2020-10-15T22:34:55.473Z", "contributors": [ - "SphinxKnight", - "Hell_Carlito", - "JNa0" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/strokeStyle": { - "modified": "2020-10-15T22:05:15.224Z", + "Web/API/notification/onshow": { + "modified": "2020-10-15T22:34:55.503Z", "contributors": [ - "a-mt" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/strokeText": { - "modified": "2020-10-15T21:54:48.430Z", + "Web/API/notification/permission": { + "modified": "2020-10-15T22:34:55.540Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/textAlign": { - "modified": "2020-10-15T21:54:32.849Z", + "Web/API/notification/renotify": { + "modified": "2020-10-15T22:34:56.481Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/textBaseline": { - "modified": "2019-03-23T22:11:43.727Z", + "Web/API/notification/requestPermission": { + "modified": "2020-10-15T22:34:52.487Z", "contributors": [ - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/transform": { - "modified": "2020-10-15T21:54:37.850Z", + "Web/API/notification/requireInteraction": { + "modified": "2020-10-15T22:34:56.272Z", "contributors": [ - "SphinxKnight", - "calixte", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/CanvasRenderingContext2D/translate": { - "modified": "2020-10-15T21:54:49.704Z", + "Web/API/notification/silent": { + "modified": "2020-10-15T22:34:55.185Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "tomderudder" ] }, - "Web/API/Canvas_API": { - "modified": "2020-11-13T03:37:17.858Z", + "Web/API/notification/tag": { + "modified": "2020-10-15T22:34:55.217Z", "contributors": [ - "SphinxKnight", - "loella16", - "timkrief", - "NemoNobobyPersonne", - "etienne-gauvin", - "emersion", - "Laurent_Lyaudet", - "Delapouite", - "tregagnon", - "ethertank", - "openjck", - "teoli", - "dextra", - "Mgjbot", - "BenoitL", - "Chbok" + "tomderudder" ] }, - "Web/API/Canvas_API/Tutoriel_canvas": { - "modified": "2020-11-13T03:38:17.265Z", + "Web/API/notification/timestamp": { + "modified": "2020-10-15T22:34:55.519Z", "contributors": [ - "SphinxKnight", - "loella16", - "lumiru", - "jmh", - "Mathieu_deLauniere", - "teoli", - "Jeremie", - "Delapouite", - "Mgjbot", - "BenoitL", - "Chbok" + "tomderudder" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Advanced_animations": { - "modified": "2020-11-13T03:38:18.424Z", + "Web/API/notification/title": { + "modified": "2020-10-15T22:34:56.301Z", "contributors": [ - "SphinxKnight", - "benjaminbouwyn", - "PaperFlu", - "loella16", - "gliluaume", - "lumiru", - "vanz" + "tomderudder" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Ajout_de_styles_et_de_couleurs": { - "modified": "2020-11-13T03:38:20.196Z", + "Web/API/notification/vibrate": { + "modified": "2020-10-15T22:34:56.431Z", "contributors": [ - "SphinxKnight", - "lhapaipai", - "a-mt", - "lebernard", - "loella16", - "JNa0", - "ecolinet", - "jmh" + "tomderudder" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Animations_basiques": { - "modified": "2020-11-13T03:38:18.694Z", + "Web/API/window/location": { + "modified": "2019-03-23T23:59:30.762Z", "contributors": [ - "SphinxKnight", - "a-mt", - "loella16", - "lumiru", - "zaphibel" + "Mahabarata", + "fscholz", + "maelito", + "tregagnon", + "Julien.stuby", + "Mgjbot", + "BenoitL" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Composition": { - "modified": "2020-11-13T03:38:19.786Z", + "Web/Accessibility/ARIA/widgets": { + "modified": "2019-01-16T21:44:15.383Z", "contributors": [ - "SphinxKnight", - "a-mt", - "Syberam" + "Waxaal", + "julianosilvaa" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Composition/Example": { - "modified": "2020-11-13T03:38:18.691Z", + "Web/Accessibility/ARIA/widgets/overview": { + "modified": "2019-03-23T22:43:55.361Z", "contributors": [ - "SphinxKnight", - "a-mt" + "paul.bignier" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Dessin_de_texte_avec_canvas": { - "modified": "2020-11-13T03:38:17.919Z", + "Web/Accessibility/Understanding_WCAG": { + "modified": "2020-09-07T05:15:13.925Z", "contributors": [ - "SphinxKnight", - "a-mt", - "loella16", - "jmh", - "emersion", - "Delapouite", - "Mgjbot", - "BenoitL" + "Voulto" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Formes_géométriques": { - "modified": "2020-11-13T03:38:18.692Z", + "Web/Accessibility/Understanding_WCAG/Perceivable": { + "modified": "2020-04-12T14:23:45.963Z", "contributors": [ - "SphinxKnight", - "Link_D._Potter", - "jpcote", - "NerOcrO", - "a-mt", - "lebernard", - "Halkeand", - "loella16", - "NemoNobobyPersonne", - "ecolinet", - "mesclics", - "JNa0", - "jmh", - "teoli", - "pie3636", - "anaskiee", - "Mathieu_deLauniere" + "chrisdavidmills" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Hit_regions_and_accessibility": { - "modified": "2020-11-13T03:38:19.005Z", + "Web/CSS": { + "modified": "2020-08-12T16:33:21.340Z", "contributors": [ + "frmovies", + "zephimir", "SphinxKnight", - "smartinus44", - "Syberam" + "adagioribbit", + "goofy_mdn", + "codingk8", + "juliendargelos", + "BenoitL", + "eerrtrr", + "tonybengue", + "Mozinet", + "romain.bohdanowicz", + "Daniel005", + "magikmanu", + "Oliviermoz", + "teoli", + "wakka27", + "Goofy", + "FredB", + "Delapouite", + "tregagnon", + "jackblack", + "Mgjbot", + "Fredchat", + "VincentN", + "Chbok", + "Bpruneau", + "Laurent Denis", + "Jean-Yves Cronier", + "Nickolay", + "Cbeard", + "TestUser" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Optimizing_canvas": { - "modified": "2020-11-13T03:38:18.443Z", + "Web/CSS/--*": { + "modified": "2020-10-15T21:43:41.268Z", "contributors": [ "SphinxKnight", - "jonathanlinat", - "lumiru", - "Hell_Carlito", - "ClementNerma" + "lp177", + "Sagiliste", + "xdelatour" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Pixel_manipulation_with_canvas": { - "modified": "2020-11-13T03:38:20.129Z", + "Web/CSS/-moz-context-properties": { + "modified": "2020-10-15T21:54:21.107Z", "contributors": [ "SphinxKnight", - "loella16", - "NemoNobobyPersonne", - "jodenda" + "teoli", + "PolariTOON" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Transformations": { - "modified": "2020-11-13T03:38:19.573Z", + "Web/CSS/-moz-float-edge": { + "modified": "2019-04-05T07:27:19.851Z", "contributors": [ "SphinxKnight", - "ni.pineau", - "loella16", - "BEHOUBA", - "gliluaume" + "teoli" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Utilisation_d'images": { - "modified": "2020-11-13T03:38:17.830Z", + "Web/CSS/-moz-force-broken-image-icon": { + "modified": "2019-04-05T07:26:56.277Z", "contributors": [ "SphinxKnight", - "a-mt", - "loella16", - "jmh", "Sebastianz", "teoli", - "Laurent_Lyaudet", - "Delapouite", - "Notafish", - "Mgjbot", - "BenoitL" + "louuis" ] }, - "Web/API/Canvas_API/Tutoriel_canvas/Utilisation_de_base": { - "modified": "2020-11-13T03:38:18.165Z", + "Web/CSS/-moz-image-rect": { + "modified": "2020-10-15T21:37:22.128Z", "contributors": [ "SphinxKnight", - "OhNiice", - "FabienTregan", - "NerOcrO", - "lebernard", - "iyadev", - "loella16", - "mireero", - "CoCay", - "AymDev", - "jmh", - "Nicolas_A", - "Olivier_C", - "MicroJoe", - "Mathieu_deLauniere" + "mrstork", + "teoli", + "pixoux" ] }, - "Web/API/CharacterData": { - "modified": "2019-03-18T21:43:27.023Z", + "Web/CSS/-moz-image-region": { + "modified": "2020-10-15T21:18:05.925Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "gudoy", + "FredB", + "Fredchat", + "Kyodev" ] }, - "Web/API/ChildNode": { - "modified": "2020-10-15T21:28:06.168Z", + "Web/CSS/-moz-orient": { + "modified": "2020-10-15T21:28:10.504Z", "contributors": [ - "loella16", - "alexandreL", - "thbil", - "khalid32", - "bchaplet" + "SphinxKnight", + "teoli", + "louuis" ] }, - "Web/API/ChildNode/after": { - "modified": "2020-10-15T21:56:14.439Z", - "contributors": [ - "loella16", - "BEHOUBA" + "Web/CSS/-moz-outline-radius": { + "modified": "2020-10-15T21:18:04.818Z", + "contributors": [ + "SphinxKnight", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/ChildNode/before": { - "modified": "2020-10-15T22:01:12.319Z", + "Web/CSS/-moz-outline-radius-bottomleft": { + "modified": "2019-08-07T07:41:04.258Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "Fredchat" ] }, - "Web/API/ChildNode/remove": { - "modified": "2020-10-15T21:49:32.341Z", + "Web/CSS/-moz-outline-radius-bottomright": { + "modified": "2019-08-07T07:41:12.958Z", "contributors": [ - "tristantheb", - "loella16", - "Goofy", - "Copen" + "SphinxKnight", + "teoli", + "FredB", + "Fredchat" ] }, - "Web/API/ChildNode/replaceWith": { - "modified": "2020-10-15T21:55:03.476Z", + "Web/CSS/-moz-outline-radius-topleft": { + "modified": "2019-08-07T07:41:19.867Z", "contributors": [ - "tristantheb", - "loella16", - "Spictheweb", - "v-Stein" + "SphinxKnight", + "teoli", + "FredB", + "Fredchat" ] }, - "Web/API/Client": { - "modified": "2020-11-16T08:56:05.543Z", + "Web/CSS/-moz-outline-radius-topright": { + "modified": "2019-08-07T07:41:29.133Z", "contributors": [ - "JNa0", - "nobe4" + "SphinxKnight", + "teoli", + "FredB", + "Fredchat" ] }, - "Web/API/Client/frameType": { - "modified": "2019-03-23T22:37:02.346Z", + "Web/CSS/-moz-user-focus": { + "modified": "2020-10-15T21:48:29.475Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Client/id": { - "modified": "2019-03-23T22:37:07.911Z", + "Web/CSS/-moz-user-input": { + "modified": "2020-10-15T21:18:06.870Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/Client/postMessage": { - "modified": "2019-03-23T22:37:01.942Z", + "Web/CSS/-webkit-border-before": { + "modified": "2020-10-15T21:48:29.989Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Client/url": { - "modified": "2019-03-23T22:37:03.996Z", + "Web/CSS/-webkit-box-reflect": { + "modified": "2020-10-15T21:48:31.768Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Clients": { - "modified": "2019-03-23T22:37:04.424Z", + "Web/CSS/-webkit-line-clamp": { + "modified": "2020-10-15T22:18:53.977Z", "contributors": [ - "nobe4" + "SphinxKnight" ] }, - "Web/API/Clients/claim": { - "modified": "2019-03-23T22:37:07.697Z", + "Web/CSS/-webkit-mask-attachment": { + "modified": "2020-10-15T21:48:27.080Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Clients/get": { - "modified": "2019-03-23T22:37:03.256Z", + "Web/CSS/-webkit-mask-box-image": { + "modified": "2020-10-15T21:33:47.333Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli", + "Sebastianz", + "mrstork", + "lbelavoir" ] }, - "Web/API/Clients/matchAll": { - "modified": "2019-03-18T21:15:46.468Z", + "Web/CSS/-webkit-mask-composite": { + "modified": "2020-10-15T21:48:30.437Z", "contributors": [ - "m-r-r", - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Clients/openWindow": { - "modified": "2019-03-23T22:37:03.615Z", + "Web/CSS/-webkit-mask-position-x": { + "modified": "2020-10-15T21:48:29.056Z", "contributors": [ - "nobe4" + "SphinxKnight", + "teoli" ] }, - "Web/API/Clipboard": { - "modified": "2020-10-15T22:17:56.225Z", + "Web/CSS/-webkit-mask-position-y": { + "modified": "2020-10-15T21:48:27.575Z", "contributors": [ - "Watilin" + "SphinxKnight", + "teoli" ] }, - "Web/API/Clipboard/write": { - "modified": "2020-10-15T22:21:53.300Z", + "Web/CSS/-webkit-mask-repeat-x": { + "modified": "2020-10-15T21:48:28.359Z", "contributors": [ - "pldespaigne", - "lp177" + "SphinxKnight" ] }, - "Web/API/Clipboard/writeText": { - "modified": "2020-10-15T22:17:57.078Z", + "Web/CSS/-webkit-mask-repeat-y": { + "modified": "2020-10-15T21:48:28.259Z", "contributors": [ - "Watilin" + "SphinxKnight" ] }, - "Web/API/CloseEvent": { - "modified": "2019-03-23T22:51:23.474Z", + "Web/CSS/-webkit-overflow-scrolling": { + "modified": "2020-10-15T21:33:11.491Z", "contributors": [ - "Hell_Carlito", - "Hyspirit" + "SphinxKnight", + "alhuno1" ] }, - "Web/API/Comment": { - "modified": "2020-11-25T16:12:58.810Z", + "Web/CSS/-webkit-print-color-adjust": { + "modified": "2020-10-15T21:28:10.335Z", "contributors": [ - "Wixonic", - "Jeremie", - "loella16", - "luccioman", - "Gibus", - "Hell_Carlito" + "SphinxKnight", + "CuteRabbit", + "louuis" ] }, - "Web/API/Comment/Comment": { - "modified": "2020-10-15T21:56:16.592Z", + "Web/CSS/-webkit-tap-highlight-color": { + "modified": "2019-04-26T02:53:32.938Z", "contributors": [ - "Jeremie", - "loella16", - "BEHOUBA" + "SphinxKnight", + "teoli" ] }, - "Web/API/CompositionEvent": { - "modified": "2020-10-15T21:37:10.055Z", + "Web/CSS/-webkit-text-fill-color": { + "modified": "2020-10-15T21:43:41.928Z", "contributors": [ - "fscholz", - "loella16", - "sousmangoosta" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Console": { - "modified": "2019-05-01T14:25:50.246Z", + "Web/CSS/-webkit-text-security": { + "modified": "2019-05-23T08:23:14.321Z", "contributors": [ - "jcalixte", - "loella16", - "Ostefanini", - "christophe.hurpeau", - "P45QU10U", - "fscholz" + "SphinxKnight" ] }, - "Web/API/Console/assert": { - "modified": "2020-10-15T21:37:07.545Z", + "Web/CSS/-webkit-text-stroke": { + "modified": "2020-11-09T04:48:47.938Z", "contributors": [ - "Fenn", - "loella16", - "christophe.hurpeau", - "frederikdussault", - "ElianWonhalf" + "sideshowbarker", + "codingdudecom", + "SphinxKnight" ] }, - "Web/API/Console/clear": { - "modified": "2019-03-23T22:18:57.653Z", + "Web/CSS/-webkit-text-stroke-color": { + "modified": "2020-10-15T21:48:27.834Z", "contributors": [ - "christophe.hurpeau", - "DavidLibeau" + "SphinxKnight" ] }, - "Web/API/Console/count": { - "modified": "2020-10-15T21:39:57.745Z", + "Web/CSS/-webkit-text-stroke-width": { + "modified": "2020-10-15T21:48:26.220Z", "contributors": [ - "loella16", - "christophe.hurpeau", - "normannMarit", - "Styus" + "SphinxKnight" ] }, - "Web/API/Console/countReset": { - "modified": "2020-10-15T22:22:03.008Z", + "Web/CSS/-webkit-touch-callout": { + "modified": "2020-10-15T21:37:55.730Z", "contributors": [ - "tbetous", - "quentin.lamamy" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/debug": { - "modified": "2020-10-15T22:21:32.530Z", + "Web/CSS/:-moz-broken": { + "modified": "2019-04-05T07:47:01.932Z", "contributors": [ - "thiag73" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Console/dir": { - "modified": "2020-10-15T21:43:00.216Z", + "Web/CSS/:-moz-drag-over": { + "modified": "2019-04-05T07:46:45.615Z", "contributors": [ - "xavierartot", - "loella16", - "sylvaindethier", - "Chevallm" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/dirxml": { - "modified": "2020-10-15T21:56:31.266Z", + "Web/CSS/:-moz-first-node": { + "modified": "2019-04-05T07:46:35.367Z", "contributors": [ - "loella16", - "BEHOUBA" + "SphinxKnight", + "teoli", + "FredB", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Console/error": { - "modified": "2020-10-15T21:37:29.101Z", + "Web/CSS/:-moz-focusring": { + "modified": "2020-10-15T21:48:30.571Z", "contributors": [ "SphinxKnight", - "loella16", - "christophe.hurpeau", - "unpeudetout", - "Goofy", - "JulienItard" + "teoli", + "claudepache" ] }, - "Web/API/Console/group": { - "modified": "2020-10-15T21:39:57.936Z", + "Web/CSS/:-moz-handler-blocked": { + "modified": "2019-04-05T07:44:27.221Z", "contributors": [ - "loella16", - "Styus" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/groupCollapsed": { - "modified": "2020-10-15T21:39:57.660Z", + "Web/CSS/:-moz-handler-crashed": { + "modified": "2019-04-05T07:44:15.559Z", "contributors": [ - "loella16", - "Styus" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/groupEnd": { - "modified": "2020-10-15T21:39:57.905Z", + "Web/CSS/:-moz-handler-disabled": { + "modified": "2019-04-05T07:44:05.413Z", "contributors": [ - "loella16", - "christophe.hurpeau", - "Styus" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/info": { - "modified": "2020-11-11T13:53:02.402Z", + "Web/CSS/:-moz-last-node": { + "modified": "2019-04-05T07:43:47.239Z", "contributors": [ - "Yukulele.", - "unpeudetout", - "JonGiamp", - "JulienItard" + "SphinxKnight", + "teoli", + "FredB", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Console/log": { - "modified": "2020-11-11T19:51:04.080Z", + "Web/CSS/:-moz-loading": { + "modified": "2019-04-05T07:43:32.819Z", "contributors": [ - "JNa0", - "Yukulele.", - "loella16", - "christophe.hurpeau", - "fscholz", - "jsx", - "benfarhat.elyes" + "SphinxKnight", + "teoli", + "J.DMB", + "louuis" ] }, - "Web/API/Console/profile": { - "modified": "2020-10-15T22:01:10.357Z", + "Web/CSS/:-moz-locale-dir(ltr)": { + "modified": "2019-04-05T07:42:37.438Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "boby_drack" ] }, - "Web/API/Console/profileEnd": { - "modified": "2020-10-15T22:01:12.608Z", + "Web/CSS/:-moz-locale-dir(rtl)": { + "modified": "2019-04-05T07:42:24.268Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Console/table": { - "modified": "2020-10-15T21:30:09.666Z", + "Web/CSS/:-moz-only-whitespace": { + "modified": "2020-10-15T21:15:44.286Z", "contributors": [ - "loella16", - "DCLAN", - "fscholz", - "tregagnon" + "SphinxKnight", + "louisgrasset", + "lp177", + "teoli", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/API/Console/time": { - "modified": "2020-10-15T21:26:08.561Z", + "Web/CSS/:-moz-submit-invalid": { + "modified": "2020-10-15T21:46:06.689Z", "contributors": [ - "loella16", - "mireero", - "fscholz", - "khalid32", - "fvelcker" + "SphinxKnight", + "teoli", + "xdelatour" ] }, - "Web/API/Console/timeEnd": { - "modified": "2020-10-15T21:28:27.222Z", + "Web/CSS/:-moz-suppressed": { + "modified": "2019-04-05T09:23:47.517Z", "contributors": [ - "loella16", - "fscholz", - "AshfaqHossain", + "SphinxKnight", + "teoli", "Fredchat", - "Automatik" + "louuis" ] }, - "Web/API/Console/timeLog": { - "modified": "2020-10-15T22:20:05.673Z", + "Web/CSS/:-moz-ui-valid": { + "modified": "2020-10-15T21:48:25.437Z", "contributors": [ - "ewen-lbh", - "SphinxKnight" + "SphinxKnight", + "teoli", + "Aaaaaaa" ] }, - "Web/API/Console/timeStamp": { - "modified": "2020-10-15T22:02:32.433Z", + "Web/CSS/:-moz-user-disabled": { + "modified": "2019-04-05T09:18:22.670Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "xdelatour" ] }, - "Web/API/Console/trace": { - "modified": "2020-10-15T21:37:28.957Z", + "Web/CSS/:-moz-window-inactive": { + "modified": "2020-10-15T21:48:27.167Z", "contributors": [ - "loella16", - "JonGiamp", - "JulienItard" + "SphinxKnight", + "teoli" ] }, - "Web/API/Console/warn": { - "modified": "2020-10-15T21:37:32.060Z", + "Web/CSS/::-moz-color-swatch": { + "modified": "2020-10-15T22:02:12.946Z", "contributors": [ - "loella16", - "unpeudetout", - "JulienItard" + "SphinxKnight", + "tonybengue" ] }, - "Web/API/Console_API": { - "modified": "2020-10-15T22:34:41.922Z", + "Web/CSS/::-moz-page": { + "modified": "2020-10-15T21:44:27.397Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "teoli", + "xdelatour" ] }, - "Web/API/Credential": { - "modified": "2020-10-15T22:15:42.154Z", + "Web/CSS/::-moz-page-sequence": { + "modified": "2020-10-15T21:48:23.764Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/Credential_Management_API": { - "modified": "2019-03-18T20:40:05.156Z", + "Web/CSS/::-moz-progress-bar": { + "modified": "2019-04-05T09:15:19.260Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli", + "Goofy", + "FredB", + "Delapouite", + "Zimmermann_Geoffrey" ] }, - "Web/API/CredentialsContainer": { - "modified": "2020-10-15T22:15:42.732Z", + "Web/CSS/::-moz-range-progress": { + "modified": "2020-10-15T21:48:21.065Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/CredentialsContainer/create": { - "modified": "2020-10-15T22:15:42.455Z", + "Web/CSS/::-moz-range-thumb": { + "modified": "2020-10-15T21:48:27.269Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/CredentialsContainer/get": { - "modified": "2020-10-15T22:15:43.383Z", + "Web/CSS/::-moz-range-track": { + "modified": "2020-10-15T21:48:19.960Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/CredentialsContainer/preventSilentAccess": { - "modified": "2020-10-15T22:15:43.293Z", + "Web/CSS/::-moz-scrolled-page-sequence": { + "modified": "2020-10-15T21:48:22.005Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/CredentialsContainer/store": { - "modified": "2020-10-15T22:15:43.204Z", + "Web/CSS/::-webkit-inner-spin-button": { + "modified": "2020-10-15T21:48:12.641Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli" ] }, - "Web/API/Crypto": { - "modified": "2019-06-12T16:42:03.729Z", + "Web/CSS/::-webkit-meter-bar": { + "modified": "2020-10-15T21:48:04.484Z", "contributors": [ - "Maamouch", - "foxstorm" + "SphinxKnight" ] }, - "Web/API/Crypto/subtle": { - "modified": "2020-06-25T05:07:25.362Z", + "Web/CSS/::-webkit-meter-even-less-good-value": { + "modified": "2020-10-15T21:48:04.434Z", "contributors": [ - "micky008", - "foxstorm" + "SphinxKnight" ] }, - "Web/API/CryptoKey": { - "modified": "2019-03-23T22:37:47.323Z", + "Web/CSS/::-webkit-meter-inner-element": { + "modified": "2020-10-15T21:48:12.603Z", "contributors": [ - "Porkepix", - "foxstorm" + "SphinxKnight" ] }, - "Web/API/CustomEvent": { - "modified": "2020-10-15T21:27:31.037Z", + "Web/CSS/::-webkit-meter-optimum-value": { + "modified": "2020-10-15T21:48:08.117Z", "contributors": [ - "Arilox", - "loella16", - "Hell_Carlito", - "J.DMB", - "jbenoit", - "Porkepix", - "Lionel_Peramo" + "SphinxKnight" ] }, - "Web/API/CustomEvent/detail": { - "modified": "2020-10-15T22:01:25.082Z", + "Web/CSS/::-webkit-meter-suboptimum-value": { + "modified": "2020-10-15T21:48:01.492Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/CustomEvent/initCustomEvent": { - "modified": "2020-10-15T22:01:25.135Z", + "Web/CSS/::-webkit-outer-spin-button": { + "modified": "2020-10-15T21:48:38.423Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli" ] }, - "Web/API/DOMError": { - "modified": "2020-10-15T21:21:42.567Z", + "Web/CSS/::-webkit-progress-bar": { + "modified": "2020-10-15T21:48:02.594Z", "contributors": [ - "loella16", - "slietar", - "teoli", - "jsx", - "tregagnon" + "SphinxKnight", + "teoli" ] }, - "Web/API/DOMException": { - "modified": "2019-03-18T21:43:29.207Z", + "Web/CSS/::-webkit-progress-inner-element": { + "modified": "2020-10-15T21:48:02.637Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMHighResTimeStamp": { - "modified": "2020-10-15T22:09:08.657Z", + "Web/CSS/::-webkit-progress-value": { + "modified": "2020-10-15T21:48:03.069Z", "contributors": [ - "BenMorel" + "SphinxKnight" ] }, - "Web/API/DOMImplementation": { - "modified": "2019-03-23T22:57:47.120Z", + "Web/CSS/::-webkit-scrollbar": { + "modified": "2020-10-15T21:48:02.536Z", "contributors": [ - "loella16", - "teoli" + "SphinxKnight" ] }, - "Web/API/DOMImplementation/createDocument": { - "modified": "2019-03-23T22:57:50.841Z", + "Web/CSS/::-webkit-search-cancel-button": { + "modified": "2020-10-15T21:48:01.643Z", "contributors": [ - "loella16", - "FranckCo" + "SphinxKnight" ] }, - "Web/API/DOMImplementation/createDocumentType": { - "modified": "2019-04-19T04:24:15.205Z", + "Web/CSS/::-webkit-search-results-button": { + "modified": "2020-10-15T21:48:08.586Z", "contributors": [ - "SphinxKnight", - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMImplementation/createHTMLDocument": { - "modified": "2019-03-23T22:52:22.386Z", + "Web/CSS/::-webkit-slider-runnable-track": { + "modified": "2020-10-15T21:48:01.943Z", "contributors": [ - "wbamberg", - "loella16", "SphinxKnight", - "tazzcoco" + "teoli" ] }, - "Web/API/DOMImplementation/hasFeature": { - "modified": "2019-03-18T21:41:55.984Z", + "Web/CSS/::-webkit-slider-thumb": { + "modified": "2020-10-15T21:48:01.738Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli" ] }, - "Web/API/DOMLocator": { - "modified": "2019-03-18T21:41:56.748Z", + "Web/CSS/::after": { + "modified": "2020-10-15T21:08:32.107Z", "contributors": [ - "loella16" + "AbdelElMansari", + "SphinxKnight", + "alegout", + "NemoNobobyPersonne", + "Ryanfarrah25", + "P45QU10U", + "tregagnon", + "teoli", + "wakka27", + "FredB", + "Delapouite", + "pixelastic", + "BenoitL", + "Nathymig", + "Mgjbot", + "Elethiomel", + "Fredchat" ] }, - "Web/API/DOMObject": { - "modified": "2019-03-18T21:41:56.899Z", + "Web/CSS/::backdrop": { + "modified": "2020-10-15T21:45:46.376Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMParser": { - "modified": "2019-03-24T00:00:31.565Z", + "Web/CSS/::before": { + "modified": "2020-10-15T21:08:27.713Z", "contributors": [ - "loella16", - "fscholz", - "PWeilbacher", - "Yolek", + "ylerjen", + "SphinxKnight", + "wakka27", + "LaurentBarbareau", + "teoli", + "cloughy", + "lespacedunmatin", + "Fredchat", + "ferncoder", + "FredB", + "tregagnon", + "BenoitL", + "Nathymig", "Mgjbot", - "Chbok", - "VincentN" - ] - }, - "Web/API/DOMPoint": { - "modified": "2019-03-18T21:41:56.595Z", - "contributors": [ - "loella16" + "Elethiomel" ] }, - "Web/API/DOMPoint/DOMPoint": { - "modified": "2019-03-18T21:41:53.479Z", + "Web/CSS/::cue": { + "modified": "2020-10-15T21:55:21.153Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMPointReadOnly": { - "modified": "2019-03-18T21:41:46.420Z", + "Web/CSS/::cue-region": { + "modified": "2020-10-15T22:24:04.146Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMPointReadOnly/w": { - "modified": "2019-03-18T21:41:53.283Z", + "Web/CSS/::first-letter": { + "modified": "2020-10-15T21:07:23.625Z", "contributors": [ - "loella16" + "SphinxKnight", + "PhilippeV", + "yannicka", + "tregagnon", + "teoli", + "louuis", + "FredB" ] }, - "Web/API/DOMPointReadOnly/x": { - "modified": "2019-03-18T21:41:25.837Z", + "Web/CSS/::first-line": { + "modified": "2020-10-15T21:20:05.618Z", "contributors": [ - "loella16" + "SphinxKnight", + "Yann Dìnendal", + "tregagnon", + "teoli", + "louuis", + "wakka27", + "FredB" ] }, - "Web/API/DOMPointReadOnly/y": { - "modified": "2019-03-18T21:41:24.854Z", + "Web/CSS/::grammar-error": { + "modified": "2020-10-15T21:43:46.302Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177", + "xdelatour" ] }, - "Web/API/DOMPointReadOnly/z": { - "modified": "2019-03-18T21:41:33.692Z", + "Web/CSS/::marker": { + "modified": "2020-10-15T21:45:48.780Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177" ] }, - "Web/API/DOMQuad": { - "modified": "2019-03-18T21:41:24.469Z", + "Web/CSS/::part": { + "modified": "2020-10-15T22:20:01.491Z", "contributors": [ - "loella16" + "SphinxKnight", + "verdy_p" ] }, - "Web/API/DOMRect": { - "modified": "2020-10-15T22:01:35.250Z", + "Web/CSS/::placeholder": { + "modified": "2020-10-15T21:45:47.586Z", "contributors": [ "SphinxKnight", - "loella16" + "lp177" ] }, - "Web/API/DOMRect/DOMRect": { - "modified": "2019-03-18T21:41:21.109Z", + "Web/CSS/::selection": { + "modified": "2020-10-15T21:03:37.745Z", "contributors": [ - "loella16" + "SphinxKnight", + "PhilippeV", + "Matdonell", + "BenoitEsnard", + "tregagnon", + "teoli", + "louuis", + "FredB" ] }, - "Web/API/DOMRectReadOnly": { - "modified": "2020-10-15T22:01:33.628Z", + "Web/CSS/::slotted": { + "modified": "2020-10-15T22:01:37.195Z", "contributors": [ - "Voulto", + "samsad35", "SphinxKnight", - "jpmedley" + "tonybengue" ] }, - "Web/API/DOMRectReadOnly/DOMRectReadOnly": { - "modified": "2019-03-18T21:41:33.048Z", + "Web/CSS/::spelling-error": { + "modified": "2020-10-15T21:43:45.997Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/DOMRectReadOnly/bottom": { - "modified": "2019-03-18T21:41:33.238Z", + "Web/CSS/:active": { + "modified": "2020-10-15T21:08:24.445Z", "contributors": [ - "loella16" + "SphinxKnight", + "PhilippeV", + "gmetais", + "tregagnon", + "adevoufera", + "teoli", + "louuis", + "FredB", + "Delapouite", + "ThePrisoner" ] }, - "Web/API/DOMRectReadOnly/height": { - "modified": "2019-03-18T21:41:36.495Z", + "Web/CSS/:any-link": { + "modified": "2020-10-15T21:48:00.408Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177" ] }, - "Web/API/DOMRectReadOnly/left": { - "modified": "2019-03-18T21:41:30.332Z", + "Web/CSS/:blank": { + "modified": "2020-10-15T22:12:33.251Z", "contributors": [ - "loella16" + "AbdelElMansari", + "SphinxKnight" ] }, - "Web/API/DOMRectReadOnly/right": { - "modified": "2019-03-18T21:41:25.443Z", + "Web/CSS/:checked": { + "modified": "2020-10-15T21:10:25.542Z", "contributors": [ - "loella16" + "SphinxKnight", + "FredB", + "tregagnon", + "teoli", + "ThePrisoner" ] }, - "Web/API/DOMRectReadOnly/top": { - "modified": "2019-03-18T21:41:25.257Z", + "Web/CSS/:default": { + "modified": "2020-10-15T21:15:31.751Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "tregagnon", + "FredB", + "Mgjbot", + "BenoitL" ] }, - "Web/API/DOMRectReadOnly/width": { - "modified": "2019-03-18T21:41:15.373Z", + "Web/CSS/:defined": { + "modified": "2020-10-15T22:01:14.016Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMRectReadOnly/x": { - "modified": "2019-03-18T21:41:26.564Z", + "Web/CSS/:dir": { + "modified": "2020-10-15T21:20:01.114Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177", + "tregagnon", + "teoli", + "FredB" ] }, - "Web/API/DOMRectReadOnly/y": { - "modified": "2019-03-18T21:41:25.051Z", + "Web/CSS/:disabled": { + "modified": "2020-10-15T21:08:18.977Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB" ] }, - "Web/API/DOMString": { - "modified": "2019-03-23T23:30:27.295Z", + "Web/CSS/:empty": { + "modified": "2020-10-15T21:10:25.873Z", "contributors": [ - "loella16", - "Puxarnal", + "SphinxKnight", + "PhilippeV", + "tregagnon", + "teoli", "FredB", - "tregagnon" + "ThePrisoner", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/API/DOMString/Binary": { - "modified": "2019-03-18T21:41:36.649Z", + "Web/CSS/:enabled": { + "modified": "2020-10-15T21:08:16.083Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB" ] }, - "Web/API/DOMStringList": { - "modified": "2019-03-18T21:41:20.124Z", + "Web/CSS/:first": { + "modified": "2020-10-15T21:08:24.606Z", "contributors": [ - "loella16" + "sizvix", + "cestoliv", + "SphinxKnight", + "edspeedy", + "teoli", + "tregagnon", + "FredB" ] }, - "Web/API/DOMTimeStamp": { - "modified": "2019-03-23T23:29:44.989Z", + "Web/CSS/:first-child": { + "modified": "2020-10-15T21:10:31.316Z", "contributors": [ - "loella16", - "FredB" + "SphinxKnight", + "teoli", + "dohzya", + "tregagnon", + "FredB", + "ThePrisoner", + "Fredchat" ] }, - "Web/API/DOMTokenList": { - "modified": "2020-10-15T21:34:05.793Z", + "Web/CSS/:first-of-type": { + "modified": "2020-10-15T21:10:28.574Z", "contributors": [ - "loella16", "SphinxKnight", - "Hell_Carlito", - "P45QU10U" + "cdoublev", + "tregagnon", + "enogael", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/DOMTokenList/add": { - "modified": "2020-10-15T22:01:35.712Z", + "Web/CSS/:focus": { + "modified": "2020-10-15T21:10:39.154Z", "contributors": [ - "loella16" + "Steph", + "SphinxKnight", + "tregagnon", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/DOMTokenList/contains": { - "modified": "2020-10-15T22:01:38.901Z", + "Web/CSS/:focus-visible": { + "modified": "2020-10-15T22:06:41.459Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMTokenList/entries": { - "modified": "2020-10-15T22:01:37.953Z", + "Web/CSS/:focus-within": { + "modified": "2020-10-15T21:49:33.879Z", "contributors": [ - "loella16" + "SphinxKnight", + "PhilippeV" ] }, - "Web/API/DOMTokenList/forEach": { - "modified": "2020-10-15T22:01:35.057Z", + "Web/CSS/:fullscreen": { + "modified": "2020-10-15T21:26:16.468Z", "contributors": [ - "loella16" + "ChristopheBoucaut", + "teluric", + "SphinxKnight", + "LaurentBarbareau", + "Porkepix", + "Medhy_35", + "FredB", + "teoli", + "tregagnon" ] }, - "Web/API/DOMTokenList/item": { - "modified": "2020-10-15T22:01:44.192Z", + "Web/CSS/:has": { + "modified": "2020-10-15T21:45:03.002Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177", + "aduh95" ] }, - "Web/API/DOMTokenList/keys": { - "modified": "2020-10-15T22:01:47.459Z", + "Web/CSS/:host": { + "modified": "2020-10-15T22:02:19.051Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMTokenList/length": { - "modified": "2020-10-15T22:01:47.586Z", + "Web/CSS/:host()": { + "modified": "2020-10-15T22:02:15.628Z", "contributors": [ - "loella16" + "SphinxKnight", + "tonybengue" ] }, - "Web/API/DOMTokenList/remove": { - "modified": "2020-10-15T22:01:48.383Z", + "Web/CSS/:host-context()": { + "modified": "2020-10-15T22:02:13.459Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177" ] }, - "Web/API/DOMTokenList/replace": { - "modified": "2020-10-15T22:01:47.482Z", + "Web/CSS/:hover": { + "modified": "2020-10-15T21:10:36.788Z", "contributors": [ - "loella16" + "SphinxKnight", + "PhilippeV", + "FredB", + "teoli", + "tregagnon", + "ThePrisoner", + "tcit" ] }, - "Web/API/DOMTokenList/supports": { - "modified": "2020-10-15T22:01:47.863Z", + "Web/CSS/:in-range": { + "modified": "2020-10-15T21:46:05.793Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DOMTokenList/toggle": { - "modified": "2020-10-15T22:01:47.325Z", + "Web/CSS/:indeterminate": { + "modified": "2020-10-15T21:08:18.181Z", "contributors": [ - "loella16" + "artentica", + "SphinxKnight", + "jbuiquan", + "edspeedy", + "GeoffreyC.", + "Goofy", + "tregagnon", + "louuis", + "teoli", + "FredB" ] }, - "Web/API/DOMTokenList/value": { - "modified": "2020-10-15T22:01:52.216Z", + "Web/CSS/:invalid": { + "modified": "2020-10-15T21:07:22.814Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB" ] }, - "Web/API/DOMTokenList/values": { - "modified": "2020-10-15T22:01:52.240Z", + "Web/CSS/:is": { + "modified": "2020-10-15T22:02:43.628Z", "contributors": [ - "loella16" + "cdoublev", + "SphinxKnight", + "tonybengue", + "Dralyab" ] }, - "Web/API/DOMUserData": { - "modified": "2019-03-18T21:41:11.030Z", + "Web/CSS/:lang": { + "modified": "2020-10-15T21:08:15.878Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon", + "teoli", + "louuis", + "FredB", + "ThePrisoner" ] }, - "Web/API/DataTransfer": { - "modified": "2019-04-20T00:20:42.022Z", + "Web/CSS/:last-child": { + "modified": "2020-10-15T21:10:26.996Z", "contributors": [ - "wbamberg", + "SphinxKnight", + "tregagnon", + "Fredchat", + "louuis", "teoli", - "patricepalau", - "Jeremie", - "fscholz", - "virg", - "mekal" + "FredB", + "ThePrisoner", + "Vivelefrat" ] }, - "Web/API/DataTransfer/clearData": { - "modified": "2019-03-23T22:32:20.041Z", + "Web/CSS/:last-of-type": { + "modified": "2020-10-15T21:10:28.351Z", "contributors": [ - "NicolasGoudry" + "06Games", + "SphinxKnight", + "tregagnon", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/DataTransfer/files": { - "modified": "2019-03-23T22:10:26.337Z", + "Web/CSS/:left": { + "modified": "2020-10-15T21:08:38.277Z", "contributors": [ - "arthurlacoste", - "greg95000" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB", + "Manu1400" ] }, - "Web/API/DedicatedWorkerGlobalScope": { - "modified": "2020-10-15T21:33:24.664Z", + "Web/CSS/:link": { + "modified": "2020-10-15T21:10:29.359Z", "contributors": [ - "Arzak656", - "blackfox", - "jean-pierre.gay" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB", + "Delapouite", + "ThePrisoner" ] }, - "Web/API/DedicatedWorkerGlobalScope/close": { - "modified": "2020-10-15T22:01:49.897Z", + "Web/CSS/:not": { + "modified": "2020-10-15T21:10:32.618Z", "contributors": [ - "Arzak656", - "loella16" + "SphinxKnight", + "efd", + "edspeedy", + "venotp", + "dackmin", + "tregagnon", + "teoli", + "tzilliox", + "FredB", + "ThePrisoner" ] }, - "Web/API/DedicatedWorkerGlobalScope/name": { - "modified": "2020-10-15T22:01:49.649Z", + "Web/CSS/:nth-child": { + "modified": "2020-10-15T21:10:27.568Z", "contributors": [ - "loella16" + "SphinxKnight", + "Jeremie", + "clementpolito", + "Dexter_Deter", + "teoli", + "tregagnon", + "FredB", + "DavidWalsh", + "ThePrisoner" ] }, - "Web/API/DeviceMotionEvent": { - "modified": "2020-09-07T05:26:58.789Z", + "Web/CSS/:nth-last-child": { + "modified": "2020-10-15T21:10:37.297Z", "contributors": [ - "Voulto", - "jpmedley" + "SphinxKnight", + "loicbourg", + "teoli", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/API/DeviceMotionEvent/DeviceMotionEvent": { - "modified": "2019-03-18T21:41:13.672Z", + "Web/CSS/:nth-last-of-type": { + "modified": "2020-10-15T21:10:39.125Z", "contributors": [ - "loella16" + "SphinxKnight", + "FredB", + "teoli", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/DeviceMotionEvent/accelerationIncludingGravity": { - "modified": "2019-03-18T21:41:01.615Z", + "Web/CSS/:nth-of-type": { + "modified": "2020-10-15T21:10:26.292Z", "contributors": [ - "loella16" + "cdoublev", + "SphinxKnight", + "Groutch", + "yatoogamii", + "teoli", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/API/DeviceMotionEvent/interval": { - "modified": "2020-10-15T22:01:49.895Z", + "Web/CSS/:only-child": { + "modified": "2020-10-15T21:07:18.968Z", "contributors": [ "SphinxKnight", - "loella16" + "tregagnon", + "Fredchat", + "louuis", + "teoli", + "FredB" ] }, - "Web/API/DeviceMotionEvent/rotationRate": { - "modified": "2020-10-15T22:01:52.234Z", + "Web/CSS/:only-of-type": { + "modified": "2020-10-15T21:10:36.883Z", "contributors": [ "SphinxKnight", - "loella16" + "tregagnon", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/DeviceOrientationEvent": { - "modified": "2019-03-23T23:28:16.009Z", + "Web/CSS/:optional": { + "modified": "2020-10-15T21:07:19.786Z", "contributors": [ - "khalid32", - "Goofy", - "FredB", - "darnuria" + "SphinxKnight", + "tregagnon", + "teoli", + "FredB" ] }, - "Web/API/DeviceOrientationEvent.absolute": { - "modified": "2019-03-23T23:28:20.161Z", + "Web/CSS/:out-of-range": { + "modified": "2020-10-15T21:33:47.653Z", "contributors": [ - "Hellscream360", - "AshfaqHossain", - "darnuria" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/DeviceRotationRate": { - "modified": "2019-03-18T21:41:14.051Z", + "Web/CSS/:placeholder-shown": { + "modified": "2020-10-15T21:49:18.000Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177" ] }, - "Web/API/DeviceRotationRate/alpha": { - "modified": "2019-03-18T21:40:56.610Z", + "Web/CSS/:read-only": { + "modified": "2020-10-15T21:41:39.400Z", "contributors": [ - "loella16" + "SphinxKnight", + "Norihiori", + "NathanB" ] }, - "Web/API/DeviceRotationRate/beta": { - "modified": "2019-03-18T21:41:13.475Z", + "Web/CSS/:read-write": { + "modified": "2020-10-15T21:19:38.171Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "tregagnon", + "FredB" ] }, - "Web/API/DeviceRotationRate/gamma": { - "modified": "2019-03-18T21:41:11.230Z", + "Web/CSS/:required": { + "modified": "2020-10-15T21:08:14.776Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "tregagnon", + "FredB" ] }, - "Web/API/Document": { - "modified": "2019-03-24T00:01:48.529Z", + "Web/CSS/:right": { + "modified": "2020-10-15T21:08:33.609Z", "contributors": [ - "edspeedy", - "loella16", - "frederikdussault", - "vava", - "thbil", + "SphinxKnight", + "FredB", "teoli", - "khalid32", - "Delapouite", - "ethertank", "tregagnon", - "Crash", - "BenoitL", - "Mgjbot", - "Takenbot", - "Gorrk" + "Manu1400" ] }, - "Web/API/Document/DOMContentLoaded_event": { - "modified": "2020-10-15T22:29:03.455Z", + "Web/CSS/:root": { + "modified": "2020-10-15T21:10:27.339Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "teoli", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/API/Document/Document": { - "modified": "2019-03-23T22:05:00.212Z", + "Web/CSS/:scope": { + "modified": "2020-10-15T21:28:07.626Z", "contributors": [ - "loella16", - "cabalpit" + "Maxi_Mega", + "SphinxKnight", + "b1nj", + "J.DMB", + "teoli", + "louuis" ] }, - "Web/API/Document/Document.anchors": { - "modified": "2019-09-26T06:32:48.667Z", + "Web/CSS/:target": { + "modified": "2020-10-15T21:10:33.875Z", "contributors": [ - "Le-Bookman", - "wbamberg", - "ThibautBremand", - "symsym" + "SphinxKnight", + "teoli", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/API/Document/URL": { - "modified": "2019-03-23T22:50:43.925Z", + "Web/CSS/:valid": { + "modified": "2020-10-15T21:18:37.134Z", "contributors": [ - "ThibautBremand" + "SphinxKnight", + "viki53", + "enogael", + "FredB", + "teoli", + "tregagnon" ] }, - "Web/API/Document/activeElement": { - "modified": "2019-03-23T23:12:53.004Z", + "Web/CSS/:visited": { + "modified": "2020-10-15T21:10:37.542Z", "contributors": [ - "fscholz", + "yannicka", + "SphinxKnight", + "flexbox", + "FredB", "teoli", - "AshfaqHossain", - "Mgjbot", - "BenoitL" + "tregagnon", + "ThePrisoner" ] }, - "Web/API/Document/adoptNode": { - "modified": "2019-03-18T21:40:45.731Z", + "Web/CSS/:where": { + "modified": "2020-10-15T22:12:34.192Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/alinkColor": { - "modified": "2020-10-15T22:21:17.154Z", + "Web/CSS/@charset": { + "modified": "2020-10-15T21:10:24.532Z", "contributors": [ - "CocoMC98000" + "SphinxKnight", + "edspeedy", + "Guillaume-Heras", + "fscholz", + "FredB", + "teoli", + "jdvauguet", + "ThePrisoner" ] }, - "Web/API/Document/applets": { - "modified": "2019-03-23T23:10:50.034Z", + "Web/CSS/@counter-style": { + "modified": "2020-10-15T21:46:29.639Z", "contributors": [ - "fscholz", - "jsx", - "fmasy" + "VictorLequin", + "SphinxKnight" ] }, - "Web/API/Document/bgColor": { - "modified": "2020-10-15T21:48:00.497Z", + "Web/CSS/@counter-style/additive-symbols": { + "modified": "2020-10-15T21:46:29.610Z", "contributors": [ - "SphinxKnight", - "Dwaaren" + "SphinxKnight" ] }, - "Web/API/Document/body": { - "modified": "2019-03-23T23:33:33.035Z", + "Web/CSS/@counter-style/fallback": { + "modified": "2020-10-15T21:46:38.184Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "tregagnon", - "mathbr" + "SphinxKnight" ] }, - "Web/API/Document/caretRangeFromPoint": { - "modified": "2019-03-18T21:40:33.489Z", + "Web/CSS/@counter-style/negative": { + "modified": "2020-10-15T21:46:39.589Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/characterSet": { - "modified": "2020-10-15T21:57:57.499Z", + "Web/CSS/@counter-style/pad": { + "modified": "2020-10-15T21:46:39.962Z", "contributors": [ - "SphinxKnight", - "cabalpit" + "SphinxKnight" ] }, - "Web/API/Document/clear": { - "modified": "2020-10-15T22:07:57.497Z", + "Web/CSS/@counter-style/prefix": { + "modified": "2020-10-15T21:46:43.969Z", "contributors": [ - "Tokami" + "SphinxKnight" ] }, - "Web/API/Document/compatMode": { - "modified": "2019-03-18T20:59:10.281Z", + "Web/CSS/@counter-style/range": { + "modified": "2020-10-15T21:46:41.181Z", "contributors": [ - "SphinxKnight", - "loella16", - "fscholz", - "alexandrehebert" + "SphinxKnight" ] }, - "Web/API/Document/contentType": { - "modified": "2019-03-18T21:40:51.962Z", + "Web/CSS/@counter-style/speak-as": { + "modified": "2020-10-15T21:46:42.317Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createAttribute": { - "modified": "2020-10-15T21:14:37.249Z", + "Web/CSS/@counter-style/suffix": { + "modified": "2020-10-15T21:46:49.763Z", "contributors": [ - "SphinxKnight", - "loella16", - "fscholz", - "teoli", - "xuancanh", - "Sébastien C.", - "Mgjbot", - "Takenbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/createCDATASection": { - "modified": "2019-03-18T21:40:24.223Z", + "Web/CSS/@counter-style/symbols": { + "modified": "2020-10-15T21:46:43.930Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createComment": { - "modified": "2019-03-23T23:24:36.077Z", + "Web/CSS/@counter-style/system": { + "modified": "2020-10-15T21:46:44.513Z", "contributors": [ - "loella16", - "fscholz", - "jsx", - "sisyphe" + "SphinxKnight", + "personnel" ] }, - "Web/API/Document/createDocumentFragment": { - "modified": "2019-03-23T23:32:44.624Z", + "Web/CSS/@document": { + "modified": "2020-10-15T21:28:07.583Z", "contributors": [ - "loella16", - "JNa0", - "P45QU10U", + "SphinxKnight", + "NemoNobobyPersonne", "fscholz", - "jsx", - "AshfaqHossain", - "teoli", - "jdvauguet" + "FredB", + "teoli" ] }, - "Web/API/Document/createElement": { - "modified": "2020-10-15T21:15:29.511Z", + "Web/CSS/@font-face": { + "modified": "2020-10-15T21:14:44.961Z", "contributors": [ - "Watilin", - "loella16", - "VictorLequin", - "Ealhad", - "Misty418", + "SphinxKnight", + "mh_nichts", "fscholz", + "mleduque", + "Qu3tzalify", "teoli", - "jsx", - "Mgjbot", + "PifyZ", + "FredB", + "naar", + "Jürgen Jeka", "BenoitL", - "Takenbot" + "Fredchat", + "Valacar", + "Huchezal", + "SebMouren" ] }, - "Web/API/Document/createElementNS": { - "modified": "2019-03-23T23:06:18.565Z", + "Web/CSS/@font-face/font-display": { + "modified": "2020-10-15T21:48:25.337Z", "contributors": [ - "loella16", - "lotfire24", - "fscholz", - "Twidi" + "SphinxKnight", + "davidwerbrouck", + "tpillard", + "frlinw" ] }, - "Web/API/Document/createEntityReference": { - "modified": "2019-03-18T21:40:14.903Z", + "Web/CSS/@font-face/font-family": { + "modified": "2020-10-15T21:46:27.023Z", "contributors": [ - "loella16" + "SphinxKnight", + "personnel", + "Gibus" ] }, - "Web/API/Document/createEvent": { - "modified": "2019-03-23T22:44:18.504Z", + "Web/CSS/@font-face/font-stretch": { + "modified": "2020-10-15T22:24:06.161Z", "contributors": [ - "loella16", - "jmh" + "SphinxKnight" ] }, - "Web/API/Document/createExpression": { - "modified": "2019-03-18T21:40:18.366Z", + "Web/CSS/@font-face/font-style": { + "modified": "2020-10-15T21:46:53.998Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createNSResolver": { - "modified": "2019-03-18T21:40:18.204Z", + "Web/CSS/@font-face/font-variation-settings": { + "modified": "2020-10-15T22:02:45.623Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createNodeIterator": { - "modified": "2019-03-18T21:40:21.964Z", + "Web/CSS/@font-face/font-weight": { + "modified": "2020-10-15T22:24:04.613Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createProcessingInstruction": { - "modified": "2019-03-18T21:40:28.676Z", + "Web/CSS/@font-face/src": { + "modified": "2020-10-15T21:49:16.995Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/createRange": { - "modified": "2019-03-23T23:21:36.391Z", + "Web/CSS/@font-face/unicode-range": { + "modified": "2020-10-15T21:46:51.127Z", "contributors": [ - "loella16", - "fscholz", - "Jeremie", - "fvelcker" + "SphinxKnight" ] }, - "Web/API/Document/createTextNode": { - "modified": "2019-03-23T23:53:24.787Z", + "Web/CSS/@font-feature-values": { + "modified": "2020-10-15T21:46:50.242Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "Takenbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/createTreeWalker": { - "modified": "2019-03-18T21:40:20.459Z", + "Web/CSS/@import": { + "modified": "2020-10-15T21:18:11.323Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "VincentN", + "Fredchat" ] }, - "Web/API/Document/currentScript": { - "modified": "2019-03-23T22:04:56.348Z", + "Web/CSS/@keyframes": { + "modified": "2020-11-05T12:26:09.223Z", "contributors": [ - "wbamberg", - "loella16", - "kantoche", - "cabalpit" + "julienw", + "SphinxKnight", + "lhapaipai", + "Matschik", + "ghivert", + "fscholz", + "Sheppy", + "teoli", + "LaChouette" ] }, - "Web/API/Document/defaultView": { - "modified": "2019-03-23T23:28:33.455Z", + "Web/CSS/@media": { + "modified": "2020-10-15T21:18:17.901Z", "contributors": [ + "SphinxKnight", + "ferdi_", + "edspeedy", "fscholz", - "Delapouite" + "Chealer", + "teoli", + "wakka27", + "FredB", + "VincentN", + "ethertank", + "Fredchat" ] }, - "Web/API/Document/designMode": { - "modified": "2019-03-23T22:47:19.586Z", + "Web/CSS/@media/-moz-device-pixel-ratio": { + "modified": "2020-10-15T21:58:09.229Z", "contributors": [ - "dark_nemo" + "SphinxKnight" ] }, - "Web/API/Document/dir": { - "modified": "2020-10-15T22:26:01.944Z", + "Web/CSS/@media/-webkit-animation": { + "modified": "2020-10-15T21:48:23.920Z", "contributors": [ "SphinxKnight", - "hervems" + "teoli" ] }, - "Web/API/Document/doctype": { - "modified": "2019-03-18T21:40:14.743Z", + "Web/CSS/@media/-webkit-device-pixel-ratio": { + "modified": "2020-10-15T21:48:22.736Z", "contributors": [ - "loella16" + "SphinxKnight" + ] + }, + "Web/CSS/@media/-webkit-transform-2d": { + "modified": "2020-10-15T21:48:23.969Z", + "contributors": [ + "SphinxKnight", + "teoli" ] }, - "Web/API/Document/documentElement": { - "modified": "2020-10-15T21:16:26.147Z", + "Web/CSS/@media/-webkit-transform-3d": { + "modified": "2020-10-15T21:48:18.449Z", "contributors": [ - "abvll", - "loella16", - "tzilliox", - "fscholz", - "teoli", - "AshfaqHossain", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/documentURI": { - "modified": "2020-10-15T22:02:10.846Z", + "Web/CSS/@media/-webkit-transition": { + "modified": "2020-10-15T21:48:23.562Z", "contributors": [ - "abvll", - "loella16" + "SphinxKnight", + "teoli" ] }, - "Web/API/Document/documentURIObject": { - "modified": "2019-03-23T23:50:30.665Z", + "Web/CSS/@media/any-hover": { + "modified": "2020-10-15T21:47:18.453Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "jsx", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/domain": { - "modified": "2019-03-18T21:16:45.176Z", + "Web/CSS/@media/any-pointer": { + "modified": "2020-10-15T21:47:16.191Z", "contributors": [ - "NemoNobobyPersonne", - "marcdahan", - "remi34" + "SphinxKnight" ] }, - "Web/API/Document/drag_event": { - "modified": "2019-04-30T14:17:50.518Z", + "Web/CSS/@media/aspect-ratio": { + "modified": "2020-10-15T21:47:21.069Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Document/dragend_event": { - "modified": "2019-04-30T14:03:40.078Z", + "Web/CSS/@media/aural": { + "modified": "2019-04-06T12:01:18.819Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/dragenter_event": { - "modified": "2019-04-30T14:21:07.497Z", + "Web/CSS/@media/color": { + "modified": "2020-10-15T21:43:28.940Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/dragleave_event": { - "modified": "2019-04-30T14:02:56.864Z", + "Web/CSS/@media/color-gamut": { + "modified": "2020-10-15T21:55:30.101Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Document/dragover_event": { - "modified": "2019-04-30T14:24:34.192Z", + "Web/CSS/@media/color-index": { + "modified": "2020-10-15T21:44:30.610Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/dragstart_event": { - "modified": "2019-04-30T14:03:33.933Z", + "Web/CSS/@media/device-aspect-ratio": { + "modified": "2020-10-15T21:47:20.425Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Document/drop_event": { - "modified": "2019-04-30T14:21:50.701Z", + "Web/CSS/@media/device-height": { + "modified": "2020-10-15T21:47:23.040Z", "contributors": [ - "wbamberg", - "fscholz", - "areltfc", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Document/elementFromPoint": { - "modified": "2019-03-23T23:50:28.633Z", + "Web/CSS/@media/device-width": { + "modified": "2020-10-15T21:47:23.467Z", "contributors": [ - "fscholz", - "teoli", - "jsx", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/enableStyleSheetsForSet": { - "modified": "2019-03-18T21:40:08.810Z", + "Web/CSS/@media/display-mode": { + "modified": "2020-10-15T21:47:18.852Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/evaluate": { - "modified": "2020-10-15T21:14:48.465Z", + "Web/CSS/@media/forced-colors": { + "modified": "2020-10-15T22:20:18.237Z", "contributors": [ - "SphinxKnight", - "loella16", - "fscholz", - "teoli", - "tregagnon", - "Julien.stuby" + "SphinxKnight" ] }, - "Web/API/Document/execCommand": { - "modified": "2019-03-23T23:34:20.957Z", + "Web/CSS/@media/grid": { + "modified": "2020-10-15T21:47:19.575Z", "contributors": [ - "thibault", - "loella16", - "sylvainpolletvillard", - "Fenchister", - "DominiqueDevinci", - "ebear", - "fscholz", - "teoli", - "bfn" + "SphinxKnight" ] }, - "Web/API/Document/exitFullscreen": { - "modified": "2019-03-18T21:40:09.294Z", + "Web/CSS/@media/height": { + "modified": "2020-10-15T21:47:19.978Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/exitPointerLock": { - "modified": "2019-03-23T22:43:28.410Z", + "Web/CSS/@media/hover": { + "modified": "2020-10-15T21:47:18.517Z", "contributors": [ - "SphinxKnight", - "kipcode66" + "SphinxKnight" ] }, - "Web/API/Document/featurePolicy": { - "modified": "2020-11-02T18:36:11.259Z", + "Web/CSS/@media/inverted-colors": { + "modified": "2020-10-15T21:47:20.806Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/Document/forms": { - "modified": "2019-03-23T22:47:49.253Z", + "Web/CSS/@media/monochrome": { + "modified": "2020-10-15T21:47:20.532Z", "contributors": [ - "loella16", - "Watilin" + "SphinxKnight" ] }, - "Web/API/Document/fullscreenchange_event": { - "modified": "2019-07-18T10:46:51.166Z", + "Web/CSS/@media/orientation": { + "modified": "2020-10-15T21:43:29.519Z", "contributors": [ - "AlaricCalmette", - "irenesmith", - "fscholz", - "Kalwyn" + "SphinxKnight", + "damiencaselli", + "xdelatour" ] }, - "Web/API/Document/fullscreenerror_event": { - "modified": "2019-03-23T21:59:49.455Z", + "Web/CSS/@media/overflow-block": { + "modified": "2020-10-15T21:47:24.131Z", "contributors": [ - "irenesmith", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Document/getBoxObjectFor": { - "modified": "2019-03-18T21:39:17.387Z", + "Web/CSS/@media/overflow-inline": { + "modified": "2020-10-15T21:47:19.850Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/getElementById": { - "modified": "2020-10-15T21:13:25.383Z", + "Web/CSS/@media/pointer": { + "modified": "2020-10-15T21:47:18.966Z", "contributors": [ - "tristantheb", - "loella16", - "db0sch", - "genstor", - "fscholz", - "teoli", - "khalid32", - "BenoitL", - "Mgjbot", - "Takenbot" + "SphinxKnight" ] }, - "Web/API/Document/getElementsByClassName": { - "modified": "2020-10-15T21:17:56.718Z", + "Web/CSS/@media/prefers-color-scheme": { + "modified": "2020-10-15T22:11:37.399Z", "contributors": [ - "abvll", - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "bopol", + "AbdelElMansari", + "SphinxKnight" ] }, - "Web/API/Document/getElementsByName": { - "modified": "2019-03-23T23:43:51.351Z", + "Web/CSS/@media/prefers-contrast": { + "modified": "2020-10-15T22:20:20.152Z", "contributors": [ - "loella16", - "edspeedy", - "fscholz", - "teoli", - "jsx", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/getElementsByTagName": { - "modified": "2019-03-23T23:50:32.919Z", + "Web/CSS/@media/prefers-reduced-motion": { + "modified": "2020-10-15T22:10:02.862Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "arunpandianp", - "n_g", - "tregagnon", - "fkhannouf", - "Mgjbot", - "BenoitL" + "Neilyroth", + "SphinxKnight" ] }, - "Web/API/Document/getElementsByTagNameNS": { - "modified": "2019-03-18T21:39:18.440Z", + "Web/CSS/@media/prefers-reduced-transparency": { + "modified": "2020-10-15T22:20:20.333Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/getSelection": { - "modified": "2019-09-25T07:21:02.389Z", + "Web/CSS/@media/resolution": { + "modified": "2020-10-15T21:47:24.193Z", "contributors": [ - "julienc", - "sudwebdesign", - "loella16", - "fscholz", - "FredPl" + "SphinxKnight" ] }, - "Web/API/Document/hasFocus": { - "modified": "2019-03-23T23:53:18.772Z", + "Web/CSS/@media/scan": { + "modified": "2020-10-15T21:47:29.526Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/head": { - "modified": "2019-03-23T23:28:49.084Z", + "Web/CSS/@media/scripting": { + "modified": "2020-10-15T21:47:29.228Z", "contributors": [ - "fscholz", - "Goofy", - "Delapouite" + "SphinxKnight" ] }, - "Web/API/Document/height": { - "modified": "2019-03-23T22:35:36.713Z", + "Web/CSS/@media/shape": { + "modified": "2020-10-15T22:21:05.763Z", "contributors": [ - "Beaver" + "SphinxKnight" ] }, - "Web/API/Document/hidden": { - "modified": "2020-10-15T22:15:02.524Z", + "Web/CSS/@media/update-frequency": { + "modified": "2020-10-15T21:47:29.603Z", "contributors": [ - "ThCarrere" + "SphinxKnight" ] }, - "Web/API/Document/images": { - "modified": "2019-03-24T00:04:19.350Z", + "Web/CSS/@media/width": { + "modified": "2020-10-15T21:47:29.961Z", "contributors": [ - "fscholz", - "teoli", - "jsx", - "tregagnon", - "RAP1D", - "Julien.stuby", - "Takenbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Document/implementation": { - "modified": "2019-03-23T23:57:36.312Z", + "Web/CSS/@namespace": { + "modified": "2020-10-15T21:47:29.816Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "tregagnon", - "Yanmorin" + "SphinxKnight", + "HTeuMeuLeu" ] }, - "Web/API/Document/importNode": { - "modified": "2020-10-15T21:16:48.197Z", + "Web/CSS/@page": { + "modified": "2020-10-15T21:21:45.119Z", "contributors": [ + "SphinxKnight", "fscholz", - "wbamberg", - "m-r-r", - "loella16", "teoli", - "Hasilt", - "Mgjbot", - "BenoitL" + "FredB", + "Skoua" ] }, - "Web/API/Document/keypress_event": { - "modified": "2020-10-15T21:59:28.229Z", + "Web/CSS/@page/bleed": { + "modified": "2020-10-15T21:47:32.177Z", "contributors": [ - "SphinxKnight", - "ImOverlord", - "chrisdavidmills", - "fscholz", - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/Document/lastModified": { - "modified": "2020-10-15T21:40:49.228Z", + "Web/CSS/@page/marks": { + "modified": "2020-10-15T21:20:05.400Z", "contributors": [ "SphinxKnight", - "Hell_Carlito", - "DaweedM" + "teoli", + "FredB" ] }, - "Web/API/Document/lastStyleSheetSet": { - "modified": "2019-03-18T21:39:20.451Z", + "Web/CSS/@page/size": { + "modified": "2020-10-15T21:47:32.255Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/location": { - "modified": "2020-08-07T14:59:04.090Z", + "Web/CSS/@supports": { + "modified": "2020-10-15T21:21:41.949Z", "contributors": [ - "jcodeteo", - "NacimHarfouche", + "regseb", + "SphinxKnight", + "edspeedy", "fscholz", - "tburette" - ] - }, - "Web/API/Document/mozSetImageElement": { - "modified": "2019-03-18T21:39:25.178Z", - "contributors": [ - "loella16" + "teoli", + "FredB" ] }, - "Web/API/Document/mozSyntheticDocument": { - "modified": "2019-03-18T21:39:15.573Z", + "Web/CSS/@viewport": { + "modified": "2020-10-15T21:21:36.008Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "J.DMB", + "louuis", + "teoli", + "Igro", + "FredB", + "Delapouite" ] }, - "Web/API/Document/onafterscriptexecute": { - "modified": "2019-03-18T21:16:44.711Z", + "Web/CSS/CSSOM_View": { + "modified": "2020-10-15T21:47:55.001Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/onbeforescriptexecute": { - "modified": "2019-03-18T21:39:17.231Z", + "Web/CSS/CSS_Backgrounds_and_Borders": { + "modified": "2019-04-06T12:13:22.172Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/onfullscreenchange": { - "modified": "2019-03-23T22:29:20.848Z", + "Web/CSS/CSS_Basic_User_Interface": { + "modified": "2019-04-26T03:46:44.475Z", "contributors": [ - "Dwaaren" + "SphinxKnight", + "ExE-Boss" ] }, - "Web/API/Document/onoffline": { - "modified": "2019-03-18T21:39:15.173Z", + "Web/CSS/CSS_Box_Alignment": { + "modified": "2019-04-06T12:42:39.208Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/ononline": { - "modified": "2019-03-18T21:39:26.555Z", + "Web/CSS/CSS_Color": { + "modified": "2020-10-15T22:02:12.684Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/open": { - "modified": "2019-03-23T23:45:31.773Z", + "Web/CSS/CSS_Columns": { + "modified": "2019-03-23T22:43:50.171Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "arunpandianp", - "Delapouite", - "Mgjbot", - "Takenbot", - "BenoitL" + "SphinxKnight", + "Sebastianz" ] }, - "Web/API/Document/origin": { - "modified": "2019-03-18T21:39:14.796Z", + "Web/CSS/CSS_Conditional_Rules": { + "modified": "2020-10-15T21:44:14.343Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/popupNode": { - "modified": "2019-04-19T19:08:29.481Z", + "Web/CSS/CSS_Counter_Styles": { + "modified": "2020-10-15T21:58:13.628Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Document/preferredStyleSheetSet": { - "modified": "2019-03-18T21:17:09.649Z", + "Web/CSS/CSS_Device_Adaptation": { + "modified": "2020-10-15T21:44:13.646Z", "contributors": [ - "wbamberg", - "loella16", - "redorff" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/queryCommandState": { - "modified": "2019-03-18T21:39:20.655Z", + "Web/CSS/CSS_Display": { + "modified": "2020-10-15T21:44:13.926Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/queryCommandSupported": { - "modified": "2019-03-18T21:39:23.967Z", + "Web/CSS/CSS_Flexible_Box_Layout": { + "modified": "2019-08-18T10:02:17.518Z", "contributors": [ - "loella16" + "patboens", + "SphinxKnight", + "fscholz" ] }, - "Web/API/Document/querySelector": { - "modified": "2019-03-23T23:16:43.222Z", + "Web/CSS/CSS_Flow_Layout": { + "modified": "2019-04-06T12:35:10.609Z", "contributors": [ - "khrys", - "loella16", - "juliend2", - "NemoNobobyPersonne", - "fscholz", - "Torvast", - "khalid32", - "Fredchat", - "lithrel", - "Goofy", - "Nek" + "SphinxKnight" ] }, - "Web/API/Document/querySelectorAll": { - "modified": "2019-03-23T22:57:36.074Z", + "Web/CSS/CSS_Fonts": { + "modified": "2020-09-29T14:45:42.143Z", "contributors": [ - "loella16", - "fkhannouf", - "tym-network", - "DCK", - "micetf" + "sylozof", + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/readyState": { - "modified": "2020-11-29T14:54:59.337Z", + "Web/CSS/CSS_Fragmentation": { + "modified": "2019-04-06T12:33:06.910Z", "contributors": [ - "Arzak656", - "GenjoMoz", - "cedeber", - "tobozo", - "thefractaler" + "SphinxKnight" ] }, - "Web/API/Document/referrer": { - "modified": "2019-03-23T23:15:05.977Z", + "Web/CSS/CSS_Generated_Content": { + "modified": "2019-04-26T03:48:56.862Z", "contributors": [ - "fscholz", - "Fredchat", - "Akronos" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/registerElement": { - "modified": "2019-03-23T22:43:18.277Z", + "Web/CSS/CSS_Grid_Layout": { + "modified": "2019-05-23T08:33:35.461Z", "contributors": [ - "loella16", - "gsavin" + "SphinxKnight", + "ferdi_", + "marie-ototoi", + "xdelatour" ] }, - "Web/API/Document/releaseCapture": { - "modified": "2019-03-18T21:39:14.396Z", + "Web/CSS/CSS_Grid_Layout/Subgrid": { + "modified": "2019-11-13T15:40:12.000Z", "contributors": [ - "loella16" + "Loliwe", + "Lo_h", + "SphinxKnight" ] }, - "Web/API/Document/scripts": { - "modified": "2019-03-23T23:20:37.772Z", + "Web/CSS/CSS_Images": { + "modified": "2019-04-06T12:28:36.193Z", "contributors": [ - "fscholz", - "AshfaqHossain", - "sisyphe" + "SphinxKnight", + "wizAmit", + "xdelatour", + "mrstork" ] }, - "Web/API/Document/scroll_event": { - "modified": "2020-11-10T19:16:07.946Z", + "Web/CSS/CSS_Logical_Properties": { + "modified": "2019-06-18T19:34:36.043Z", "contributors": [ - "JNa0", - "wbamberg", - "irenesmith", - "Watilin", - "fscholz", - "timkrief", - "florentDieg" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/selectedStyleSheetSet": { - "modified": "2019-03-18T21:39:17.582Z", + "Web/CSS/CSS_Miscellaneous": { + "modified": "2019-04-06T12:54:16.767Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/styleSheetSets": { - "modified": "2019-03-18T21:39:14.023Z", + "Web/CSS/CSS_Namespaces": { + "modified": "2020-10-15T21:44:29.065Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/styleSheets": { - "modified": "2019-03-23T23:06:00.949Z", + "Web/CSS/CSS_Overflow": { + "modified": "2019-11-04T14:40:28.794Z", "contributors": [ - "a5er", - "fscholz", - "J.DMB", - "Nothus" + "SphinxKnight" ] }, - "Web/API/Document/title": { - "modified": "2019-03-23T22:28:27.000Z", + "Web/CSS/CSS_Pages": { + "modified": "2019-04-06T12:52:06.180Z", "contributors": [ - "Hell_Carlito", - "Akio08" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/tooltipNode": { - "modified": "2019-03-18T21:39:13.843Z", + "Web/CSS/CSS_Positioning": { + "modified": "2019-04-06T12:51:56.824Z", "contributors": [ - "loella16" + "SphinxKnight", + "younes-14", + "xdelatour" ] }, - "Web/API/Document/touchend_event": { - "modified": "2019-04-30T14:08:32.474Z", + "Web/CSS/CSS_Properties_Reference": { + "modified": "2019-04-06T12:50:15.870Z", "contributors": [ - "wbamberg", - "irenesmith", - "fscholz", - "alcalyn" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/transitionend_event": { - "modified": "2020-10-15T22:23:39.293Z", + "Web/CSS/CSS_Ruby": { + "modified": "2019-04-26T04:17:25.189Z", "contributors": [ - "Watilin" + "SphinxKnight" ] }, - "Web/API/Document/visibilityState": { - "modified": "2019-03-18T21:39:28.477Z", + "Web/CSS/CSS_Scroll_Snap": { + "modified": "2020-12-06T20:57:49.980Z", "contributors": [ - "loella16" + "Rik", + "giloop", + "SphinxKnight" ] }, - "Web/API/Document/width": { - "modified": "2019-03-23T22:07:26.300Z", + "Web/CSS/CSS_Scroll_Snap_Points": { + "modified": "2019-04-26T04:18:54.788Z", "contributors": [ - "ap369" + "SphinxKnight" ] }, - "Web/API/Document/write": { - "modified": "2019-03-23T23:45:34.301Z", + "Web/CSS/CSS_Scrollbars": { + "modified": "2020-10-15T22:10:56.124Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "jsx", - "Delapouite", - "Mgjbot", - "BenoitL", - "Takenbot" + "tristantheb", + "SphinxKnight" ] }, - "Web/API/Document/writeln": { - "modified": "2020-11-11T07:37:30.795Z", + "Web/CSS/CSS_Shapes": { + "modified": "2019-04-26T04:23:36.000Z", "contributors": [ - "JNa0", - "cabalpit" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/xmlEncoding": { - "modified": "2019-03-18T21:39:14.209Z", + "Web/CSS/CSS_Table": { + "modified": "2019-04-06T12:48:15.509Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/Document/xmlVersion": { - "modified": "2019-03-18T21:39:27.536Z", + "Web/CSS/CSS_Text": { + "modified": "2019-04-06T12:48:00.980Z", "contributors": [ - "loella16" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/DocumentFragment": { - "modified": "2020-10-15T21:52:43.417Z", + "Web/CSS/CSS_Text_Decoration": { + "modified": "2019-04-06T13:10:17.701Z", "contributors": [ - "loella16", - "Watilin" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/DocumentFragment/DocumentFragment": { - "modified": "2020-10-15T22:02:35.964Z", + "Web/CSS/CSS_Transforms": { + "modified": "2019-04-06T13:09:54.986Z", "contributors": [ - "loella16" + "SphinxKnight", + "Sebastianz", + "Prinz_Rana", + "teoli" ] }, - "Web/API/DocumentFragment/querySelector": { - "modified": "2020-10-15T22:02:37.385Z", + "Web/CSS/CSS_Transitions": { + "modified": "2019-04-06T13:10:27.488Z", "contributors": [ - "loella16" + "SphinxKnight", + "Gibus", + "amdufour" ] }, - "Web/API/DocumentFragment/querySelectorAll": { - "modified": "2020-10-15T22:02:36.843Z", + "Web/CSS/CSS_Variables": { + "modified": "2019-04-06T12:40:29.577Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/DocumentOrShadowRoot": { - "modified": "2020-10-15T22:25:01.411Z", + "Web/CSS/CSS_Writing_Modes": { + "modified": "2019-04-06T13:11:34.329Z", "contributors": [ - "tristantheb" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/DocumentOrShadowRoot/elementsFromPoint": { - "modified": "2020-10-15T22:25:00.754Z", + "Web/CSS/Comments": { + "modified": "2019-04-06T13:14:39.069Z", "contributors": [ "SphinxKnight", - "RolandGautier" + "juliemoynat", + "teoli", + "FredB", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/DocumentTouch": { - "modified": "2019-03-23T22:50:40.193Z", + "Web/CSS/Compositing_and_Blending": { + "modified": "2020-10-15T22:02:46.274Z", "contributors": [ - "loella16", - "Hell_Carlito", - "enayfuos" + "SphinxKnight" ] }, - "Web/API/DocumentType": { - "modified": "2020-04-26T15:13:01.231Z", + "Web/CSS/Filter_Effects": { + "modified": "2020-10-15T21:58:36.661Z", "contributors": [ - "adtrevor", - "loella16", - "SphinxKnight", - "Hell_Carlito" + "SphinxKnight" ] }, - "Web/API/Document_Object_Model": { - "modified": "2019-03-24T00:04:14.830Z", + "Web/CSS/Image-rendering": { + "modified": "2020-10-15T21:19:37.197Z", "contributors": [ - "loella16", - "Dralyab", "SphinxKnight", - "jmh", - "robin850", + "Sebastianz", + "piouPiouM", "teoli", - "damien.flament", - "BenoitL", - "Mgjbot", - "Fredchat" + "FredB", + "DavidWalsh" ] }, - "Web/API/Document_Object_Model/Exemples": { - "modified": "2019-03-23T23:50:50.905Z", + "Web/CSS/Layout_cookbook": { + "modified": "2019-04-06T12:59:27.445Z", "contributors": [ - "loella16", "SphinxKnight", - "teoli", - "khalid32", - "BenoitL", - "Domif", - "Mgjbot", - "Fredchat" + "chrisdavidmills" ] }, - "Web/API/Document_Object_Model/Introduction": { - "modified": "2020-10-18T13:14:40.506Z", + "Web/CSS/Layout_cookbook/Grid_wrapper": { + "modified": "2020-10-15T22:11:37.851Z", "contributors": [ - "Lolo", - "diassynthesis", - "loella16", - "kekbait", - "SphinxKnight", - "yasakura_", - "teoli", - "khalid32", - "BenoitL", - "Mgjbot", - "Takenbot", - "Chbok" + "SphinxKnight" ] }, - "Web/API/Document_Object_Model/Les_évènements_et_le_DOM": { - "modified": "2019-03-18T21:39:20.100Z", + "Web/CSS/Layout_cookbook/Media_objects": { + "modified": "2020-10-15T22:10:31.768Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document_Object_Model/Localisation_des_éléments_DOM_avec_les_sélecteurs": { - "modified": "2019-03-18T21:39:30.176Z", + "Web/CSS/Layout_cookbook/Pagination": { + "modified": "2020-10-15T22:10:27.609Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Document_Object_Model/Préface": { - "modified": "2019-03-23T23:46:29.146Z", + "Web/CSS/Pseudo-classes": { + "modified": "2019-11-12T05:33:01.534Z", "contributors": [ + "Totokoutonio", "SphinxKnight", + "bgaude", "teoli", - "khalid32", - "Sheppy", - "Ame Nomade", - "Mgjbot", - "BenoitL" + "Goofy", + "louuis", + "FredB", + "tregagnon" ] }, - "Web/API/Document_Object_Model/Whitespace": { - "modified": "2020-01-30T13:20:28.299Z", + "Web/CSS/Reference": { + "modified": "2019-10-28T09:11:58.317Z", "contributors": [ - "chrisdavidmills", - "loella16", - "ethertank", + "SphinxKnight", + "Camrifof", + "eiro", + "verdy_p", + "JNa0", + "PolariTOON", + "unsteadyCode", + "BEHOUBA", + "tonybengue", + "Oliviermoz", + "challet", + "teoli", + "thenew", + "Fredchat", + "wakka27", + "tregagnon", + "FredB", + "jackblack", + "Jeremie", + "openjck", + "groovecoder", + "ThePrisoner", + "BenoitL", "Mgjbot", - "BenoitL" + "Nathymig" ] }, - "Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C": { - "modified": "2020-03-02T10:16:52.732Z", + "Web/CSS/Selector_list": { + "modified": "2020-10-15T22:24:05.333Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/CSS/Tutorials": { + "modified": "2019-04-06T13:11:04.601Z", "contributors": [ "SphinxKnight", - "wbamberg", - "loella16", - "Mgjbot", - "BenoitL" + "Oliviermoz", + "teoli", + "Axel_Viala" ] }, - "Web/API/Document_object_model/Utilisation_du_DOM_Level_1_Core_du_W3C/Exemple": { - "modified": "2020-03-02T10:16:52.814Z", + "Web/CSS/Using_CSS_custom_properties": { + "modified": "2020-10-15T21:44:45.745Z", "contributors": [ "SphinxKnight", - "loella16" + "chrisdavidmills", + "autodidactie", + "edspeedy", + "OhNiice" ] }, - "Web/API/DoubleRange": { - "modified": "2020-11-11T19:01:25.656Z", + "Web/CSS/WebKit_Extensions": { + "modified": "2019-10-07T02:42:25.089Z", "contributors": [ - "JNa0", - "Voulto" + "Lo_h", + "SphinxKnight", + "ExE-Boss", + "Goofy", + "louuis" ] }, - "Web/API/Element": { - "modified": "2020-11-10T21:11:37.745Z", + "Web/CSS/align-content": { + "modified": "2020-10-15T21:30:37.361Z", "contributors": [ - "JNa0", - "NacimHarfouche", - "fscholz", - "loella16", + "SphinxKnight", "teoli", - "soumya", - "Delapouite", - "Julien.stuby", - "BenoitL", - "Mgjbot", - "Fredchat", - "Sam.bree", - "Takenbot", - "GT", - "Anonymous" + "JackNUMBER", + "fscholz", + "Sebastianz", + "Goofy", + "Dexter_Deter" ] }, - "Web/API/Element.blur": { - "modified": "2020-10-15T21:17:21.812Z", + "Web/CSS/align-items": { + "modified": "2020-10-15T21:39:37.167Z", "contributors": [ - "abvll", - "a-mt", - "teoli", - "jsx", - "tregagnon", - "BenoitL" + "SphinxKnight", + "rolf39" ] }, - "Web/API/Element/accessKey": { - "modified": "2019-03-23T22:24:43.588Z", + "Web/CSS/align-self": { + "modified": "2020-10-15T21:45:37.829Z", "contributors": [ - "loella16", - "alexandre-le-borgne" + "SphinxKnight" ] }, - "Web/API/Element/animate": { - "modified": "2019-03-23T22:28:26.628Z", + "Web/CSS/all": { + "modified": "2020-10-15T21:45:31.166Z", "contributors": [ - "gharel", - "HereComesJuju" + "SphinxKnight" ] }, - "Web/API/Element/attachShadow": { - "modified": "2020-11-16T08:31:28.051Z", + "Web/CSS/alpha-value": { + "modified": "2019-10-29T08:59:32.213Z", "contributors": [ - "mherchy", - "linsolas" + "SphinxKnight" ] }, - "Web/API/Element/attributes": { - "modified": "2020-10-15T21:18:22.728Z", + "Web/CSS/angle": { + "modified": "2020-10-15T21:08:35.880Z", "contributors": [ - "loella16", + "SphinxKnight", + "dxsp", + "Sebastianz", + "Prinz_Rana", "fscholz", "teoli", - "khalid32", - "senshu", - "Mgjbot", - "Takenbot", - "BenoitL", - "GT" + "FredB", + "tregagnon" ] }, - "Web/API/Element/classList": { - "modified": "2020-10-15T21:22:02.156Z", + "Web/CSS/angle-percentage": { + "modified": "2020-10-15T22:14:23.636Z", "contributors": [ - "tristantheb", - "JLuc", - "sir-kain", - "loella16", - "Twidi", - "lyrixx", - "edspeedy", - "DaScritch", - "P45QU10U", - "fscholz", - "teoli", - "khalid32", - "Delapouite", - "juleschz" + "SphinxKnight" ] }, - "Web/API/Element/className": { - "modified": "2020-10-15T21:09:39.687Z", + "Web/CSS/animation": { + "modified": "2020-10-15T21:08:29.411Z", "contributors": [ - "tristantheb", - "loella16", - "arthurlacoste", - "fscholz", + "SphinxKnight", + "mrstork", "teoli", - "khalid32", + "Sebastianz", + "gudoy", "tregagnon", - "dextra", - "Mgjbot", - "Takenbot", - "BenoitL" + "Delapouite", + "FredB", + "trevorh" ] }, - "Web/API/Element/click_event": { - "modified": "2020-10-15T21:50:40.431Z", + "Web/CSS/animation-delay": { + "modified": "2020-10-15T21:08:26.081Z", "contributors": [ "SphinxKnight", - "irenesmith", - "necraidan", - "fscholz", - "Kalwyn" + "Mr21", + "teoli", + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/clientHeight": { - "modified": "2019-03-23T23:43:32.086Z", + "Web/CSS/animation-direction": { + "modified": "2020-10-15T21:04:49.473Z", "contributors": [ - "fscholz", + "SphinxKnight", "teoli", - "khalid32", - "Mgjbot", - "Takenbot", - "BenoitL", - "Peter1789", - "Chbok" + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/clientLeft": { - "modified": "2019-03-23T23:50:24.432Z", + "Web/CSS/animation-duration": { + "modified": "2020-10-15T21:09:29.304Z", "contributors": [ - "fscholz", + "lhapaipai", + "SphinxKnight", "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "Sebastianz", + "FredB" ] }, - "Web/API/Element/clientWidth": { - "modified": "2020-11-05T03:12:27.036Z", + "Web/CSS/animation-fill-mode": { + "modified": "2020-10-15T21:08:35.038Z", "contributors": [ "SphinxKnight", - "spirival", - "fscholz", "teoli", - "khalid32", - "Mgjbot", - "Takenbot", - "BenoitL", - "Peter1789" + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/closest": { - "modified": "2020-10-15T21:39:34.749Z", + "Web/CSS/animation-iteration-count": { + "modified": "2020-10-15T21:08:37.214Z", "contributors": [ - "lgiraudel", - "RemyGuihard", - "BenMorel", - "loella16", + "lhapaipai", "SphinxKnight", - "gxolin", - "Teepo" + "verdy_p", + "teoli", + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/contextmenu_event": { - "modified": "2020-10-15T21:50:46.121Z", + "Web/CSS/animation-name": { + "modified": "2020-10-15T21:08:32.798Z", "contributors": [ "SphinxKnight", - "irenesmith", - "ctjhoa", - "fscholz", - "Kalwyn" + "Ramzi2892", + "teoli", + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/currentStyle": { - "modified": "2019-03-18T21:32:08.768Z", + "Web/CSS/animation-play-state": { + "modified": "2020-10-15T21:08:35.700Z", "contributors": [ - "z1057" + "SphinxKnight", + "ThreadElric", + "teoli", + "Sebastianz", + "FredB", + "tregagnon" ] }, - "Web/API/Element/dblclick_event": { - "modified": "2020-10-15T21:49:52.144Z", + "Web/CSS/animation-timing-function": { + "modified": "2020-10-15T21:08:36.973Z", "contributors": [ "SphinxKnight", - "irenesmith", - "fscholz", - "Copen" + "mrstork", + "teoli", + "Sebastianz", + "coets", + "FredB", + "tregagnon" ] }, - "Web/API/Element/getAttribute": { - "modified": "2020-11-11T08:07:56.657Z", + "Web/CSS/appearance": { + "modified": "2020-10-15T21:15:48.651Z", "contributors": [ - "JNa0", - "loella16", - "lehollandaisvolant", - "fscholz", + "escattone", + "SphinxKnight", + "ExE-Boss", + "wbamberg", + "AymDev", "teoli", - "jsx", + "wakka27", + "ksad", + "FredB", "Mgjbot", - "BenoitL", "Fredchat", - "Domif", - "Takenbot" + "Kyodev" ] }, - "Web/API/Element/getAttributeNS": { - "modified": "2020-10-15T21:15:37.517Z", + "Web/CSS/attr()": { + "modified": "2020-11-04T08:51:39.350Z", "contributors": [ + "chrisdavidmills", "SphinxKnight", - "loella16", - "fscholz", + "mrstork", + "prayash", + "enogael", "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Fredchat" + "tregagnon", + "FredB", + "matteodelabre", + "philippe97" ] }, - "Web/API/Element/getAttributeNames": { - "modified": "2019-04-17T13:08:28.913Z", + "Web/CSS/backdrop-filter": { + "modified": "2020-10-15T21:45:16.620Z", "contributors": [ - "gfc", - "loella16" + "SphinxKnight", + "Colisan" ] }, - "Web/API/Element/getAttributeNode": { - "modified": "2019-03-23T23:53:08.091Z", + "Web/CSS/backface-visibility": { + "modified": "2020-10-15T21:08:31.865Z", "contributors": [ - "loella16", + "SphinxKnight", "fscholz", "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Celelibi" + "FredB", + "ethertank", + "tregagnon" ] }, - "Web/API/Element/getAttributeNodeNS": { - "modified": "2019-03-23T23:54:18.423Z", + "Web/CSS/background": { + "modified": "2020-10-15T21:08:39.389Z", "contributors": [ - "wbamberg", + "SphinxKnight", "fscholz", + "Sebastianz", + "FredB", "teoli", - "jsx", - "AshfaqHossain", - "Mgjbot", + "tregagnon", + "Yuichiro", "BenoitL", - "Fredchat" + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/getBoundingClientRect": { - "modified": "2020-11-18T10:29:48.861Z", + "Web/CSS/background-attachment": { + "modified": "2020-10-15T21:08:33.405Z", "contributors": [ - "cdoublev", "SphinxKnight", - "floribon", - "fscholz", + "kustolovic", "teoli", - "khalid32", - "BenoitL", - "Mgjbot" + "ShamsGolap", + "FredB", + "tregagnon", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/getElementsByClassName": { - "modified": "2020-10-15T21:41:18.545Z", + "Web/CSS/background-blend-mode": { + "modified": "2020-10-15T21:30:51.492Z", "contributors": [ - "tristantheb", - "polinux", - "Gibus", - "devethic" + "SphinxKnight", + "LukyVj", + "mrstork", + "Sebastianz", + "J.DMB", + "YoruNoHikage" ] }, - "Web/API/Element/getElementsByTagName": { - "modified": "2019-03-24T00:14:28.776Z", + "Web/CSS/background-clip": { + "modified": "2020-10-15T21:09:30.832Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", "teoli", - "khalid32", - "tregagnon", + "FredB", "Mgjbot", - "The RedBurn", - "BenoitL", - "Fredchat", - "Mytony", - "Takenbot" + "Kyodev", + "Fredchat" ] }, - "Web/API/Element/getElementsByTagNameNS": { - "modified": "2020-10-15T21:08:26.964Z", + "Web/CSS/background-color": { + "modified": "2020-10-15T21:08:20.811Z", "contributors": [ "SphinxKnight", - "hervems", - "wbamberg", - "loella16", - "fscholz", "teoli", - "khalid32", + "Sebastianz", + "ksad", + "FredB", "tregagnon", - "BenoitL", - "Fredchat" + "Yuichiro", + "Fredchat", + "Mgjbot", + "Nathymig", + "Boly38", + "Kyodev" ] }, - "Web/API/Element/hasAttribute": { - "modified": "2019-03-23T23:53:10.754Z", + "Web/CSS/background-image": { + "modified": "2020-10-15T21:08:35.762Z", "contributors": [ - "loella16", + "SphinxKnight", + "jgil83000", + "Tactless7", + "wizAmit", + "magikmanu", "fscholz", "teoli", - "khalid32", + "FredB", + "tregagnon", "Mgjbot", - "BenoitL", - "Celelibi" + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/hasAttributeNS": { - "modified": "2019-03-23T23:53:18.889Z", + "Web/CSS/background-origin": { + "modified": "2020-10-15T21:09:26.607Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", "teoli", - "AshfaqHossain", + "FredB", "Mgjbot", - "BenoitL", + "Kyodev", "Fredchat" ] }, - "Web/API/Element/hasAttributes": { - "modified": "2020-10-15T21:15:58.454Z", + "Web/CSS/background-position": { + "modified": "2020-10-15T21:08:28.344Z", "contributors": [ "SphinxKnight", - "loella16", - "fscholz", + "kantoche", + "Goofy", + "mrstork", "teoli", - "jsx", + "enogael", + "FredB", + "tregagnon", "Mgjbot", - "BenoitL", - "Celelibi" + "Kyodev", + "Fredchat" ] }, - "Web/API/Element/id": { - "modified": "2019-04-19T09:07:28.280Z", + "Web/CSS/background-position-x": { + "modified": "2020-10-15T21:45:43.001Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "tregagnon", - "Mgjbot", - "Takenbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Element/innertHTML": { - "modified": "2020-11-03T14:59:36.186Z", + "Web/CSS/background-position-y": { + "modified": "2020-10-15T21:45:41.534Z", "contributors": [ - "spirival", - "loella16", - "sami.boukortt", - "fscholz", - "teoli", - "scaillerie", - "khalid32", - "ethertank", - "grafik.muzik", - "Mgjbot", - "BenoitL", - "Takenbot", - "Anonymous" + "SphinxKnight" ] }, - "Web/API/Element/insertAdjacentElement": { - "modified": "2020-10-15T22:01:30.731Z", + "Web/CSS/background-repeat": { + "modified": "2020-10-15T21:08:24.169Z", "contributors": [ - "Yukulele.", - "tym-network", - "loella16", - "gigouni" + "SphinxKnight", + "fscholz", + "Sebastianz", + "technolabtips", + "louuis", + "teoli", + "FredB", + "tregagnon", + "Nathymig", + "Kyodev", + "Fredchat" ] }, - "Web/API/Element/insertAdjacentHTML": { - "modified": "2020-10-15T21:21:30.158Z", + "Web/CSS/background-size": { + "modified": "2020-10-15T21:08:32.072Z", "contributors": [ - "Yukulele.", - "ocombe", - "loella16", - "TTBlist", + "SphinxKnight", + "Prinz_Rana", "fscholz", "teoli", - "khalid32", - "JeanDavidDaviet" + "FredB", + "claudepache", + "tregagnon" ] }, - "Web/API/Element/insertAdjacentText": { - "modified": "2020-10-15T22:02:37.949Z", + "Web/CSS/basic-shape": { + "modified": "2020-10-15T21:46:24.284Z", "contributors": [ - "Yukulele.", - "loella16", - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/Element/localName": { - "modified": "2019-03-18T21:38:49.396Z", + "Web/CSS/blend-mode": { + "modified": "2020-10-15T21:32:22.353Z", "contributors": [ - "loella16" + "SphinxKnight", + "Nolwennig", + "GeoffreyC.", + "fscholz" ] }, - "Web/API/Element/matches": { - "modified": "2020-10-15T21:37:50.464Z", + "Web/CSS/block-size": { + "modified": "2020-10-15T21:45:10.040Z", "contributors": [ - "loella16", - "nbouvrette", - "Watilin", - "vava" + "SphinxKnight", + "amazingphilippe" ] }, - "Web/API/Element/mousedown_event": { - "modified": "2020-10-15T21:56:54.584Z", + "Web/CSS/border": { + "modified": "2020-10-15T21:08:26.155Z", "contributors": [ "SphinxKnight", - "norival", - "wbamberg", - "JyTosTT", - "irenesmith", - "wgaetan", - "areltfc", - "Halkeand" + "fscholz", + "Sebastianz", + "vava", + "teoli", + "ksad", + "FredB", + "tregagnon", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/Element/mouseenter_event": { - "modified": "2020-10-15T22:26:31.978Z", + "Web/CSS/border-block": { + "modified": "2020-10-15T22:10:54.566Z", "contributors": [ "SphinxKnight" ] }, - "Web/API/Element/mouseleave_event": { - "modified": "2020-10-15T22:26:33.987Z", + "Web/CSS/border-block-color": { + "modified": "2020-10-15T22:10:56.045Z", "contributors": [ "SphinxKnight" ] }, - "Web/API/Element/mousemove_event": { - "modified": "2020-10-15T21:59:29.869Z", + "Web/CSS/border-block-end": { + "modified": "2020-10-15T21:45:11.203Z", "contributors": [ "SphinxKnight", - "wbamberg", - "irenesmith", - "SteelCode94", - "areltfc" + "lp177" ] }, - "Web/API/Element/mouseout_event": { - "modified": "2020-10-15T21:59:51.535Z", + "Web/CSS/border-block-end-color": { + "modified": "2020-10-15T21:45:08.326Z", "contributors": [ - "nboisteault", "SphinxKnight", - "wbamberg", - "irenesmith", - "T-Zahil", - "areltfc" + "lp177" ] }, - "Web/API/Element/mouseover_event": { - "modified": "2020-10-15T21:51:43.078Z", + "Web/CSS/border-block-end-style": { + "modified": "2020-10-15T21:45:07.749Z", "contributors": [ "SphinxKnight", - "irenesmith", - "fscholz", - "Copen", - "necraidan" + "lp177" ] }, - "Web/API/Element/mouseup_event": { - "modified": "2020-10-15T21:59:51.425Z", + "Web/CSS/border-block-end-width": { + "modified": "2020-10-15T21:45:07.994Z", "contributors": [ "SphinxKnight", - "wbamberg", - "irenesmith", - "areltfc" + "lp177" ] }, - "Web/API/Element/name": { - "modified": "2019-03-24T00:13:05.858Z", + "Web/CSS/border-block-start": { + "modified": "2020-10-15T21:45:09.987Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "dextra", - "BenoitL" + "SphinxKnight", + "lp177" ] }, - "Web/API/Element/namespaceURI": { - "modified": "2019-03-18T21:38:59.961Z", + "Web/CSS/border-block-start-color": { + "modified": "2020-10-15T21:45:06.536Z", "contributors": [ - "loella16" + "SphinxKnight", + "lp177" ] }, - "Web/API/Element/onwheel": { - "modified": "2019-03-18T21:09:01.795Z", + "Web/CSS/border-block-start-style": { + "modified": "2020-10-15T21:45:07.141Z", "contributors": [ - "fscholz", - "loella16", - "alexandre-le-borgne" + "SphinxKnight", + "lp177" ] }, - "Web/API/Element/outerHTML": { - "modified": "2020-02-14T07:49:22.857Z", + "Web/CSS/border-block-start-width": { + "modified": "2020-10-15T21:45:08.997Z", "contributors": [ - "khalyomede", - "loella16", - "fscholz", - "scaillerie" + "SphinxKnight", + "lp177" ] }, - "Web/API/Element/prefix": { - "modified": "2019-03-18T21:38:57.778Z", + "Web/CSS/border-block-style": { + "modified": "2020-10-15T22:11:05.093Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Element/querySelector": { - "modified": "2019-03-23T23:09:24.946Z", + "Web/CSS/border-block-width": { + "modified": "2020-10-15T22:11:02.717Z", "contributors": [ - "loella16", - "fscholz", - "Ailete619" + "SphinxKnight" ] }, - "Web/API/Element/querySelectorAll": { - "modified": "2019-03-23T23:09:56.033Z", + "Web/CSS/border-bottom": { + "modified": "2020-10-15T21:12:33.513Z", "contributors": [ - "loella16", + "SphinxKnight", "fscholz", - "kyfr59" + "Sebastianz", + "teoli", + "Golmote", + "ksad", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/releasePointerCapture": { - "modified": "2019-03-18T21:38:50.640Z", + "Web/CSS/border-bottom-color": { + "modified": "2020-10-15T21:08:17.967Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "ksad", + "FredB", + "tregagnon", + "Yuichiro", + "Nathymig", + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/removeAttribute": { - "modified": "2019-03-23T23:53:07.381Z", + "Web/CSS/border-bottom-left-radius": { + "modified": "2020-10-15T21:09:26.046Z", "contributors": [ - "sylv1", - "loella16", - "fscholz", + "SphinxKnight", + "Prinz_Rana", + "Sebastianz", "teoli", - "khalid32", - "Mgjbot", - "Fredchat", - "BenoitL", - "Celelibi" + "ksad", + "FredB", + "Yuichiro", + "Fredchat" ] }, - "Web/API/Element/removeAttributeNS": { - "modified": "2019-03-23T23:54:16.680Z", + "Web/CSS/border-bottom-right-radius": { + "modified": "2020-10-15T21:09:24.108Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", + "Prinz_Rana", + "Sebastianz", "teoli", - "khalid32", - "Mgjbot", - "BenoitL", + "ksad", + "FredB", + "Yuichiro", "Fredchat" ] }, - "Web/API/Element/removeAttributeNode": { - "modified": "2019-03-23T23:53:02.731Z", + "Web/CSS/border-bottom-style": { + "modified": "2020-10-15T21:12:44.728Z", "contributors": [ - "loella16", + "SphinxKnight", "fscholz", "teoli", - "jsx", - "AshfaqHossain", + "FredB", + "Yuichiro", "Mgjbot", - "BenoitL", "Fredchat", - "Celelibi" - ] - }, - "Web/API/Element/requestFullScreen": { - "modified": "2019-03-18T21:38:48.086Z", - "contributors": [ - "loella16", - "jena43" + "Kyodev" ] }, - "Web/API/Element/scrollHeight": { - "modified": "2020-05-06T11:11:48.539Z", + "Web/CSS/border-bottom-width": { + "modified": "2020-10-15T21:10:09.492Z", "contributors": [ - "regseb", "SphinxKnight", "fscholz", "teoli", - "khalid32", - "Goofy", - "adrienchretien", - "Julien STUBY", - "BenoitL" + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Element/scrollIntoView": { - "modified": "2020-10-15T21:16:44.187Z", + "Web/CSS/border-collapse": { + "modified": "2020-10-15T21:16:01.217Z", "contributors": [ "SphinxKnight", - "kevin-verschaeve", - "loella16", - "palpalpalpal", - "fscholz", "teoli", - "khalid32", - "ethertank", + "FredB", "Mgjbot", - "BenoitL" + "Kyodev", + "Fredchat" ] }, - "Web/API/Element/scrollIntoViewIfNeeded": { - "modified": "2019-03-18T21:38:48.451Z", + "Web/CSS/border-color": { + "modified": "2020-10-15T21:12:51.249Z", "contributors": [ + "SphinxKnight", + "begmans", "teoli", - "loella16" + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/Element/scrollLeft": { - "modified": "2019-03-24T00:09:03.253Z", + "Web/CSS/border-end-end-radius": { + "modified": "2020-10-15T22:13:15.093Z", "contributors": [ - "solidreno", - "fscholz", - "teoli", - "khalid32", - "Julien STUBY", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Element/scrollLeftMax": { - "modified": "2019-03-23T22:24:40.413Z", + "Web/CSS/border-end-start-radius": { + "modified": "2020-10-15T22:13:15.935Z", "contributors": [ - "alexandre-le-borgne" + "SphinxKnight" ] }, - "Web/API/Element/scrollTo": { - "modified": "2020-10-15T22:23:29.547Z", + "Web/CSS/border-image": { + "modified": "2020-10-15T21:19:08.857Z", "contributors": [ - "rassacnivek", - "innocenzi" + "SphinxKnight", + "teoli", + "pl6025", + "FredB", + "PetiPandaRou", + "openjck", + "Jeremie" ] }, - "Web/API/Element/scrollTop": { - "modified": "2019-03-24T00:03:08.360Z", + "Web/CSS/border-image-outset": { + "modified": "2020-10-15T21:45:07.479Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "Delapouite", - "Wladimir_Palant", - "Julien STUBY", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Element/scrollWidth": { - "modified": "2019-03-23T23:47:11.412Z", + "Web/CSS/border-image-repeat": { + "modified": "2020-10-15T21:45:07.940Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Element/select_event": { - "modified": "2019-03-29T11:42:06.216Z", + "Web/CSS/border-image-slice": { + "modified": "2020-10-15T21:45:08.549Z", "contributors": [ - "irenesmith", - "fscholz", - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/Element/setAttribute": { - "modified": "2019-03-23T23:53:11.574Z", + "Web/CSS/border-image-source": { + "modified": "2020-10-15T21:20:04.870Z", "contributors": [ "SphinxKnight", - "Linkus", - "loella16", + "wizAmit", "teoli", - "julienw", - "fscholz", - "khalid32", - "Mgjbot", - "BenoitL", - "Takenbot" + "FredB", + "PetiPandaRou" ] }, - "Web/API/Element/setAttributeNS": { - "modified": "2019-03-23T23:53:03.972Z", + "Web/CSS/border-image-width": { + "modified": "2020-10-15T21:20:03.679Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Fredchat" + "FredB", + "PetiPandaRou" ] }, - "Web/API/Element/setAttributeNode": { - "modified": "2019-03-23T23:53:12.251Z", + "Web/CSS/border-inline": { + "modified": "2020-10-15T22:10:55.949Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Celelibi" + "SphinxKnight" ] }, - "Web/API/Element/setAttributeNodeNS": { - "modified": "2019-03-23T23:54:18.084Z", + "Web/CSS/border-inline-color": { + "modified": "2020-10-15T22:10:55.459Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Fredchat" + "SphinxKnight" ] }, - "Web/API/Element/setCapture": { - "modified": "2019-03-18T21:39:21.819Z", + "Web/CSS/border-inline-end": { + "modified": "2020-10-15T21:45:09.637Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight" ] }, - "Web/API/Element/setPointerCapture": { - "modified": "2019-03-18T21:38:49.004Z", + "Web/CSS/border-inline-end-color": { + "modified": "2020-10-15T21:45:06.629Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Element/tabStop": { - "modified": "2019-03-18T21:38:50.214Z", + "Web/CSS/border-inline-end-style": { + "modified": "2020-10-15T21:45:06.083Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Element/tagName": { - "modified": "2019-03-23T23:53:29.906Z", + "Web/CSS/border-inline-end-width": { + "modified": "2020-10-15T21:45:06.227Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "jsx", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/ElementTraversal": { - "modified": "2019-03-18T21:39:02.443Z", + "Web/CSS/border-inline-start": { + "modified": "2020-10-15T21:45:09.428Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Encoding_API": { - "modified": "2020-10-15T22:21:39.244Z", + "Web/CSS/border-inline-start-color": { + "modified": "2020-10-15T21:45:05.240Z", "contributors": [ - "Torzivalds" + "SphinxKnight" ] }, - "Web/API/Entity": { - "modified": "2019-03-18T21:40:22.544Z", + "Web/CSS/border-inline-start-style": { + "modified": "2020-10-15T21:45:06.115Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/EntityReference": { - "modified": "2019-03-18T21:40:29.302Z", + "Web/CSS/border-inline-start-width": { + "modified": "2020-10-15T21:45:04.477Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/ErrorEvent": { - "modified": "2020-10-15T22:26:44.334Z", + "Web/CSS/border-inline-style": { + "modified": "2020-10-15T22:10:57.659Z", "contributors": [ - "Eliastik" + "SphinxKnight" ] }, - "Web/API/Event": { - "modified": "2020-10-15T21:17:13.702Z", + "Web/CSS/border-inline-width": { + "modified": "2020-10-15T22:11:00.439Z", "contributors": [ - "loella16", - "hs0ucy", - "teoli", - "jsx", - "AshfaqHossain", - "Mgjbot", - "BenoitL", - "Fredchat", - "Takenbot" + "SphinxKnight" ] }, - "Web/API/Event/Comparaison_des_cibles_d_évènements": { - "modified": "2019-03-18T21:39:09.103Z", + "Web/CSS/border-left": { + "modified": "2020-10-15T21:12:37.709Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Event/Event": { - "modified": "2020-10-15T22:02:32.493Z", + "Web/CSS/border-left-color": { + "modified": "2020-10-15T21:12:49.527Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/bubbles": { - "modified": "2020-10-15T21:49:52.202Z", + "Web/CSS/border-left-style": { + "modified": "2020-10-15T21:12:37.629Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/cancelBubble": { - "modified": "2020-10-15T22:02:41.801Z", + "Web/CSS/border-left-width": { + "modified": "2020-10-15T21:12:47.533Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Fredchat" ] }, - "Web/API/Event/cancelable": { - "modified": "2020-10-15T21:49:52.647Z", + "Web/CSS/border-radius": { + "modified": "2020-10-15T21:28:07.970Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "someone", + "Prinz_Rana", + "teoli", + "Qu3tzalify" ] }, - "Web/API/Event/createEvent": { - "modified": "2020-10-15T21:37:47.725Z", + "Web/CSS/border-right": { + "modified": "2020-10-15T21:12:26.680Z", "contributors": [ - "loella16", - "Alexgruissan" + "SphinxKnight", + "fscholz", + "teoli", + "FredB", + "Yuichiro", + "Fredchat", + "Kyodev" ] }, - "Web/API/Event/currentTarget": { - "modified": "2020-10-22T12:52:32.833Z", + "Web/CSS/border-right-color": { + "modified": "2020-10-15T21:12:46.785Z", "contributors": [ - "funguy25637", "SphinxKnight", - "programgamer-real", - "loella16", - "Kalwyn", - "Nothus", - "P45QU10U" + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/defaultPrevented": { - "modified": "2020-10-15T21:24:14.815Z", + "Web/CSS/border-right-style": { + "modified": "2020-10-15T21:12:38.190Z", "contributors": [ - "loella16", - "robin850", - "fscholz", - "AshfaqHossain", - "Delapouite" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/eventPhase": { - "modified": "2020-10-15T21:50:01.057Z", + "Web/CSS/border-right-width": { + "modified": "2020-10-15T21:12:51.216Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/explicitOriginalTarget": { - "modified": "2019-03-23T22:52:51.091Z", + "Web/CSS/border-spacing": { + "modified": "2020-10-15T21:16:01.215Z", "contributors": [ "SphinxKnight", - "Hell_Carlito" + "edspeedy", + "L2o", + "teoli", + "Chealer", + "simonrenoult", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/Event/initEvent": { - "modified": "2020-10-15T21:08:43.295Z", + "Web/CSS/border-start-end-radius": { + "modified": "2020-10-15T22:13:16.127Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "tregagnon", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Event/isTrusted": { - "modified": "2019-03-23T22:25:09.425Z", + "Web/CSS/border-start-start-radius": { + "modified": "2020-10-15T22:13:16.075Z", "contributors": [ - "HugoCareil", - "mickro", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/Event/originalTarget": { - "modified": "2020-10-15T22:02:43.739Z", + "Web/CSS/border-style": { + "modified": "2020-10-15T21:12:31.333Z", "contributors": [ - "loella16" + "SphinxKnight", + "begmans", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/Event/preventDefault": { - "modified": "2020-10-15T21:24:03.795Z", + "Web/CSS/border-top": { + "modified": "2020-10-15T21:12:31.816Z", "contributors": [ - "watsab", - "loella16", - "Hell_Carlito", - "robin850", + "SphinxKnight", "fscholz", - "khalid32", - "Goofy", - "Delapouite", - "flo5589" + "teoli", + "FredB", + "Yuichiro", + "Fredchat", + "Kyodev" ] }, - "Web/API/Event/returnValue": { - "modified": "2020-10-15T22:02:41.674Z", + "Web/CSS/border-top-color": { + "modified": "2020-10-15T21:12:47.503Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/srcElement": { - "modified": "2020-10-15T21:50:04.182Z", + "Web/CSS/border-top-left-radius": { + "modified": "2020-10-15T21:09:14.310Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "Titouan", + "Sebastianz", + "teoli", + "ksad", + "FredB", + "Yuichiro", + "Fredchat" ] }, - "Web/API/Event/stopImmediatePropagation": { - "modified": "2020-10-15T21:50:10.053Z", + "Web/CSS/border-top-right-radius": { + "modified": "2020-10-15T21:09:22.219Z", "contributors": [ "SphinxKnight", - "ebear", - "Kalwyn" + "Sebastianz", + "teoli", + "ksad", + "FredB", + "Fredchat" ] }, - "Web/API/Event/stopPropagation": { - "modified": "2020-10-15T21:21:29.573Z", + "Web/CSS/border-top-style": { + "modified": "2020-10-15T21:12:48.569Z", "contributors": [ - "loella16", + "SphinxKnight", "teoli", - "robin850", - "fscholz", - "matthieusieben", - "Dgellow" + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/target": { - "modified": "2020-10-15T21:33:55.755Z", + "Web/CSS/border-top-width": { + "modified": "2020-10-15T21:12:47.537Z", "contributors": [ - "loella16", - "Kalwyn", - "P45QU10U" + "SphinxKnight", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Event/timeStamp": { - "modified": "2020-10-15T21:50:06.610Z", + "Web/CSS/border-width": { + "modified": "2020-10-15T21:10:07.340Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "Hinato15", + "teoli", + "FredB", + "Yuichiro", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/Event/type": { - "modified": "2020-10-15T21:50:06.134Z", + "Web/CSS/bottom": { + "modified": "2020-10-15T21:16:33.323Z", "contributors": [ - "loella16", - "Kalwyn" + "SphinxKnight", + "WhiteMoll", + "fscholz", + "teoli", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev", + "Elodouwen" ] }, - "Web/API/EventListener": { - "modified": "2019-03-23T22:25:52.637Z", + "Web/CSS/box-align": { + "modified": "2020-10-15T21:18:10.666Z", "contributors": [ - "loella16", - "Copen" + "SphinxKnight", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/EventSource": { - "modified": "2020-08-20T16:36:34.612Z", + "Web/CSS/box-decoration-break": { + "modified": "2020-10-15T21:39:24.954Z", "contributors": [ - "sylvain_floury", "SphinxKnight", - "Nothus" + "teoli" ] }, - "Web/API/EventSource/close": { - "modified": "2019-03-23T22:04:48.136Z", + "Web/CSS/box-direction": { + "modified": "2020-10-15T21:18:11.464Z", "contributors": [ - "Plotisateur" + "SphinxKnight", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/EventSource/onopen": { - "modified": "2020-10-15T22:17:18.152Z", + "Web/CSS/box-flex": { + "modified": "2020-10-15T21:18:07.577Z", "contributors": [ "SphinxKnight", - "nmerinian" + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/EventTarget": { - "modified": "2020-10-15T21:33:04.540Z", + "Web/CSS/box-flex-group": { + "modified": "2020-10-15T21:45:38.209Z", "contributors": [ - "tomderudder", - "abvll", "SphinxKnight", - "Gibus", - "Hell_Carlito", - "Iwagg", - "fscholz" + "teoli" ] }, - "Web/API/EventTarget/EventTarget": { - "modified": "2020-10-15T22:02:43.043Z", + "Web/CSS/box-lines": { + "modified": "2020-10-15T21:45:33.444Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli" ] }, - "Web/API/EventTarget/addEventListener": { - "modified": "2020-10-16T08:15:40.817Z", + "Web/CSS/box-ordinal-group": { + "modified": "2020-10-15T21:45:25.640Z", "contributors": [ - "vvvaleee", - "NemoNobobyPersonne", "SphinxKnight", - "Askrenteam", - "samuelClo", - "erwanjugand", - "loella16", - "cedeber", - "wbamberg", - "fscholz", - "teoli", - "Hasilt", - "Pragmateek", - "Delapouite", - "olibre", - "alexnormand", - "Piopier", - "Mgjbot", - "CNeo", - "BenoitL" + "teoli" ] }, - "Web/API/EventTarget/dispatchEvent": { - "modified": "2020-10-15T21:15:24.071Z", + "Web/CSS/box-orient": { + "modified": "2020-10-15T21:16:50.386Z", "contributors": [ - "loella16", - "Yvain", - "fscholz", - "khalid32", + "SphinxKnight", "teoli", - "Yukulele", - "Mgjbot", - "BenoitL", - "Fredchat" + "FredB", + "Fredchat", + "Kyodev" ] }, - "Web/API/EventTarget/removeEventListener": { - "modified": "2020-10-15T21:15:05.213Z", + "Web/CSS/box-pack": { + "modified": "2020-10-15T21:18:09.298Z", "contributors": [ "SphinxKnight", - "guillaumegarcia13", - "loella16", - "wbamberg", - "nclsndr", - "fscholz", "teoli", - "AshfaqHossain", - "Pkjmr", - "Mgjbot", - "BenoitL", + "FredB", + "Kyodev", "Fredchat" ] }, - "Web/API/ExtendableEvent": { - "modified": "2019-03-23T22:36:58.080Z", - "contributors": [ - "nobe4" - ] - }, - "Web/API/ExtendableEvent/ExtendableEvent": { - "modified": "2019-03-23T22:36:32.000Z", + "Web/CSS/box-shadow": { + "modified": "2020-10-15T21:09:23.643Z", "contributors": [ + "SphinxKnight", + "Bidjit", + "teoli", + "skinnyfoetusboy", "Goofy", - "nobe4" - ] - }, - "Web/API/ExtendableMessageEvent": { - "modified": "2019-03-23T22:36:23.615Z", - "contributors": [ - "nobe4" + "FredB" ] }, - "Web/API/ExtendableMessageEvent/ExtendableMessageEvent": { - "modified": "2019-03-23T22:35:53.292Z", + "Web/CSS/box-sizing": { + "modified": "2020-10-15T21:24:49.409Z", "contributors": [ - "nobe4" + "tristantheb", + "SphinxKnight", + "Mr21", + "pldz", + "lehollandaisvolant", + "Sebastianz", + "teoli", + "jsilvestre", + "tregagnon", + "FredB" ] }, - "Web/API/ExtendableMessageEvent/data": { - "modified": "2019-03-23T22:34:19.930Z", + "Web/CSS/break-after": { + "modified": "2020-10-15T21:44:47.797Z", "contributors": [ "SphinxKnight", - "nobe4" + "edspeedy" ] }, - "Web/API/ExtendableMessageEvent/lastEventId": { - "modified": "2019-03-18T21:15:10.720Z", + "Web/CSS/break-before": { + "modified": "2020-10-15T21:44:48.986Z", "contributors": [ - "nobe4" + "SphinxKnight" ] }, - "Web/API/ExtendableMessageEvent/origin": { - "modified": "2019-03-23T22:30:09.594Z", + "Web/CSS/break-inside": { + "modified": "2020-10-15T21:44:48.451Z", "contributors": [ - "nobe4" + "bershanskiy", + "SphinxKnight", + "edspeedy" ] }, - "Web/API/ExtendableMessageEvent/ports": { - "modified": "2019-03-23T22:30:10.559Z", + "Web/CSS/calc()": { + "modified": "2020-11-04T09:09:07.893Z", "contributors": [ - "nobe4" + "chrisdavidmills", + "ludivinepoussier", + "SphinxKnight", + "mborges", + "L2o", + "mrstork", + "prayash", + "teoli", + "nhoizey", + "nicodel", + "tregagnon", + "FredB" ] }, - "Web/API/FeaturePolicy": { - "modified": "2020-10-31T09:28:54.428Z", + "Web/CSS/caption-side": { + "modified": "2020-10-15T21:15:41.669Z", "contributors": [ - "JNa0" + "SphinxKnight", + "fscholz", + "Sebastianz", + "Sheppy", + "teoli", + "FredB", + "BenoitL", + "*.Har(d)t" ] }, - "Web/API/FeaturePolicy/allowedFeatures": { - "modified": "2020-11-05T15:31:32.647Z", + "Web/CSS/caret-color": { + "modified": "2020-10-15T21:51:25.881Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/FeaturePolicy/allowsFeature": { - "modified": "2020-11-05T15:45:40.562Z", + "Web/CSS/clamp()": { + "modified": "2020-11-05T09:58:32.959Z", "contributors": [ - "JNa0" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/FeaturePolicy/features": { - "modified": "2020-11-05T15:35:08.623Z", + "Web/CSS/clear": { + "modified": "2020-10-15T21:18:05.718Z", "contributors": [ - "JNa0" + "SphinxKnight", + "fscholz", + "Sebastianz", + "J.DMB", + "louuis", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/FeaturePolicy/getAllowlistForFeature": { - "modified": "2020-11-05T15:30:12.248Z", + "Web/CSS/clip": { + "modified": "2020-10-15T21:15:46.162Z", "contributors": [ - "JNa0" + "SphinxKnight", + "mrstork", + "Sebastianz", + "teoli", + "FredB", + "Mgjbot", + "Valacar", + "Elethiomel", + "Fredchat" ] }, - "Web/API/FederatedCredential": { - "modified": "2020-10-15T22:15:42.146Z", + "Web/CSS/clip-path": { + "modified": "2020-10-15T21:26:12.097Z", "contributors": [ - "SphinxKnight" + "brunostasse", + "SphinxKnight", + "guv3n", + "teoli", + "Philippe_Lambotte" ] }, - "Web/API/FederatedCredential/FederatedCredential": { - "modified": "2020-10-15T22:15:43.153Z", + "Web/CSS/color": { + "modified": "2020-10-15T21:15:41.703Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Sebastianz", + "teoli", + "louuis", + "Golmote", + "FredB", + "philippe97", + "Mgjbot", + "BenoitL", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/FederatedCredential/provider": { - "modified": "2020-10-15T22:15:43.967Z", + "Web/CSS/color-adjust": { + "modified": "2020-10-15T22:07:37.043Z", "contributors": [ "SphinxKnight" ] }, - "Web/API/FetchEvent": { - "modified": "2019-03-23T22:37:05.029Z", - "contributors": [ - "NuclearPony" - ] - }, - "Web/API/Fetch_API": { - "modified": "2020-10-15T21:42:27.599Z", + "Web/CSS/column-count": { + "modified": "2020-10-15T21:20:32.539Z", "contributors": [ - "codingk8", - "jonathan.cregut", - "Graziellah", - "Elianel", - "blr21560", - "jean-pierre.gay" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Fetch_API/Basic_concepts": { - "modified": "2019-07-08T10:32:12.030Z", + "Web/CSS/column-fill": { + "modified": "2020-10-15T21:20:32.258Z", "contributors": [ - "ThCarrere", - "BabaDelNorte" + "SphinxKnight", + "fscholz", + "Munto", + "Sebastianz", + "teoli", + "FredB", + "Delapouite" ] }, - "Web/API/Fetch_API/Using_Fetch": { - "modified": "2020-10-15T21:44:53.941Z", + "Web/CSS/column-gap": { + "modified": "2020-10-15T21:20:34.750Z", "contributors": [ - "smeden-lod", - "chrisdavidmills", - "ylerjen", - "thibaultboursier", - "Krap", - "laem", - "chaBiselx", - "elie_michel", - "AlainGourves", - "Xstoudi", - "P45QU10U", - "JeffD" + "SphinxKnight", + "mrstork", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/File": { - "modified": "2020-10-15T21:10:58.299Z", + "Web/CSS/column-rule": { + "modified": "2020-10-15T21:20:34.908Z", "contributors": [ - "Watilin", - "wbamberg", - "nop", - "frassinier", - "mireero", + "SphinxKnight", + "fscholz", + "Sebastianz", "teoli", - "tregagnon", - "mekal" + "FredB" ] }, - "Web/API/File/Using_files_from_web_applications": { - "modified": "2019-08-27T03:14:59.087Z", + "Web/CSS/column-rule-color": { + "modified": "2020-10-15T21:20:38.875Z", "contributors": [ "SphinxKnight", - "chrisdavidmills", - "Copen", - "jmh", - "Mr21", - "vava", - "m2c", - "Goofy", - "LoeWzukW", - "jean_pierre" + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/File/fileName": { - "modified": "2019-03-18T21:38:44.194Z", + "Web/CSS/column-rule-style": { + "modified": "2020-10-15T21:20:38.835Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/File/fileSize": { - "modified": "2019-03-18T21:38:36.545Z", + "Web/CSS/column-rule-width": { + "modified": "2020-10-15T21:20:37.812Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/FileList": { - "modified": "2020-10-15T21:10:58.823Z", + "Web/CSS/column-span": { + "modified": "2020-10-15T21:20:33.008Z", "contributors": [ "SphinxKnight", - "Cid", + "fscholz", + "Sebastianz", + "louuis", "teoli", - "mekal", - "Goofy", - "tregagnon" + "FredB" ] }, - "Web/API/FileReader": { - "modified": "2019-06-10T09:09:17.422Z", + "Web/CSS/column-width": { + "modified": "2020-10-15T21:20:31.296Z", "contributors": [ - "jerominejournet", "SphinxKnight", - "EmmanuelBeziat", - "NeptuneK", - "romainlebreton", + "fscholz", + "Sebastianz", "teoli", - "fabien", - "Laowai", - "emersion", - "mekal", - "Jack_Duthen", - "tregagnon" + "FredB" ] }, - "Web/API/FileReader/FileReader": { - "modified": "2019-12-05T20:52:27.264Z", + "Web/CSS/columns": { + "modified": "2020-10-15T21:20:34.997Z", "contributors": [ - "Hessabra" + "SphinxKnight", + "fscholz", + "Sebastianz", + "louuis", + "teoli", + "FredB" ] }, - "Web/API/FileReader/readAsArrayBuffer": { - "modified": "2020-10-15T22:00:47.285Z", + "Web/CSS/conic-gradient()": { + "modified": "2020-11-05T10:00:17.716Z", "contributors": [ - "thebrave", - "roptch", - "loella16", - "notnope" + "chrisdavidmills", + "SphinxKnight", + "AlainGourves" ] }, - "Web/API/FileReader/readAsBinaryString": { - "modified": "2020-10-15T22:20:45.031Z", + "Web/CSS/contain": { + "modified": "2020-10-15T21:47:58.553Z", "contributors": [ - "thebrave" + "SphinxKnight", + "ebrehault", + "vdesdoigts" ] }, - "Web/API/FileReader/readAsDataURL": { - "modified": "2019-03-23T22:14:23.679Z", + "Web/CSS/content": { + "modified": "2020-10-15T21:09:16.938Z", "contributors": [ - "Wintersunshine-Do" + "SphinxKnight", + "HerveRenault", + "teoli", + "Sebastianz", + "FredB" ] }, - "Web/API/FileReader/readAsText": { - "modified": "2019-03-18T21:45:42.885Z", + "Web/CSS/counter()": { + "modified": "2020-11-09T07:18:11.964Z", "contributors": [ - "Blipz", - "jeanpul" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/FileRequest": { - "modified": "2019-03-18T21:38:32.972Z", + "Web/CSS/counter-increment": { + "modified": "2020-10-15T21:17:58.093Z", "contributors": [ - "loella16" + "SphinxKnight", + "teoli", + "FredB", + "Fredchat", + "VincentN" ] }, - "Web/API/FileRequest/lockedFile": { - "modified": "2019-03-18T21:38:29.049Z", + "Web/CSS/counter-reset": { + "modified": "2020-10-15T21:14:15.574Z", "contributors": [ - "loella16" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB", + "fscholz", + "Fredchat", + "VincentN" ] }, - "Web/API/FileRequest/onprogress": { - "modified": "2019-03-18T21:38:33.597Z", + "Web/CSS/counter-set": { + "modified": "2020-10-15T22:20:18.195Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/FocusEvent": { - "modified": "2020-10-15T21:50:08.822Z", + "Web/CSS/counters()": { + "modified": "2020-11-09T07:19:24.761Z", "contributors": [ - "loella16", - "Kalwyn" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/Force_Touch_events": { - "modified": "2019-03-18T21:38:38.023Z", + "Web/CSS/cross-fade()": { + "modified": "2020-11-09T07:22:14.922Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/FormData": { - "modified": "2020-10-15T21:21:44.510Z", + "Web/CSS/cursor": { + "modified": "2020-10-15T21:12:05.631Z", "contributors": [ - "tristantheb", - "dhovart", - "WSH", + "SphinxKnight", + "Grahack", + "mrstork", + "Sebastianz", "teoli", - "jdvauguet", - "maxpain2011" + "Golmote", + "FredB", + "loranger", + "Julien.stuby", + "Mgjbot", + "Fredchat", + "Kyodev", + "Sheppy" ] }, - "Web/API/FormData/FormData": { - "modified": "2020-10-15T22:10:44.093Z", + "Web/CSS/custom-ident": { + "modified": "2019-08-05T13:45:05.582Z", "contributors": [ - "tristantheb", "SphinxKnight", - "Pandazaur", - "ThreadElric" + "Krenair", + "teoli", + "FredB" ] }, - "Web/API/FormData/Utilisation_objets_FormData": { - "modified": "2019-03-23T22:14:27.375Z", + "Web/CSS/dimension": { + "modified": "2020-10-15T22:14:27.905Z", "contributors": [ - "Wintersunshine-Do" + "SphinxKnight" ] }, - "Web/API/FormData/append": { - "modified": "2020-10-15T22:10:52.044Z", + "Web/CSS/direction": { + "modified": "2020-10-15T21:16:36.245Z", "contributors": [ - "tristantheb", - "ThreadElric", - "cyppan" + "SphinxKnight", + "ncoden", + "Sebastianz", + "teoli", + "ksad", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/FormData/delete": { - "modified": "2020-10-15T22:29:17.750Z", + "Web/CSS/display": { + "modified": "2020-10-15T21:15:53.886Z", "contributors": [ - "tristantheb" + "johannpinson", + "SphinxKnight", + "cdjoubert", + "NemoNobobyPersonne", + "Baptistou", + "jwhitlock", + "friendofweb", + "ThibautMln", + "jean-pierre.gay", + "renoirb", + "Sebastianz", + "teoli", + "Golmote", + "FredB", + "Mgjbot", + "BenoitL", + "Fredchat", + "Kyodev" ] }, - "Web/API/FormData/entries": { - "modified": "2020-10-15T21:55:57.814Z", + "Web/CSS/display-box": { + "modified": "2020-10-15T22:10:05.031Z", "contributors": [ - "tristantheb", - "Alexandre-cibot" + "SphinxKnight" ] }, - "Web/API/FormData/get": { - "modified": "2020-10-15T22:29:19.506Z", + "Web/CSS/display-inside": { + "modified": "2020-10-15T22:09:59.712Z", "contributors": [ - "tristantheb" + "SphinxKnight" ] }, - "Web/API/FormData/getAll": { - "modified": "2020-10-15T22:29:17.809Z", + "Web/CSS/display-internal": { + "modified": "2020-10-15T22:10:02.353Z", "contributors": [ - "tristantheb" + "SphinxKnight" ] }, - "Web/API/FormData/has": { - "modified": "2020-10-15T22:29:23.241Z", + "Web/CSS/display-legacy": { + "modified": "2020-10-15T22:10:07.242Z", "contributors": [ - "tristantheb" + "SphinxKnight" ] }, - "Web/API/FormData/keys": { - "modified": "2020-10-15T22:29:23.766Z", + "Web/CSS/display-listitem": { + "modified": "2020-10-15T22:10:07.777Z", "contributors": [ - "tristantheb" + "SphinxKnight" ] }, - "Web/API/FormData/set": { - "modified": "2020-10-15T22:29:23.778Z", + "Web/CSS/display-outside": { + "modified": "2020-10-15T22:10:04.504Z", "contributors": [ - "tristantheb" + "SphinxKnight" ] }, - "Web/API/FormData/values": { - "modified": "2020-10-15T22:29:22.795Z", + "Web/CSS/element()": { + "modified": "2020-11-10T11:06:03.387Z", "contributors": [ - "tristantheb" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GainNode": { - "modified": "2019-03-23T23:28:24.109Z", + "Web/CSS/empty-cells": { + "modified": "2020-10-15T21:09:02.588Z", "contributors": [ - "marie-ototoi", + "SphinxKnight", "fscholz", + "Sebastianz", "teoli", - "vava", - "tregagnon", - "Delapouite", - "dexterneo" - ] - }, - "Web/API/Gamepad": { - "modified": "2020-10-15T21:50:09.762Z", - "contributors": [ - "SphinxKnight", - "ea1000", - "Kalwyn" + "FredB" ] }, - "Web/API/Gamepad_API": { - "modified": "2020-10-15T22:22:14.027Z", + "Web/CSS/env()": { + "modified": "2020-11-10T11:09:42.633Z", "contributors": [ - "jogemu" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/Geolocation": { - "modified": "2019-03-23T22:12:18.756Z", + "Web/CSS/filter": { + "modified": "2020-10-15T21:21:38.971Z", "contributors": [ - "FranckGrosDubois" + "escattone", + "SphinxKnight", + "aziaziazi", + "Sebastianz", + "Prinz_Rana", + "teoli", + "emersion", + "wakka27", + "flexbox", + "FredB", + "thenew" ] }, - "Web/API/Geolocation/clearWatch": { - "modified": "2019-03-23T22:12:27.261Z", + "Web/CSS/filter-function": { + "modified": "2019-04-26T03:07:50.831Z", "contributors": [ - "FranckGrosDubois" + "SphinxKnight" ] }, - "Web/API/Geolocation/getCurrentPosition": { - "modified": "2020-10-15T21:54:12.372Z", + "Web/CSS/filter-function/blur()": { + "modified": "2020-11-05T09:45:36.368Z", "contributors": [ - "SphinxKnight", - "Nathan_Mercieca", - "FranckGrosDubois" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/Geolocation/watchPosition": { - "modified": "2019-03-23T22:12:20.299Z", + "Web/CSS/filter-function/brightness()": { + "modified": "2020-11-05T09:57:14.227Z", "contributors": [ - "FranckGrosDubois" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GeolocationCoordinates": { - "modified": "2019-12-10T09:34:37.988Z", + "Web/CSS/filter-function/contrast()": { + "modified": "2020-11-09T07:20:47.447Z", "contributors": [ "chrisdavidmills", - "DylanGauthier" + "SphinxKnight" ] }, - "Web/API/GeolocationPosition": { - "modified": "2020-10-15T22:26:46.525Z", + "Web/CSS/filter-function/drop-shadow()": { + "modified": "2020-11-10T10:58:25.362Z", "contributors": [ - "Voulto", - "chrisdavidmills" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GeolocationPosition/timestamp": { - "modified": "2020-10-15T22:26:47.312Z", + "Web/CSS/filter-function/grayscale()": { + "modified": "2020-11-10T11:18:37.733Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GeolocationPositionError": { - "modified": "2020-10-15T22:26:48.406Z", + "Web/CSS/filter-function/hue-rotate()": { + "modified": "2020-11-16T08:50:37.620Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/Geolocation_API": { - "modified": "2020-10-15T21:20:47.889Z", + "Web/CSS/filter-function/invert()": { + "modified": "2020-11-16T08:55:25.015Z", "contributors": [ - "SphinxKnight", - "joellord", - "lotfire24", - "edouard", - "fluxine", - "Nigel_Sheldon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GestureEvent": { - "modified": "2019-03-18T21:38:40.642Z", + "Web/CSS/filter-function/opacity()": { + "modified": "2020-11-16T09:07:46.418Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers": { - "modified": "2019-03-23T23:01:24.395Z", + "Web/CSS/filter-function/saturate()": { + "modified": "2020-11-30T10:11:43.128Z", "contributors": [ - "loella16", - "fscholz" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onabort": { - "modified": "2019-03-23T22:29:18.151Z", + "Web/CSS/filter-function/sepia()": { + "modified": "2020-11-30T10:24:25.787Z", "contributors": [ - "NemoNobobyPersonne", - "Dwaaren" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onauxclick": { - "modified": "2020-10-15T22:33:47.986Z", + "Web/CSS/fit-content": { + "modified": "2020-10-15T21:50:10.072Z", "contributors": [ - "Voulto" + "SphinxKnight", + "lp177" ] }, - "Web/API/GlobalEventHandlers/onblur": { - "modified": "2019-03-23T23:46:41.843Z", + "Web/CSS/flex": { + "modified": "2020-10-15T21:19:44.037Z", "contributors": [ - "OpenStark", + "julienw", + "Thyme1152", + "SphinxKnight", + "Hartesic", + "sylvainpolletvillard", "fscholz", + "Sebastianz", + "Mahan91", "teoli", - "khalid32", - "BenoitL", - "Pitoutompoilu" + "Golmote", + "FredB", + "Delapouite", + "lalop", + "rd6137" ] }, - "Web/API/GlobalEventHandlers/onchange": { - "modified": "2019-03-23T23:47:11.218Z", + "Web/CSS/flex-basis": { + "modified": "2020-10-15T21:44:13.576Z", "contributors": [ - "fscholz", - "teoli", - "AshfaqHossain", - "BenoitL" + "SphinxKnight", + "JonathanMM", + "kristofbc" ] }, - "Web/API/GlobalEventHandlers/onclick": { - "modified": "2020-03-06T22:16:53.219Z", + "Web/CSS/flex-direction": { + "modified": "2020-10-15T21:26:06.082Z", "contributors": [ - "noelmace", - "sudwebdesign", - "williamdes", - "Bpruneau", - "louity", - "Daimanu06", + "SphinxKnight", + "robiseb", + "Goofy", "fscholz", + "Sebastianz", "teoli", - "jsx", - "Priam", - "Mgjbot", - "BenoitL" + "Golmote", + "PifyZ" ] }, - "Web/API/GlobalEventHandlers/onclose": { - "modified": "2019-03-23T22:45:51.255Z", + "Web/CSS/flex-flow": { + "modified": "2020-10-15T21:40:46.682Z", "contributors": [ "SphinxKnight", - "smumu" + "jmpp" ] }, - "Web/API/GlobalEventHandlers/ondblclick": { - "modified": "2019-03-23T23:46:40.744Z", + "Web/CSS/flex-grow": { + "modified": "2020-10-15T21:29:35.886Z", "contributors": [ + "SphinxKnight", "fscholz", - "teoli", - "khalid32", - "BenoitL", - "Pitoutompoilu" + "Sebastianz", + "mondayking" ] }, - "Web/API/GlobalEventHandlers/onerror": { - "modified": "2019-03-23T22:47:31.401Z", + "Web/CSS/flex-shrink": { + "modified": "2020-10-15T21:44:15.655Z", "contributors": [ - "NemoNobobyPersonne", - "Hell_Carlito", - "FGM", - "ylerjen" + "SphinxKnight", + "hvanhonacker", + "tifabien" ] }, - "Web/API/GlobalEventHandlers/onfocus": { - "modified": "2019-03-23T23:47:18.451Z", + "Web/CSS/flex-wrap": { + "modified": "2020-10-15T21:42:48.548Z", "contributors": [ - "fscholz", - "teoli", - "AshfaqHossain", - "BenoitL" + "SphinxKnight", + "lhapaipai", + "YoruNoHikage", + "stephaniehobson", + "ss-bb" ] }, - "Web/API/GlobalEventHandlers/ongotpointercapture": { - "modified": "2020-10-15T22:16:22.004Z", + "Web/CSS/flex_value": { + "modified": "2020-10-15T21:50:03.779Z", "contributors": [ - "fmartin5" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/GlobalEventHandlers/onkeydown": { - "modified": "2019-03-24T00:01:53.937Z", + "Web/CSS/float": { + "modified": "2020-10-15T21:14:08.559Z", "contributors": [ + "SphinxKnight", + "tnga", "fscholz", "teoli", - "AshfaqHossain", - "Julien.stuby", - "BenoitL", + "FredB", "Mgjbot", - "Pitoutompoilu" + "Nathymig", + "Elethiomel", + "Fredchat" ] }, - "Web/API/GlobalEventHandlers/onkeypress": { - "modified": "2019-03-24T00:01:54.246Z", + "Web/CSS/font": { + "modified": "2020-10-15T21:15:25.017Z", "contributors": [ + "yvisherve", + "SphinxKnight", + "edspeedy", "fscholz", + "Sebastianz", "teoli", - "AshfaqHossain", - "Julien.stuby", - "BenoitL", - "Pitoutompoilu" + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/GlobalEventHandlers/onkeyup": { - "modified": "2019-03-24T00:01:52.086Z", + "Web/CSS/font-family": { + "modified": "2020-10-15T21:16:01.425Z", "contributors": [ + "SphinxKnight", "fscholz", + "Sebastianz", "teoli", - "khalid32", - "Julien.stuby", - "Pitoutompoilu", - "Chbok" + "FredB", + "Sheppy", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/GlobalEventHandlers/onload": { - "modified": "2019-03-23T23:45:30.027Z", + "Web/CSS/font-feature-settings": { + "modified": "2020-10-15T21:19:34.721Z", "contributors": [ - "fscholz", + "SphinxKnight", + "Krenair", + "Sebastianz", "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "FredB" ] }, - "Web/API/GlobalEventHandlers/onloadend": { - "modified": "2019-03-18T21:35:41.854Z", + "Web/CSS/font-kerning": { + "modified": "2020-10-15T21:38:55.741Z", "contributors": [ - "loella16" + "SphinxKnight", + "Sebastianz", + "B_M" ] }, - "Web/API/GlobalEventHandlers/onloadstart": { - "modified": "2020-10-15T22:04:38.335Z", + "Web/CSS/font-language-override": { + "modified": "2020-10-15T21:44:15.835Z", "contributors": [ - "fscholz", - "loella16" + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onmousedown": { - "modified": "2019-03-23T23:47:18.721Z", + "Web/CSS/font-optical-sizing": { + "modified": "2020-10-15T22:05:43.637Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/CSS/font-size": { + "modified": "2020-10-15T21:16:35.611Z", "contributors": [ + "yaaax", + "JNa0", + "SphinxKnight", + "Kocal", + "Bringdal", "fscholz", "teoli", - "khalid32", - "BenoitL" + "Fredchat", + "louuis", + "FredB", + "anthony.gaidot", + "Mgjbot", + "Kyodev" ] }, - "Web/API/GlobalEventHandlers/onmousemove": { - "modified": "2019-04-24T11:41:27.577Z", + "Web/CSS/font-size-adjust": { + "modified": "2020-10-15T21:15:30.021Z", "contributors": [ - "JyTosTT", + "SphinxKnight", "fscholz", + "Sebastianz", "teoli", - "Hasilt", - "Priam", + "FredB", "Mgjbot", - "BenoitL" + "BenoitL", + "Fredchat", + "Kyodev" ] }, - "Web/API/GlobalEventHandlers/onmouseout": { - "modified": "2019-03-23T23:47:15.838Z", + "Web/CSS/font-smooth": { + "modified": "2020-10-15T21:44:12.301Z", + "contributors": [ + "SphinxKnight", + "Kerumen" + ] + }, + "Web/CSS/font-stretch": { + "modified": "2020-11-30T11:20:47.071Z", "contributors": [ + "Moyogo", + "SphinxKnight", "fscholz", + "Sebastianz", "teoli", - "khalid32", - "BenoitL" + "GrCOTE7", + "FredB", + "Valacar", + "Mgjbot", + "Fredchat" ] }, - "Web/API/GlobalEventHandlers/onmouseover": { - "modified": "2019-03-23T23:47:22.003Z", + "Web/CSS/font-style": { + "modified": "2020-10-15T21:15:34.339Z", + "contributors": [ + "n3wborn", + "SphinxKnight", + "teoli", + "FredB", + "Mgjbot", + "Domif", + "Fredchat" + ] + }, + "Web/CSS/font-synthesis": { + "modified": "2020-10-30T07:13:04.039Z", + "contributors": [ + "JNa0", + "SphinxKnight" + ] + }, + "Web/CSS/font-variant": { + "modified": "2020-10-15T21:15:18.085Z", "contributors": [ + "SphinxKnight", + "B_M", "fscholz", + "Gibus", + "Sebastianz", + "Igro", "teoli", - "mimzi_fahia", + "FredB", "Mgjbot", - "Chbok" + "Fredchat" ] }, - "Web/API/GlobalEventHandlers/onmouseup": { - "modified": "2019-03-23T23:47:26.350Z", + "Web/CSS/font-variant-alternates": { + "modified": "2020-10-15T21:44:15.520Z", "contributors": [ - "fscholz", - "teoli", - "mimzi_fahia", - "Chbok" + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onreset": { - "modified": "2019-03-18T21:35:42.230Z", + "Web/CSS/font-variant-caps": { + "modified": "2020-10-29T08:39:50.937Z", "contributors": [ - "loella16" + "JNa0", + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onresize": { - "modified": "2019-03-23T23:47:25.748Z", + "Web/CSS/font-variant-east-asian": { + "modified": "2020-10-15T21:44:08.241Z", "contributors": [ - "ArthurMaurer", - "fscholz", - "teoli", - "khalid32", - "Chbok" + "SphinxKnight" ] }, - "Web/API/GlobalEventHandlers/onscroll": { - "modified": "2019-03-23T23:49:06.629Z", + "Web/CSS/font-variant-ligatures": { + "modified": "2020-10-15T21:39:41.117Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "BenoitL" + "SphinxKnight", + "nfriedli" ] }, - "Web/API/GlobalEventHandlers/onselect": { - "modified": "2020-11-16T16:15:42.515Z", + "Web/CSS/font-variant-numeric": { + "modified": "2020-10-15T21:44:06.991Z", "contributors": [ - "NemoNobobyPersonne", - "s6mon" + "SphinxKnight" ] }, - "Web/API/HTMLBRElement": { - "modified": "2019-03-23T23:30:24.531Z", + "Web/CSS/font-variant-position": { + "modified": "2020-10-15T21:43:55.206Z", "contributors": [ - "teoli", - "khalid32", - "tregagnon" + "SphinxKnight" ] }, - "Web/API/HTMLBaseElement": { - "modified": "2019-11-23T18:10:52.263Z", + "Web/CSS/font-variation-settings": { + "modified": "2020-10-15T21:52:12.257Z", "contributors": [ - "regseb", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/HTMLBaseFontElement": { - "modified": "2020-10-15T22:35:14.285Z", + "Web/CSS/font-weight": { + "modified": "2020-10-15T21:15:14.602Z", "contributors": [ - "Voulto" + "SphinxKnight", + "ygarbage", + "fscholz", + "Sebastianz", + "teoli", + "tregagnon", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/API/HTMLBodyElement": { - "modified": "2019-04-19T13:59:15.144Z", + "Web/CSS/frequency": { + "modified": "2020-10-15T21:24:47.689Z", "contributors": [ "SphinxKnight", - "jmh" + "Sebastianz", + "Prinz_Rana", + "fscholz", + "teoli", + "FredB", + "Goofy" ] }, - "Web/API/HTMLButtonElement": { - "modified": "2020-10-15T22:04:39.590Z", + "Web/CSS/frequency-percentage": { + "modified": "2020-10-15T22:14:25.485Z", "contributors": [ - "Voulto", - "dragon38800", - "fscholz" + "SphinxKnight" ] }, - "Web/API/HTMLButtonElement/labels": { - "modified": "2020-10-15T22:04:38.333Z", + "Web/CSS/gap": { + "modified": "2020-10-15T22:05:45.614Z", "contributors": [ - "loella16" + "JNa0", + "SphinxKnight" ] }, - "Web/API/HTMLCanvasElement": { - "modified": "2019-03-23T23:28:23.922Z", + "Web/CSS/gradient": { + "modified": "2020-10-15T21:46:27.099Z", "contributors": [ - "wbamberg", - "khalid32", - "Delapouite", - "Bobo" + "SphinxKnight" ] }, - "Web/API/HTMLCanvasElement/getContext": { - "modified": "2019-03-23T22:11:53.953Z", + "Web/CSS/grid": { + "modified": "2020-10-15T21:43:57.613Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/HTMLCanvasElement/height": { - "modified": "2020-10-15T21:54:28.516Z", + "Web/CSS/grid-area": { + "modified": "2020-10-15T21:43:57.849Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/HTMLCollection": { - "modified": "2019-03-23T23:00:36.863Z", + "Web/CSS/grid-auto-columns": { + "modified": "2020-10-15T21:43:52.496Z", "contributors": [ - "loella16", - "jean-pierre.gay", - "vava", - "Raison" + "SphinxKnight" ] }, - "Web/API/HTMLCollection/item": { - "modified": "2020-04-01T12:50:44.774Z", + "Web/CSS/grid-auto-flow": { + "modified": "2020-10-15T21:45:27.360Z", "contributors": [ - "olivierdupon", - "OhNiice" + "SphinxKnight" ] }, - "Web/API/HTMLContentElement": { - "modified": "2019-03-23T22:32:17.762Z", + "Web/CSS/grid-auto-rows": { + "modified": "2020-10-15T21:43:57.525Z", "contributors": [ - "nobe4" + "SphinxKnight" ] }, - "Web/API/HTMLContentElement/getDistributedNodes": { - "modified": "2019-03-18T20:46:56.376Z", + "Web/CSS/grid-column": { + "modified": "2020-10-15T21:44:00.007Z", "contributors": [ - "dragon38800", - "nobe4" + "SphinxKnight" ] }, - "Web/API/HTMLContentElement/select": { - "modified": "2019-03-18T20:46:55.702Z", + "Web/CSS/grid-column-end": { + "modified": "2020-10-15T21:43:52.597Z", "contributors": [ - "dragon38800", - "nobe4" + "SphinxKnight" ] }, - "Web/API/HTMLDialogElement": { - "modified": "2020-10-15T22:34:56.116Z", + "Web/CSS/grid-column-start": { + "modified": "2020-10-15T21:43:52.983Z", "contributors": [ - "neoncitylights" + "SphinxKnight" ] }, - "Web/API/HTMLDialogElement/close_event": { - "modified": "2020-10-15T22:34:54.370Z", + "Web/CSS/grid-row": { + "modified": "2020-10-15T21:43:47.449Z", "contributors": [ - "tomderudder" + "SphinxKnight" ] }, - "Web/API/HTMLDivElement": { - "modified": "2020-10-15T21:40:05.712Z", + "Web/CSS/grid-row-end": { + "modified": "2020-10-15T21:43:54.687Z", "contributors": [ - "SphinxKnight", - "dragon38800", - "jmh" + "SphinxKnight" ] }, - "Web/API/HTMLDocument": { - "modified": "2019-03-23T22:33:08.931Z", + "Web/CSS/grid-row-start": { + "modified": "2020-10-15T21:43:46.372Z", "contributors": [ - "crica" + "SphinxKnight", + "Goofy" ] }, - "Web/API/HTMLElement": { - "modified": "2019-03-23T23:30:24.040Z", + "Web/CSS/grid-template": { + "modified": "2020-10-15T21:43:56.133Z", "contributors": [ - "AshfaqHossain", - "Jeremie", - "tregagnon" + "SphinxKnight", + "BenJ-R" ] }, - "Web/API/HTMLElement/beforeinput_event": { - "modified": "2020-10-15T22:20:11.192Z", + "Web/CSS/grid-template-areas": { + "modified": "2020-10-15T21:43:51.408Z", "contributors": [ - "Watilin" + "SphinxKnight" ] }, - "Web/API/HTMLElement/change_event": { - "modified": "2020-10-15T21:34:35.319Z", + "Web/CSS/grid-template-columns": { + "modified": "2020-10-15T21:43:47.170Z", "contributors": [ - "tristantheb", - "SphinxKnight", - "fscholz", - "loella16", - "Kalwyn", - "karyngaudreau" + "SphinxKnight" ] }, - "Web/API/HTMLElement/click": { - "modified": "2019-03-23T23:47:15.393Z", + "Web/CSS/grid-template-rows": { + "modified": "2020-10-15T21:43:51.505Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "tregagnon", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/HTMLElement/contentEditable": { - "modified": "2019-03-23T22:15:40.936Z", + "Web/CSS/hanging-punctuation": { + "modified": "2020-10-15T21:54:18.228Z", "contributors": [ - "loella16", - "ebear" + "SphinxKnight" ] }, - "Web/API/HTMLElement/dataset": { - "modified": "2020-10-15T21:37:22.950Z", + "Web/CSS/height": { + "modified": "2020-10-15T21:15:21.230Z", "contributors": [ - "abvll", - "P45QU10U", - "tburette", - "Hell_Carlito", - "Laurent_Lyaudet" + "SphinxKnight", + "MaxEvron", + "fscholz", + "Sebastianz", + "teoli", + "dabus", + "FredB", + "Mgjbot", + "Aurelgadjo", + "Fredchat" ] }, - "Web/API/HTMLElement/dir": { - "modified": "2019-03-24T00:13:15.143Z", + "Web/CSS/hyphens": { + "modified": "2020-10-15T21:09:12.598Z", "contributors": [ - "fscholz", + "SphinxKnight", + "Menkid", + "Sebastianz", + "SJW", "teoli", - "khalid32", - "tregagnon", - "dextra", - "BenoitL" + "MorganeH", + "FredB" ] }, - "Web/API/HTMLElement/focus": { - "modified": "2019-10-10T16:45:54.605Z", + "Web/CSS/image": { + "modified": "2020-10-15T21:08:52.732Z", "contributors": [ - "HRobineau", - "a-mt", - "vava", + "SphinxKnight", + "jsx", + "slayslot", + "mrstork", "fscholz", "teoli", - "jsx", - "tregagnon", - "BenoitL" + "FredB", + "Goofy" ] }, - "Web/API/HTMLElement/hidden": { - "modified": "2020-10-15T22:34:15.806Z", + "Web/CSS/image()": { + "modified": "2020-11-16T08:52:05.684Z", "contributors": [ - "asgmeonerandom" + "chrisdavidmills", + "escattone", + "SphinxKnight", + "estelle", + "ExE-Boss" ] }, - "Web/API/HTMLElement/input_event": { - "modified": "2019-04-17T07:33:49.618Z", + "Web/CSS/image-orientation": { + "modified": "2020-10-15T21:19:41.469Z", "contributors": [ "SphinxKnight", - "fscholz", - "loella16", + "prayash", "Sebastianz", - "LoicPuchaux" + "teoli", + "FredB" ] }, - "Web/API/HTMLElement/isContentEditable": { - "modified": "2019-03-23T22:50:36.754Z", + "Web/CSS/image-set()": { + "modified": "2020-11-16T08:53:24.499Z", "contributors": [ - "loella16", - "vava" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/HTMLElement/lang": { - "modified": "2019-03-23T23:46:31.690Z", + "Web/CSS/ime-mode": { + "modified": "2020-10-15T21:16:34.560Z", "contributors": [ - "fscholz", + "SphinxKnight", + "Sebastianz", "teoli", - "AshfaqHossain", - "tregagnon", + "FredB", + "Mgjbot", "BenoitL" ] }, - "Web/API/HTMLElement/offsetHeight": { - "modified": "2019-03-24T00:05:55.047Z", + "Web/CSS/inherit": { + "modified": "2020-10-15T21:16:37.390Z", "contributors": [ - "vava", - "fscholz", + "SphinxKnight", "teoli", - "jsx", - "AshfaqHossain", - "Julien STUBY", - "BenoitL" + "cdromain", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/API/HTMLElement/offsetLeft": { - "modified": "2019-03-23T23:47:14.986Z", + "Web/CSS/initial": { + "modified": "2020-10-15T21:16:37.376Z", "contributors": [ - "fscholz", + "SphinxKnight", + "adrien-gueret", + "nhoizey", "teoli", - "jsx", - "BenoitL" + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/HTMLElement/offsetParent": { - "modified": "2019-03-23T23:47:16.899Z", + "Web/CSS/initial-letter": { + "modified": "2020-10-15T21:43:46.301Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/HTMLElement/offsetTop": { - "modified": "2019-03-23T23:47:50.209Z", + "Web/CSS/initial-letter-align": { + "modified": "2020-10-15T21:43:51.948Z", "contributors": [ - "nhoizey", - "fscholz", - "teoli", - "khalid32", - "cold sun", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/HTMLElement/offsetWidth": { - "modified": "2019-03-23T23:47:15.232Z", + "Web/CSS/inline-size": { + "modified": "2020-10-15T21:43:58.068Z", "contributors": [ - "vincent.tschanz", - "EmixMaxime", - "fscholz", - "teoli", - "khalid32", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/HTMLElement/outerText": { - "modified": "2019-03-23T22:29:19.506Z", + "Web/CSS/inset": { + "modified": "2020-10-15T22:10:58.848Z", "contributors": [ - "loella16", - "HereComesJuju" + "Yukulele.", + "SphinxKnight" ] }, - "Web/API/HTMLElement/style": { - "modified": "2020-10-15T21:09:58.052Z", + "Web/CSS/inset-block": { + "modified": "2020-10-15T22:11:00.485Z", "contributors": [ - "tristantheb", - "dominiquevilain", - "edspeedy", - "ebear", - "fscholz", - "teoli", - "xuancanh", - "Julien.stuby", - "BenoitL", - "Mgjbot", - "Takenbot" + "SphinxKnight" ] }, - "Web/API/HTMLElement/tabIndex": { - "modified": "2019-03-24T00:13:15.014Z", + "Web/CSS/inset-inline": { + "modified": "2020-10-15T22:11:01.666Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/CSS/integer": { + "modified": "2020-10-15T21:04:03.191Z", "contributors": [ + "SphinxKnight", + "Sebastianz", "fscholz", - "khalid32", "teoli", - "dextra", - "BenoitL" + "FredB", + "tregagnon", + "Goofy" ] }, - "Web/API/HTMLElement/title": { - "modified": "2019-03-18T21:38:30.184Z", + "Web/CSS/isolation": { + "modified": "2020-10-15T21:43:45.017Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight" ] }, - "Web/API/HTMLFormControlsCollection": { - "modified": "2020-10-15T22:04:38.234Z", + "Web/CSS/justify-content": { + "modified": "2020-10-15T21:41:40.322Z", "contributors": [ - "loella16" + "NemoNobobyPersonne", + "SphinxKnight", + "YoannR.", + "ChristopheBoucaut" ] }, - "Web/API/HTMLFormElement": { - "modified": "2020-10-15T21:18:02.094Z", + "Web/CSS/justify-items": { + "modified": "2020-10-15T21:52:49.461Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/CSS/justify-self": { + "modified": "2020-10-15T21:52:50.877Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/CSS/left": { + "modified": "2020-10-15T21:14:12.510Z", "contributors": [ - "loella16", "SphinxKnight", "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Fredchat" + "tregagnon", + "tcit" ] }, - "Web/API/HTMLFormElement/acceptCharset": { - "modified": "2019-03-23T22:56:05.617Z", + "Web/CSS/length": { + "modified": "2020-10-15T21:15:22.701Z", "contributors": [ - "thbil" + "SphinxKnight", + "emmanuelclement", + "Simplexible", + "fscholz", + "teoli", + "wakka27", + "tregagnon", + "Goofy", + "FredB", + "BenoitL", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/HTMLFormElement/action": { - "modified": "2019-03-23T22:56:10.694Z", + "Web/CSS/length-percentage": { + "modified": "2020-10-15T22:14:28.822Z", "contributors": [ - "thbil" + "SphinxKnight" ] }, - "Web/API/HTMLFormElement/elements": { - "modified": "2019-03-23T22:56:07.279Z", + "Web/CSS/letter-spacing": { + "modified": "2020-10-15T21:08:58.951Z", "contributors": [ - "thbil" + "SphinxKnight", + "fscholz", + "Sebastianz", + "hugo42", + "teoli", + "FredB" ] }, - "Web/API/HTMLFormElement/encoding": { - "modified": "2019-03-23T22:56:05.939Z", + "Web/CSS/line-break": { + "modified": "2020-10-15T21:37:07.983Z", "contributors": [ - "thbil" + "SphinxKnight", + "fscholz", + "Sebastianz", + "Yvain" ] }, - "Web/API/HTMLFormElement/enctype": { - "modified": "2019-03-23T22:56:06.183Z", + "Web/CSS/line-height": { + "modified": "2020-10-15T21:15:28.749Z", "contributors": [ - "thbil" + "SphinxKnight", + "gharel", + "Nashella", + "teoli", + "Sebastianz", + "Hell_Carlito", + "jadecrea", + "Havano", + "remjie", + "Fredchat", + "FredB", + "BenoitL" ] }, - "Web/API/HTMLFormElement/length": { - "modified": "2019-03-23T22:56:03.752Z", + "Web/CSS/line-height-step": { + "modified": "2020-10-15T21:56:21.204Z", "contributors": [ - "thbil" + "SphinxKnight", + "kodliber" ] }, - "Web/API/HTMLFormElement/method": { - "modified": "2019-03-23T22:56:06.732Z", + "Web/CSS/linear-gradient()": { + "modified": "2020-11-16T08:57:11.795Z", "contributors": [ - "thbil" + "chrisdavidmills", + "SphinxKnight", + "edspeedy", + "Javarome", + "lhapaipai", + "Guillaume.Wulpes", + "Simplexible", + "wizAmit", + "slayslot", + "prayash", + "Nazcange", + "nicofrand", + "teoli", + "Golmote", + "tregagnon", + "FredB", + "thenew" ] }, - "Web/API/HTMLFormElement/name": { - "modified": "2019-03-23T22:56:01.559Z", + "Web/CSS/list-style": { + "modified": "2020-10-15T21:15:56.797Z", "contributors": [ - "thbil" + "SphinxKnight", + "malenki", + "Sebastianz", + "louuis", + "teoli", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/HTMLFormElement/reportValidity": { - "modified": "2020-10-15T22:15:18.266Z", + "Web/CSS/list-style-image": { + "modified": "2020-10-15T21:15:55.198Z", "contributors": [ - "dragon38800" + "SphinxKnight", + "Hinato15", + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/HTMLFormElement/reset": { - "modified": "2019-03-18T21:15:21.862Z", + "Web/CSS/list-style-position": { + "modified": "2020-10-15T21:16:01.140Z", "contributors": [ - "a-mt" + "SphinxKnight", + "teoli", + "fscholz", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/HTMLFormElement/submit": { - "modified": "2020-10-15T22:15:18.900Z", + "Web/CSS/list-style-type": { + "modified": "2020-10-15T21:16:00.197Z", "contributors": [ - "dragon38800" + "SphinxKnight", + "GregMorel", + "fscholz", + "Goofy", + "teoli", + "Sebastianz", + "FredB", + "Mgjbot", + "ethertank", + "Fredchat", + "Kyodev", + "VincentN" ] }, - "Web/API/HTMLFormElement/submit_event_": { - "modified": "2019-09-03T20:50:22.661Z", + "Web/CSS/margin": { + "modified": "2020-10-15T21:10:35.628Z", "contributors": [ - "estelle", - "Watilin", - "fscholz", - "thbil" + "nathsou", + "SphinxKnight", + "guirip", + "mrstork", + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner", + "tcit" ] }, - "Web/API/HTMLFormElement/target": { - "modified": "2019-03-23T22:56:10.264Z", + "Web/CSS/margin-block": { + "modified": "2020-10-15T22:10:58.480Z", "contributors": [ - "thbil" + "SphinxKnight" ] }, - "Web/API/HTMLFrameSetElement": { - "modified": "2020-10-15T22:35:16.209Z", + "Web/CSS/margin-block-end": { + "modified": "2020-10-15T21:43:50.805Z", "contributors": [ - "Voulto" + "SphinxKnight", + "Goofy" ] }, - "Web/API/HTMLIFrameElement": { - "modified": "2019-07-30T13:28:00.924Z", + "Web/CSS/margin-block-start": { + "modified": "2020-10-15T21:43:45.525Z", "contributors": [ - "thbil" + "SphinxKnight" ] }, - "Web/API/HTMLIFrameElement/contentWindow": { - "modified": "2020-10-15T21:42:29.039Z", + "Web/CSS/margin-bottom": { + "modified": "2020-10-15T21:10:36.296Z", "contributors": [ "SphinxKnight", - "loella16", - "benjaminW78" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/HTMLIFrameElement/featurePolicy": { - "modified": "2020-11-12T09:04:15.995Z", + "Web/CSS/margin-inline": { + "modified": "2020-10-15T22:11:03.669Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/HTMLImageElement": { - "modified": "2019-03-23T23:38:17.058Z", + "Web/CSS/margin-inline-end": { + "modified": "2020-10-15T21:18:24.194Z", "contributors": [ - "loella16", - "fscholz", - "khalid32", + "SphinxKnight", "teoli", + "J.DMB", "louuis", - "rm1720" + "FredB", + "VincentN", + "Fredchat" ] }, - "Web/API/HTMLImageElement/Image": { - "modified": "2019-09-01T13:58:47.617Z", + "Web/CSS/margin-inline-start": { + "modified": "2020-10-15T21:18:22.766Z", "contributors": [ - "loella16", - "sztan" + "SphinxKnight", + "teoli", + "louuis", + "FredB", + "VincentN", + "Fredchat" ] }, - "Web/API/HTMLInputElement": { - "modified": "2020-10-15T21:34:36.231Z", + "Web/CSS/margin-left": { + "modified": "2020-10-15T21:10:37.744Z", "contributors": [ "SphinxKnight", - "jpmedley" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/HTMLInputElement/labels": { - "modified": "2020-10-15T22:04:38.251Z", + "Web/CSS/margin-right": { + "modified": "2020-10-15T21:10:35.139Z", "contributors": [ "SphinxKnight", - "loella16" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/HTMLMediaElement": { - "modified": "2020-10-15T21:50:41.898Z", + "Web/CSS/margin-top": { + "modified": "2020-10-15T21:10:41.432Z", "contributors": [ - "AntoineJT", - "loella16", - "MrMargouillat" + "SphinxKnight", + "mrstork", + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/HTMLMediaElement/abort_event": { - "modified": "2020-10-15T22:34:53.863Z", + "Web/CSS/margin-trim": { + "modified": "2020-10-15T22:11:07.350Z", "contributors": [ - "NEO_the-code" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/canplay_event": { - "modified": "2019-03-18T20:49:26.215Z", + "Web/CSS/mask": { + "modified": "2020-10-15T21:43:53.941Z", "contributors": [ - "estelle", - "fscholz", - "Kalwyn", - "Maxime-T" + "SphinxKnight", + "LTerrier" ] }, - "Web/API/HTMLMediaElement/canplaythrough_event": { - "modified": "2020-10-30T13:49:01.434Z", + "Web/CSS/mask-border": { + "modified": "2019-04-07T09:00:35.499Z", "contributors": [ - "Sroucheray", - "estelle", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/captureStream": { - "modified": "2020-10-15T22:06:00.390Z", + "Web/CSS/mask-border-mode": { + "modified": "2019-04-07T09:04:43.048Z", "contributors": [ - "o0sh4d0w0o" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/durationchange_event": { - "modified": "2019-03-18T20:49:29.267Z", + "Web/CSS/mask-border-outset": { + "modified": "2019-04-06T16:09:39.252Z", "contributors": [ - "estelle", - "fscholz", - "Kalwyn", - "BobyTT" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/emptied_event": { - "modified": "2019-03-18T20:49:29.095Z", + "Web/CSS/mask-border-repeat": { + "modified": "2019-04-06T16:09:31.479Z", "contributors": [ - "estelle", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/ended_event": { - "modified": "2019-03-18T20:49:28.930Z", + "Web/CSS/mask-border-slice": { + "modified": "2019-04-06T16:09:23.034Z", "contributors": [ - "estelle", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/play": { - "modified": "2019-03-18T21:39:19.899Z", + "Web/CSS/mask-border-source": { + "modified": "2019-04-06T16:08:52.761Z", "contributors": [ - "3dos" + "SphinxKnight" ] }, - "Web/API/HTMLMediaElement/volume": { - "modified": "2020-10-15T22:22:12.837Z", + "Web/CSS/mask-border-width": { + "modified": "2019-04-06T16:08:41.957Z", "contributors": [ - "Mars073" + "SphinxKnight" ] }, - "Web/API/HTMLOptionElement": { - "modified": "2019-03-23T23:28:20.044Z", + "Web/CSS/mask-clip": { + "modified": "2020-10-15T21:44:07.704Z", "contributors": [ - "khalid32", - "MedB" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLOptionElement/Option": { - "modified": "2019-11-18T08:34:34.768Z", + "Web/CSS/mask-composite": { + "modified": "2020-10-15T21:44:09.144Z", "contributors": [ "SphinxKnight", - "Jmarin" + "lp177" ] }, - "Web/API/HTMLQuoteElement": { - "modified": "2019-03-23T23:30:25.216Z", + "Web/CSS/mask-image": { + "modified": "2020-10-15T21:45:26.294Z", "contributors": [ - "teoli", - "khalid32", - "tregagnon" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLSelectElement": { - "modified": "2019-03-23T22:50:52.276Z", + "Web/CSS/mask-mode": { + "modified": "2020-10-15T21:45:26.649Z", "contributors": [ - "Jean-MariePETIT", - "tinou98" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLSelectElement/remove": { - "modified": "2019-03-23T22:45:22.256Z", + "Web/CSS/mask-origin": { + "modified": "2020-10-15T21:45:26.109Z", "contributors": [ - "Jean-MariePETIT" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLSelectElement/selectedIndex": { - "modified": "2020-10-15T22:10:16.178Z", + "Web/CSS/mask-position": { + "modified": "2020-10-15T21:45:24.708Z", "contributors": [ - "Watilin", - "Bpruneau" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLSelectElement/setCustomValidity": { - "modified": "2019-04-22T04:45:00.486Z", + "Web/CSS/mask-repeat": { + "modified": "2020-10-15T21:45:24.759Z", "contributors": [ - "kenavoloic", - "v-Stein" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLShadowElement": { - "modified": "2019-03-23T22:32:10.748Z", + "Web/CSS/mask-size": { + "modified": "2020-10-15T21:45:21.752Z", "contributors": [ - "nobe4" + "SphinxKnight", + "lp177" ] }, - "Web/API/HTMLSpanElement": { - "modified": "2019-03-23T23:30:40.037Z", + "Web/CSS/mask-type": { + "modified": "2020-10-15T21:43:42.404Z", "contributors": [ - "teoli", - "khalid32", - "tregagnon" + "SphinxKnight" ] }, - "Web/API/HTMLStyleElement": { - "modified": "2019-03-23T23:45:30.418Z", + "Web/CSS/max()": { + "modified": "2020-11-16T09:02:34.879Z", "contributors": [ - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/HTMLTableCellElement": { - "modified": "2019-03-23T22:22:55.497Z", + "Web/CSS/max-block-size": { + "modified": "2020-10-15T21:43:44.853Z", "contributors": [ - "Copen" + "SphinxKnight" ] }, - "Web/API/HTMLTableElement": { - "modified": "2019-03-23T23:46:08.570Z", + "Web/CSS/max-height": { + "modified": "2020-10-15T21:15:55.797Z", "contributors": [ + "ldvc", + "SphinxKnight", + "fscholz", + "Sebastianz", "teoli", - "jsx", - "ethertank", + "FredB", "Mgjbot", - "BenoitL" + "Fredchat" ] }, - "Web/API/HTMLTableElement/caption": { - "modified": "2019-03-23T23:45:21.628Z", + "Web/CSS/max-inline-size": { + "modified": "2020-10-15T21:43:33.488Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "BenoitL", - "Chbok", - "Marcolive" + "SphinxKnight", + "xdelatour" ] }, - "Web/API/HTMLTableElement/insertRow": { - "modified": "2019-03-23T23:31:04.505Z", + "Web/CSS/max-width": { + "modified": "2020-10-15T21:16:38.615Z", "contributors": [ - "WeWantMiles", - "NemoNobobyPersonne", - "fscholz", + "SphinxKnight", + "Sebastianz", "teoli", - "AshfaqHossain", - "Restimel" - ] - }, - "Web/API/HTMLTableRowElement": { - "modified": "2020-10-15T22:17:56.178Z", - "contributors": [ - "Voulto" - ] - }, - "Web/API/HTMLTableRowElement/insertCell": { - "modified": "2020-10-15T22:17:56.662Z", - "contributors": [ - "Watilin" - ] - }, - "Web/API/HTMLTimeElement": { - "modified": "2020-10-15T22:21:35.210Z", - "contributors": [ - "Arzak656" + "FredB", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Web/API/HTMLTimeElement/dateTime": { - "modified": "2020-10-15T22:21:37.221Z", + "Web/CSS/min()": { + "modified": "2020-11-16T09:04:19.879Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/HTMLUnknownElement": { - "modified": "2020-10-15T22:17:58.810Z", + "Web/CSS/min-block-size": { + "modified": "2020-10-15T21:43:26.727Z", "contributors": [ - "Watilin" + "SphinxKnight" ] }, - "Web/API/HTMLVideoElement": { - "modified": "2020-10-15T22:28:40.533Z", + "Web/CSS/min-height": { + "modified": "2020-10-15T21:16:02.253Z", "contributors": [ + "Derek", "SphinxKnight", - "maudsefo" + "Sebastianz", + "teoli", + "FredB", + "Grsmto", + "Delapouite", + "tregagnon", + "Mgjbot", + "Fredchat" ] }, - "Web/API/Headers": { - "modified": "2020-10-15T22:21:38.336Z", + "Web/CSS/min-inline-size": { + "modified": "2020-10-15T21:43:22.753Z", "contributors": [ - "robin850", - "Torzivalds" + "SphinxKnight" ] }, - "Web/API/History": { - "modified": "2019-03-23T23:10:25.221Z", + "Web/CSS/min-width": { + "modified": "2020-10-15T21:16:36.385Z", "contributors": [ - "DavidLibeau", - "remi_grumeau" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Web/API/History/length": { - "modified": "2020-10-15T22:28:26.926Z", + "Web/CSS/minmax()": { + "modified": "2020-11-16T09:06:07.004Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight", + "HerveRenault", + "lp177" ] }, - "Web/API/IDBCursor": { - "modified": "2019-03-23T22:34:39.578Z", + "Web/CSS/mix-blend-mode": { + "modified": "2020-10-15T21:37:54.397Z", "contributors": [ - "fscholz", "SphinxKnight", - "gadgino" + "mrstork", + "LukyVj", + "Sebastianz", + "Hell_Carlito" ] }, - "Web/API/IDBCursor/advance": { - "modified": "2019-03-23T22:34:38.198Z", + "Web/CSS/number": { + "modified": "2020-10-15T21:15:34.930Z", "contributors": [ - "perrinjerome", "SphinxKnight", - "gadgino" + "fscholz", + "louuis", + "teoli", + "FredB", + "tregagnon", + "Goofy", + "BenoitL" ] }, - "Web/API/IDBCursor/continue": { - "modified": "2019-03-23T22:34:31.664Z", + "Web/CSS/object-fit": { + "modified": "2020-10-15T21:40:35.077Z", "contributors": [ + "uniuc", "SphinxKnight", - "gadgino" + "LauJi", + "PifyZ" ] }, - "Web/API/IDBDatabase": { - "modified": "2019-03-23T22:31:18.316Z", + "Web/CSS/object-position": { + "modified": "2020-10-15T21:43:24.887Z", "contributors": [ - "v-Stein", - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBDatabase/close": { - "modified": "2019-03-23T22:31:11.263Z", + "Web/CSS/offset": { + "modified": "2020-10-15T21:43:23.702Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBDatabase/createObjectStore": { - "modified": "2019-03-23T22:31:16.639Z", + "Web/CSS/offset-anchor": { + "modified": "2020-10-15T22:24:05.493Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBDatabase/deleteObjectStore": { - "modified": "2019-03-23T22:31:14.248Z", + "Web/CSS/offset-distance": { + "modified": "2020-10-15T21:43:21.224Z", "contributors": [ - "christophe.hurpeau", - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBDatabase/name": { - "modified": "2019-03-23T22:31:09.217Z", + "Web/CSS/offset-path": { + "modified": "2020-10-15T21:43:23.613Z", "contributors": [ "SphinxKnight", - "gadgino" + "a-mt" ] }, - "Web/API/IDBDatabase/objectStoreNames": { - "modified": "2019-03-23T22:31:09.388Z", + "Web/CSS/offset-position": { + "modified": "2020-10-15T22:34:44.413Z", "contributors": [ - "SphinxKnight", - "gadgino" + "cdoublev" ] }, - "Web/API/IDBDatabase/onabort": { - "modified": "2019-03-23T22:31:09.551Z", + "Web/CSS/offset-rotate": { + "modified": "2020-10-15T21:43:21.156Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBDatabase/onerror": { - "modified": "2019-03-23T22:31:08.731Z", + "Web/CSS/opacity": { + "modified": "2020-10-15T21:09:09.094Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBDatabase/onversionchange": { - "modified": "2019-03-23T22:30:58.851Z", + "Web/CSS/order": { + "modified": "2020-10-15T21:43:22.198Z", "contributors": [ + "cdoublev", "SphinxKnight", - "gadgino" + "tzilliox" ] }, - "Web/API/IDBDatabase/transaction": { - "modified": "2019-03-23T22:31:19.784Z", + "Web/CSS/orphans": { + "modified": "2020-10-15T21:09:04.253Z", "contributors": [ - "P45QU10U", - "gadgino" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB", + "djacquel" ] }, - "Web/API/IDBDatabase/version": { - "modified": "2020-10-15T21:47:11.268Z", + "Web/CSS/outline": { + "modified": "2020-10-15T21:09:11.603Z", "contributors": [ + "erwanjugand", "SphinxKnight", - "gadgino" + "fscholz", + "Sebastianz", + "teoli", + "wakka27", + "FredB", + "Blackhole", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBEnvironment": { - "modified": "2020-10-15T21:45:39.502Z", + "Web/CSS/outline-color": { + "modified": "2020-10-15T21:08:56.862Z", "contributors": [ - "loella16", "SphinxKnight", - "gadgino", - "Brettz9" + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBFactory": { - "modified": "2020-10-15T21:45:40.483Z", + "Web/CSS/outline-offset": { + "modified": "2020-10-15T21:08:49.087Z", "contributors": [ - "bershanskiy", "SphinxKnight", - "gadgino" + "mrstork", + "fscholz", + "Sebastianz", + "teoli", + "Manumanu", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBFactory/cmp": { - "modified": "2019-03-23T22:34:32.314Z", + "Web/CSS/outline-style": { + "modified": "2020-10-15T21:09:08.315Z", "contributors": [ + "johannpinson", "SphinxKnight", - "gadgino" + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBFactory/deleteDatabase": { - "modified": "2019-03-23T22:34:37.176Z", + "Web/CSS/outline-width": { + "modified": "2020-10-15T21:09:11.670Z", "contributors": [ "SphinxKnight", - "gadgino" + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/API/IDBFactory/open": { - "modified": "2020-10-15T21:45:42.009Z", + "Web/CSS/overflow": { + "modified": "2020-10-15T21:08:56.186Z", "contributors": [ - "Watilin", "SphinxKnight", - "gadgino" + "fdnhkj", + "mapiki", + "matsumonkie", + "Sebastianz", + "scaillerie", + "teoli", + "FredB" ] }, - "Web/API/IDBIndex": { - "modified": "2020-09-12T05:13:55.776Z", + "Web/CSS/overflow-anchor": { + "modified": "2020-10-15T22:10:01.845Z", "contributors": [ - "Voulto", - "GhislainPhu", - "gadgino", - "jpmedley" + "SphinxKnight" ] }, - "Web/API/IDBIndex/count": { - "modified": "2019-03-23T22:30:43.317Z", + "Web/CSS/overflow-block": { + "modified": "2020-10-15T22:17:59.313Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/get": { - "modified": "2019-03-18T21:17:42.033Z", + "Web/CSS/overflow-inline": { + "modified": "2020-10-15T22:17:57.651Z", "contributors": [ - "AdeLyneBD", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/getAll": { - "modified": "2020-10-15T21:47:29.237Z", + "Web/CSS/overflow-wrap": { + "modified": "2020-10-15T21:20:31.219Z", "contributors": [ "SphinxKnight", - "AdeLyneBD", - "gadgino" + "anisometropie", + "patrickfournier", + "fscholz", + "Sebastianz", + "PofMagicfingers", + "teoli", + "BiAiB", + "philippe97", + "FredB", + "Delapouite" ] }, - "Web/API/IDBIndex/getAllKeys": { - "modified": "2020-10-15T21:47:28.678Z", + "Web/CSS/overflow-x": { + "modified": "2020-10-15T21:21:34.563Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "tregagnon", + "Delapouite", + "Igro" ] }, - "Web/API/IDBIndex/getKey": { - "modified": "2019-03-23T22:30:30.773Z", + "Web/CSS/overflow-y": { + "modified": "2020-10-15T21:21:35.151Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "enogael", + "FredB", + "tregagnon", + "Delapouite", + "Igro" ] }, - "Web/API/IDBIndex/isAutoLocale": { - "modified": "2020-10-15T21:47:13.856Z", + "Web/CSS/overscroll-behavior": { + "modified": "2020-10-15T22:01:11.932Z", "contributors": [ "SphinxKnight", - "teoli", - "gadgino" + "brunostasse" ] }, - "Web/API/IDBIndex/keyPath": { - "modified": "2019-03-23T22:30:52.686Z", + "Web/CSS/overscroll-behavior-x": { + "modified": "2020-10-15T22:01:15.043Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/locale": { - "modified": "2019-03-23T22:30:44.660Z", + "Web/CSS/overscroll-behavior-y": { + "modified": "2020-10-15T22:01:11.740Z", "contributors": [ - "teoli", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/multiEntry": { - "modified": "2019-03-23T22:30:48.807Z", + "Web/CSS/padding": { + "modified": "2020-10-15T21:10:34.387Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/IDBIndex/name": { - "modified": "2019-03-23T22:30:41.544Z", + "Web/CSS/padding-block": { + "modified": "2020-10-15T22:11:17.883Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/objectStore": { - "modified": "2019-03-23T22:30:48.435Z", + "Web/CSS/padding-block-end": { + "modified": "2020-10-15T21:43:04.401Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/openCursor": { - "modified": "2019-03-23T22:30:31.037Z", + "Web/CSS/padding-block-start": { + "modified": "2020-10-15T21:43:04.242Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBIndex/openKeyCursor": { - "modified": "2019-03-23T22:30:32.594Z", + "Web/CSS/padding-bottom": { + "modified": "2020-10-15T21:10:37.788Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/IDBIndex/unique": { - "modified": "2019-03-23T22:30:45.150Z", + "Web/CSS/padding-inline": { + "modified": "2020-10-15T22:11:15.316Z", "contributors": [ - "SphinxKnight", - "gadgino" + "Loliwe", + "SphinxKnight" ] }, - "Web/API/IDBKeyRange": { - "modified": "2020-10-15T21:46:17.358Z", + "Web/CSS/padding-inline-end": { + "modified": "2020-10-15T21:18:26.917Z", "contributors": [ - "Voulto", "SphinxKnight", - "gadgino", - "Goofy", - "jpmedley" + "teoli", + "FredB", + "VincentN", + "Fredchat" ] }, - "Web/API/IDBKeyRange/bound": { - "modified": "2019-03-23T22:33:04.699Z", + "Web/CSS/padding-inline-start": { + "modified": "2020-10-15T21:18:27.911Z", "contributors": [ "SphinxKnight", - "gadgino" + "AmauryH", + "teoli", + "FredB", + "VincentN", + "Fredchat" ] }, - "Web/API/IDBKeyRange/includes": { - "modified": "2019-03-23T22:33:05.590Z", + "Web/CSS/padding-left": { + "modified": "2020-10-15T21:10:35.530Z", "contributors": [ "SphinxKnight", - "gadgino" + "warso", + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/IDBKeyRange/lower": { - "modified": "2019-03-23T22:33:04.885Z", + "Web/CSS/padding-right": { + "modified": "2020-10-15T21:10:31.706Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/IDBKeyRange/lowerBound": { - "modified": "2019-03-23T22:33:05.216Z", + "Web/CSS/padding-top": { + "modified": "2020-10-15T21:10:29.837Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/IDBKeyRange/lowerOpen": { - "modified": "2019-03-23T22:32:57.950Z", + "Web/CSS/page-break-after": { + "modified": "2020-10-15T21:31:45.771Z", "contributors": [ "SphinxKnight", - "gadgino" + "ncoden", + "Sebastianz", + "gmichard", + "ilaborie" ] }, - "Web/API/IDBKeyRange/only": { - "modified": "2019-03-23T22:33:01.396Z", + "Web/CSS/page-break-before": { + "modified": "2020-10-15T21:43:02.913Z", "contributors": [ - "SphinxKnight", - "gadgino" + "jibe0123", + "SphinxKnight" ] }, - "Web/API/IDBKeyRange/upper": { - "modified": "2019-03-23T22:33:10.697Z", + "Web/CSS/page-break-inside": { + "modified": "2020-10-15T21:43:05.193Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBKeyRange/upperBound": { - "modified": "2019-03-23T22:33:21.510Z", + "Web/CSS/paint()": { + "modified": "2020-11-16T12:34:32.285Z", "contributors": [ - "SphinxKnight", - "gadgino" + "JNa0", + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/IDBKeyRange/upperOpen": { - "modified": "2019-03-23T22:32:58.450Z", + "Web/CSS/paint-order": { + "modified": "2020-10-15T22:02:33.903Z", "contributors": [ - "Hell_Carlito", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBObjectStore": { - "modified": "2019-03-23T22:34:11.877Z", + "Web/CSS/percentage": { + "modified": "2020-10-15T21:15:29.581Z", "contributors": [ - "gadgino" + "SphinxKnight", + "Sebastianz", + "Prinz_Rana", + "fscholz", + "teoli", + "FredB", + "tregagnon", + "BenoitL" ] }, - "Web/API/IDBObjectStore/add": { - "modified": "2019-03-23T22:34:09.726Z", + "Web/CSS/perspective": { + "modified": "2020-10-15T21:19:38.260Z", "contributors": [ - "perrinjerome", "SphinxKnight", - "gadgino" + "eviouchka", + "pierretusseau", + "fscholz", + "Sebastianz", + "teoli", + "pl6025", + "FredB" ] }, - "Web/API/IDBObjectStore/autoIncrement": { - "modified": "2019-03-23T22:34:10.196Z", + "Web/CSS/perspective-origin": { + "modified": "2020-10-15T21:20:18.754Z", "contributors": [ - "gadgino" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/clear": { - "modified": "2019-03-23T22:34:03.069Z", + "Web/CSS/place-content": { + "modified": "2020-10-15T21:52:51.184Z", "contributors": [ - "doppelganger9", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBObjectStore/count": { - "modified": "2019-03-23T22:34:13.752Z", + "Web/CSS/place-items": { + "modified": "2020-10-15T21:52:53.357Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBObjectStore/createIndex": { - "modified": "2019-03-23T22:34:07.900Z", + "Web/CSS/place-self": { + "modified": "2020-10-15T21:52:50.692Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBObjectStore/delete": { - "modified": "2019-03-23T22:33:59.327Z", + "Web/CSS/pointer-events": { + "modified": "2020-10-15T21:22:42.114Z", "contributors": [ "SphinxKnight", - "gadgino" + "flexbox", + "teoli", + "SiegfriedEhret", + "avetisk" ] }, - "Web/API/IDBObjectStore/deleteIndex": { - "modified": "2019-03-23T22:33:53.159Z", + "Web/CSS/position": { + "modified": "2020-10-15T21:16:08.130Z", "contributors": [ - "AdeLyneBD", - "gadgino" + "SphinxKnight", + "Loliwe", + "Machou", + "adaedra", + "fscholz", + "Sebastianz", + "cconcolato", + "FredB", + "teoli", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/IDBObjectStore/get": { - "modified": "2019-03-23T22:33:58.671Z", + "Web/CSS/quotes": { + "modified": "2020-10-15T21:08:51.774Z", "contributors": [ - "gadgino" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/getAll": { - "modified": "2019-05-06T07:04:02.783Z", + "Web/CSS/radial-gradient()": { + "modified": "2020-11-18T14:42:17.846Z", "contributors": [ - "Helfics", - "Thomas-Tonneau", - "gadgino" + "chrisdavidmills", + "SphinxKnight", + "PetiPandaRou", + "teoli", + "philippe97", + "FredB", + "Jeansebastien.ney" ] }, - "Web/API/IDBObjectStore/getAllKeys": { - "modified": "2019-03-23T22:33:43.424Z", + "Web/CSS/ratio": { + "modified": "2020-10-15T21:21:46.974Z", "contributors": [ - "Nothus", "SphinxKnight", - "gadgino" + "fscholz", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/getKey": { - "modified": "2019-03-23T22:11:20.472Z", + "Web/CSS/repeat()": { + "modified": "2020-11-18T14:44:25.185Z", "contributors": [ - "Nothus", - "julienw" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/IDBObjectStore/index": { - "modified": "2019-03-23T22:33:52.521Z", + "Web/CSS/repeating-conic-gradient()": { + "modified": "2020-11-18T14:49:14.177Z", + "contributors": [ + "chrisdavidmills", + "SphinxKnight" + ] + }, + "Web/CSS/repeating-linear-gradient()": { + "modified": "2020-11-18T14:45:56.794Z", "contributors": [ + "chrisdavidmills", "SphinxKnight", - "gadgino" + "Sebastianz", + "Prinz_Rana", + "wizAmit", + "prayash", + "bfn", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/indexNames": { - "modified": "2019-03-23T22:34:04.202Z", + "Web/CSS/repeating-radial-gradient()": { + "modified": "2020-11-18T14:47:29.838Z", "contributors": [ + "chrisdavidmills", "SphinxKnight", - "gadgino" + "a-mt" ] }, - "Web/API/IDBObjectStore/keyPath": { - "modified": "2019-03-23T22:34:05.962Z", + "Web/CSS/resize": { + "modified": "2020-10-15T21:19:06.332Z", "contributors": [ "SphinxKnight", - "Alpha", - "gadgino" + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/name": { - "modified": "2019-03-23T22:34:05.656Z", + "Web/CSS/resolution": { + "modified": "2020-10-15T21:24:52.090Z", "contributors": [ "SphinxKnight", - "gadgino" + "Sebastianz", + "Prinz_Rana", + "fscholz", + "J.DMB", + "louuis", + "teoli", + "FredB" ] }, - "Web/API/IDBObjectStore/openCursor": { - "modified": "2019-03-23T22:33:43.786Z", + "Web/CSS/revert": { + "modified": "2020-10-15T21:42:54.151Z", "contributors": [ "SphinxKnight", - "gadgino" + "Zefling" ] }, - "Web/API/IDBObjectStore/openKeyCursor": { - "modified": "2019-03-23T22:33:39.850Z", + "Web/CSS/right": { + "modified": "2020-10-15T21:08:54.080Z", "contributors": [ "SphinxKnight", - "gadgino" + "Prinz_Rana", + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "Delapouite" ] }, - "Web/API/IDBObjectStore/put": { - "modified": "2019-03-23T22:33:30.943Z", + "Web/CSS/rotate": { + "modified": "2020-10-15T22:02:45.073Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBObjectStore/transaction": { - "modified": "2019-03-23T22:34:04.872Z", + "Web/CSS/row-gap": { + "modified": "2020-10-15T22:05:44.066Z", "contributors": [ - "gadgino" + "SphinxKnight", + "JNa0" ] }, - "Web/API/IDBOpenDBRequest": { - "modified": "2019-03-23T22:14:30.384Z", + "Web/CSS/ruby-align": { + "modified": "2020-10-15T21:43:02.784Z", "contributors": [ - "loella16", - "Enigma-42" + "SphinxKnight" ] }, - "Web/API/IDBRequest": { - "modified": "2020-10-15T21:45:42.565Z", + "Web/CSS/ruby-position": { + "modified": "2020-10-15T21:42:41.711Z", "contributors": [ - "Voulto", - "Arzak656", - "gadgino", - "inexorabletash" + "SphinxKnight" ] }, - "Web/API/IDBRequest/blocked_event": { - "modified": "2019-03-23T22:00:21.621Z", + "Web/CSS/scale": { + "modified": "2020-10-15T22:02:41.753Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/IDBRequest/error": { - "modified": "2019-03-23T22:34:15.414Z", + "Web/CSS/scroll-behavior": { + "modified": "2020-10-15T21:42:38.519Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/onerror": { - "modified": "2019-03-23T22:34:16.420Z", + "Web/CSS/scroll-margin": { + "modified": "2020-10-15T22:11:29.331Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/onsuccess": { - "modified": "2019-03-23T22:34:17.762Z", + "Web/CSS/scroll-margin-block": { + "modified": "2020-10-15T22:11:26.331Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/readyState": { - "modified": "2019-03-23T22:34:18.824Z", + "Web/CSS/scroll-margin-block-end": { + "modified": "2020-10-15T22:11:24.840Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/result": { - "modified": "2019-03-23T22:34:18.616Z", + "Web/CSS/scroll-margin-block-start": { + "modified": "2020-10-15T22:11:27.968Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/source": { - "modified": "2019-03-23T22:34:18.295Z", + "Web/CSS/scroll-margin-bottom": { + "modified": "2020-10-15T22:11:27.109Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBRequest/transaction": { - "modified": "2019-03-23T22:34:14.676Z", + "Web/CSS/scroll-margin-inline": { + "modified": "2020-10-15T22:11:27.758Z", "contributors": [ - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction": { - "modified": "2019-03-23T22:34:48.048Z", + "Web/CSS/scroll-margin-inline-end": { + "modified": "2020-10-15T22:11:29.215Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/ObjectStoreNames": { - "modified": "2019-03-23T22:34:33.787Z", + "Web/CSS/scroll-margin-inline-start": { + "modified": "2020-10-15T22:11:31.365Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/abort": { - "modified": "2019-03-23T22:34:40.971Z", + "Web/CSS/scroll-margin-left": { + "modified": "2020-10-15T22:11:32.305Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/abort_event": { - "modified": "2019-03-23T22:00:21.766Z", + "Web/CSS/scroll-margin-right": { + "modified": "2020-10-15T22:11:31.609Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/complete_event": { - "modified": "2019-03-23T22:00:21.434Z", + "Web/CSS/scroll-margin-top": { + "modified": "2020-10-15T22:11:25.637Z", "contributors": [ - "wbamberg", - "fscholz", - "Kalwyn" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/db": { - "modified": "2019-03-23T22:34:41.582Z", + "Web/CSS/scroll-padding": { + "modified": "2020-10-15T22:11:29.445Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/error": { - "modified": "2019-03-23T22:34:37.959Z", + "Web/CSS/scroll-padding-block": { + "modified": "2020-10-15T22:11:28.191Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/mode": { - "modified": "2019-03-23T22:34:37.380Z", + "Web/CSS/scroll-padding-block-end": { + "modified": "2020-10-15T22:11:29.968Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/objectStore": { - "modified": "2019-03-23T22:34:32.499Z", + "Web/CSS/scroll-padding-block-start": { + "modified": "2020-10-15T22:11:29.801Z", "contributors": [ - "Faontetard", - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/onabort": { - "modified": "2019-03-23T22:34:39.344Z", + "Web/CSS/scroll-padding-bottom": { + "modified": "2020-10-15T22:11:30.415Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/oncomplete": { - "modified": "2019-03-23T22:34:31.462Z", + "Web/CSS/scroll-padding-inline": { + "modified": "2020-10-15T22:11:26.827Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/IDBTransaction/onerror": { - "modified": "2019-03-23T22:34:27.556Z", + "Web/CSS/scroll-padding-inline-end": { + "modified": "2020-10-15T22:11:26.380Z", "contributors": [ - "SphinxKnight", - "gadgino" + "SphinxKnight" ] }, - "Web/API/ImageData": { - "modified": "2020-10-15T21:29:16.846Z", + "Web/CSS/scroll-padding-inline-start": { + "modified": "2020-10-15T22:11:30.209Z", "contributors": [ - "SphinxKnight", - "loella16", - "fscholz", - "Sandyl" + "SphinxKnight" ] }, - "Web/API/ImageData/data": { - "modified": "2020-10-15T22:05:57.237Z", + "Web/CSS/scroll-padding-left": { + "modified": "2020-10-15T22:11:32.055Z", "contributors": [ - "adrienbecker" + "SphinxKnight" ] }, - "Web/API/InputEvent": { - "modified": "2020-10-15T22:20:10.431Z", + "Web/CSS/scroll-padding-right": { + "modified": "2020-10-15T22:11:31.603Z", "contributors": [ - "Watilin" + "SphinxKnight" ] }, - "Web/API/IntersectionObserver": { - "modified": "2020-10-15T22:10:55.790Z", + "Web/CSS/scroll-padding-top": { + "modified": "2020-10-15T22:11:27.462Z", "contributors": [ - "JNa0", - "lotfire24" + "SphinxKnight" ] }, - "Web/API/IntersectionObserver/IntersectionObserver": { - "modified": "2020-10-15T22:12:46.597Z", + "Web/CSS/scroll-snap-align": { + "modified": "2020-10-15T22:11:32.358Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/IntersectionObserver/observe": { - "modified": "2020-10-15T22:12:46.281Z", + "Web/CSS/scroll-snap-coordinate": { + "modified": "2020-10-15T21:42:48.115Z", "contributors": [ - "SphinxKnight", - "nicolas-t", - "JNa0" + "SphinxKnight" ] }, - "Web/API/IntersectionObserver/root": { - "modified": "2020-10-15T22:11:03.625Z", + "Web/CSS/scroll-snap-destination": { + "modified": "2020-10-15T21:42:40.512Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/IntersectionObserver/rootMargin": { - "modified": "2020-10-15T22:11:13.398Z", + "Web/CSS/scroll-snap-points-x": { + "modified": "2020-10-15T21:42:45.133Z", "contributors": [ - "JNa0" + "SphinxKnight", + "teoli" ] }, - "Web/API/IntersectionObserver/thresholds": { - "modified": "2020-10-15T22:12:45.071Z", + "Web/CSS/scroll-snap-points-y": { + "modified": "2020-10-15T21:42:38.109Z", "contributors": [ - "JNa0" + "SphinxKnight", + "teoli" ] }, - "Web/API/IntersectionObserver/unobserve": { - "modified": "2020-10-15T22:12:46.323Z", + "Web/CSS/scroll-snap-stop": { + "modified": "2020-10-15T22:10:03.086Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/IntersectionObserverEntry": { - "modified": "2020-10-15T22:11:13.890Z", + "Web/CSS/scroll-snap-type": { + "modified": "2020-10-15T21:42:50.969Z", "contributors": [ - "JNa0" + "SphinxKnight", + "jide" ] }, - "Web/API/IntersectionObserverEntry/target": { - "modified": "2020-10-15T22:11:14.373Z", + "Web/CSS/scroll-snap-type-x": { + "modified": "2020-10-15T21:42:38.724Z", "contributors": [ - "JNa0" + "SphinxKnight" ] }, - "Web/API/Intersection_Observer_API": { - "modified": "2019-05-02T10:59:37.478Z", + "Web/CSS/scroll-snap-type-y": { + "modified": "2020-10-15T21:42:39.974Z", "contributors": [ - "JNa0", - "SphinxKnight", - "baptistecolin", - "Marc.V" + "SphinxKnight" ] }, - "Web/API/KeyboardEvent": { - "modified": "2020-10-15T21:36:30.379Z", + "Web/CSS/scrollbar-color": { + "modified": "2020-10-15T22:10:04.861Z", "contributors": [ - "fscholz", - "wbamberg", - "loella16", - "NemoNobobyPersonne", - "jean-pierre.gay", - "Gibus", - "mikemaccana" + "SphinxKnight", + "lp177" ] }, - "Web/API/KeyboardEvent/KeyboardEvent": { - "modified": "2020-10-15T21:36:29.697Z", + "Web/CSS/scrollbar-width": { + "modified": "2020-10-15T22:10:07.959Z", "contributors": [ - "loella16", - "fuzeKlown", - "B_M" + "SphinxKnight" ] }, - "Web/API/KeyboardEvent/charCode": { - "modified": "2020-10-15T21:56:28.108Z", + "Web/CSS/shape": { + "modified": "2020-10-15T21:46:30.260Z", "contributors": [ - "Lucas-C", - "loella16", - "ManuelEdao" + "SphinxKnight" ] }, - "Web/API/KeyboardEvent/code": { - "modified": "2020-10-15T22:17:28.552Z", + "Web/CSS/shape-image-threshold": { + "modified": "2020-10-15T21:42:37.534Z", "contributors": [ - "tristantheb", "SphinxKnight", - "NoxFly" + "Zefling" ] }, - "Web/API/KeyboardEvent/key": { - "modified": "2020-10-15T21:45:49.321Z", + "Web/CSS/shape-margin": { + "modified": "2020-10-15T21:42:48.010Z", "contributors": [ - "tristantheb", - "Jeremie", - "loella16", - "P45QU10U" + "SphinxKnight" ] }, - "Web/API/KeyboardEvent/key/Key_Values": { - "modified": "2020-04-20T11:30:29.100Z", + "Web/CSS/shape-outside": { + "modified": "2020-10-15T21:33:45.682Z", "contributors": [ - "tristantheb" + "SphinxKnight", + "HTeuMeuLeu", + "teoli", + "Sebastianz", + "lbelavoir" ] }, - "Web/API/LocalFileSystem": { - "modified": "2020-11-02T04:24:20.566Z", + "Web/CSS/string": { + "modified": "2020-10-15T21:10:36.585Z", "contributors": [ "SphinxKnight", - "roxaneprovost" + "fscholz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/API/Location": { - "modified": "2020-10-15T21:27:50.600Z", + "Web/CSS/symbols()": { + "modified": "2020-11-30T10:29:26.349Z", "contributors": [ - "Arzak656", - "NacimHarfouche", - "Goofy", - "Watilin" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/API/Location/assign": { - "modified": "2020-10-15T21:27:45.542Z", + "Web/CSS/tab-size": { + "modified": "2020-10-15T21:19:02.503Z", "contributors": [ - "Arzak656", - "fscholz", - "Watilin" + "SphinxKnight", + "Prinz_Rana", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Location/reload": { - "modified": "2020-11-18T15:46:55.367Z", + "Web/CSS/table-layout": { + "modified": "2020-10-15T21:19:02.718Z", "contributors": [ - "Arzak656", + "SphinxKnight", + "bsitruk", + "emmanuelclement", "fscholz", + "Sebastianz", "teoli", - "Watilin" + "b_b", + "FredB", + "ethertank" ] }, - "Web/API/Location/replace": { - "modified": "2019-03-23T23:15:34.708Z", + "Web/CSS/text-align": { + "modified": "2020-10-15T21:15:12.893Z", "contributors": [ - "fscholz", - "Watilin" + "n3wborn", + "SphinxKnight", + "SpaVec", + "NicolasGoudry", + "Sebastianz", + "teoli", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/API/MediaDevices": { - "modified": "2020-10-15T21:39:57.500Z", + "Web/CSS/text-align-last": { + "modified": "2020-10-15T21:19:07.972Z", "contributors": [ - "Voulto", - "tristantheb", - "jpmedley" + "SphinxKnight", + "Sebastianz", + "fvignals", + "teoli", + "FredB" ] }, - "Web/API/MediaDevices/getUserMedia": { - "modified": "2019-03-23T22:10:09.687Z", + "Web/CSS/text-combine-upright": { + "modified": "2020-10-15T21:42:38.110Z", "contributors": [ - "SoufianeLasri", - "DonBeny" + "SphinxKnight" ] }, - "Web/API/MediaSource": { - "modified": "2020-10-15T22:24:17.807Z", + "Web/CSS/text-decoration": { + "modified": "2020-10-15T21:17:58.514Z", "contributors": [ - "Voulto" + "Maxi-MenuBestOfPlus", + "SphinxKnight", + "Sebastianz", + "teoli", + "316k", + "FredB", + "Fredchat", + "Kyodev" ] }, - "Web/API/MediaSource/MediaSource": { - "modified": "2020-10-15T22:24:16.976Z", + "Web/CSS/text-decoration-color": { + "modified": "2020-10-15T21:08:48.730Z", "contributors": [ - "nowlow" + "SphinxKnight", + "Sebastianz", + "fscholz", + "teoli", + "FredB" ] }, - "Web/API/MediaStream": { - "modified": "2019-03-23T23:24:56.798Z", + "Web/CSS/text-decoration-line": { + "modified": "2020-10-15T21:19:04.173Z", "contributors": [ + "SphinxKnight", "fscholz", - "AbrahamT" + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/MediaStreamAudioSourceNode": { - "modified": "2019-03-23T22:22:16.693Z", + "Web/CSS/text-decoration-skip": { + "modified": "2020-10-15T21:47:35.040Z", "contributors": [ - "marie-ototoi", - "Nek-" + "SphinxKnight" ] }, - "Web/API/MediaStreamEvent": { - "modified": "2020-10-22T05:56:07.167Z", + "Web/CSS/text-decoration-skip-ink": { + "modified": "2020-10-15T21:59:08.170Z", "contributors": [ - "Voulto" + "SphinxKnight" ] }, - "Web/API/MessageEvent": { - "modified": "2019-03-23T22:37:35.554Z", + "Web/CSS/text-decoration-style": { + "modified": "2020-10-15T21:19:03.614Z", "contributors": [ - "AClavijo", - "Nothus" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/MouseEvent": { - "modified": "2019-03-23T23:09:55.683Z", + "Web/CSS/text-decoration-thickness": { + "modified": "2020-10-15T22:24:05.293Z", "contributors": [ - "loella16", - "Sebastianz", - "Jean-MariePETIT", - "julienw", - "AlainRinder", - "kipcode66" + "SphinxKnight" ] }, - "Web/API/MouseEvent/offsetX": { - "modified": "2019-03-23T22:01:19.710Z", + "Web/CSS/text-emphasis": { + "modified": "2020-10-15T21:43:05.328Z", "contributors": [ - "shezard", - "imhaage" + "SphinxKnight" + ] + }, + "Web/CSS/text-emphasis-color": { + "modified": "2020-10-15T21:41:37.102Z", + "contributors": [ + "SphinxKnight", + "webdif" ] }, - "Web/API/MouseEvent/offsetY": { - "modified": "2019-03-23T22:01:15.982Z", + "Web/CSS/text-emphasis-position": { + "modified": "2020-10-15T21:41:37.345Z", "contributors": [ - "imhaage" + "SphinxKnight" ] }, - "Web/API/MutationObserver": { - "modified": "2019-03-23T23:04:58.339Z", + "Web/CSS/text-emphasis-style": { + "modified": "2020-10-15T21:41:36.302Z", "contributors": [ - "loella16", - "cedeber", - "Watilin", - "Goofy", - "jucrouzet", - "gregoryRednet", - "Melkior" + "SphinxKnight" ] }, - "Web/API/NameList": { - "modified": "2020-10-13T11:05:39.955Z", + "Web/CSS/text-indent": { + "modified": "2020-10-15T21:08:57.783Z", "contributors": [ - "Voulto" + "SphinxKnight", + "neurone12000", + "Prinz_Rana", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/NamedNodeMap": { - "modified": "2019-03-23T22:39:49.395Z", + "Web/CSS/text-justify": { + "modified": "2020-10-15T21:53:58.739Z", "contributors": [ "SphinxKnight", - "Puxarnal", - "Dexter_Deter" + "Deraw-", + "Joel-Costamagna" ] }, - "Web/API/Navigator": { - "modified": "2019-03-23T23:01:28.541Z", + "Web/CSS/text-orientation": { + "modified": "2020-10-15T21:41:37.989Z", "contributors": [ - "loella16", - "v-Stein", - "unpeudetout", - "EnzDev", - "fscholz" + "SphinxKnight" ] }, - "Web/API/Navigator/battery": { - "modified": "2019-03-23T23:37:50.722Z", + "Web/CSS/text-overflow": { + "modified": "2020-10-15T21:09:08.503Z", "contributors": [ - "Perraudeau", - "fscholz", - "khalid32", - "Florent_ATo" + "Ryanfarrah25", + "SphinxKnight", + "dackmin", + "Guillaume-Heras", + "Sebastianz", + "PifyZ", + "LukyVj", + "teoli", + "FredB" ] }, - "Web/API/Navigator/connection": { - "modified": "2019-03-23T22:11:57.924Z", + "Web/CSS/text-rendering": { + "modified": "2020-10-15T21:08:21.121Z", "contributors": [ - "loella16", - "fsenat" + "SphinxKnight", + "fscholz", + "webdif", + "teoli", + "FredB", + "hsablonniere", + "Manu1400" ] }, - "Web/API/Navigator/cookieEnabled": { - "modified": "2020-10-15T22:13:20.569Z", + "Web/CSS/text-shadow": { + "modified": "2020-10-15T21:11:21.315Z", "contributors": [ - "bloblga" + "SphinxKnight", + "NemoNobobyPersonne", + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "BadFox", + "BenoitL" ] }, - "Web/API/Navigator/credentials": { - "modified": "2020-10-15T22:15:44.720Z", + "Web/CSS/text-size-adjust": { + "modified": "2020-10-15T21:41:38.977Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Goofy" ] }, - "Web/API/Navigator/doNotTrack": { - "modified": "2019-03-23T23:15:47.123Z", + "Web/CSS/text-transform": { + "modified": "2020-10-15T21:08:51.025Z", "contributors": [ - "loella16", + "SphinxKnight", "fscholz", - "khalid32", - "T2A5H1A1" + "Sebastianz", + "sylozof", + "teoli", + "FredB", + "Matouche" ] }, - "Web/API/Navigator/geolocation": { - "modified": "2019-03-23T22:26:18.567Z", + "Web/CSS/text-underline-offset": { + "modified": "2020-10-15T22:21:50.660Z", "contributors": [ - "Goofy", - "Lornkor" + "SphinxKnight" ] }, - "Web/API/Navigator/getGamepads": { - "modified": "2020-10-15T21:31:17.970Z", + "Web/CSS/text-underline-position": { + "modified": "2020-10-15T21:21:32.888Z", "contributors": [ - "Arzak656", - "fscholz", - "matteodelabre" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Navigator/mozIsLocallyAvailable": { - "modified": "2019-03-23T23:52:20.754Z", + "Web/CSS/time": { + "modified": "2020-10-15T21:04:47.409Z", "contributors": [ + "SphinxKnight", + "Sebastianz", + "Prinz_Rana", "fscholz", + "FredB", "teoli", - "jsx", - "Mgjbot", - "BenoitL" + "tregagnon" ] }, - "Web/API/Navigator/registerProtocolHandler": { - "modified": "2019-03-23T23:52:04.757Z", + "Web/CSS/time-percentage": { + "modified": "2020-10-15T22:14:23.852Z", "contributors": [ - "Fluorinx", - "fscholz", - "teoli", - "khalid32", - "BenoitL", - "Mgjbot" + "SphinxKnight" ] }, - "Web/API/Navigator/registerProtocolHandler/Web-based_protocol_handlers": { - "modified": "2019-03-23T23:58:55.939Z", + "Web/CSS/top": { + "modified": "2020-10-15T21:19:40.106Z", "contributors": [ "SphinxKnight", - "chrisdavidmills", - "tregagnon", - "muffinchoco", - "Mgjbot", - "BenoitL" + "fscholz", + "Sebastianz", + "teoli", + "FredB", + "ethertank", + "DavidWalsh" ] }, - "Web/API/Navigator/sendBeacon": { - "modified": "2020-10-15T21:52:49.634Z", + "Web/CSS/touch-action": { + "modified": "2020-10-15T21:41:20.063Z", "contributors": [ - "ylerjen", - "regseb", - "fireyoshiqc" + "daformat", + "SphinxKnight" ] }, - "Web/API/Navigator/serviceWorker": { - "modified": "2019-03-23T22:46:34.715Z", + "Web/CSS/transform": { + "modified": "2020-10-15T21:19:05.910Z", "contributors": [ - "mazoutzecat", - "isac83" + "SphinxKnight", + "Prinz_Rana", + "Sebastianz", + "Sheppy", + "teoli", + "FredB", + "lmorchard" ] }, - "Web/API/Navigator/share": { - "modified": "2020-10-15T22:19:51.304Z", + "Web/CSS/transform-box": { + "modified": "2020-10-15T21:41:17.907Z", "contributors": [ - "antoinerousseau", - "AlexisColin" + "SphinxKnight" ] }, - "Web/API/Navigator/vibrate": { - "modified": "2020-10-15T22:22:06.618Z", + "Web/CSS/transform-function": { + "modified": "2020-10-15T21:42:33.342Z", "contributors": [ - "nboisteault", - "Arzak656" + "SphinxKnight", + "AntoineTohan", + "mrstork" ] }, - "Web/API/NavigatorLanguage": { - "modified": "2020-11-13T08:13:18.543Z", + "Web/CSS/transform-function/matrix()": { + "modified": "2020-11-16T08:59:24.432Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight", + "stephane-tessier" ] }, - "Web/API/NavigatorLanguage/language": { - "modified": "2020-11-13T09:34:12.937Z", + "Web/CSS/transform-function/matrix3d()": { + "modified": "2020-11-16T09:01:09.677Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight", + "Sebastianz" ] }, - "Web/API/NavigatorLanguage/languages": { - "modified": "2020-11-13T11:23:05.443Z", + "Web/CSS/transform-function/perspective()": { + "modified": "2020-11-16T09:10:28.191Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "SphinxKnight", + "mrstork" ] }, - "Web/API/NavigatorOnLine": { - "modified": "2020-10-15T21:33:01.047Z", + "Web/CSS/transform-function/rotate()": { + "modified": "2020-11-19T16:05:47.321Z", "contributors": [ - "Arzak656", - "fscholz" + "chrisdavidmills", + "SphinxKnight", + "goofy_mdn", + "prayash" ] }, - "Web/API/NavigatorOnLine/onLine": { - "modified": "2020-10-15T21:16:47.165Z", + "Web/CSS/transform-function/rotate3d()": { + "modified": "2020-11-19T16:07:17.057Z", "contributors": [ - "tomderudder", - "thibaultboursier", - "nicodel", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "chrisdavidmills", + "GuiBret", + "SphinxKnight", + "Sebastianz", + "prayash" ] }, - "Web/API/NavigatorOnLine/Évènements_online_et_offline": { - "modified": "2019-03-23T23:53:02.447Z", + "Web/CSS/transform-function/rotateX()": { + "modified": "2020-11-19T16:08:58.335Z", "contributors": [ - "Suriteka", "chrisdavidmills", - "BenoitL", - "Mgjbot" + "SphinxKnight", + "prayash" ] }, - "Web/API/NavigatorStorage": { - "modified": "2020-10-15T22:17:55.760Z" - }, - "Web/API/NavigatorStorage/storage": { - "modified": "2020-10-15T22:17:55.620Z", + "Web/CSS/transform-function/rotateY()": { + "modified": "2020-11-19T16:09:55.866Z", "contributors": [ - "Watilin" + "chrisdavidmills", + "SphinxKnight", + "prayash" ] }, - "Web/API/Node": { - "modified": "2020-11-10T19:53:04.820Z", + "Web/CSS/transform-function/rotateZ()": { + "modified": "2020-11-30T10:07:33.024Z", "contributors": [ - "JNa0", - "loella16", - "3dos", + "chrisdavidmills", "SphinxKnight", - "Hell_Carlito", - "teoli", - "jsx", - "tregagnon", - "Julien.stuby" + "prayash" ] }, - "Web/API/Node/appendChild": { - "modified": "2019-04-19T11:04:07.094Z", + "Web/CSS/transform-function/scale()": { + "modified": "2020-11-30T10:15:36.688Z", "contributors": [ - "dhb33", - "loella16", - "gpenissard", - "P45QU10U", - "fscholz", - "teoli", - "khalid32", - "oooo", - "Jeremie", - "Shikiryu", - "Julien STUBY", - "Mgjbot", - "Chbok", - "ErgoUser", - "BenoitL", - "Takenbot" + "chrisdavidmills", + "SphinxKnight", + "Halkeand", + "Loliwe", + "Sebastianz" ] }, - "Web/API/Node/baseURI": { - "modified": "2019-03-18T21:40:03.713Z", + "Web/CSS/transform-function/scale3d()": { + "modified": "2020-11-30T10:19:17.844Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight", + "DavidDx", + "Sebastianz" ] }, - "Web/API/Node/baseURIObject": { - "modified": "2020-10-15T22:02:08.284Z", + "Web/CSS/transform-function/scaleX()": { + "modified": "2020-11-30T10:20:33.117Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight", + "Sebastianz" ] }, - "Web/API/Node/childNodes": { - "modified": "2020-10-15T21:13:37.347Z", + "Web/CSS/transform-function/scaleY()": { + "modified": "2020-11-30T10:21:46.233Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "time132", - "Julien STUBY", - "BenoitL", - "Mgjbot", - "Takenbot", - "GT" + "chrisdavidmills", + "SphinxKnight", + "Sebastianz" ] }, - "Web/API/Node/cloneNode": { - "modified": "2019-03-23T23:49:43.842Z", + "Web/CSS/transform-function/scaleZ()": { + "modified": "2020-11-30T10:23:37.630Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "jsx", - "Twistede", - "Mgjbot", - "BenoitL", - "Fredchat", - "Celelibi" + "chrisdavidmills", + "SphinxKnight", + "Sebastianz" ] }, - "Web/API/Node/compareDocumentPosition": { - "modified": "2019-03-18T21:40:11.785Z", + "Web/CSS/transform-function/skew()": { + "modified": "2020-11-30T10:25:40.996Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight", + "prayash" ] }, - "Web/API/Node/contains": { - "modified": "2019-03-23T23:10:58.748Z", + "Web/CSS/transform-function/skewX()": { + "modified": "2020-11-30T10:27:10.768Z", "contributors": [ - "loella16", - "vava", - "fscholz", - "AshfaqHossain", - "R_403" + "chrisdavidmills", + "SphinxKnight", + "Ramzi2892", + "prayash" ] }, - "Web/API/Node/firstChild": { - "modified": "2020-10-15T21:15:37.706Z", + "Web/CSS/transform-function/skewY()": { + "modified": "2020-11-30T10:28:12.012Z", "contributors": [ - "Eric-ciccotti", - "loella16", - "fscholz", - "AshfaqHossain", - "Sheppy", - "Mgjbot", - "BenoitL", - "Takenbot" + "chrisdavidmills", + "SphinxKnight", + "prayash" ] }, - "Web/API/Node/getRootNode": { - "modified": "2020-10-15T22:02:10.046Z", + "Web/CSS/transform-function/translate()": { + "modified": "2020-11-30T10:30:22.993Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight", + "mrstork" ] }, - "Web/API/Node/getUserData": { - "modified": "2019-03-18T21:40:10.400Z", + "Web/CSS/transform-function/translate3d()": { + "modified": "2020-11-30T12:56:47.640Z", "contributors": [ - "loella16" + "chrisdavidmills", + "SphinxKnight", + "ThreadElric", + "mrstork" ] }, - "Web/API/Node/hasChildNodes": { - "modified": "2019-03-23T23:54:17.372Z", + "Web/CSS/transform-function/translateX": { + "modified": "2019-04-06T11:48:19.824Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Fredchat", - "Celelibi" + "SphinxKnight", + "mrstork" ] }, - "Web/API/Node/innerText": { - "modified": "2020-10-15T21:45:59.327Z", + "Web/CSS/transform-function/translateY()": { + "modified": "2020-11-30T13:01:02.374Z", "contributors": [ - "loella16", - "Watilin", - "kodliber", - "lansanasylla" + "chrisdavidmills", + "SphinxKnight", + "mrstork" ] }, - "Web/API/Node/insertBefore": { - "modified": "2019-03-23T23:59:37.542Z", + "Web/CSS/transform-function/translateZ()": { + "modified": "2020-11-30T13:02:52.702Z", "contributors": [ - "loella16", - "trebly", - "fscholz", - "teoli", - "Hasilt", - "tregagnon", - "Julien.stuby", - "Mgjbot", - "BenoitL", - "Cerbere13" + "chrisdavidmills", + "SphinxKnight", + "mrstork" ] }, - "Web/API/Node/isConnected": { - "modified": "2020-10-15T22:02:12.631Z", + "Web/CSS/transform-origin": { + "modified": "2020-10-15T21:19:06.049Z", "contributors": [ - "loella16" + "tristantheb", + "SphinxKnight", + "Prinz_Rana", + "Sebastianz", + "antograssiot", + "teoli", + "FredB" ] }, - "Web/API/Node/isDefaultNamespace": { - "modified": "2019-03-18T21:40:10.800Z", + "Web/CSS/transform-style": { + "modified": "2020-10-15T21:19:45.597Z", "contributors": [ - "loella16" + "SphinxKnight", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Node/isEqualNode": { - "modified": "2019-03-23T22:54:52.633Z", + "Web/CSS/transition": { + "modified": "2020-10-15T21:20:31.652Z", "contributors": [ - "loella16", - "mjeanroy" + "SphinxKnight", + "ovaxio", + "sztan", + "fscholz", + "Sebastianz", + "J.DMB", + "louuis", + "teoli", + "FredB" ] }, - "Web/API/Node/isSameNode": { - "modified": "2019-03-18T21:39:55.776Z", + "Web/CSS/transition-delay": { + "modified": "2020-10-15T21:19:58.171Z", "contributors": [ - "loella16" + "SphinxKnight", + "mrstork", + "fscholz", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Node/isSupported": { - "modified": "2019-03-18T21:15:15.385Z", + "Web/CSS/transition-duration": { + "modified": "2020-10-15T21:20:14.863Z", "contributors": [ - "loella16", + "SphinxKnight", + "mrstork", "fscholz", + "Sebastianz", "teoli", - "jsx", - "BenoitL" + "FredB" ] }, - "Web/API/Node/lastChild": { - "modified": "2020-10-15T21:15:08.719Z", + "Web/CSS/transition-property": { + "modified": "2020-10-15T21:20:09.909Z", "contributors": [ - "loella16", + "SphinxKnight", "fscholz", + "Sebastianz", "teoli", - "mimzi_fahia", - "Mgjbot", - "Takenbot", - "BenoitL" + "gudoy", + "FredB" ] }, - "Web/API/Node/localName": { - "modified": "2020-10-15T21:17:55.986Z", + "Web/CSS/transition-timing-function": { + "modified": "2020-10-15T21:20:09.412Z", "contributors": [ - "loella16", + "SphinxKnight", + "mrstork", "fscholz", + "Sebastianz", "teoli", - "khalid32", - "BenoitL" + "FredB" ] }, - "Web/API/Node/lookupNamespaceURI": { - "modified": "2019-03-18T21:39:45.898Z", + "Web/CSS/translate": { + "modified": "2020-10-15T22:02:43.081Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/Node/lookupPrefix": { - "modified": "2019-03-18T21:40:12.652Z", + "Web/CSS/translation-value": { + "modified": "2019-04-06T11:47:12.242Z", "contributors": [ - "loella16" + "SphinxKnight", + "J.DMB", + "teoli", + "louuis" ] }, - "Web/API/Node/namespaceURI": { - "modified": "2020-10-15T21:17:54.747Z", + "Web/CSS/unicode-bidi": { + "modified": "2020-10-15T21:10:25.144Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", + "trouba", + "Sebastianz", "teoli", - "khalid32", - "BenoitL" + "FredB", + "ThePrisoner" ] }, - "Web/API/Node/nextSibling": { - "modified": "2020-10-15T21:15:37.751Z", + "Web/CSS/unset": { + "modified": "2020-10-15T21:40:50.115Z", "contributors": [ - "wbamberg", - "loella16", - "fscholz", - "AshfaqHossain", - "Sheppy", - "Mgjbot", - "BenoitL", - "Pitoutompoilu", - "Takenbot" + "SphinxKnight" ] }, - "Web/API/Node/nodeName": { - "modified": "2020-10-15T21:16:21.067Z", + "Web/CSS/url()": { + "modified": "2020-10-15T22:20:27.752Z", "contributors": [ - "loella16", - "mparisot", - "fscholz", - "teoli", - "jsx", - "AshfaqHossain", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/API/Node/nodePrincipal": { - "modified": "2020-10-15T22:02:08.674Z", + "Web/CSS/user-modify": { + "modified": "2020-10-15T21:43:01.040Z", "contributors": [ - "loella16" + "SphinxKnight", + "NicolasT" ] }, - "Web/API/Node/nodeType": { - "modified": "2020-10-15T21:16:45.416Z", + "Web/CSS/user-select": { + "modified": "2020-10-15T21:28:08.010Z", "contributors": [ - "loella16", - "fscholz", + "SphinxKnight", + "Sheppy", + "Fredchat", "teoli", - "arunpandianp", - "ethertank", - "Mgjbot", - "Takenbot", - "BenoitL" + "louuis" ] }, - "Web/API/Node/nodeValue": { - "modified": "2020-10-15T21:09:31.818Z", + "Web/CSS/var()": { + "modified": "2020-10-15T21:42:32.805Z", "contributors": [ - "loella16", - "fscholz", - "jsx", + "SphinxKnight" + ] + }, + "Web/CSS/vertical-align": { + "modified": "2020-10-15T21:17:57.980Z", + "contributors": [ + "SphinxKnight", + "vlakoff", + "Loliwe", + "Sebastianz", "teoli", - "dextra", - "BenoitL", - "Kamel" + "FredB", + "Fredchat", + "Kyodev" ] }, - "Web/API/Node/normalize": { - "modified": "2019-03-23T23:47:18.882Z", + "Web/CSS/visibility": { + "modified": "2020-10-15T21:18:07.321Z", "contributors": [ - "Watilin", - "fscholz", + "patrickfournier", + "SphinxKnight", + "Sebastianz", + "Hell_Carlito", + "vava", "teoli", - "khalid32", - "BenoitL", + "tregagnon", + "FredB", + "Kyodev", "Fredchat" ] }, - "Web/API/Node/ownerDocument": { - "modified": "2020-10-15T21:15:33.193Z", + "Web/CSS/white-space": { + "modified": "2020-10-15T21:19:07.297Z", "contributors": [ - "loella16", + "SphinxKnight", + "nykola", "fscholz", - "Jeremie", - "Mgjbot", - "BenoitL" + "teoli", + "claudepache", + "FredB", + "nonos" ] }, - "Web/API/Node/parentElement": { - "modified": "2020-10-15T21:34:10.422Z", + "Web/CSS/widows": { + "modified": "2020-10-15T21:19:18.585Z", "contributors": [ - "loella16", - "Hell_Carlito", - "CLEm", - "Goofy", - "Eyelock" + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB" ] }, - "Web/API/Node/parentNode": { - "modified": "2020-10-15T21:15:23.433Z", + "Web/CSS/width": { + "modified": "2020-10-15T21:16:34.721Z", "contributors": [ - "mickro", - "loella16", - "vava", - "fscholz", + "cdoublev", + "SphinxKnight", + "Sebastianz", "teoli", - "jsx", + "FredB", "Mgjbot", - "Takenbot", - "BenoitL" + "BenoitL", + "Fredchat", + "Kyodev" ] }, - "Web/API/Node/prefix": { - "modified": "2020-10-15T21:17:23.469Z", + "Web/CSS/will-change": { + "modified": "2020-10-15T21:38:00.394Z", "contributors": [ - "loella16", - "fscholz", - "teoli", - "soumya", - "BenoitL" + "cdoublev", + "Marc.V", + "SphinxKnight", + "Sebastianz", + "PRASS95" ] }, - "Web/API/Node/previousSibling": { - "modified": "2020-10-15T21:15:38.177Z", + "Web/CSS/word-break": { + "modified": "2020-10-15T21:20:32.265Z", "contributors": [ - "wbamberg", - "loella16", + "SphinxKnight", + "Sylfare", + "PifyZ", + "teoli", "fscholz", - "jsx", - "Sheppy", - "Mgjbot", - "BenoitL", - "Pitoutompoilu" + "Sebastianz", + "louuis", + "FredB" ] }, - "Web/API/Node/removeChild": { - "modified": "2019-05-05T22:02:06.657Z", + "Web/CSS/word-spacing": { + "modified": "2020-10-15T21:09:07.377Z", "contributors": [ - "loella16", - "Hell_Carlito", - "Copen", - "antmout", + "SphinxKnight", + "Prinz_Rana", "fscholz", + "Sebastianz", "teoli", - "khalid32", - "Julien STUBY", - "Mgjbot", - "BenoitL" + "Goofy", + "louuis", + "FredB" ] }, - "Web/API/Node/replaceChild": { - "modified": "2019-03-23T23:54:19.719Z", + "Web/CSS/writing-mode": { + "modified": "2020-10-15T21:23:45.445Z", "contributors": [ - "loella16", - "lexoyo", - "fscholz", + "SphinxKnight", + "YoruNoHikage", + "L2o", "teoli", - "jsx", - "Mgjbot", - "BenoitL", + "FredB" + ] + }, + "Web/CSS/z-index": { + "modified": "2020-10-15T21:08:18.747Z", + "contributors": [ + "SphinxKnight", + "Sebastianz", + "teoli", + "FredB", + "tregagnon", "Fredchat", - "Celelibi" + "Kyodev", + "Lapinkiller" ] }, - "Web/API/Node/rootNode": { - "modified": "2020-10-15T22:02:08.977Z", + "Web/CSS/zoom": { + "modified": "2020-10-15T21:45:23.245Z", "contributors": [ - "wbamberg", - "loella16" + "SphinxKnight", + "BenMorel", + "JayPanoz" ] }, - "Web/API/Node/setUserData": { - "modified": "2019-03-18T21:39:40.470Z", + "Web/EXSLT": { + "modified": "2019-01-17T10:26:33.088Z", "contributors": [ - "loella16" + "ExE-Boss", + "BenoitL", + "Mgjbot" ] }, - "Web/API/Node/textContent": { - "modified": "2020-10-15T21:17:31.045Z", + "Web/EXSLT/exsl": { + "modified": "2019-01-16T15:20:55.825Z", "contributors": [ - "loella16", - "fscholz", + "ExE-Boss", "teoli", - "Etienne_WATTEBLED", - "khalid32", - "Delapouite", - "BenoitL" + "Jeremie", + "tregagnon", + "Anonymous" ] }, - "Web/API/NodeFilter": { - "modified": "2020-10-15T22:02:05.638Z", + "Web/EXSLT/exsl/node-set": { + "modified": "2019-01-16T15:43:16.875Z", "contributors": [ - "loella16" + "ExE-Boss", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Web/API/NodeFilter/acceptNode": { - "modified": "2020-10-15T22:02:05.206Z", + "Web/EXSLT/exsl/object-type": { + "modified": "2019-03-23T23:51:29.001Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator": { - "modified": "2019-03-18T21:40:15.210Z", + "Web/EXSLT/math": { + "modified": "2019-01-16T15:25:32.670Z", "contributors": [ - "loella16" + "ExE-Boss", + "teoli", + "Jeremie", + "tregagnon", + "Anonymous" ] }, - "Web/API/NodeIterator/detach": { - "modified": "2020-10-15T22:02:07.225Z", + "Web/EXSLT/math/highest": { + "modified": "2019-03-23T23:51:27.731Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/expandEntityReferences": { - "modified": "2020-10-15T22:02:07.409Z", + "Web/EXSLT/math/lowest": { + "modified": "2019-03-23T23:51:32.457Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/filter": { - "modified": "2020-10-15T22:02:07.204Z", + "Web/EXSLT/math/min": { + "modified": "2019-03-23T23:50:33.876Z", "contributors": [ - "loella16" + "ExE-Boss", + "Dralyab", + "jackblack", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/nextNode": { - "modified": "2020-10-15T22:02:07.539Z", + "Web/EXSLT/set": { + "modified": "2019-01-16T15:22:46.319Z", "contributors": [ - "loella16" + "ExE-Boss", + "Jeremie", + "Anonymous" ] }, - "Web/API/NodeIterator/pointerBeforeReferenceNode": { - "modified": "2020-10-15T22:02:09.377Z", + "Web/EXSLT/set/difference": { + "modified": "2019-03-23T23:50:39.871Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/previousNode": { - "modified": "2020-10-15T22:02:08.258Z", + "Web/EXSLT/set/distinct": { + "modified": "2019-03-23T23:50:37.743Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/referenceNode": { - "modified": "2020-10-15T22:02:07.308Z", + "Web/EXSLT/set/has-same-node": { + "modified": "2019-03-23T23:50:40.804Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/root": { - "modified": "2020-10-15T22:02:05.574Z", + "Web/EXSLT/set/intersection": { + "modified": "2019-03-23T23:50:32.370Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeIterator/whatToShow": { - "modified": "2020-10-15T22:02:06.711Z", + "Web/EXSLT/set/leading": { + "modified": "2019-03-23T23:50:41.424Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeList": { - "modified": "2019-03-23T22:57:59.165Z", + "Web/EXSLT/set/trailing": { + "modified": "2019-03-23T23:50:41.695Z", "contributors": [ - "madarche", - "loella16", - "uniqid", - "Fredchat", - "taorepoara" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeList/entries": { - "modified": "2020-10-15T22:02:16.295Z", + "Web/EXSLT/str": { + "modified": "2019-01-16T15:24:44.465Z", "contributors": [ - "edspeedy", - "loella16" + "ExE-Boss", + "Jeremie", + "Anonymous" ] }, - "Web/API/NodeList/forEach": { - "modified": "2020-10-15T22:02:31.449Z", + "Web/EXSLT/str/concat": { + "modified": "2019-03-24T00:12:37.407Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Fredchat", + "Mgjbot" ] }, - "Web/API/NodeList/item": { - "modified": "2020-10-15T22:02:18.906Z", + "Web/EXSLT/str/split": { + "modified": "2019-03-23T23:50:37.644Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeList/keys": { - "modified": "2020-10-15T22:02:31.309Z", + "Web/EXSLT/str/tokenize": { + "modified": "2019-03-23T23:50:34.788Z", "contributors": [ - "loella16" + "ExE-Boss", + "SphinxKnight", + "Mgjbot", + "Fredchat" ] }, - "Web/API/NodeList/length": { - "modified": "2020-10-15T22:02:17.633Z", + "Web/Events": { + "modified": "2020-09-03T05:30:03.906Z", "contributors": [ - "loella16" + "Voulto", + "cendrars59", + "wbamberg", + "Alain20100", + "ebear", + "linedubeth", + "AlainRinder" ] }, - "Web/API/NodeList/values": { - "modified": "2020-10-15T22:02:32.815Z", + "Web/Guide": { + "modified": "2020-04-12T14:16:39.360Z", "contributors": [ - "loella16" + "ele-gall-ac-mineducation", + "tristantheb", + "SphinxKnight", + "Leticiak37", + "demangejeremy", + "EloD10", + "axel8591", + "SaintCyr", + "Hydr0s", + "Fredchat", + "Caudralys", + "teoli", + "fama25", + "ethertank", + "tregagnon", + "Sheppy" ] }, - "Web/API/Notation": { - "modified": "2019-03-18T21:40:13.820Z", + "Web/Guide/AJAX": { + "modified": "2020-06-08T12:58:09.722Z", "contributors": [ - "loella16" + "Maxi-MenuBestOfPlus", + "CyrilKrylatov", + "SphinxKnight", + "chrisdavidmills", + "Arkhall", + "Nothus", + "tregagnon", + "arena", + "Mgjbot", + "Summit677", + "Fredchat", + "BenoitL", + "Neumann", + "Chbok", + "VincentN", + "Dria" ] }, - "Web/API/NotificationEvent": { - "modified": "2020-09-27T20:47:13.129Z", + "Web/Guide/API": { + "modified": "2019-03-23T23:08:38.035Z", "contributors": [ "SphinxKnight", - "dzlabs" + "demangejeremy", + "shing0608" ] }, - "Web/API/Notifications_API": { - "modified": "2020-10-15T22:34:42.573Z", + "Web/Guide/Audio_and_video_delivery": { + "modified": "2019-03-23T22:00:15.299Z", "contributors": [ - "tomderudder" + "chrisdavidmills", + "a-mt" ] }, - "Web/API/NotifyAudioAvailableEvent": { - "modified": "2020-10-13T11:44:03.313Z", + "Web/Guide/Audio_and_video_delivery/Live_streaming_web_audio_and_video": { + "modified": "2019-03-18T20:51:45.799Z", "contributors": [ - "Voulto" + "chrisdavidmills", + "a-mt" ] }, - "Web/API/OffscreenCanvas": { - "modified": "2019-03-18T21:46:24.440Z", + "Web/Guide/Audio_and_video_delivery/buffering_seeking_time_ranges": { + "modified": "2019-03-18T20:51:45.442Z", "contributors": [ - "NemoNobobyPersonne" + "chrisdavidmills", + "a-mt" ] }, - "Web/API/OscillatorNode": { - "modified": "2019-03-23T22:53:15.413Z", + "Web/Guide/Audio_and_video_manipulation": { + "modified": "2019-03-23T22:00:16.201Z", "contributors": [ - "marie-ototoi", - "kbeaulieu", - "Goofy", - "fscholz", - "Poyoman39" + "chrisdavidmills", + "a-mt" ] }, - "Web/API/PageTransitionEvent": { - "modified": "2019-03-23T22:48:09.437Z", + "Web/Guide/Graphics": { + "modified": "2019-03-23T23:29:27.864Z", "contributors": [ - "Watilin", - "ashnet" + "tonybengue", + "Patrice-Koumar", + "Goofy", + "tregagnon", + "darnuria" ] }, - "Web/API/Page_Visibility_API": { - "modified": "2019-03-23T22:01:56.477Z", + "Web/Guide/HTML/HTML5": { + "modified": "2019-11-06T04:21:55.272Z", "contributors": [ - "Watilin" + "Awebsome", + "teoli", + "tregagnon", + "leoetlino", + "Flaburgan", + "DavidWalsh", + "vigia122", + "MatthieuMaler", + "rd6137", + "Dwchiang", + "BenoitL" ] }, - "Web/API/ParentNode": { - "modified": "2020-10-15T21:33:02.872Z", + "Web/Guide/Mobile": { + "modified": "2019-03-23T23:29:36.868Z", "contributors": [ - "abvll", - "loella16", - "fscholz" + "wakka27", + "BenoitL" ] }, - "Web/API/ParentNode/append": { - "modified": "2020-10-15T21:59:23.058Z", + "Web/Guide/Performance": { + "modified": "2019-03-23T23:28:31.959Z", "contributors": [ - "Yukulele.", - "Watilin", - "ayshiff" + "superfrenchboy", + "teoli", + "Sheppy" ] }, - "Web/API/ParentNode/childElementCount": { - "modified": "2020-10-15T21:37:50.913Z", + "Web/Guide/User_input_methods": { + "modified": "2019-03-23T22:00:16.721Z", "contributors": [ - "abvll", - "loella16", - "xavierartot", - "vava" + "chrisdavidmills", + "a-mt" ] }, - "Web/API/ParentNode/children": { - "modified": "2020-10-15T21:43:07.206Z", + "Web/HTML": { + "modified": "2020-05-09T13:47:36.411Z", "contributors": [ - "Arzak656", - "jMoulis", - "loella16", - "NemoNobobyPersonne", - "xavierartot" + "SphinxKnight", + "facebook", + "tristantheb", + "NicolasCELLA", + "NerOcrO", + "tonybengue", + "Goofy", + "KhalilSnaake", + "Aminelahlou", + "CLEm", + "daniel35310", + "Gibus", + "krischamp", + "julia31", + "jsx", + "teoli", + "jalu78", + "DamienBertrand", + "wakka27", + "Luejni", + "nicoo", + "PetiPandaRou", + "Junipa", + "msherefel", + "claudepache", + "tregagnon", + "Saydev", + "FredB", + "BenoitL", + "ThePrisoner", + "abc222", + "david-suisse", + "Shz", + "xaky", + "fscholz", + "Mgjbot", + "Chbok", + "Planche", + "Takenbot" ] }, - "Web/API/ParentNode/firstElementChild": { - "modified": "2019-03-23T23:35:50.443Z", + "Web/HTML/Element": { + "modified": "2019-06-20T13:53:53.330Z", "contributors": [ - "pdonias", - "fscholz", + "SphinxKnight", + "PhilippeV", + "RolandOnGitHub", + "Loliwe", + "unpeudetout", + "tregagnon", + "OlivierBaudry", + "BlackSheep", + "BenoitL", + "Lomalarch", + "jackblack", + "Shz", + "xaky", "teoli", - "khalid32", - "Delapouite", - "Beaver" + "Mgjbot" ] }, - "Web/API/ParentNode/lastElementChild": { - "modified": "2019-03-18T21:39:15.409Z", + "Web/HTML/Element/Button": { + "modified": "2020-10-15T21:14:16.152Z", "contributors": [ - "loella16" + "yannbertrand", + "SphinxKnight", + "vvvaleee", + "grandoc", + "Chealer", + "marie-ototoi", + "arnaudb", + "FredB", + "tregagnon", + "ethertank", + "teoli" ] }, - "Web/API/ParentNode/prepend": { - "modified": "2020-10-15T22:02:32.998Z", + "Web/HTML/Element/Fieldset": { + "modified": "2020-10-15T21:14:14.734Z", "contributors": [ - "Yukulele.", - "Seblor", - "loella16" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "teoli", + "ethertank" ] }, - "Web/API/ParentNode/querySelector": { - "modified": "2020-10-15T22:30:52.578Z", + "Web/HTML/Element/Form": { + "modified": "2020-10-15T21:14:20.837Z", "contributors": [ - "NeaVy" + "SphinxKnight", + "Hirevo", + "edspeedy", + "Jack_Duthen", + "msherefel", + "Goofy", + "wakooka", + "tregagnon", + "teoli", + "jswisher" ] }, - "Web/API/ParentNode/querySelectorAll": { - "modified": "2020-10-15T22:02:32.472Z", + "Web/HTML/Element/Heading_Elements": { + "modified": "2020-11-02T08:01:39.577Z", "contributors": [ - "abvll", - "loella16" + "ylerjen", + "SphinxKnight", + "marie-ototoi", + "Bat", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/PasswordCredential": { - "modified": "2020-10-15T22:15:37.555Z", + "Web/HTML/Element/Img": { + "modified": "2020-10-15T21:23:10.312Z", "contributors": [ + "tristantheb", + "Yukulele.", "SphinxKnight", - "fscholz" + "Chomchaum", + "jgil83000", + "codemmousse", + "Yves_ASTIER", + "Hell_Carlito", + "hostalerye", + "FranckCo", + "louuis", + "Alexfrits", + "msherefel", + "tregagnon", + "olibre", + "Goofy" ] }, - "Web/API/PasswordCredential/PasswordCredential": { - "modified": "2020-10-15T22:15:43.158Z", + "Web/HTML/Element/Input": { + "modified": "2020-10-15T21:14:16.017Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "VictorLequin", + "Flop", + "Dridou", + "SimonArruti", + "lionel", + "marie-ototoi", + "nicofrand", + "wakka27", + "Flaburgan", + "jbeuh", + "arnaudbienner", + "msherefel", + "tregagnon", + "teoli" ] }, - "Web/API/PasswordCredential/additionalData": { - "modified": "2020-10-15T22:15:45.161Z", + "Web/HTML/Element/Input/button": { + "modified": "2020-10-15T21:37:46.494Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "marie-ototoi", + "dreizn", + "Bat", + "Goofy" ] }, - "Web/API/PasswordCredential/iconURL": { - "modified": "2020-10-15T22:15:45.183Z", + "Web/HTML/Element/Input/checkbox": { + "modified": "2020-10-15T21:39:40.574Z", "contributors": [ - "SphinxKnight" + "Jamelkol", + "a-carvallo", + "SphinxKnight", + "LaurentBarbareau", + "euZebe", + "FanJiyong", + "ctjhoa", + "AnthonyMaton" ] }, - "Web/API/PasswordCredential/idName": { - "modified": "2020-10-15T22:15:37.132Z", + "Web/HTML/Element/Input/color": { + "modified": "2020-10-15T21:34:25.198Z", "contributors": [ - "SphinxKnight" + "Jamelkol", + "SphinxKnight", + "nicofrand", + "josephcab" ] }, - "Web/API/PasswordCredential/name": { - "modified": "2020-10-15T22:15:42.939Z", + "Web/HTML/Element/Input/date": { + "modified": "2020-10-15T21:39:48.210Z", "contributors": [ - "SphinxKnight" + "Flaburgan", + "SphinxKnight", + "Lodec", + "P45QU10U", + "mliatt", + "doriangillet", + "marie-ototoi", + "Bat" ] }, - "Web/API/PasswordCredential/password": { - "modified": "2020-10-15T22:15:44.068Z", + "Web/HTML/Element/Input/datetime": { + "modified": "2019-04-04T15:45:35.933Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Antoine-Demailly", + "marie-ototoi", + "KylianLM" ] }, - "Web/API/PasswordCredential/passwordName": { - "modified": "2020-10-15T22:15:42.960Z", + "Web/HTML/Element/Input/datetime-local": { + "modified": "2020-10-28T11:18:38.925Z", "contributors": [ + "nbtetreault", "SphinxKnight" ] }, - "Web/API/Payment_Request_API": { - "modified": "2020-10-15T22:20:45.922Z", + "Web/HTML/Element/Input/email": { + "modified": "2020-10-15T21:55:52.405Z", "contributors": [ - "codingk8" + "SphinxKnight" ] }, - "Web/API/Performance": { - "modified": "2020-10-15T21:33:03.900Z", + "Web/HTML/Element/Input/file": { + "modified": "2020-10-15T21:54:07.371Z", "contributors": [ - "cdoublev", - "fscholz", - "maeljirari" + "brunostasse", + "masonlouchart", + "SphinxKnight", + "PhilippePerret", + "gnoxr", + "daufinsyd" ] }, - "Web/API/Performance/navigation": { - "modified": "2020-10-15T22:03:54.846Z", + "Web/HTML/Element/Input/hidden": { + "modified": "2020-10-15T21:55:51.697Z", "contributors": [ - "fscholz", - "maeljirari" + "SphinxKnight" ] }, - "Web/API/Performance/now": { - "modified": "2020-10-15T21:27:41.866Z", + "Web/HTML/Element/Input/image": { + "modified": "2020-10-15T21:43:35.571Z", "contributors": [ - "Watilin", - "NemoNobobyPersonne", - "fscholz", - "Goofy", - "ilaborie" + "Jamelkol", + "SphinxKnight" ] }, - "Web/API/PeriodicWave": { - "modified": "2020-10-15T22:09:54.557Z", + "Web/HTML/Element/Input/month": { + "modified": "2020-10-15T21:56:34.329Z", "contributors": [ "SphinxKnight", - "JNa0", - "simdax" - ] - }, - "Web/API/Permissions_API": { - "modified": "2020-10-15T22:21:53.625Z", - "contributors": [ - "lp177" + "loganblangenois" ] }, - "Web/API/Plugin": { - "modified": "2019-03-18T21:43:51.138Z", + "Web/HTML/Element/Input/number": { + "modified": "2020-10-15T21:55:45.586Z", "contributors": [ - "ayshiff" + "SphinxKnight", + "nbrdx", + "Louis-PhilippeTrempe" ] }, - "Web/API/PointerEvent": { - "modified": "2020-10-15T22:17:19.185Z", + "Web/HTML/Element/Input/password": { + "modified": "2020-10-15T21:43:36.452Z", "contributors": [ - "brunostasse", - "cdoublev" + "SphinxKnight", + "CAILAC-Maxime" ] }, - "Web/API/Pointer_events": { - "modified": "2020-11-02T15:44:40.619Z", + "Web/HTML/Element/Input/radio": { + "modified": "2020-10-15T21:55:43.403Z", "contributors": [ - "lephemere", - "a-mt", - "davidhbrown" + "SphinxKnight", + "FanJiyong" ] }, - "Web/API/Pointer_events/gestes_pincer_zoom": { - "modified": "2019-03-23T22:13:16.101Z", + "Web/HTML/Element/Input/range": { + "modified": "2020-10-15T21:55:44.797Z", "contributors": [ - "a-mt", - "insomniaqc" + "SphinxKnight", + "jerominejournet" ] }, - "Web/API/PositionOptions": { - "modified": "2019-08-26T09:46:33.509Z", + "Web/HTML/Element/Input/reset": { + "modified": "2020-10-15T21:55:53.083Z", "contributors": [ - "ReinWired", - "guizmo51", - "JeanLucB" + "SphinxKnight" ] }, - "Web/API/PositionOptions/enableHighAccuracy": { - "modified": "2019-03-18T21:37:11.224Z", + "Web/HTML/Element/Input/search": { + "modified": "2020-10-15T21:55:52.204Z", "contributors": [ - "JeanLucB" + "SphinxKnight", + "lionralfs" ] }, - "Web/API/PositionOptions/maximumAge": { - "modified": "2019-03-18T21:37:16.913Z", + "Web/HTML/Element/Input/submit": { + "modified": "2020-10-15T21:56:12.673Z", "contributors": [ - "JeanLucB" + "SphinxKnight", + "cabalpit" ] }, - "Web/API/PositionOptions/timeout": { - "modified": "2020-10-15T22:03:34.783Z", + "Web/HTML/Element/Input/tel": { + "modified": "2020-11-24T06:34:33.505Z", "contributors": [ - "Arzak656", - "JeanLucB" + "Superkooka", + "SphinxKnight" ] }, - "Web/API/ProcessingInstruction": { - "modified": "2019-03-18T21:40:23.342Z", + "Web/HTML/Element/Input/text": { + "modified": "2020-10-15T21:57:28.394Z", "contributors": [ - "loella16" + "SphinxKnight", + "Keyhaku" ] }, - "Web/API/PublicKeyCredential": { - "modified": "2020-10-15T22:15:37.633Z", + "Web/HTML/Element/Input/time": { + "modified": "2020-10-15T21:57:37.801Z", "contributors": [ "SphinxKnight" ] }, - "Web/API/PushEvent": { - "modified": "2019-03-18T21:17:31.867Z", + "Web/HTML/Element/Input/url": { + "modified": "2020-10-15T21:57:06.539Z", "contributors": [ - "Hell_Carlito", - "JeffD" + "SphinxKnight" ] }, - "Web/API/Push_API": { - "modified": "2020-10-15T21:44:48.386Z", + "Web/HTML/Element/Input/week": { + "modified": "2020-10-15T21:57:06.373Z", "contributors": [ - "tristantheb", - "Hell_Carlito", - "nicolashenry", - "JeffD" + "SphinxKnight" ] }, - "Web/API/RTCIceServer": { - "modified": "2020-09-12T07:23:54.439Z", + "Web/HTML/Element/Keygen": { + "modified": "2020-10-15T21:14:21.658Z", "contributors": [ - "MisterDA", - "amineSsa" + "SphinxKnight", + "marie-ototoi", + "msherefel", + "tregagnon", + "teoli" ] }, - "Web/API/RTCPeerConnection": { - "modified": "2020-10-15T22:22:14.553Z", + "Web/HTML/Element/Label": { + "modified": "2020-10-15T21:14:20.293Z", "contributors": [ - "plyd", - "philbhur" + "SphinxKnight", + "colindefais", + "marie-ototoi", + "tregagnon", + "teoli" ] }, - "Web/API/RTCPeerConnection/setConfiguration": { - "modified": "2020-10-15T22:22:53.605Z", + "Web/HTML/Element/Legend": { + "modified": "2020-10-15T21:14:17.910Z", "contributors": [ "SphinxKnight", - "bbataini" + "tregagnon", + "teoli" ] }, - "Web/API/RandomSource/getRandomValues": { - "modified": "2020-10-15T21:32:23.009Z", + "Web/HTML/Element/Meter": { + "modified": "2020-10-15T21:14:20.481Z", "contributors": [ - "tristantheb", - "noftaly", - "Clemix37", - "ea1000", - "fscholz", - "Grahack" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "teoli" ] }, - "Web/API/Range": { - "modified": "2019-03-18T20:49:38.585Z", + "Web/HTML/Element/Optgroup": { + "modified": "2020-10-15T21:14:18.536Z", "contributors": [ - "Watilin", - "stefmaster", - "teoli", - "jsx", - "Mgjbot", - "BenoitL", - "Fredchat", - "VincentN", - "Learning" + "SphinxKnight", + "tregagnon", + "ethertank", + "teoli" ] }, - "Web/API/Range/createContextualFragment": { - "modified": "2019-03-18T21:42:33.795Z", + "Web/HTML/Element/Option": { + "modified": "2020-10-15T21:14:23.462Z", "contributors": [ - "Watilin" + "Jamelkol", + "SphinxKnight", + "stevenremot", + "tregagnon", + "teoli" ] }, - "Web/API/Range/detach": { - "modified": "2020-10-15T22:06:40.189Z", + "Web/HTML/Element/Progress": { + "modified": "2020-10-15T21:14:19.837Z", "contributors": [ - "jonasgrilleres" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "Goofy", + "ethertank", + "teoli" ] }, - "Web/API/Range/extractContents": { - "modified": "2020-10-15T22:01:04.338Z", + "Web/HTML/Element/Shadow": { + "modified": "2020-10-15T21:39:46.549Z", "contributors": [ "SphinxKnight", - "Watilin" + "jean-pierre.gay" ] }, - "Web/API/Range/insertNode": { - "modified": "2019-03-23T22:26:49.211Z", + "Web/HTML/Element/Source": { + "modified": "2020-10-15T21:11:10.814Z", "contributors": [ + "SphinxKnight", "Hell_Carlito", - "Watilin" + "Goofy", + "louuis", + "FredB", + "tregagnon", + "mekal" ] }, - "Web/API/Range/selectNode": { - "modified": "2019-03-18T21:38:58.634Z", + "Web/HTML/Element/Textarea": { + "modified": "2020-10-15T21:14:21.148Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "lulu5239", + "kagagnon", + "wakka27", + "emagnier", + "tregagnon", + "teoli" ] }, - "Web/API/Range/setStart": { - "modified": "2019-03-23T22:02:21.472Z", + "Web/HTML/Element/a": { + "modified": "2020-11-06T11:21:23.131Z", "contributors": [ - "cabalpit" + "CCR-G", + "arkhi", + "mathildebuenerd", + "SphinxKnight", + "Miraty", + "NerOcrO", + "Banban", + "marie-ototoi", + "teoli", + "msherefel", + "tregagnon", + "Goofy", + "ethertank", + "DavidWalsh", + "FredB", + "autodidactie", + "BenoitL" ] }, - "Web/API/Range/surroundContents": { - "modified": "2020-10-15T22:15:03.441Z", + "Web/HTML/Element/abbr": { + "modified": "2020-10-15T21:20:25.117Z", "contributors": [ - "Watilin" + "SphinxKnight", + "grandoc", + "marie-ototoi", + "fscholz", + "msherefel", + "tregagnon", + "Pandark", + "Fredchat" ] }, - "Web/API/Request": { - "modified": "2020-10-15T21:45:46.926Z", + "Web/HTML/Element/acronym": { + "modified": "2020-10-15T21:23:09.919Z", "contributors": [ - "Voulto", "SphinxKnight", - "Sheppy" + "tregagnon" ] }, - "Web/API/Request/Request": { - "modified": "2020-10-15T21:58:38.703Z", + "Web/HTML/Element/address": { + "modified": "2020-10-15T21:21:12.040Z", "contributors": [ "SphinxKnight", - "rpereira-dev", - "NemoNobobyPersonne" + "MisterDaFunk", + "edspeedy", + "marie-ototoi", + "tregagnon", + "msherefel", + "laparn" ] }, - "Web/API/Request/credentials": { - "modified": "2020-10-15T21:59:03.816Z", + "Web/HTML/Element/applet": { + "modified": "2020-10-15T21:23:12.907Z", "contributors": [ "SphinxKnight", - "Flavien" + "tregagnon" ] }, - "Web/API/Request/mode": { - "modified": "2020-10-15T21:45:44.176Z", + "Web/HTML/Element/area": { + "modified": "2020-10-15T21:23:17.179Z", "contributors": [ "SphinxKnight", - "m1ch3lcl", - "P45QU10U" + "sp00m", + "tregagnon" ] }, - "Web/API/Resize_Observer_API": { - "modified": "2020-11-16T08:29:15.752Z", + "Web/HTML/Element/article": { + "modified": "2020-10-15T21:20:54.261Z", "contributors": [ - "JNa0" + "SphinxKnight", + "edspeedy", + "Hell_Carlito", + "jumperparis", + "marie-ototoi", + "louuis", + "teoli", + "tregagnon", + "SwordArMor" ] }, - "Web/API/Response": { - "modified": "2019-03-23T22:02:32.946Z", + "Web/HTML/Element/aside": { + "modified": "2020-10-15T21:20:52.000Z", "contributors": [ - "Hennek" + "SphinxKnight", + "NemoNobobyPersonne", + "marie-ototoi", + "tregagnon", + "msherefel", + "SwordArMor" ] }, - "Web/API/SVGAElement": { - "modified": "2019-03-23T23:09:32.730Z", + "Web/HTML/Element/audio": { + "modified": "2020-10-15T21:05:01.673Z", "contributors": [ + "SphinxKnight", + "MisterDaFunk", + "Brah0um", "Goofy", - "Barbrousse" + "EnzDev", + "marie-ototoi", + "WSH", + "louuis", + "msherefel", + "tregagnon" ] }, - "Web/API/SVGDescElement": { - "modified": "2020-10-15T21:34:30.445Z", + "Web/HTML/Element/b": { + "modified": "2020-10-15T21:13:13.517Z", "contributors": [ "SphinxKnight", - "B_M" - ] - }, - "Web/API/SVGElement": { - "modified": "2019-03-23T23:05:24.715Z", - "contributors": [ - "thePivottt" + "marie-ototoi", + "msherefel", + "tregagnon", + "Goofy", + "ethertank", + "Shz" ] }, - "Web/API/SVGMatrix": { - "modified": "2019-03-23T23:03:00.534Z", + "Web/HTML/Element/base": { + "modified": "2020-10-15T21:23:10.852Z", "contributors": [ - "Arioch" + "SphinxKnight", + "eduleboss", + "teoli", + "louuis", + "msherefel", + "tregagnon" ] }, - "Web/API/SVGRect": { - "modified": "2019-03-23T23:02:52.318Z", + "Web/HTML/Element/basefont": { + "modified": "2020-10-15T21:23:31.867Z", "contributors": [ - "Arioch" + "SphinxKnight", + "fscholz", + "tregagnon" ] }, - "Web/API/SVGRectElement": { - "modified": "2020-10-15T22:16:03.247Z", + "Web/HTML/Element/bdi": { + "modified": "2020-10-15T21:23:16.145Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "Delapouite" ] }, - "Web/API/SVGStylable": { - "modified": "2020-10-15T21:34:30.185Z", + "Web/HTML/Element/bdo": { + "modified": "2020-10-15T21:23:20.744Z", "contributors": [ "SphinxKnight", - "B_M" + "PhilippeV", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/SVGTitleElement": { - "modified": "2019-03-23T22:57:49.129Z", + "Web/HTML/Element/bgsound": { + "modified": "2020-10-15T21:23:34.219Z", "contributors": [ - "B_M" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/Screen_Capture_API": { - "modified": "2020-10-15T22:21:38.382Z", + "Web/HTML/Element/big": { + "modified": "2020-10-15T21:23:57.237Z", "contributors": [ - "Torzivalds" + "SphinxKnight", + "Daniel005", + "Goofy", + "tregagnon" ] }, - "Web/API/Selection": { - "modified": "2020-10-15T21:17:12.773Z", + "Web/HTML/Element/blink": { + "modified": "2020-10-15T21:23:48.718Z", "contributors": [ - "scientificware", - "jeangab62", - "thiberaw", - "Hell_Carlito", - "Goofy", - "Watilin", - "Nothus", - "gaelb", + "SphinxKnight", "teoli", - "jsx", - "Mgjbot", - "Chbok" + "cgrimal", + "tregagnon" ] }, - "Web/API/Selection/collapse": { - "modified": "2019-03-23T22:40:49.435Z", + "Web/HTML/Element/blockquote": { + "modified": "2020-10-15T21:20:42.040Z", "contributors": [ - "Hell_Carlito", - "zede-master" + "SphinxKnight", + "PhilippeV", + "marie-ototoi", + "tregagnon", + "teoli", + "regisg27" ] }, - "Web/API/Selection/toString": { - "modified": "2019-03-23T23:47:21.731Z", + "Web/HTML/Element/body": { + "modified": "2020-10-15T21:13:11.999Z", "contributors": [ - "fscholz", - "teoli", - "jsx", - "Chbok" + "SphinxKnight", + "PhilippeV", + "begmans", + "msherefel", + "tregagnon", + "Shz", + "ethertank" ] }, - "Web/API/Selection/type": { - "modified": "2020-10-15T22:28:11.070Z", + "Web/HTML/Element/br": { + "modified": "2020-10-15T21:13:11.891Z", "contributors": [ - "G-Couvert" + "SphinxKnight", + "edspeedy", + "louuis", + "tregagnon", + "ethertank", + "Shz" ] }, - "Web/API/Selection_API": { - "modified": "2019-03-18T21:28:44.424Z", + "Web/HTML/Element/canvas": { + "modified": "2020-10-15T21:11:31.038Z", "contributors": [ - "Watilin" + "SphinxKnight", + "marie-ototoi", + "emersion", + "tregagnon", + "lumiru", + "Shahor", + "xaky" ] }, - "Web/API/Server-sent_events": { - "modified": "2020-08-31T06:12:15.737Z", + "Web/HTML/Element/caption": { + "modified": "2020-10-15T21:23:14.688Z", "contributors": [ - "Voulto", "SphinxKnight", - "Arterrien", - "ethertank" + "Valbou", + "_pierrick_", + "tregagnon" ] }, - "Web/API/Server-sent_events/Using_server-sent_events": { - "modified": "2019-10-23T03:46:57.246Z", + "Web/HTML/Element/center": { + "modified": "2020-10-15T21:23:55.900Z", "contributors": [ "SphinxKnight", - "Watilin", - "tartinesKiller", - "duchesne.andre", - "ygarbage", - "QuentinChx", - "mikadev" + "tregagnon" ] }, - "Web/API/ServiceWorker": { - "modified": "2020-10-15T21:44:04.910Z", + "Web/HTML/Element/cite": { + "modified": "2020-10-15T21:23:18.545Z", "contributors": [ - "tomderudder", - "JNa0", - "pdesjardins90", - "nobe4" + "SphinxKnight", + "marie-ototoi", + "louuis", + "AnthonyMaton", + "tregagnon" ] }, - "Web/API/ServiceWorker/onstatechange": { - "modified": "2019-03-23T22:37:05.749Z", + "Web/HTML/Element/code": { + "modified": "2020-10-15T21:13:10.410Z", "contributors": [ - "nobe4" + "SphinxKnight", + "marie-ototoi", + "Nadra", + "tregagnon", + "ethertank", + "xaky" ] }, - "Web/API/ServiceWorkerContainer": { - "modified": "2019-03-23T22:15:17.877Z", + "Web/HTML/Element/col": { + "modified": "2020-10-15T21:23:13.154Z", "contributors": [ - "Tranber0" + "SphinxKnight", + "msherefel", + "tregagnon" ] }, - "Web/API/ServiceWorkerContainer/getRegistration": { - "modified": "2020-10-15T22:33:54.801Z", + "Web/HTML/Element/colgroup": { + "modified": "2020-10-15T21:23:21.879Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "msherefel", + "tregagnon" ] }, - "Web/API/ServiceWorkerContainer/register": { - "modified": "2020-10-15T22:34:39.454Z", + "Web/HTML/Element/content": { + "modified": "2020-10-15T21:26:28.598Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "Mylainos" ] }, - "Web/API/ServiceWorkerGlobalScope": { - "modified": "2020-10-15T22:34:58.233Z", + "Web/HTML/Element/data": { + "modified": "2020-10-15T21:23:14.238Z", "contributors": [ - "alattalatta" + "lespacedunmatin", + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/ServiceWorkerGlobalScope/onnotificationclick": { - "modified": "2020-10-15T22:34:57.743Z", + "Web/HTML/Element/datalist": { + "modified": "2020-10-15T21:14:21.726Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "msherefel", + "Zefling", + "tregagnon", + "Goofy", + "Delapouite", + "ethertank", + "teoli" ] }, - "Web/API/ServiceWorkerRegistration": { - "modified": "2020-10-15T22:15:48.505Z", + "Web/HTML/Element/dd": { + "modified": "2020-10-15T21:23:15.318Z", "contributors": [ - "chrisdavidmills" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/ServiceWorkerRegistration/active": { - "modified": "2020-10-15T22:15:46.844Z", + "Web/HTML/Element/del": { + "modified": "2020-10-15T21:23:25.321Z", "contributors": [ - "Watilin" + "THE_PHOENIX", + "SphinxKnight", + "Goofy", + "thomas.g", + "tregagnon" ] }, - "Web/API/ServiceWorkerRegistration/getNotifications": { - "modified": "2020-10-15T22:34:57.266Z", + "Web/HTML/Element/details": { + "modified": "2020-10-15T21:20:52.346Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "bhenbe", + "marie-ototoi", + "Elanis", + "louuis", + "msherefel", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/ServiceWorkerRegistration/scope": { - "modified": "2020-10-15T22:35:02.366Z", + "Web/HTML/Element/dfn": { + "modified": "2020-10-15T21:23:19.445Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/ServiceWorkerRegistration/showNotification": { - "modified": "2020-10-15T22:34:57.967Z", + "Web/HTML/Element/dialog": { + "modified": "2020-10-15T21:29:25.711Z", "contributors": [ - "tomderudder" + "SphinxKnight", + "J.DMB", + "KkFalse2", + "louuis" ] }, - "Web/API/ServiceWorkerState": { - "modified": "2019-03-18T21:18:01.317Z", + "Web/HTML/Element/dir": { + "modified": "2020-10-15T21:23:54.346Z", "contributors": [ - "AurelieBayre" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/Service_Worker_API": { - "modified": "2019-03-23T22:40:14.713Z", + "Web/HTML/Element/div": { + "modified": "2020-10-15T21:20:48.669Z", "contributors": [ - "onra87", - "STudio26", - "JeffD", - "jean-pierre.gay" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "teoli", + "dhar" ] }, - "Web/API/Service_Worker_API/Using_Service_Workers": { - "modified": "2020-07-26T01:50:40.763Z", + "Web/HTML/Element/dl": { + "modified": "2020-10-15T21:23:31.779Z", "contributors": [ - "yanabess", - "bArraxas", - "yanns1", - "Faenzar", - "lp177", - "NerOcrO", - "paulintrognon", - "bgondy", - "luminecence", - "drskullster", - "zikinf", - "vthibault", - "nhoizey", - "jean-pierre.gay" + "SphinxKnight", + "marie-ototoi", + "msherefel", + "tregagnon" ] }, - "Web/API/ShadowRoot": { - "modified": "2020-10-15T21:48:45.645Z", + "Web/HTML/Element/dt": { + "modified": "2020-10-15T21:23:25.261Z", "contributors": [ "SphinxKnight", - "EnzDev" + "msherefel", + "tregagnon" ] }, - "Web/API/ShadowRoot/delegatesFocus": { - "modified": "2020-10-15T22:25:00.485Z", + "Web/HTML/Element/em": { + "modified": "2020-10-15T21:20:54.814Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "marie-ototoi", + "Goofy", + "tregagnon", + "teoli", + "regisg27" ] }, - "Web/API/ShadowRoot/host": { - "modified": "2020-10-15T22:25:00.578Z", + "Web/HTML/Element/embed": { + "modified": "2020-10-15T21:23:16.484Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/ShadowRoot/innerHTML": { - "modified": "2020-10-15T22:25:01.691Z", + "Web/HTML/Element/figcaption": { + "modified": "2020-10-15T21:20:53.877Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Goofy", + "tregagnon", + "bertrandkeller" ] }, - "Web/API/ShadowRoot/mode": { - "modified": "2020-10-15T22:25:00.485Z", + "Web/HTML/Element/figure": { + "modified": "2020-10-15T21:23:12.610Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/SharedWorker": { - "modified": "2020-10-15T21:27:22.248Z", + "Web/HTML/Element/font": { + "modified": "2020-10-15T21:23:56.298Z", "contributors": [ - "Arzak656", - "a-mt", - "wakka27", - "jean-pierre.gay", - "FuturLiberta" + "SphinxKnight", + "fscholz", + "tregagnon" ] }, - "Web/API/SharedWorker/SharedWorker": { - "modified": "2020-10-15T22:27:12.056Z", + "Web/HTML/Element/footer": { + "modified": "2020-10-15T21:20:42.960Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "marie-ototoi", + "ksad", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/SharedWorker/port": { - "modified": "2020-10-15T22:27:03.021Z", + "Web/HTML/Element/frame": { + "modified": "2020-10-15T21:24:02.752Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/SharedWorkerGlobalScope": { - "modified": "2020-10-15T22:26:31.672Z", + "Web/HTML/Element/frameset": { + "modified": "2020-10-15T21:24:06.498Z", "contributors": [ "SphinxKnight", - "mfuji09" + "tregagnon" ] }, - "Web/API/SharedWorkerGlobalScope/applicationCache": { - "modified": "2020-10-15T22:26:34.435Z", + "Web/HTML/Element/head": { + "modified": "2020-10-15T21:20:23.173Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "louuis", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/SharedWorkerGlobalScope/onconnect": { - "modified": "2020-10-15T22:26:31.419Z", + "Web/HTML/Element/header": { + "modified": "2020-10-15T21:20:52.453Z", "contributors": [ - "Arzak656" + "tristantheb", + "SphinxKnight", + "marie-ototoi", + "msherefel", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/SpeechRecognition": { - "modified": "2019-03-18T21:42:43.926Z", + "Web/HTML/Element/hgroup": { + "modified": "2020-10-15T21:23:14.998Z", "contributors": [ - "SamuelCompagnon" + "SphinxKnight", + "edspeedy", + "marie-ototoi", + "tregagnon", + "Goofy" ] }, - "Web/API/SpeechSynthesisUtterance": { - "modified": "2019-03-23T22:05:52.587Z", + "Web/HTML/Element/hr": { + "modified": "2020-10-15T21:22:24.865Z", "contributors": [ - "necraidan" + "jakfils", + "SphinxKnight", + "PhilippeV", + "louuis", + "Fredchat", + "tregagnon", + "zizielmehdi" ] }, - "Web/API/Storage": { - "modified": "2020-10-15T21:32:34.574Z", + "Web/HTML/Element/html": { + "modified": "2020-10-15T21:20:11.083Z", "contributors": [ - "tristantheb", "SphinxKnight", - "CaribouFute", - "EmilienD", - "gpenissard" + "kingseak", + "goofy_bz", + "Fredchat", + "tregagnon", + "Shonda" ] }, - "Web/API/Storage/LocalStorage": { - "modified": "2019-03-18T20:41:23.924Z", + "Web/HTML/Element/i": { + "modified": "2020-10-15T21:23:26.221Z", "contributors": [ - "Watilin", - "cedeber", - "lulu5239", - "Fredloub", - "CoolSnow04" + "SphinxKnight", + "marie-ototoi", + "louiscarrese", + "msherefel", + "tregagnon" ] }, - "Web/API/Storage/clear": { - "modified": "2020-10-15T21:46:22.875Z", + "Web/HTML/Element/iframe": { + "modified": "2020-10-15T21:23:33.826Z", "contributors": [ - "tristantheb", - "JNa0", - "Axnyff", - "Hell_Carlito", - "EmilienD" + "quadristan", + "SphinxKnight", + "ThCarrere", + "loella16", + "guillaumegarcia13", + "PxlCtzn", + "marie-ototoi", + "shinigami35", + "msherefel", + "tregagnon" ] }, - "Web/API/Storage/getItem": { - "modified": "2020-11-11T20:24:08.906Z", + "Web/HTML/Element/image": { + "modified": "2020-10-15T21:27:06.857Z", "contributors": [ - "tristantheb", - "JNa0", - "Axnyff", - "gharel", - "Sofness", - "EmilienD" + "SphinxKnight", + "teoli", + "msherefel" ] }, - "Web/API/Storage/key": { - "modified": "2019-03-23T22:21:16.859Z", + "Web/HTML/Element/ins": { + "modified": "2020-10-15T21:23:18.858Z", "contributors": [ - "JNa0", - "Axnyff", - "Sofness" + "SphinxKnight", + "wakka27", + "tregagnon" ] }, - "Web/API/Storage/length": { - "modified": "2019-03-23T22:11:25.445Z", + "Web/HTML/Element/isindex": { + "modified": "2020-10-15T21:24:06.247Z", "contributors": [ - "JNa0", - "Axnyff" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/Storage/removeItem": { - "modified": "2020-11-19T06:32:26.629Z", + "Web/HTML/Element/kbd": { + "modified": "2020-10-15T21:23:28.702Z", "contributors": [ - "tristantheb", - "JNa0", - "refschool" + "SphinxKnight", + "duduindo", + "loversun5", + "edspeedy", + "marie-ototoi", + "wakka27", + "tregagnon" ] }, - "Web/API/Storage/setItem": { - "modified": "2019-10-31T12:01:56.712Z", + "Web/HTML/Element/li": { + "modified": "2020-10-15T21:23:31.636Z", "contributors": [ - "KoalaMoala", - "JNa0", - "Axnyff", - "rmNyro" + "SphinxKnight", + "edspeedy", + "NemoNobobyPersonne", + "tregagnon" ] }, - "Web/API/StorageEstimate": { - "modified": "2020-10-15T22:17:55.065Z", + "Web/HTML/Element/link": { + "modified": "2020-10-15T21:17:06.340Z", "contributors": [ - "Watilin" + "devscipline", + "SphinxKnight", + "antlio", + "Fredchat", + "louuis", + "tregagnon", + "BenoitL", + "Mgjbot" ] }, - "Web/API/StorageManager": { - "modified": "2020-10-15T22:17:54.664Z" - }, - "Web/API/StorageManager/estimate": { - "modified": "2020-10-15T22:17:54.758Z", + "Web/HTML/Element/listing": { + "modified": "2020-10-15T21:24:01.189Z", "contributors": [ - "Watilin" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/StorageManager/persist": { - "modified": "2020-10-15T22:17:54.254Z", + "Web/HTML/Element/main": { + "modified": "2020-10-15T21:24:00.758Z", "contributors": [ - "Watilin" + "SphinxKnight", + "NicolasGraph", + "tonybengue", + "edspeedy", + "marie-ototoi", + "louuis", + "tregagnon", + "Goofy", + "Delapouite", + "mistyrouge" ] }, - "Web/API/StorageManager/persisted": { - "modified": "2020-10-15T22:17:55.112Z", + "Web/HTML/Element/map": { + "modified": "2020-10-15T21:23:23.856Z", "contributors": [ - "Watilin" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/Storage_API": { - "modified": "2020-10-15T22:17:55.127Z", + "Web/HTML/Element/mark": { + "modified": "2020-10-15T21:23:12.856Z", "contributors": [ - "Watilin" + "SphinxKnight", + "marie-ototoi", + "wakka27", + "tregagnon" ] }, - "Web/API/Streams_API": { - "modified": "2020-10-15T22:14:40.364Z", + "Web/HTML/Element/marquee": { + "modified": "2020-10-15T21:24:09.275Z", "contributors": [ - "Kuzcoo", - "sbenard" + "SphinxKnight", + "jilljenn", + "tregagnon", + "RaphaelGoetter", + "mistyrouge" ] }, - "Web/API/StyleSheet": { - "modified": "2020-10-15T21:55:12.566Z", + "Web/HTML/Element/menu": { + "modified": "2020-10-15T21:23:12.040Z", "contributors": [ "SphinxKnight", - "remibremont", - "JNa0", - "Crg" + "Dralyab", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/StyleSheet/disabled": { - "modified": "2019-03-23T22:10:02.805Z", + "Web/HTML/Element/menuitem": { + "modified": "2020-10-15T21:24:26.748Z", "contributors": [ - "Crg" + "SphinxKnight", + "JNa0", + "tregagnon", + "Delapouite" ] }, - "Web/API/StyleSheet/href": { - "modified": "2019-03-23T22:10:02.014Z", + "Web/HTML/Element/meta": { + "modified": "2020-10-15T21:23:56.046Z", "contributors": [ - "Crg" + "SphinxKnight", + "jumperparis", + "tregagnon" ] }, - "Web/API/StyleSheet/media": { - "modified": "2019-03-23T22:10:08.278Z", + "Web/HTML/Element/multicol": { + "modified": "2020-10-15T21:27:07.686Z", "contributors": [ - "Crg" + "SphinxKnight", + "msherefel" ] }, - "Web/API/StyleSheet/ownerNode": { - "modified": "2019-03-23T22:10:07.966Z", + "Web/HTML/Element/nav": { + "modified": "2020-10-15T21:23:13.672Z", "contributors": [ - "Crg" + "SphinxKnight", + "marie-ototoi", + "ZanyMonk", + "tregagnon" ] }, - "Web/API/StyleSheet/parentStyleSheet": { - "modified": "2019-03-23T22:10:09.954Z", + "Web/HTML/Element/nextid": { + "modified": "2020-10-15T21:51:55.717Z", "contributors": [ - "Crg" + "SphinxKnight" ] }, - "Web/API/StyleSheet/title": { - "modified": "2019-03-23T22:09:59.139Z", + "Web/HTML/Element/nobr": { + "modified": "2020-10-15T21:23:31.399Z", "contributors": [ - "Crg" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/StyleSheet/type": { - "modified": "2019-03-23T22:10:03.329Z", + "Web/HTML/Element/noembed": { + "modified": "2020-10-15T21:27:10.600Z", "contributors": [ - "Crg" + "SphinxKnight", + "msherefel" ] }, - "Web/API/StyleSheetList": { - "modified": "2019-03-23T22:56:21.510Z", + "Web/HTML/Element/noframes": { + "modified": "2020-10-15T21:24:04.283Z", "contributors": [ - "Goofy", - "weeger" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/SubtleCrypto": { - "modified": "2020-10-15T22:30:51.870Z", + "Web/HTML/Element/noscript": { + "modified": "2020-10-15T21:21:52.581Z", "contributors": [ - "Sheppy" + "SphinxKnight", + "tregagnon", + "morgan37" ] }, - "Web/API/SubtleCrypto/digest": { - "modified": "2020-10-15T22:30:49.992Z", + "Web/HTML/Element/object": { + "modified": "2020-10-15T21:23:58.336Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/SyncManager": { - "modified": "2020-10-15T22:21:29.924Z", + "Web/HTML/Element/ol": { + "modified": "2020-10-15T21:23:26.938Z", "contributors": [ - "necraidan" + "SphinxKnight", + "marie-ototoi", + "wakka27", + "tregagnon" ] }, - "Web/API/Text": { - "modified": "2019-03-18T21:43:23.092Z", + "Web/HTML/Element/output": { + "modified": "2020-10-15T21:13:39.223Z", "contributors": [ - "loella16" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "davidbourguignon", + "trevorh", + "ethertank", + "teoli" ] }, - "Web/API/Text/splitText": { - "modified": "2019-03-18T21:43:29.396Z", + "Web/HTML/Element/p": { + "modified": "2020-10-15T21:13:10.399Z", "contributors": [ - "Watilin" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "ethertank", + "Shz" ] }, - "Web/API/TextEncoder": { - "modified": "2020-10-15T22:13:59.801Z", + "Web/HTML/Element/param": { + "modified": "2020-10-15T21:23:29.882Z", "contributors": [ - "JNa0" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/TextEncoder/TextEncoder": { - "modified": "2020-10-15T22:31:11.795Z", + "Web/HTML/Element/picture": { + "modified": "2020-10-15T21:29:55.087Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "alegout", + "welcoMattic", + "watsab", + "YoruNoHikage", + "J.DMB", + "Goofy", + "nicoo" ] }, - "Web/API/TextMetrics": { - "modified": "2019-03-23T22:10:26.189Z", + "Web/HTML/Element/plaintext": { + "modified": "2020-10-15T21:24:07.076Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/TextMetrics/width": { - "modified": "2019-03-23T22:10:36.977Z", + "Web/HTML/Element/pre": { + "modified": "2020-10-15T21:23:59.375Z", "contributors": [ - "gamifiq", - "NemoNobobyPersonne" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/TimeRanges": { - "modified": "2019-03-18T20:47:45.518Z", + "Web/HTML/Element/q": { + "modified": "2020-10-15T21:23:31.357Z", "contributors": [ - "monlouisj", - "efusien" + "SphinxKnight", + "marie-ototoi", + "tregagnon" ] }, - "Web/API/Transferable": { - "modified": "2020-10-15T21:33:28.712Z", + "Web/HTML/Element/rb": { + "modified": "2020-10-15T22:11:33.941Z", "contributors": [ - "Arzak656", - "AClavijo", - "jean-pierre.gay" + "SphinxKnight" ] }, - "Web/API/TransitionEvent": { - "modified": "2019-03-23T22:10:07.091Z", + "Web/HTML/Element/rp": { + "modified": "2020-10-15T21:22:20.484Z", "contributors": [ "SphinxKnight", - "Crg" + "tregagnon", + "fkhannouf" ] }, - "Web/API/TreeWalker": { - "modified": "2019-03-18T21:40:16.199Z", + "Web/HTML/Element/rt": { + "modified": "2020-10-15T21:22:24.227Z", "contributors": [ - "loella16" + "SphinxKnight", + "wakka27", + "tregagnon", + "fkhannouf" ] }, - "Web/API/TreeWalker/currentNode": { - "modified": "2019-03-18T21:40:23.895Z", + "Web/HTML/Element/rtc": { + "modified": "2020-10-15T21:43:35.076Z", "contributors": [ - "loella16" + "SphinxKnight" ] }, - "Web/API/TreeWalker/expandEntityReferences": { - "modified": "2019-03-18T21:40:21.457Z", + "Web/HTML/Element/ruby": { + "modified": "2020-10-15T21:22:22.572Z", "contributors": [ - "loella16" + "SphinxKnight", + "marie-ototoi", + "tregagnon", + "fkhannouf" ] }, - "Web/API/TreeWalker/filter": { - "modified": "2019-03-18T21:40:31.482Z", + "Web/HTML/Element/s": { + "modified": "2020-10-15T21:23:30.879Z", "contributors": [ - "loella16" + "SphinxKnight", + "edspeedy", + "louuis", + "tregagnon" ] }, - "Web/API/TreeWalker/firstChild": { - "modified": "2019-03-18T21:40:34.770Z", + "Web/HTML/Element/samp": { + "modified": "2020-10-15T21:23:30.682Z", "contributors": [ - "loella16" + "SphinxKnight", + "louuis", + "tregagnon" ] }, - "Web/API/TreeWalker/lastChild": { - "modified": "2019-03-18T21:40:24.414Z", + "Web/HTML/Element/script": { + "modified": "2020-10-15T21:23:07.650Z", "contributors": [ - "loella16" + "SphinxKnight", + "madarche", + "opii93", + "tregagnon", + "Goofy" ] }, - "Web/API/TreeWalker/nextNode": { - "modified": "2019-03-18T21:40:20.647Z", + "Web/HTML/Element/section": { + "modified": "2020-10-15T21:20:52.155Z", "contributors": [ - "loella16" + "SphinxKnight", + "marie-ototoi", + "maelito", + "tregagnon", + "nicolasrenon", + "teoli", + "SwordArMor" ] }, - "Web/API/TreeWalker/nextSibling": { - "modified": "2019-03-18T21:40:14.024Z", + "Web/HTML/Element/select": { + "modified": "2020-10-15T21:13:44.147Z", "contributors": [ - "loella16" + "SphinxKnight", + "tolbon10", + "FanJiyong", + "jajm", + "tregagnon", + "Julien STUBY", + "teoli", + "Julien.stuby" ] }, - "Web/API/TreeWalker/parentNode": { - "modified": "2019-03-18T21:40:31.869Z", + "Web/HTML/Element/slot": { + "modified": "2020-10-15T21:51:52.129Z", "contributors": [ - "loella16" + "SphinxKnight", + "tidiview", + "JNa0" ] }, - "Web/API/TreeWalker/previousNode": { - "modified": "2019-03-18T21:40:32.593Z", + "Web/HTML/Element/small": { + "modified": "2020-10-15T21:23:53.489Z", "contributors": [ - "loella16" + "SphinxKnight", + "Tifloz", + "nicoo", + "thomas.g", + "tregagnon" ] }, - "Web/API/TreeWalker/previousSibling": { - "modified": "2019-03-18T21:40:17.837Z", + "Web/HTML/Element/spacer": { + "modified": "2020-10-15T21:24:00.250Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/TreeWalker/root": { - "modified": "2019-03-18T21:40:33.877Z", + "Web/HTML/Element/span": { + "modified": "2020-10-15T21:23:30.889Z", "contributors": [ - "loella16" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/TreeWalker/whatToShow": { - "modified": "2020-10-15T22:02:07.579Z", + "Web/HTML/Element/strike": { + "modified": "2020-10-15T21:24:10.841Z", "contributors": [ "SphinxKnight", - "loella16" + "tregagnon" ] }, - "Web/API/UIEvent": { - "modified": "2020-11-05T16:01:13.811Z", + "Web/HTML/Element/strong": { + "modified": "2020-10-15T21:23:55.822Z", "contributors": [ - "JNa0", - "loella16", - "fscholz" + "SphinxKnight", + "emmanuelclement", + "tregagnon" ] }, - "Web/API/UIEvent/detail": { - "modified": "2020-10-15T21:49:56.915Z", + "Web/HTML/Element/style": { + "modified": "2020-10-15T21:21:50.821Z", "contributors": [ "SphinxKnight", + "mathisaillot", + "tregagnon", "Goofy", - "Kalwyn" + "Matouche" ] }, - "Web/API/UIEvent/layerX": { - "modified": "2019-04-19T04:25:56.943Z", + "Web/HTML/Element/sub": { + "modified": "2020-10-15T21:23:55.023Z", "contributors": [ "SphinxKnight", - "NemoNobobyPersonne", - "fscholz", - "khalid32", - "Feugy" + "tregagnon" ] }, - "Web/API/ULongRange": { - "modified": "2020-10-15T22:35:00.304Z", + "Web/HTML/Element/summary": { + "modified": "2020-10-15T21:20:21.472Z", "contributors": [ - "Voulto" + "yannicka", + "SphinxKnight", + "Elanis", + "louuis", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/URL": { - "modified": "2019-04-05T15:11:45.608Z", + "Web/HTML/Element/sup": { + "modified": "2020-10-15T21:23:23.579Z", "contributors": [ - "loella16", - "fscholz" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/URL/URL": { - "modified": "2020-10-15T22:04:11.269Z", + "Web/HTML/Element/table": { + "modified": "2020-10-15T21:20:58.076Z", "contributors": [ - "spike008t", - "cdelamarre" + "SphinxKnight", + "Akyrish", + "Erwann", + "tregagnon", + "fkhannouf", + "fabien.canu@gmail.com" ] }, - "Web/API/URL/createObjectURL": { - "modified": "2020-10-15T21:21:40.672Z", + "Web/HTML/Element/tbody": { + "modified": "2020-10-15T21:23:54.755Z", "contributors": [ - "Watilin", - "Arzak656", - "Blodangan", - "fscholz", - "teoli", - "nicofrand", - "alaric" + "SphinxKnight", + "Brah0um", + "Twikito", + "Kerumen", + "Fredchat", + "ferncoder", + "tregagnon" ] }, - "Web/API/URL/hash": { - "modified": "2020-10-15T22:17:10.984Z", + "Web/HTML/Element/td": { + "modified": "2020-10-15T21:23:58.861Z", "contributors": [ - "noelmace", - "spike008t" + "SphinxKnight", + "tregagnon", + "ethertank" ] }, - "Web/API/URL/protocol": { - "modified": "2020-10-15T22:17:10.990Z", + "Web/HTML/Element/template": { + "modified": "2020-10-15T21:26:28.663Z", "contributors": [ - "spike008t" + "SphinxKnight", + "Mr21", + "Yopadd", + "P45QU10U", + "Fredchat", + "ylerjen" ] }, - "Web/API/URL/revokeObjectURL": { - "modified": "2020-10-15T22:07:59.746Z", + "Web/HTML/Element/tfoot": { + "modified": "2020-10-15T21:23:55.010Z", "contributors": [ - "Watilin" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/URL/search": { - "modified": "2020-10-15T22:17:09.818Z", + "Web/HTML/Element/th": { + "modified": "2020-10-15T21:23:59.571Z", "contributors": [ "SphinxKnight", - "spike008t" + "tregagnon" ] }, - "Web/API/URL/searchParams": { - "modified": "2020-10-15T22:17:08.530Z", + "Web/HTML/Element/thead": { + "modified": "2020-10-15T21:23:59.573Z", "contributors": [ - "spike008t" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/URL/toJSON": { - "modified": "2020-10-15T22:17:08.519Z", + "Web/HTML/Element/time": { + "modified": "2020-10-15T21:23:13.248Z", "contributors": [ - "spike008t" + "SphinxKnight", + "DylannCordel", + "Loliwe", + "Golmote", + "louuis", + "tregagnon" ] }, - "Web/API/URL/toString": { - "modified": "2020-10-15T22:13:58.455Z", + "Web/HTML/Element/title": { + "modified": "2020-10-15T21:20:27.725Z", "contributors": [ - "martialseron" + "SphinxKnight", + "ksad", + "tregagnon", + "ThePrisoner" ] }, - "Web/API/URLSearchParams": { - "modified": "2019-03-18T21:39:55.036Z", + "Web/HTML/Element/tr": { + "modified": "2020-10-15T21:23:58.043Z", "contributors": [ - "Watilin", - "cdelamarre" + "SphinxKnight", + "RolandOnGitHub", + "tregagnon" ] }, - "Web/API/URLSearchParams/entries": { - "modified": "2020-10-15T22:08:32.278Z", + "Web/HTML/Element/track": { + "modified": "2020-10-15T21:23:11.969Z", "contributors": [ - "moshir" + "SphinxKnight", + "dashdashzako", + "tregagnon", + "Jeremie", + "Goofy" ] }, - "Web/API/URLUtils": { - "modified": "2019-03-23T23:15:38.230Z", + "Web/HTML/Element/tt": { + "modified": "2020-10-15T21:24:09.875Z", "contributors": [ - "Watilin" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/URLUtilsReadOnly": { - "modified": "2020-10-15T22:17:11.893Z", + "Web/HTML/Element/u": { + "modified": "2020-10-15T21:24:01.049Z", "contributors": [ - "spike008t" + "SphinxKnight", + "marie-ototoi", + "ksad", + "tregagnon" ] }, - "Web/API/USVString": { - "modified": "2020-04-28T10:35:09.074Z", + "Web/HTML/Element/ul": { + "modified": "2020-10-15T21:20:25.987Z", "contributors": [ - "tristantheb" + "SphinxKnight", + "Bat", + "tregagnon", + "teoli", + "fabien.canu@gmail.com" ] }, - "Web/API/VRDisplayCapabilities": { - "modified": "2019-03-23T22:12:25.995Z", + "Web/HTML/Element/var": { + "modified": "2020-10-15T21:23:33.057Z", "contributors": [ - "frankymacster" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/Vibration_API": { - "modified": "2019-03-23T22:45:55.163Z", + "Web/HTML/Element/video": { + "modified": "2020-10-15T21:14:19.475Z", "contributors": [ - "Hell_Carlito", - "lynxhack" + "SphinxKnight", + "supergonzales", + "Grivel-l", + "loella16", + "projer", + "Chbok", + "sami.boukortt", + "theotix", + "tregagnon", + "teoli", + "mekal", + "BenoitL" ] }, - "Web/API/VideoTrack": { - "modified": "2020-10-15T22:20:15.596Z", + "Web/HTML/Element/wbr": { + "modified": "2020-10-15T21:23:56.480Z", "contributors": [ - "Voulto", - "Wind1808" + "SphinxKnight", + "floustier", + "cdr", + "louuis", + "tregagnon", + "teoli", + "Omnilaika02" ] }, - "Web/API/VideoTrack/id": { - "modified": "2020-10-15T22:20:11.798Z", + "Web/HTML/Element/xmp": { + "modified": "2020-10-15T21:24:08.638Z", "contributors": [ - "Arzak656" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/WebGL2RenderingContext": { - "modified": "2020-10-15T21:59:56.462Z", + "Web/HTML/Index": { + "modified": "2019-01-16T18:47:13.379Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "tregagnon" ] }, - "Web/API/WebGLBuffer": { - "modified": "2020-10-15T21:59:33.541Z", + "Web/HTML/Quirks_Mode_and_Standards_Mode": { + "modified": "2019-05-21T08:04:30.230Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "chrisdavidmills", + "ICBreakerLA", + "Jeremie", + "trevorh", + "Mgjbot", + "BenoitL" ] }, - "Web/API/WebGLFramebuffer": { - "modified": "2020-10-15T21:59:35.211Z", + "Web/HTML/Reference": { + "modified": "2019-09-09T07:17:11.858Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "wbamberg", + "ts-informatique_Grenoble" ] }, - "Web/API/WebGLProgram": { - "modified": "2020-10-15T21:59:07.199Z", + "Web/HTML/microformats": { + "modified": "2019-07-21T06:21:36.960Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "marie-ototoi" ] }, - "Web/API/WebGLRenderingContext": { - "modified": "2020-10-15T21:51:29.279Z", + "Web/HTTP": { + "modified": "2019-03-24T19:16:00.917Z", "contributors": [ - "BonoBX", - "teoli" + "louisgrasset", + "nolanrigo", + "SphinxKnight", + "Alpha", + "amouillard", + "Hell_Carlito", + "eagleusb", + "dattaz", + "jswisher" ] }, - "Web/API/WebGLRenderingContext/activeTexture": { - "modified": "2020-10-15T22:01:31.601Z", + "Web/HTTP/Authentication": { + "modified": "2019-03-18T21:33:04.626Z", "contributors": [ - "NemoNobobyPersonne" + "marcpicaud" ] }, - "Web/API/WebGLRenderingContext/activer": { - "modified": "2020-10-15T21:59:29.725Z", + "Web/HTTP/Basics_of_HTTP": { + "modified": "2019-03-23T22:24:52.804Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "Alpha", + "ftoulouse", + "cissoid" ] }, - "Web/API/WebGLRenderingContext/attachShader": { - "modified": "2020-10-15T21:59:28.122Z", + "Web/HTTP/Basics_of_HTTP/Data_URIs": { + "modified": "2020-10-15T21:59:04.672Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "Alpha", + "chanaysavoyen" ] }, - "Web/API/WebGLRenderingContext/bindBuffer": { - "modified": "2020-10-15T21:59:37.132Z", + "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { + "modified": "2020-01-18T14:19:52.795Z", "contributors": [ - "NemoNobobyPersonne" + "Yovach", + "AntoineJT", + "SphinxKnight", + "Alpha", + "interfacteur", + "Tiplouf" ] }, - "Web/API/WebGLRenderingContext/bindTexture": { - "modified": "2020-10-15T21:59:54.842Z", + "Web/HTTP/Basics_of_HTTP/MIME_types": { + "modified": "2020-01-02T06:41:24.716Z", "contributors": [ - "NemoNobobyPersonne" + "guillaumegarcia13", + "SphinxKnight", + "Alpha", + "strattadb" ] }, - "Web/API/WebGLRenderingContext/bufferData": { - "modified": "2020-10-15T21:59:40.058Z", + "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": { + "modified": "2020-05-29T10:51:11.998Z", "contributors": [ - "NemoNobobyPersonne" + "khalyomede", + "chrisdavidmills", + "smalesys", + "ptbrowne", + "kabanon", + "SphinxKnight", + "Alpha", + "NathanB" ] }, - "Web/API/WebGLRenderingContext/canevas": { - "modified": "2020-10-15T21:59:28.454Z", + "Web/HTTP/CORS": { + "modified": "2020-10-15T21:24:42.448Z", "contributors": [ - "NemoNobobyPersonne" + "gpartenet", + "caro3801", + "robin850", + "gloucklegnou", + "p_amok", + "SphinxKnight", + "correction2", + "parmentf", + "scips", + "damiencaselli", + "gierschv", + "ebear", + "Ltrlg", + "dattaz", + "nlaug", + "cguillemette", + "Zzortell", + "fmasy", + "patboens" ] }, - "Web/API/WebGLRenderingContext/clear": { - "modified": "2020-10-15T21:51:28.582Z", + "Web/HTTP/CORS/Errors": { + "modified": "2020-08-30T07:40:45.129Z", "contributors": [ - "NemoNobobyPersonne", - "SphinxKnight", - "Noctisdark" + "Voulto", + "AdminXVII", + "Maxim10", + "nchevobbe" ] }, - "Web/API/WebGLRenderingContext/compileShader": { - "modified": "2020-10-15T21:59:28.703Z", + "Web/HTTP/CORS/Errors/CORSRequestNotHttp": { + "modified": "2020-09-23T06:10:15.688Z", "contributors": [ - "NemoNobobyPersonne" + "ssgl", + "Maxim10" ] }, - "Web/API/WebGLRenderingContext/createBuffer": { - "modified": "2020-10-15T21:59:33.748Z", + "Web/HTTP/CSP": { + "modified": "2020-10-15T21:53:12.526Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "lhapaipai", + "valimero", + "AntoineGrandchamp", + "David-5-1" ] }, - "Web/API/WebGLRenderingContext/createProgram": { - "modified": "2020-10-15T21:59:33.912Z", + "Web/HTTP/Compression": { + "modified": "2020-10-29T12:16:50.940Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0", + "lyrixx", + "SphinxKnight", + "Alpha" ] }, - "Web/API/WebGLRenderingContext/createShader": { - "modified": "2020-10-15T21:59:29.550Z", + "Web/HTTP/Content_negotiation": { + "modified": "2019-08-20T15:39:14.536Z", "contributors": [ - "NemoNobobyPersonne" + "bbonnin" ] }, - "Web/API/WebGLRenderingContext/createTexture": { - "modified": "2020-10-15T21:59:54.835Z", + "Web/HTTP/Cookies": { + "modified": "2020-02-26T11:00:52.742Z", "contributors": [ - "NemoNobobyPersonne" + "michivi", + "ThCarrere", + "guillaumebouhier", + "bodingar", + "gpartenet", + "antoineneff", + "a-mt", + "SphinxKnight", + "antoineroux", + "tomcodes" ] }, - "Web/API/WebGLRenderingContext/deleteBuffer": { - "modified": "2020-10-15T21:59:40.774Z", + "Web/HTTP/Feature_Policy": { + "modified": "2020-11-02T18:21:06.120Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebGLRenderingContext/deleteShader": { - "modified": "2020-10-15T21:59:32.565Z", + "Web/HTTP/Headers": { + "modified": "2020-11-11T18:57:53.286Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0", + "SphinxKnight", + "Alpha", + "loella16", + "shadok", + "vbardales" ] }, - "Web/API/WebGLRenderingContext/drawArrays": { - "modified": "2020-10-15T21:59:35.395Z", + "Web/HTTP/Headers/Accept": { + "modified": "2020-10-15T21:56:10.549Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "ji-sser", + "gmebarthe" ] }, - "Web/API/WebGLRenderingContext/enableVertexAttribArray": { - "modified": "2020-10-15T21:59:35.034Z", + "Web/HTTP/Headers/Accept-Charset": { + "modified": "2020-10-15T22:15:05.344Z", "contributors": [ - "NemoNobobyPersonne" + "dragon38800" ] }, - "Web/API/WebGLRenderingContext/generateMipmap": { - "modified": "2020-10-15T22:01:31.184Z", + "Web/HTTP/Headers/Accept-Encoding": { + "modified": "2020-10-15T21:51:43.001Z", "contributors": [ - "NemoNobobyPersonne" + "martinec", + "SphinxKnight", + "guillaumefenollar", + "Athorcis", + "PlayeurZero" ] }, - "Web/API/WebGLRenderingContext/getAttribLocation": { - "modified": "2020-10-15T21:59:38.706Z", + "Web/HTTP/Headers/Accept-Language": { + "modified": "2020-10-15T21:55:18.930Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "alexlur", + "NemoNobobyPersonne", + "tuili" ] }, - "Web/API/WebGLRenderingContext/getError": { - "modified": "2020-10-15T21:59:32.173Z", + "Web/HTTP/Headers/Access-Control-Allow-Methods": { + "modified": "2020-10-15T22:15:56.084Z", "contributors": [ - "NemoNobobyPersonne" + "GabrielHautclocq" ] }, - "Web/API/WebGLRenderingContext/getShaderParameter": { - "modified": "2020-10-15T21:59:29.618Z", + "Web/HTTP/Headers/Access-Control-Allow-Origin": { + "modified": "2020-10-15T21:56:38.218Z", "contributors": [ - "NemoNobobyPersonne" + "superhoang", + "Derek", + "ekamil", + "SphinxKnight", + "loganblangenois" ] }, - "Web/API/WebGLRenderingContext/getTexParameter": { - "modified": "2020-10-15T22:01:31.142Z", + "Web/HTTP/Headers/Access-Control-Request-Headers": { + "modified": "2020-10-15T21:53:12.034Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "Yves_ASTIER" ] }, - "Web/API/WebGLRenderingContext/getUniformLocation": { - "modified": "2020-10-15T21:59:34.949Z", + "Web/HTTP/Headers/Age": { + "modified": "2020-10-15T22:02:48.318Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "Gildwolf" ] }, - "Web/API/WebGLRenderingContext/isBuffer": { - "modified": "2020-10-15T21:59:35.831Z", + "Web/HTTP/Headers/Allow": { + "modified": "2019-03-18T20:37:27.890Z", "contributors": [ - "NemoNobobyPersonne" + "GabrielHautclocq" ] }, - "Web/API/WebGLRenderingContext/shaderSource": { - "modified": "2020-10-15T21:59:30.850Z", + "Web/HTTP/Headers/Authorization": { + "modified": "2020-04-21T21:30:05.105Z", "contributors": [ - "NemoNobobyPersonne" + "jalik", + "SphinxKnight", + "aboufeta" ] }, - "Web/API/WebGLRenderingContext/texImage2D": { - "modified": "2020-10-15T21:59:56.336Z", + "Web/HTTP/Headers/Cache-Control": { + "modified": "2020-10-15T21:53:16.283Z", "contributors": [ - "NemoNobobyPersonne" + "darahak", + "hellosct1", + "SphinxKnight", + "LeoColomb", + "arthurwhite", + "David-5-1" ] }, - "Web/API/WebGLRenderingContext/texParameter": { - "modified": "2020-10-15T22:01:30.454Z", + "Web/HTTP/Headers/Connection": { + "modified": "2020-10-15T22:22:48.365Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "rm3121", + "jedepaepe" ] }, - "Web/API/WebGLRenderingContext/uniform": { - "modified": "2020-10-15T22:01:33.704Z", + "Web/HTTP/Headers/Content-Disposition": { + "modified": "2020-10-15T21:53:43.308Z", "contributors": [ - "NemoNobobyPersonne" + "xavieralt", + "A-312", + "ntoniazzi", + "PropreCity", + "SphinxKnight", + "califat" ] }, - "Web/API/WebGLRenderingContext/uniformMatrix": { - "modified": "2020-10-15T21:59:37.493Z", + "Web/HTTP/Headers/Content-Encoding": { + "modified": "2020-10-15T22:30:11.583Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "yohannlog" ] }, - "Web/API/WebGLRenderingContext/useProgram": { - "modified": "2020-10-15T21:59:35.227Z", + "Web/HTTP/Headers/Content-Language": { + "modified": "2020-11-13T06:29:58.431Z", "contributors": [ - "NemoNobobyPersonne" + "Rigaudie", + "PropreCity" ] }, - "Web/API/WebGLRenderingContext/vertexAttribPointer": { - "modified": "2020-10-15T21:59:38.458Z", + "Web/HTTP/Headers/Content-Length": { + "modified": "2020-10-15T21:53:18.388Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "David-5-1" ] }, - "Web/API/WebGLRenderingContext/viewport": { - "modified": "2020-10-15T21:59:28.597Z", + "Web/HTTP/Headers/Content-Security-Policy": { + "modified": "2020-10-29T21:03:19.803Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0", + "bershanskiy", + "Oliboy50", + "SphinxKnight", + "loella16" ] }, - "Web/API/WebGLShader": { - "modified": "2020-10-15T21:59:07.385Z", + "Web/HTTP/Headers/Content-Security-Policy-Report-Only": { + "modified": "2020-10-29T21:31:20.453Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebGLTexture": { - "modified": "2020-10-15T22:03:21.533Z", + "Web/HTTP/Headers/Content-Security-Policy/base-uri": { + "modified": "2020-10-29T13:38:32.493Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebGL_API": { - "modified": "2019-03-24T00:15:31.256Z", + "Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content": { + "modified": "2020-10-29T12:54:23.475Z", "contributors": [ - "NemoNobobyPersonne", - "Chbok", - "teoli", - "fscholz", - "Bat", - "TimN" + "JNa0", + "borisschapira" ] }, - "Web/API/WebGL_API/By_example": { - "modified": "2019-03-23T22:42:41.529Z", + "Web/HTTP/Headers/Content-Security-Policy/child-src": { + "modified": "2020-10-29T09:57:45.781Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Appliquer_des_couleurs": { - "modified": "2019-03-23T22:42:38.405Z", + "Web/HTTP/Headers/Content-Security-Policy/connect-src": { + "modified": "2020-10-29T09:55:55.458Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Appliquer_des_découpes_simples": { - "modified": "2019-03-23T22:42:39.054Z", + "Web/HTTP/Headers/Content-Security-Policy/default-src": { + "modified": "2020-10-29T16:25:12.176Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Appliquer_une_couleur_à_la_souris": { - "modified": "2019-03-23T22:42:47.790Z", + "Web/HTTP/Headers/Content-Security-Policy/font-src": { + "modified": "2020-10-29T09:55:38.668Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Créer_une_animation_avec_découpe_et_applique": { - "modified": "2019-03-23T22:41:55.736Z", + "Web/HTTP/Headers/Content-Security-Policy/form-action": { + "modified": "2020-10-29T20:27:48.387Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Créer_une_animation_colorée": { - "modified": "2019-03-23T22:42:38.639Z", + "Web/HTTP/Headers/Content-Security-Policy/frame-ancestors": { + "modified": "2020-10-29T16:35:08.171Z", "contributors": [ - "chrisdavidmills", - "phareal", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Détecter_WebGL": { - "modified": "2019-03-23T22:42:45.973Z", + "Web/HTTP/Headers/Content-Security-Policy/frame-src": { + "modified": "2020-10-29T09:55:09.630Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Générer_des_textures_avec_du_code": { - "modified": "2019-03-23T22:42:34.831Z", + "Web/HTTP/Headers/Content-Security-Policy/img-src": { + "modified": "2020-10-29T09:54:24.946Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Hello_GLSL": { - "modified": "2019-03-23T22:42:47.561Z", + "Web/HTTP/Headers/Content-Security-Policy/manifest-src": { + "modified": "2020-10-29T12:42:47.792Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Introduction_aux_attributs_vertex": { - "modified": "2019-03-23T22:41:53.712Z", + "Web/HTTP/Headers/Content-Security-Policy/media-src": { + "modified": "2020-10-29T09:53:30.177Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Les_textures_vidéos": { - "modified": "2019-03-23T22:42:42.053Z", + "Web/HTTP/Headers/Content-Security-Policy/navigate-to": { + "modified": "2020-11-05T08:46:21.988Z", "contributors": [ - "chrisdavidmills", - "Porkepix", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Masque_de_couleur": { - "modified": "2019-03-23T22:37:46.638Z", + "Web/HTTP/Headers/Content-Security-Policy/object-src": { + "modified": "2020-10-29T12:50:10.529Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Modèle_1": { - "modified": "2019-03-23T22:41:51.922Z", + "Web/HTTP/Headers/Content-Security-Policy/plugin-types": { + "modified": "2020-10-29T15:18:48.722Z", "contributors": [ - "chrisdavidmills", - "wbamberg", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Tailles_de_canvas_et_WebGL": { - "modified": "2019-03-23T22:41:53.133Z", + "Web/HTTP/Headers/Content-Security-Policy/prefetch-src": { + "modified": "2020-11-05T16:09:39.274Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/By_example/Une_pluie_de_rectangle": { - "modified": "2019-03-23T22:41:53.831Z", + "Web/HTTP/Headers/Content-Security-Policy/referrer": { + "modified": "2020-10-29T16:54:20.565Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JNa0" ] }, - "Web/API/WebGL_API/Données": { - "modified": "2019-03-23T22:01:55.247Z", + "Web/HTTP/Headers/Content-Security-Policy/report-to": { + "modified": "2020-10-29T20:39:05.871Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial": { - "modified": "2019-12-30T09:02:46.688Z", + "Web/HTTP/Headers/Content-Security-Policy/report-uri": { + "modified": "2020-10-29T20:45:38.126Z", "contributors": [ - "JNa0", - "NemoNobobyPersonne", - "frankymacster", - "teoli", - "fscholz" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Ajouter_des_couleurs_avec_les_shaders": { - "modified": "2019-12-30T10:10:01.835Z", + "Web/HTTP/Headers/Content-Security-Policy/require-sri-for": { + "modified": "2020-10-29T16:42:06.606Z", "contributors": [ - "JNa0", - "NemoNobobyPersonne", - "greberger", - "teoli", - "fscholz", - "TimN" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Ajouter_du_contenu_à_WebGL": { - "modified": "2020-05-20T15:13:08.482Z", + "Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for": { + "modified": "2020-10-29T16:19:21.052Z", "contributors": [ - "monsieurbadia", - "NemoNobobyPersonne", - "jeljeli", - "Golmote", - "Yomguithereal", - "JohnBerlin", - "teoli", - "fscholz", - "TimN", - "ThePrisoner" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Animation_de_textures_en_WebGL": { - "modified": "2019-03-18T21:41:52.213Z", + "Web/HTTP/Headers/Content-Security-Policy/sandbox": { + "modified": "2020-10-29T20:06:19.233Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Animer_des_objets_avec_WebGL": { - "modified": "2019-03-23T22:58:21.362Z", + "Web/HTTP/Headers/Content-Security-Policy/script-src": { + "modified": "2020-10-29T12:43:56.366Z", "contributors": [ - "NemoNobobyPersonne", - "xovaox", - "Golmote", - "teoli", - "fscholz", - "LDelhez" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Commencer_avec_WebGL": { - "modified": "2019-10-05T20:05:27.908Z", + "Web/HTTP/Headers/Content-Security-Policy/script-src-attr": { + "modified": "2020-10-29T12:35:52.897Z", "contributors": [ - "Yukulele.", - "Julien-prrs", - "chrisdavidmills", - "TimPrd", - "BonoBX", - "naneunga", - "NemoNobobyPersonne", - "museifu1", - "nonatomiclabs", - "teoli", - "fscholz", - "TimN", - "ThePrisoner" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Creer_des_objets_3D_avec_WebGL": { - "modified": "2019-03-23T22:52:14.509Z", + "Web/HTTP/Headers/Content-Security-Policy/script-src-elem": { + "modified": "2020-10-29T12:34:59.878Z", "contributors": [ - "PJoy", - "NemoNobobyPersonne", - "teoli", - "fscholz", - "Bat" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Eclairage_en_WebGL": { - "modified": "2019-03-23T22:11:17.974Z", + "Web/HTTP/Headers/Content-Security-Policy/style-src": { + "modified": "2020-10-29T09:46:24.734Z", "contributors": [ - "dxsp", - "Slayug" + "JNa0" ] }, - "Web/API/WebGL_API/Tutorial/Utiliser_les_textures_avec_WebGL": { - "modified": "2019-03-23T22:58:22.974Z", + "Web/HTTP/Headers/Content-Security-Policy/style-src-attr": { + "modified": "2020-10-29T12:25:30.302Z", "contributors": [ - "NemoNobobyPersonne", - "teoli", - "fscholz", - "Nasso", - "LDelhez" + "JNa0" ] }, - "Web/API/WebGL_API/Types": { - "modified": "2019-03-23T22:01:49.667Z", + "Web/HTTP/Headers/Content-Security-Policy/style-src-elem": { + "modified": "2020-10-29T12:25:15.261Z", "contributors": [ - "NemoNobobyPersonne" + "JNa0" ] }, - "Web/API/WebRTC_API": { - "modified": "2020-10-22T05:44:55.105Z", + "Web/HTTP/Headers/Content-Security-Policy/trusted-types": { + "modified": "2020-10-29T16:00:54.309Z", "contributors": [ - "Voulto", - "tonybengue", - "thourayabenali", - "Sheppy" + "JNa0" ] }, - "Web/API/WebSocket": { - "modified": "2019-03-23T23:02:45.010Z", + "Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests": { + "modified": "2020-10-29T13:15:02.277Z", "contributors": [ - "lessonsharing", - "Ilphrin", - "VinceOPS" + "JNa0" ] }, - "Web/API/WebSocket/close_event": { - "modified": "2019-03-23T21:59:50.351Z", + "Web/HTTP/Headers/Content-Security-Policy/worker-src": { + "modified": "2020-10-29T09:42:30.203Z", "contributors": [ - "irenesmith", - "fscholz", - "Kalwyn" + "JNa0" ] }, - "Web/API/WebSockets_API": { - "modified": "2020-12-10T09:30:55.791Z", + "Web/HTTP/Headers/Content-Type": { + "modified": "2020-10-15T21:53:18.899Z", "contributors": [ - "tristantheb", - "Kayoshi-dev", "SphinxKnight", - "Graziellah", - "cydelic", - "Nothus", - "Goofy", - "filipovi" + "Goofy" ] }, - "Web/API/WebSockets_API/Writing_WebSocket_client_applications": { - "modified": "2019-03-18T20:48:00.893Z", + "Web/HTTP/Headers/DNT": { + "modified": "2020-10-15T22:00:03.018Z", "contributors": [ "SphinxKnight", - "greizgh", - "alexca93", - "fbessou", - "marie-ototoi", - "Goofy", - "sisyphe" + "egavard" ] }, - "Web/API/WebSockets_API/Writing_WebSocket_servers": { - "modified": "2019-07-08T10:30:19.533Z", + "Web/HTTP/Headers/Date": { + "modified": "2020-10-15T22:07:34.830Z", "contributors": [ - "ThCarrere", - "SphinxKnight", - "cbdt", - "H4dr1en", - "Jibec", - "Nek-", - "ynno", - "Nothus" + "Machou" ] }, - "Web/API/WebSockets_API/Writing_a_WebSocket_server_in_Java": { - "modified": "2019-03-18T20:48:00.087Z", + "Web/HTTP/Headers/ETag": { + "modified": "2020-10-15T22:03:25.682Z", "contributors": [ "SphinxKnight", - "Jibec" + "NemoNobobyPersonne" ] }, - "Web/API/WebVR_API": { - "modified": "2019-06-08T20:04:07.795Z", + "Web/HTTP/Headers/Expires": { + "modified": "2020-10-15T21:57:22.458Z", "contributors": [ - "frankymacster", - "DavidLibeau" + "l-vo", + "SphinxKnight", + "GuiBret" ] }, - "Web/API/WebVR_API/Utiliser_des_contrôleurs_de_realite_virtuelle_pour_du_WebVR": { - "modified": "2019-03-18T21:44:15.461Z", + "Web/HTTP/Headers/Feature-Policy": { + "modified": "2020-11-11T14:08:38.730Z", "contributors": [ - "DavidLibeau" + "JNa0" ] }, - "Web/API/WebVTT_API": { - "modified": "2020-10-15T22:20:12.504Z", + "Web/HTTP/Headers/Feature-Policy/accelerometer": { + "modified": "2020-11-16T09:05:43.541Z", "contributors": [ - "fffjacquier", - "Arzak656" + "JNa0" ] }, - "Web/API/WebXR_Device_API": { - "modified": "2020-10-15T22:34:09.543Z", + "Web/HTTP/Headers/Host": { + "modified": "2020-10-15T21:58:12.642Z", "contributors": [ - "Hans_PRESTAT" + "SphinxKnight", + "ji-sser", + "alpyr" ] }, - "Web/API/Web_Animations_API": { - "modified": "2020-12-08T03:44:03.958Z", + "Web/HTTP/Headers/If-Modified-Since": { + "modified": "2020-10-15T21:59:18.518Z", "contributors": [ "SphinxKnight", - "AdalbertPungu" + "ericlemerdy" ] }, - "Web/API/Web_Audio_API": { - "modified": "2019-03-23T23:07:29.151Z", + "Web/HTTP/Headers/If-None-Match": { + "modified": "2020-10-15T21:59:26.960Z", "contributors": [ - "Mr21", - "a-cordier", - "MAKIO135", - "Elfhir", - "marie-ototoi", "SphinxKnight", - "mtrabelsi", - "raphael0202", - "FBerthelot", - "Buridan", - "theGlenn" + "ekougs" ] }, - "Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API": { - "modified": "2019-03-23T22:41:04.256Z", + "Web/HTTP/Headers/Last-Modified": { + "modified": "2020-10-15T21:58:33.304Z", "contributors": [ - "VS64", - "marie-ototoi" + "lyrixx", + "SphinxKnight", + "NemoNobobyPersonne" ] }, - "Web/API/Web_Audio_API/Using_Web_Audio_API": { - "modified": "2019-03-23T22:37:49.629Z", + "Web/HTTP/Headers/Location": { + "modified": "2020-10-15T22:30:32.588Z", "contributors": [ - "marie-ototoi", - "jcbohin" + "romch007" ] }, - "Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API": { - "modified": "2019-03-23T22:37:03.451Z", + "Web/HTTP/Headers/Origin": { + "modified": "2020-10-15T22:04:41.950Z", "contributors": [ - "marie-ototoi" + "Watilin" ] }, - "Web/API/Web_Audio_API/Web_audio_spatialization_basics": { - "modified": "2019-03-23T22:09:00.124Z", + "Web/HTTP/Headers/Referer": { + "modified": "2020-10-15T21:59:09.222Z", "contributors": [ - "marie-ototoi" + "SphinxKnight", + "rmonnier" ] }, - "Web/API/Web_Speech_API": { - "modified": "2020-11-16T08:41:59.799Z", + "Web/HTTP/Headers/Referrer-Policy": { + "modified": "2020-11-03T04:53:54.794Z", "contributors": [ - "JNa0", - "codingk8" + "JNa0" ] }, - "Web/API/Web_Speech_API/Using_the_Web_Speech_API": { - "modified": "2020-06-20T07:22:44.915Z", + "Web/HTTP/Headers/Set-Cookie": { + "modified": "2020-10-15T22:30:32.422Z", "contributors": [ - "matbe19" + "WolfVic", + "Voulto", + "Arzak656", + "claudepache" ] }, - "Web/API/Web_Storage_API": { - "modified": "2020-10-15T21:39:12.031Z", + "Web/HTTP/Headers/Set-Cookie/SameSite": { + "modified": "2020-10-15T22:30:31.847Z", "contributors": [ - "ThCarrere", - "abvll", - "olivier-axyome", - "ericGuyaderBerger", - "necraidan", - "Dexter_Deter", - "teoli" + "SphinxKnight", + "Pierstoval" ] }, - "Web/API/Web_Storage_API/Using_the_Web_Storage_API": { - "modified": "2020-10-15T21:39:11.598Z", + "Web/HTTP/Headers/Tk": { + "modified": "2020-10-15T22:34:21.355Z", "contributors": [ - "Alan_Braut", - "SphinxKnight", - "Vifier-Lockla", - "edspeedy", - "Hell_Carlito", - "hostar_mdn", - "JeffD", - "rmNyro" + "alexetgus" ] }, - "Web/API/Web_Workers_API": { - "modified": "2020-02-13T03:21:00.537Z", + "Web/HTTP/Headers/Trailer": { + "modified": "2020-10-15T21:51:11.752Z", "contributors": [ - "Arzak656", - "GregMorel", - "wakka27", - "jean-pierre.gay" + "SphinxKnight", + "PlayeurZero" ] }, - "Web/API/Web_Workers_API/Advanced_concepts_and_examples": { - "modified": "2019-03-23T23:02:10.788Z", + "Web/HTTP/Headers/Vary": { + "modified": "2020-10-15T22:00:47.806Z", "contributors": [ - "jean-pierre.gay" + "Laurent_Lyaudet", + "gloucklegnou", + "SphinxKnight", + "mrudelle" ] }, - "Web/API/Web_Workers_API/Utilisation_des_web_workers": { - "modified": "2019-11-27T14:21:09.047Z", + "Web/HTTP/Headers/WWW-Authenticate": { + "modified": "2019-03-18T20:52:28.323Z", "contributors": [ - "leobnt", + "PamProg", + "Synkied", "SphinxKnight", - "hyphaene", - "necraidan", - "loella16", - "aurelienb33", - "Gasperowicz", - "dcamilleri", - "Philiphil", - "mliatt", - "SaintCyr", - "qwincy_p", - "m3doune", - "nicodel", - "jmh", - "goofy_bz", - "ThibautBremand", - "jean-pierre.gay", - "gaspardbenoit", - "teoli", - "tregagnon", - "dbruant", - "AurelienM" + "yereby" ] }, - "Web/API/Web_Workers_API/algorithme_clonage_structure": { - "modified": "2019-03-23T22:20:19.039Z", + "Web/HTTP/Headers/X-Content-Type-Options": { + "modified": "2020-10-15T22:20:53.756Z", "contributors": [ - "Hell_Carlito", - "Watilin" + "tchioubak", + "LaChips", + "ClementWebDesigner" ] }, - "Web/API/WheelEvent": { - "modified": "2020-11-05T15:49:11.373Z", + "Web/HTTP/Headers/X-Frame-Options": { + "modified": "2020-10-15T21:56:45.798Z", "contributors": [ - "JNa0", - "Voulto" + "DeusExNihilo", + "SphinxKnight", + "rdavaillaud", + "tran-simon", + "Selbahc", + "emassip", + "PropreCity", + "petitj", + "callmemagnus", + "aymericsorek", + "mmahouachi" ] }, - "Web/API/WheelEvent/deltaX": { - "modified": "2020-10-15T22:35:00.346Z", + "Web/HTTP/Index": { + "modified": "2019-03-23T22:26:53.499Z", "contributors": [ - "Voulto" + "tonybengue", + "SphinxKnight", + "xdelatour" ] }, - "Web/API/WheelEvent/deltaY": { - "modified": "2020-10-15T22:35:00.628Z", + "Web/HTTP/Redirections": { + "modified": "2020-03-17T12:32:04.893Z", "contributors": [ - "Voulto" + "n3wborn", + "bbonnin" ] }, - "Web/API/WheelEvent/deltaZ": { - "modified": "2020-10-15T22:35:00.253Z", + "Web/HTTP/Resources_and_specifications": { + "modified": "2019-08-17T16:02:26.455Z", "contributors": [ - "Voulto" + "bbonnin" ] }, - "Web/API/Window": { - "modified": "2019-06-20T16:27:26.215Z", + "Web/HTTP/Session": { + "modified": "2019-03-23T22:06:49.321Z", "contributors": [ - "grandoc", - "m-r-r", - "NemoNobobyPersonne", - "hellosct1", - "teoli", - "flexbox", - "khalid32", - "Crash", - "Julien.stuby", - "BenoitL", - "Mgjbot", - "Chbok", - "Takenbot", - "Gorrk" + "SphinxKnight", + "Alpha", + "klenzo" ] }, - "Web/API/Window/URL": { - "modified": "2019-03-23T22:29:28.869Z", + "Web/HTTP/Status": { + "modified": "2020-08-30T05:52:57.122Z", "contributors": [ - "branciat" + "devweb157", + "SphinxKnight", + "Axnyff", + "Badacadabra", + "Bromind", + "fscholz" ] }, - "Web/API/Window/alert": { - "modified": "2019-03-23T23:50:34.370Z", + "Web/HTTP/Status/100": { + "modified": "2020-10-15T21:51:44.583Z", "contributors": [ - "fscholz", - "teoli", - "icefire", - "khalid32", - "Mgjbot", - "Chbok", - "BenoitL" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/applicationCache": { - "modified": "2019-05-15T12:55:24.617Z", + "Web/HTTP/Status/101": { + "modified": "2019-03-23T22:16:44.467Z", "contributors": [ - "Lonylis", - "personnel" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/back": { - "modified": "2020-08-30T04:11:10.912Z", + "Web/HTTP/Status/103": { + "modified": "2020-10-15T22:21:12.084Z", "contributors": [ - "Voulto" + "SphinxKnight", + "neophnx" ] }, - "Web/API/Window/blur": { - "modified": "2020-10-15T22:33:51.982Z", + "Web/HTTP/Status/200": { + "modified": "2020-10-15T21:51:47.097Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/cancelAnimationFrame": { - "modified": "2020-10-15T22:25:28.586Z", + "Web/HTTP/Status/201": { + "modified": "2020-10-15T21:51:48.335Z", "contributors": [ + "ylerjen", + "TimotheAlbouy", "SphinxKnight", - "eloidrai" + "dattaz" ] }, - "Web/API/Window/cancelIdleCallback": { - "modified": "2019-03-18T21:15:28.832Z", + "Web/HTTP/Status/202": { + "modified": "2019-03-23T22:16:56.182Z", "contributors": [ - "Adrael" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/captureEvents": { - "modified": "2020-08-26T09:45:14.172Z", + "Web/HTTP/Status/203": { + "modified": "2019-03-23T22:16:33.634Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/clearImmediate": { - "modified": "2020-10-15T22:33:31.501Z", + "Web/HTTP/Status/204": { + "modified": "2020-10-15T21:51:50.995Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/close": { - "modified": "2019-03-23T23:49:10.598Z", + "Web/HTTP/Status/205": { + "modified": "2019-03-23T22:16:50.696Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/closed": { - "modified": "2019-03-23T23:49:10.478Z", + "Web/HTTP/Status/206": { + "modified": "2020-10-15T21:51:55.335Z", "contributors": [ - "fscholz", - "teoli", - "jsx", - "Mgjbot", - "BenoitL", - "Gorrk" + "AnthonySendra", + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/confirm": { - "modified": "2019-03-23T23:50:38.060Z", + "Web/HTTP/Status/300": { + "modified": "2019-06-01T05:27:25.381Z", "contributors": [ - "fffjacquier", - "fscholz", - "teoli", - "icefire", - "khalid32", - "Mgjbot", - "BenoitL" + "Rififia", + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/console": { - "modified": "2019-03-18T21:43:50.040Z", + "Web/HTTP/Status/301": { + "modified": "2020-10-15T21:52:13.453Z", "contributors": [ - "tweqx" + "ledahulevogyre", + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/content": { - "modified": "2019-03-23T23:49:48.265Z", + "Web/HTTP/Status/302": { + "modified": "2020-10-15T21:52:06.149Z", "contributors": [ - "fscholz", - "teoli", - "jsx", - "Mgjbot", - "BenoitL" + "vulcaryn", + "SphinxKnight", + "louisfischer", + "dattaz" ] }, - "Web/API/Window/controllers": { - "modified": "2019-03-18T21:38:06.814Z", + "Web/HTTP/Status/303": { + "modified": "2020-11-09T07:52:41.898Z", "contributors": [ - "NemoNobobyPersonne" + "martialseron", + "SphinxKnight", + "ADTC", + "dattaz" ] }, - "Web/API/Window/copy_event": { - "modified": "2020-10-15T22:33:31.446Z", + "Web/HTTP/Status/304": { + "modified": "2020-10-15T21:52:19.799Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/crypto": { - "modified": "2019-06-12T16:41:52.512Z", + "Web/HTTP/Status/307": { + "modified": "2020-10-15T21:52:20.929Z", "contributors": [ - "plyd", - "foxstorm", - "alandrieu" + "myobis", + "adrizein", + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/customElements": { - "modified": "2019-03-18T21:37:51.562Z", + "Web/HTTP/Status/308": { + "modified": "2020-10-15T21:52:25.426Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/cut_event": { - "modified": "2020-10-15T22:33:51.319Z", + "Web/HTTP/Status/400": { + "modified": "2019-03-23T22:16:59.097Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/defaultStatus": { - "modified": "2020-08-26T10:36:08.889Z", + "Web/HTTP/Status/401": { + "modified": "2020-10-15T21:52:30.923Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/devicePixelRatio": { - "modified": "2019-03-23T22:41:51.233Z", + "Web/HTTP/Status/402": { + "modified": "2020-10-15T22:21:51.787Z", "contributors": [ - "plyd" + "Rififia", + "rafipiccolo" ] }, - "Web/API/Window/dialogArguments": { - "modified": "2020-10-15T22:33:30.968Z", + "Web/HTTP/Status/403": { + "modified": "2020-10-15T21:52:27.600Z", "contributors": [ - "Voulto" + "reivaxy", + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/directories": { - "modified": "2020-08-26T10:46:42.910Z", + "Web/HTTP/Status/404": { + "modified": "2020-10-15T21:52:28.956Z", "contributors": [ - "Voulto" + "SphinxKnight", + "Goofy", + "dattaz" ] }, - "Web/API/Window/document": { - "modified": "2020-10-15T22:33:30.190Z", + "Web/HTTP/Status/405": { + "modified": "2019-03-23T22:16:59.786Z", "contributors": [ - "Voulto" + "newick", + "lucien.bill", + "tititou36", + "SphinxKnight", + "arthurwhite", + "dattaz" ] }, - "Web/API/Window/dump": { - "modified": "2019-03-24T00:09:26.929Z", + "Web/HTTP/Status/406": { + "modified": "2020-10-15T21:52:43.789Z", "contributors": [ - "fscholz", - "teoli", - "AshfaqHossain", - "omarce", - "Mgjbot", - "Chbok" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/event": { - "modified": "2020-10-15T22:33:50.857Z", + "Web/HTTP/Status/407": { + "modified": "2020-10-15T21:52:43.422Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/find": { - "modified": "2020-08-30T05:23:27.822Z", + "Web/HTTP/Status/408": { + "modified": "2019-03-23T22:16:30.693Z", "contributors": [ - "Voulto" + "SphinxKnight", + "VictorGiroud", + "dattaz" ] }, - "Web/API/Window/focus": { - "modified": "2019-03-23T22:47:01.519Z", + "Web/HTTP/Status/409": { + "modified": "2019-03-23T22:16:31.226Z", "contributors": [ - "mmerian" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/frameElement": { - "modified": "2020-10-15T22:33:32.894Z", + "Web/HTTP/Status/410": { + "modified": "2020-10-15T21:52:43.256Z", "contributors": [ - "Voulto" + "SphinxKnight", + "Alpha", + "dattaz" ] }, - "Web/API/Window/frames": { - "modified": "2019-03-23T23:07:57.219Z", + "Web/HTTP/Status/411": { + "modified": "2019-03-23T22:16:31.489Z", "contributors": [ - "Ac1521", - "fscholz", "SphinxKnight", - "Goofy", - "MatthieuHa" + "dattaz" ] }, - "Web/API/Window/fullScreen": { - "modified": "2019-03-23T23:50:27.730Z", + "Web/HTTP/Status/412": { + "modified": "2020-10-15T21:52:44.154Z", "contributors": [ - "fscholz", - "teoli", - "Hasilt", - "Mgjbot", - "BenoitL" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/gamepadconnected_event": { - "modified": "2019-03-23T21:59:49.070Z", + "Web/HTTP/Status/413": { + "modified": "2019-03-23T22:16:25.449Z", "contributors": [ - "irenesmith", - "fscholz", - "Kalwyn" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/gamepaddisconnected_event": { - "modified": "2019-03-23T21:59:48.411Z", + "Web/HTTP/Status/414": { + "modified": "2019-03-23T22:16:30.303Z", "contributors": [ - "irenesmith", - "Snosky", - "fscholz", - "Kalwyn" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/getComputedStyle": { - "modified": "2019-03-23T23:39:22.750Z", + "Web/HTTP/Status/415": { + "modified": "2019-03-23T22:16:17.725Z", "contributors": [ - "scaillerie", - "Jean-MariePETIT", - "fscholz", - "teoli", - "khalid32", - "tregagnon", - "Zlitus" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/getDefaultComputedStyle": { - "modified": "2019-03-18T21:37:50.335Z", + "Web/HTTP/Status/416": { + "modified": "2020-10-15T21:52:44.490Z", "contributors": [ - "teoli", - "NemoNobobyPersonne" + "SphinxKnight", + "PGeffriaud", + "dattaz" ] }, - "Web/API/Window/getSelection": { - "modified": "2019-09-25T07:23:01.504Z", + "Web/HTTP/Status/417": { + "modified": "2019-03-23T22:16:23.253Z", "contributors": [ - "julienc", - "sudwebdesign", - "fscholz", - "jsx", - "teoli", - "Mgjbot", - "BenoitL" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/hashchange_event": { - "modified": "2020-06-01T06:05:14.156Z", + "Web/HTTP/Status/418": { + "modified": "2020-10-15T22:01:58.002Z", "contributors": [ - "CommandMaker", - "fscholz", - "SaintCyr" + "dzamlo", + "sblondon", + "SphinxKnight", + "Alpha" ] }, - "Web/API/Window/history": { - "modified": "2020-10-15T21:25:14.236Z", + "Web/HTTP/Status/422": { + "modified": "2019-03-18T21:33:59.059Z", "contributors": [ - "Arzak656", - "SphinxKnight", - "fscholz", - "khalid32", - "Goofy", - "Jeuxclic" + "theophilechevalier" ] }, - "Web/API/Window/home": { - "modified": "2020-10-15T22:33:52.712Z", + "Web/HTTP/Status/425": { + "modified": "2020-10-15T22:11:22.211Z", "contributors": [ - "Voulto" + "Akarys" ] }, - "Web/API/Window/innerHeight": { - "modified": "2019-03-23T23:51:40.324Z", + "Web/HTTP/Status/426": { + "modified": "2019-03-23T22:16:23.564Z", "contributors": [ - "Copen", - "fscholz", - "teoli", - "khalid32", - "BenoitL", - "Mgjbot", - "Druss" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/innerWidth": { - "modified": "2019-03-23T23:51:38.427Z", + "Web/HTTP/Status/428": { + "modified": "2019-03-23T22:16:18.491Z", "contributors": [ - "callmemagnus", - "jdeniau", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "Druss" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/isSecureContext": { - "modified": "2020-10-15T22:33:30.685Z", + "Web/HTTP/Status/429": { + "modified": "2019-03-23T22:16:27.928Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/languagechange_event": { - "modified": "2020-10-15T22:33:51.717Z", + "Web/HTTP/Status/431": { + "modified": "2019-03-23T22:16:18.973Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/length": { - "modified": "2019-03-23T22:49:39.967Z", + "Web/HTTP/Status/451": { + "modified": "2020-10-15T21:52:49.692Z", "contributors": [ - "Scott99" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/localStorage": { - "modified": "2020-10-15T21:38:24.266Z", + "Web/HTTP/Status/500": { + "modified": "2020-10-15T21:52:49.526Z", "contributors": [ - "tristantheb", - "begmans", - "Bpruneau", - "Axnyff", - "EmmanuelBeziat", - "Nolwennig", - "goofy_bz", - "mfrederic" + "SphinxKnight", + "Alpha", + "dattaz" ] }, - "Web/API/Window/locationbar": { - "modified": "2020-10-15T22:33:31.052Z", + "Web/HTTP/Status/501": { + "modified": "2020-10-15T21:52:47.942Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/matchMedia": { - "modified": "2019-03-23T23:36:43.486Z", + "Web/HTTP/Status/502": { + "modified": "2020-10-15T21:52:48.291Z", "contributors": [ - "fscholz", - "teoli", - "khalid32", - "kim_doudou" + "SphinxKnight", + "pinnotjaque", + "dattaz" ] }, - "Web/API/Window/menubar": { - "modified": "2020-10-15T22:33:33.066Z", + "Web/HTTP/Status/503": { + "modified": "2020-10-15T21:52:49.235Z", "contributors": [ - "Voulto" + "SphinxKnight", + "pinnotjaque", + "dattaz" ] }, - "Web/API/Window/message_event": { - "modified": "2020-10-15T22:33:32.981Z", + "Web/HTTP/Status/504": { + "modified": "2020-10-15T21:52:48.211Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/messageerror_event": { - "modified": "2020-10-15T22:33:50.217Z", + "Web/HTTP/Status/505": { + "modified": "2019-03-23T22:16:21.878Z", "contributors": [ - "Voulto" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/mozAnimationStartTime": { - "modified": "2020-10-15T22:33:31.316Z", + "Web/HTTP/Status/506": { + "modified": "2020-09-15T14:40:07.564Z", "contributors": [ - "Voulto" + "ungarscool1" ] }, - "Web/API/Window/mozInnerScreenX": { - "modified": "2020-10-15T22:33:30.539Z", + "Web/HTTP/Status/507": { + "modified": "2020-09-15T14:35:14.118Z", "contributors": [ - "Voulto" + "ungarscool1" ] }, - "Web/API/Window/mozInnerScreenY": { - "modified": "2020-10-15T22:33:31.996Z", + "Web/HTTP/Status/508": { + "modified": "2020-11-10T12:22:56.051Z", "contributors": [ - "Voulto" + "endermctv", + "ungarscool1" ] }, - "Web/API/Window/mozPaintCount": { - "modified": "2020-10-15T22:33:32.495Z", + "Web/HTTP/Status/510": { + "modified": "2020-01-30T04:13:14.901Z", "contributors": [ - "Voulto" + "SphinxKnight", + "flippo007" ] }, - "Web/API/Window/name": { - "modified": "2019-03-23T22:14:13.942Z", + "Web/HTTP/Status/511": { + "modified": "2019-03-23T22:16:30.847Z", "contributors": [ - "Copen" + "SphinxKnight", + "dattaz" ] }, - "Web/API/Window/navigator": { - "modified": "2019-07-01T12:52:20.296Z", + "Web/JavaScript": { + "modified": "2020-06-10T08:48:58.868Z", "contributors": [ - "fscholz", + "SphinxKnight", + "tristantheb", + "a-mt", + "LCaba49", + "loella16", + "kdex", + "mapiki", "teoli", - "khalid32", + "ronasita22", + "jeromepasquelin", + "Avent", + "julia31", + "jsx", + "jalu78", + "DamienBertrand", + "tregagnon", + "ylerjen", + "senshu", + "DocMcBrown", + "tchevalier", + "Goofy", + "darnuria", + "Sroucheray", + "matteodelabre", + "fscholz", + "ILJR", + "cv075", "Mgjbot", - "BenoitL" + "BenoitL", + "Fredchat", + "Verruckt", + "Chbok", + "Quarkcool", + "Jean-Yves Cronier", + "Anonymous", + "Mario" ] }, - "Web/API/Window/offline_event": { - "modified": "2020-10-15T22:32:51.446Z", + "Web/JavaScript/Closures": { + "modified": "2020-03-14T03:08:28.899Z", "contributors": [ - "Voulto", - "discipolat" + "smeden-lod", + "PhilippePerret", + "SphinxKnight", + "Lamri", + "mbeaudru", + "Mongenet", + "opii93", + "bassam", + "DeepFriedSeagull", + "cosmith", + "teoli", + "Florentsuc", + "zanz" ] }, - "Web/API/Window/ondevicelight": { - "modified": "2020-10-15T22:33:47.080Z", + "Web/JavaScript/Guide": { + "modified": "2020-03-12T19:36:21.976Z", "contributors": [ - "Voulto" + "SphinxKnight", + "teoli", + "delislejm", + "Ame_Nomade", + "BenoitL" ] }, - "Web/API/Window/online_event": { - "modified": "2020-10-15T22:33:30.848Z", + "Web/JavaScript/Guide/Introduction": { + "modified": "2020-03-12T19:40:53.803Z", "contributors": [ - "Voulto" + "CmdCourgette", + "SphinxKnight", + "tonybengue", + "Nopias", + "Arnaudettes", + "tregagnon" ] }, - "Web/API/Window/onpaint": { - "modified": "2020-08-30T03:31:57.086Z", + "Web/JavaScript/Guide/Modules": { + "modified": "2020-10-15T22:20:28.070Z", "contributors": [ - "Voulto" + "SphinxKnight" ] }, - "Web/API/Window/onresize": { - "modified": "2019-03-23T23:03:02.343Z", + "Web/JavaScript/JavaScript_technologies_overview": { + "modified": "2020-03-12T19:39:28.831Z", "contributors": [ - "loella16", - "fscholz", - "mikadev" + "SphinxKnight", + "Yopadd", + "Bpruneau", + "tregagnon", + "teoli", + "duthen", + "PanPan", + "DocMcBrown", + "delislejm", + "goofy_bz" ] }, - "Web/API/Window/open": { - "modified": "2019-10-13T15:48:24.493Z", + "Web/JavaScript/Language_Resources": { + "modified": "2020-03-12T19:37:01.767Z", "contributors": [ - "Sibian2019", - "P45QU10U", "SphinxKnight", - "trebly", - "jigs12", - "jnoelEFL", - "fscholz", - "khalid32", + "zatamine", "teoli", - "damien.flament", - "GT", + "Delapouite", "Mgjbot", "BenoitL" ] }, - "Web/API/Window/openDialog": { - "modified": "2020-10-15T21:14:00.787Z", + "Web/JavaScript/Reference": { + "modified": "2020-03-12T19:35:39.919Z", "contributors": [ - "velkro", - "fscholz", + "SphinxKnight", + "BenoitL", "teoli", - "jsx", + "Fredchat", "tregagnon", - "damien.flament" - ] - }, - "Web/API/Window/opener": { - "modified": "2019-03-23T23:49:11.676Z", - "contributors": [ "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" - ] - }, - "Web/API/Window/orientation": { - "modified": "2020-10-15T22:33:28.551Z", - "contributors": [ - "Voulto" + "LaBoumerde", + "AbrahamT", + "Mortys", + "matteodelabre" ] }, - "Web/API/Window/outerHeight": { - "modified": "2019-03-23T22:35:54.960Z", + "Web/JavaScript/Reference/Classes": { + "modified": "2020-10-15T21:33:49.394Z", "contributors": [ - "Nlmc", - "cyriil_dev" + "rachid.chihabi", + "SphinxKnight", + "GregMorel", + "unflores", + "rgranger", + "blackholegalaxy", + "Yukulele." ] }, - "Web/API/Window/outerWidth": { - "modified": "2019-03-18T21:37:58.232Z", + "Web/JavaScript/Reference/Classes/Private_class_fields": { + "modified": "2020-10-15T22:33:35.342Z", "contributors": [ - "NemoNobobyPersonne" + "NemoNobobyPersonne", + "N0wan", + "yohannlog" ] }, - "Web/API/Window/parent": { - "modified": "2019-03-23T23:50:11.432Z", + "Web/JavaScript/Reference/Classes/constructor": { + "modified": "2020-10-15T21:33:51.548Z", "contributors": [ - "fscholz", - "khalid32", - "teoli", - "Mgjbot", - "Takenbot", - "BenoitL" + "fbessou", + "SphinxKnight", + "MathieuDebit" ] }, - "Web/API/Window/paste_event": { - "modified": "2020-10-15T22:33:30.919Z", + "Web/JavaScript/Reference/Classes/extends": { + "modified": "2020-10-15T21:33:51.793Z", "contributors": [ - "Voulto" + "SphinxKnight" ] }, - "Web/API/Window/popstate_event": { - "modified": "2019-04-26T08:34:01.571Z", + "Web/JavaScript/Reference/Classes/static": { + "modified": "2020-10-15T21:33:57.179Z", "contributors": [ - "chrisdavidmills", - "irenesmith", - "fscholz", - "Hell_Carlito", - "DuaelFr" + "SphinxKnight", + "mohabigmeech", + "AnthonyMelique", + "ericallard0" ] }, - "Web/API/Window/postMessage": { - "modified": "2020-10-15T21:31:31.287Z", + "Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames": { + "modified": "2020-10-15T22:33:06.475Z", "contributors": [ - "abvll", - "J.DMB", - "fscholz", - "Watilin" + "JNa0", + "romulocintra" ] }, - "Web/API/Window/print": { - "modified": "2019-03-23T22:47:25.609Z", + "Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames": { + "modified": "2020-10-15T22:33:04.699Z", "contributors": [ - "Bringdal", - "clementgarbay", - "Chealer" + "JNa0" ] }, - "Web/API/Window/prompt": { - "modified": "2020-10-20T04:53:05.942Z", + "Web/JavaScript/Reference/Strict_mode": { + "modified": "2020-03-12T19:38:43.336Z", "contributors": [ - "Yopai", - "goofy_mdn", "SphinxKnight", - "SUN-D-IA-L", + "pastr", + "Nothus", + "Laurent_Lyaudet", + "kdex", + "boessel", + "Bpruneau", + "WSH", + "krazygit", + "onra87", "fscholz", "teoli", - "icefire", - "khalid32", - "Mgjbot", - "BenoitL" + "jessmania", + "Automatik", + "Munto" ] }, - "Web/API/Window/rejectionhandled_event": { - "modified": "2020-10-15T22:33:52.394Z", + "Web/JavaScript/Shells": { + "modified": "2020-03-12T19:35:39.467Z", "contributors": [ - "Voulto" + "SphinxKnight", + "teoli", + "Goofy", + "wakka27", + "ziyunfei", + "julienw" ] }, - "Web/API/Window/requestAnimationFrame": { - "modified": "2020-10-15T21:25:38.318Z", + "Web/Manifest": { + "modified": "2020-07-07T17:00:42.988Z", "contributors": [ - "gsavin", - "Hell_Carlito", - "Gibus", - "kiux", - "xUMi", - "Durindo", - "Huntedpix", - "fscholz", - "youssefj", - "wakooka", - "juleschz" + "yannbertrand", + "chrisspb", + "Goofy", + "mlcdf", + "loella16", + "Luwangel", + "JeffD" ] }, - "Web/API/Window/requestIdleCallback": { - "modified": "2019-03-23T22:21:17.753Z", + "Web/Manifest/theme_color": { + "modified": "2020-10-15T22:26:29.306Z", "contributors": [ - "Adrael" + "Arzak656" ] }, - "Web/API/Window/resizeBy": { - "modified": "2020-10-15T22:33:30.846Z", + "Web/MathML": { + "modified": "2020-11-16T12:48:00.196Z", "contributors": [ - "Voulto" + "JNa0", + "fred.wang", + "SphinxKnight" ] }, - "Web/API/Window/screen": { - "modified": "2020-10-15T22:13:48.969Z", + "Web/MathML/Attribute": { + "modified": "2020-11-16T12:58:45.165Z", "contributors": [ - "SphinxKnight", - "AurelieBayre" + "JNa0", + "Fredchat", + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/screenX": { - "modified": "2019-03-23T22:30:27.252Z", + "Web/MathML/Authoring": { + "modified": "2020-11-16T13:43:13.167Z", "contributors": [ - "tutosfaciles48" + "JNa0", + "florimond.alemps", + "fred.wang", + "Goofy" ] }, - "Web/API/Window/scroll": { - "modified": "2019-03-23T23:38:26.784Z", + "Web/MathML/Element": { + "modified": "2020-11-16T13:26:48.036Z", "contributors": [ - "fscholz", - "khalid32", - "rd6137" + "JNa0", + "tregagnon", + "SphinxKnight" ] }, - "Web/API/Window/scrollBy": { - "modified": "2019-01-16T23:16:12.982Z", + "Web/MathML/Element/maction": { + "modified": "2019-03-23T23:29:11.950Z", "contributors": [ - "gharel", - "OhNiice" + "SphinxKnight" ] }, - "Web/API/Window/scrollByLines": { - "modified": "2019-03-23T22:28:15.817Z", + "Web/MathML/Element/math": { + "modified": "2020-10-15T21:24:02.886Z", "contributors": [ - "OhNiice" + "tristantheb", + "tregagnon", + "SphinxKnight" ] }, - "Web/API/Window/scrollByPages": { - "modified": "2019-03-23T22:28:29.251Z", + "Web/MathML/Element/menclose": { + "modified": "2019-03-23T23:28:57.107Z", "contributors": [ - "OhNiice" + "fred.wang", + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/scrollTo": { - "modified": "2019-03-23T23:51:36.100Z", + "Web/MathML/Element/merror": { + "modified": "2019-03-23T23:29:00.856Z", "contributors": [ - "victorlevasseur", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/scrollY": { - "modified": "2019-09-06T18:25:26.774Z", + "Web/MathML/Element/mfenced": { + "modified": "2020-10-15T21:23:45.763Z", "contributors": [ - "Awebsome", - "blr21560", - "Buzut", - "romuleald", - "cyriil_dev" + "tristantheb", + "fred.wang", + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/scrollbars": { - "modified": "2020-10-15T22:33:49.792Z", + "Web/MathML/Element/mfrac": { + "modified": "2019-03-23T23:29:03.213Z", "contributors": [ - "Voulto" + "fred.wang", + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/sessionStorage": { - "modified": "2020-10-15T21:38:20.068Z", + "Web/MathML/Element/mglyph": { + "modified": "2020-10-15T21:23:58.877Z", "contributors": [ - "madidier", "SphinxKnight", - "Prestine", - "begmans", - "carvallegro", - "cedeber", - "gharel", - "Puxarnal", - "Weeple" - ] - }, - "Web/API/Window/showModalDialog": { - "modified": "2019-03-23T23:49:12.676Z", - "contributors": [ - "Enoryon", - "fscholz", - "teoli", - "MatthieuHa", - "khalid32", - "Mgjbot", - "BenoitL" + "Delapouite", + "Goofy" ] }, - "Web/API/Window/stop": { - "modified": "2020-10-15T22:33:32.200Z", + "Web/MathML/Element/mi": { + "modified": "2019-03-23T23:29:00.435Z", "contributors": [ - "Voulto" + "Delapouite", + "SphinxKnight" ] }, - "Web/API/Window/storage_event": { - "modified": "2020-10-15T22:33:50.498Z", + "Web/MathML/Element/mover": { + "modified": "2019-03-23T23:20:28.812Z", "contributors": [ - "Voulto" + "Goofy", + "fred.wang" ] }, - "Web/API/Window/top": { - "modified": "2020-10-15T22:33:34.095Z", + "Web/MathML/Element/msub": { + "modified": "2020-10-15T22:21:32.420Z", "contributors": [ - "Voulto" + "Arzak656" ] }, - "Web/API/Window/vrdisplayconnect_event": { - "modified": "2020-10-15T22:33:51.404Z", + "Web/MathML/Element/munder": { + "modified": "2019-03-23T23:20:27.966Z", "contributors": [ - "Voulto" + "fred.wang" ] }, - "Web/API/Window/vrdisplaydisconnect_event": { - "modified": "2020-10-15T22:33:50.659Z", + "Web/MathML/Element/munderover": { + "modified": "2020-10-15T21:26:39.645Z", "contributors": [ - "Voulto" + "tristantheb", + "fred.wang" ] }, - "Web/API/Window/vrdisplaypresentchange_event": { - "modified": "2020-10-15T22:33:50.217Z", + "Web/MathML/Index": { + "modified": "2019-01-16T22:05:50.107Z", "contributors": [ - "Voulto" + "xdelatour" ] }, - "Web/API/WindowBase64/Décoder_encoder_en_base64": { - "modified": "2020-07-01T11:04:19.647Z", + "Web/Media": { + "modified": "2019-03-18T21:32:54.694Z", "contributors": [ - "sigmal", - "olivierdupon", - "SphinxKnight", - "fscholz" + "tonybengue" ] }, - "Web/API/WindowBase64/atob": { - "modified": "2019-09-24T09:32:03.862Z", + "Web/Media/Formats": { + "modified": "2020-02-08T13:22:06.570Z", "contributors": [ - "NemoNobobyPersonne", - "tbroadley", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL", - "Celelibi" + "tristantheb" ] }, - "Web/API/WindowBase64/btoa": { - "modified": "2019-03-18T21:13:03.287Z", + "Web/Performance": { + "modified": "2019-12-19T10:00:18.648Z", "contributors": [ - "PamProg", - "NemoNobobyPersonne", - "teoli", - "lovasoa", - "fscholz", - "jsx", - "e7d", - "Mgjbot", - "BenoitL", - "Celelibi" + "chrisdavidmills" ] }, - "Web/API/WindowClient": { - "modified": "2019-03-23T22:34:19.127Z", + "Web/Performance/How_browsers_work": { + "modified": "2019-12-19T10:00:31.657Z", "contributors": [ - "NuclearPony" + "chrisdavidmills", + "estelle" ] }, - "Web/API/WindowClient/focus": { - "modified": "2019-03-23T22:34:17.444Z", + "Web/Progressive_web_apps": { + "modified": "2020-04-26T14:49:45.824Z", "contributors": [ - "NuclearPony" + "Mozinet", + "hellosct1", + "brandonlazarre", + "chrisdavidmills", + "tonybengue", + "enguerran", + "loella16", + "Hell_Carlito", + "JeffD" ] }, - "Web/API/WindowClient/focused": { - "modified": "2019-03-23T22:06:02.438Z", + "Web/Progressive_web_apps/App_structure": { + "modified": "2020-08-05T10:07:41.167Z", "contributors": [ - "aligatorjmg" + "Khylias", + "tdufranne", + "poum" ] }, - "Web/API/WindowClient/navigate": { - "modified": "2019-03-23T22:05:57.858Z", + "Web/Progressive_web_apps/Installable_PWAs": { + "modified": "2020-05-31T18:38:21.807Z", "contributors": [ - "aligatorjmg" + "poum" ] }, - "Web/API/WindowClient/visibilityState": { - "modified": "2019-03-23T22:05:58.402Z", + "Web/Progressive_web_apps/Introduction": { + "modified": "2019-09-19T07:57:58.235Z", "contributors": [ - "aligatorjmg" + "Kuzcoo" ] }, - "Web/API/WindowEventHandlers": { - "modified": "2020-10-15T21:33:02.753Z", + "Web/Progressive_web_apps/Offline_Service_workers": { + "modified": "2020-11-28T08:40:27.578Z", "contributors": [ - "a-mt", - "fscholz" + "mandie33", + "floreengrad", + "kgrandemange", + "Lmzd", + "poum" ] }, - "Web/API/WindowEventHandlers/onafterprint": { - "modified": "2020-10-15T22:10:57.103Z", + "Web/Reference": { + "modified": "2020-04-10T02:52:59.247Z", "contributors": [ - "velkro" + "SphinxKnight", + "ScarabIG", + "smeden-lod", + "tonybengue", + "Nothus", + "mg1", + "PanPan", + "naar" ] }, - "Web/API/WindowEventHandlers/onbeforeprint": { - "modified": "2020-10-15T22:10:57.975Z", + "Web/Reference/API": { + "modified": "2019-03-23T23:15:29.222Z", "contributors": [ - "velkro" + "CoulibalyZieSidiki", + "SphinxKnight", + "teoli", + "yvesd", + "Goofy", + "hanyrold" ] }, - "Web/API/WindowEventHandlers/onbeforeunload": { - "modified": "2019-04-18T06:36:38.075Z", + "Web/SVG": { + "modified": "2020-02-08T12:31:46.566Z", "contributors": [ - "ocommeng", - "Chocobozzz", - "Yves_ASTIER", + "tristantheb", + "AbdelElMansari", + "Tresmollo", + "unpeudetout", + "marie-ototoi", + "nicodel", + "SphinxKnight", "teoli", - "fscholz", - "Ender-events", - "Jeremie", "Delapouite", - "souen", - "matteodelabre", - "Jacqhal" + "darnuria", + "Jeremie", + "MsTeshi", + "marc971", + "gemy_c", + "fscholz", + "BenoitL", + "Fredchat", + "Kyodev", + "Duarna", + "Verruckt", + "Chbok", + "Mgjbot", + "Jorolo", + "Anonymous" ] }, - "Web/API/WindowEventHandlers/onhashchange": { - "modified": "2019-03-23T22:29:53.876Z", + "Web/SVG/Attribute": { + "modified": "2019-03-18T20:39:37.299Z", "contributors": [ - "romuleald", - "Restimel", - "electrotiti" + "a-mt", + "Frigory", + "marie-ototoi", + "teoli", + "Delapouite", + "Blackhole", + "ethertank" ] }, - "Web/API/WindowEventHandlers/onlanguagechange": { - "modified": "2020-10-15T22:33:47.473Z", + "Web/SVG/Attribute/Conditional_Processing": { + "modified": "2020-10-15T22:11:03.231Z", "contributors": [ - "Voulto" + "a-mt" ] }, - "Web/API/WindowEventHandlers/onpopstate": { - "modified": "2020-03-22T20:22:18.860Z", + "Web/SVG/Attribute/Core": { + "modified": "2020-10-15T22:10:56.108Z", "contributors": [ - "noelmace", - "JouxRose", - "fscholz", - "teoli", - "khalid32", - "gudoy", - "matteodelabre" + "a-mt" ] }, - "Web/API/WindowEventHandlers/onunload": { - "modified": "2020-10-15T21:34:36.558Z", + "Web/SVG/Attribute/Events": { + "modified": "2020-10-15T22:10:52.662Z", "contributors": [ - "Sibian2019", - "SphinxKnight", - "regzd" + "a-mt" ] }, - "Web/API/WindowOrWorkerGlobalScope": { - "modified": "2020-08-30T06:30:00.848Z", + "Web/SVG/Attribute/Presentation": { + "modified": "2020-10-15T22:11:15.381Z", "contributors": [ - "Voulto", - "Bzbarsky" + "a-mt" ] }, - "Web/API/WindowOrWorkerGlobalScope/caches": { - "modified": "2020-10-15T22:06:53.037Z", + "Web/SVG/Attribute/Styling": { + "modified": "2020-10-15T22:10:54.819Z", "contributors": [ - "Arzak656", - "jonasgrilleres" + "a-mt" ] }, - "Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated": { - "modified": "2020-10-15T22:26:34.641Z", + "Web/SVG/Attribute/accent-height": { + "modified": "2019-03-23T22:21:03.889Z", "contributors": [ - "Eliastik" + "SphinxKnight", + "daimebag" ] }, - "Web/API/WindowOrWorkerGlobalScope/fetch": { - "modified": "2020-11-16T08:26:54.613Z", + "Web/SVG/Attribute/clip-path": { + "modified": "2020-10-15T22:11:30.678Z", "contributors": [ - "JNa0", - "PxlCtzn", - "fscholz", - "Hell_Carlito", - "Bat41" + "a-mt" ] }, - "Web/API/WindowOrWorkerGlobalScope/indexedDB": { - "modified": "2020-10-15T21:45:39.555Z", + "Web/SVG/Attribute/color": { + "modified": "2020-10-15T22:11:30.261Z", "contributors": [ - "Arzak656", - "SphinxKnight", - "gadgino" + "a-mt" ] }, - "Web/API/WindowOrWorkerGlobalScope/isSecureContext": { - "modified": "2020-10-15T22:06:53.371Z", + "Web/SVG/Attribute/cx": { + "modified": "2019-03-23T23:31:20.118Z", "contributors": [ - "jonasgrilleres" + "a-mt", + "teoli", + "Blackhole" ] }, - "Web/API/WindowOrWorkerGlobalScope/origin": { - "modified": "2020-10-15T22:06:53.236Z", + "Web/SVG/Attribute/cy": { + "modified": "2019-03-23T23:31:21.093Z", "contributors": [ - "jonasgrilleres" + "a-mt", + "teoli", + "Blackhole" ] }, - "Web/API/WindowOrWorkerGlobalScope/queueMicrotask": { - "modified": "2020-10-15T22:26:44.474Z", + "Web/SVG/Attribute/d": { + "modified": "2019-07-21T08:22:01.775Z", "contributors": [ - "Eliastik" + "JNa0", + "cdoublev", + "AntoineTohan", + "mknx", + "Tolokoban2" ] }, - "Web/API/WindowOrWorkerGlobalScope/setTimeout": { - "modified": "2020-10-15T21:13:52.309Z", + "Web/SVG/Attribute/dx": { + "modified": "2019-03-23T22:03:37.098Z", "contributors": [ - "SphinxKnight", - "jmh", - "fscholz", - "teoli", - "jsx", - "Automatik", - "zanz", - "Tiller", - "Ceth", - "BenoitL", - "Mgjbot" + "a-mt", + "dattaz" ] }, - "Web/API/WindowTimers/clearInterval": { - "modified": "2020-10-15T21:18:22.478Z", + "Web/SVG/Attribute/dy": { + "modified": "2019-03-18T21:22:22.282Z", "contributors": [ - "SphinxKnight", - "faflo10", - "Shinomix", - "fscholz", - "teoli", - "khalid32", - "Mgjbot", - "BenoitL" + "a-mt" ] }, - "Web/API/Worker": { - "modified": "2020-10-15T21:25:14.944Z", + "Web/SVG/Attribute/fill": { + "modified": "2020-10-15T22:11:05.869Z", "contributors": [ - "Arzak656", - "laruiss", - "khalid32", - "DrJeffrey", - "JonathanMM", - "benjiiiiii" + "a-mt" ] }, - "Web/API/Worker/Functions_and_classes_available_to_workers": { - "modified": "2019-03-23T23:02:00.292Z", + "Web/SVG/Attribute/fill-opacity": { + "modified": "2020-10-15T22:11:05.147Z", "contributors": [ - "oaubert", - "Goofy", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/Worker/Worker": { - "modified": "2020-10-15T21:32:56.649Z", + "Web/SVG/Attribute/fill-rule": { + "modified": "2020-10-15T22:11:05.485Z", "contributors": [ - "Arzak656", - "wakka27", - "fscholz", - "jean-pierre.gay" + "davidwerbrouck", + "a-mt" ] }, - "Web/API/Worker/onmessage": { - "modified": "2020-10-15T21:32:57.785Z", + "Web/SVG/Attribute/height": { + "modified": "2019-03-23T22:07:31.508Z", "contributors": [ - "Arzak656", - "wakka27", - "fscholz", - "jean-pierre.gay" + "AlexisColin" ] }, - "Web/API/Worker/postMessage": { - "modified": "2020-10-15T21:28:27.233Z", + "Web/SVG/Attribute/in": { + "modified": "2019-03-18T21:22:14.241Z", "contributors": [ - "Arzak656", - "fscholz", - "J.DMB", - "Whimzfreak" + "a-mt" ] }, - "Web/API/Worker/terminate": { - "modified": "2020-10-15T21:32:32.338Z", + "Web/SVG/Attribute/mask": { + "modified": "2020-10-15T22:16:06.957Z", "contributors": [ - "Arzak656", - "fscholz", - "jean-pierre.gay" + "Arzak656" ] }, - "Web/API/WorkerGlobalScope": { - "modified": "2020-10-03T00:59:22.962Z", + "Web/SVG/Attribute/points": { + "modified": "2020-02-04T12:32:34.025Z", "contributors": [ - "duduindo", - "Voulto", - "chrisdavidmills" + "Arzak656" ] }, - "Web/API/WorkerGlobalScope/close": { - "modified": "2020-10-15T21:36:58.427Z", + "Web/SVG/Attribute/preserveAspectRatio": { + "modified": "2019-03-18T21:22:57.126Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/console": { - "modified": "2020-10-15T22:26:34.613Z", + "Web/SVG/Attribute/seed": { + "modified": "2019-03-23T22:07:14.284Z", "contributors": [ - "Eliastik" + "AlexisColin" ] }, - "Web/API/WorkerGlobalScope/dump": { - "modified": "2020-10-15T22:27:11.681Z", + "Web/SVG/Attribute/stroke": { + "modified": "2020-10-15T21:56:30.225Z", "contributors": [ - "Arzak656" + "a-mt", + "AlexisColin" ] }, - "Web/API/WorkerGlobalScope/importScripts": { - "modified": "2020-10-15T21:36:58.896Z", + "Web/SVG/Attribute/stroke-dasharray": { + "modified": "2020-10-15T21:56:31.583Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt", + "AlexisColin" ] }, - "Web/API/WorkerGlobalScope/location": { - "modified": "2020-10-15T21:33:55.947Z", + "Web/SVG/Attribute/stroke-dashoffset": { + "modified": "2020-10-15T22:10:57.575Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "Nicolapps", + "a-mt" ] }, - "Web/API/WorkerGlobalScope/navigator": { - "modified": "2020-10-15T21:33:53.933Z", + "Web/SVG/Attribute/stroke-linecap": { + "modified": "2020-10-15T22:11:04.507Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/onclose": { - "modified": "2020-10-15T21:33:54.728Z", + "Web/SVG/Attribute/stroke-linejoin": { + "modified": "2020-10-15T22:11:04.638Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/onerror": { - "modified": "2020-10-15T21:33:56.757Z", + "Web/SVG/Attribute/stroke-miterlimit": { + "modified": "2020-10-15T22:11:03.140Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/onlanguagechange": { - "modified": "2020-10-15T21:33:55.141Z", + "Web/SVG/Attribute/stroke-opacity": { + "modified": "2020-10-15T22:11:06.016Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/onoffline": { - "modified": "2020-10-15T21:33:24.512Z", + "Web/SVG/Attribute/stroke-width": { + "modified": "2020-10-15T22:11:05.550Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "AinaBeryl", + "a-mt" ] }, - "Web/API/WorkerGlobalScope/ononline": { - "modified": "2020-10-15T21:33:24.530Z", + "Web/SVG/Attribute/style": { + "modified": "2020-10-15T22:11:06.053Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "a-mt" ] }, - "Web/API/WorkerGlobalScope/self": { - "modified": "2020-10-15T21:33:24.526Z", + "Web/SVG/Attribute/text-anchor": { + "modified": "2019-03-23T22:32:39.192Z", "contributors": [ - "Arzak656", - "jean-pierre.gay" + "PierreGuyot", + "tonybengue", + "CLEm" ] }, - "Web/API/WorkerLocation": { - "modified": "2020-10-15T21:49:33.462Z", + "Web/SVG/Attribute/transform": { + "modified": "2019-12-04T16:27:51.754Z", "contributors": [ - "Arzak656", - "Hell_Carlito", - "Copen" + "SphinxKnight", + "Dimitri-web" ] }, - "Web/API/XMLDocument": { - "modified": "2020-10-15T22:03:21.753Z", + "Web/SVG/Attribute/viewBox": { + "modified": "2019-03-23T22:45:10.877Z", "contributors": [ - "NemoNobobyPersonne" + "JosephMarinier", + "Frigory", + "Acen1991", + "ylerjen" ] }, - "Web/API/XMLDocument/async": { - "modified": "2019-04-24T21:08:31.361Z", + "Web/SVG/Attribute/width": { + "modified": "2019-03-23T22:07:27.903Z", "contributors": [ - "ExE-Boss", - "loella16" + "AlexisColin" ] }, - "Web/API/XMLDocument/load": { - "modified": "2020-10-15T22:04:13.899Z", + "Web/SVG/Attribute/x": { + "modified": "2019-03-23T22:21:00.230Z", "contributors": [ - "NemoNobobyPersonne" + "SphinxKnight", + "daimebag" ] }, - "Web/API/XMLHttpRequest": { - "modified": "2020-10-15T21:15:49.505Z", + "Web/SVG/Element": { + "modified": "2020-02-08T11:58:35.321Z", "contributors": [ - "tramber30", - "SphinxKnight", - "lessonsharing", - "NemoNobobyPersonne", - "JoJoMimosa", - "lipki", + "tristantheb", + "Arzak656", + "Dralyab", + "Sebastianz", "teoli", - "JulienRobitaille", - "BenoitL", - "Mgjbot", - "Chbok", - "Laurent Denis", - "Anonymous" + "gemy_c" ] }, - "Web/API/XMLHttpRequest/Utiliser_XMLHttpRequest": { - "modified": "2019-03-23T23:16:32.724Z", + "Web/SVG/Element/a": { + "modified": "2020-10-15T21:30:14.070Z", "contributors": [ - "sylv1", - "JNa0", - "lessonsharing", - "Deleplace", + "a-mt", + "sblondon", + "Sebastianz", + "SphinxKnight", "teoli", - "riderodd" + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/XMLHttpRequest": { - "modified": "2019-11-25T21:11:58.899Z", + "Web/SVG/Element/altGlyph": { + "modified": "2019-03-18T21:15:56.588Z", "contributors": [ - "Lyokolux" + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/onreadystatechange": { - "modified": "2020-10-15T22:12:50.281Z", + "Web/SVG/Element/altGlyphDef": { + "modified": "2019-03-23T23:04:57.212Z", "contributors": [ - "AdminXVII" + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/open": { - "modified": "2020-10-15T22:20:27.895Z", + "Web/SVG/Element/altGlyphItem": { + "modified": "2019-03-23T23:04:57.962Z", "contributors": [ - "ThCarrere" + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/readyState": { - "modified": "2020-10-15T22:33:49.573Z", + "Web/SVG/Element/animate": { + "modified": "2020-10-15T21:31:45.459Z", "contributors": [ - "devweb157" + "a-mt", + "Sebastianz", + "SphinxKnight", + "bperel", + "fscholz", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/response": { - "modified": "2019-03-18T21:46:41.662Z", + "Web/SVG/Element/animateColor": { + "modified": "2020-10-15T21:31:44.928Z", "contributors": [ - "lpoujade" + "a-mt", + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/responseText": { - "modified": "2020-10-15T22:32:45.494Z", + "Web/SVG/Element/animateMotion": { + "modified": "2020-10-15T21:31:47.363Z", "contributors": [ - "la.boutique.art" + "a-mt", + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/XMLHttpRequest/send": { - "modified": "2020-10-15T22:20:28.816Z", + "Web/SVG/Element/animateTransform": { + "modified": "2020-10-15T21:20:56.345Z", "contributors": [ - "koala819", - "LocsLight", - "ThCarrere" + "a-mt", + "Sebastianz", + "SphinxKnight", + "teoli", + "TPXP" ] }, - "Web/API/XMLHttpRequest/sendAsBinary": { - "modified": "2020-10-15T22:26:07.337Z", + "Web/SVG/Element/circle": { + "modified": "2020-10-15T21:09:33.643Z", "contributors": [ + "EloD10", + "Sebastianz", "SphinxKnight", - "MasterFox" + "teoli", + "tregagnon", + "gemy_c" ] }, - "Web/API/XMLHttpRequest/setRequestHeader": { - "modified": "2020-10-15T22:22:04.139Z", + "Web/SVG/Element/clipPath": { + "modified": "2020-10-15T22:11:31.108Z", "contributors": [ - "AkwindFr" + "a-mt" ] }, - "Web/API/XMLHttpRequest/status": { - "modified": "2020-10-15T22:33:50.087Z", + "Web/SVG/Element/defs": { + "modified": "2019-03-23T22:26:29.285Z", "contributors": [ - "devweb157" + "sansourcil", + "eloi-duwer", + "Sebastianz", + "Nothus" ] }, - "Web/API/XMLHttpRequest/timeout": { - "modified": "2020-10-15T22:25:10.471Z", + "Web/SVG/Element/desc": { + "modified": "2020-10-15T21:34:39.299Z", "contributors": [ - "SphinxKnight" + "a-mt", + "Sebastianz", + "SphinxKnight", + "B_M", + "Goofy" ] }, - "Web/API/XMLHttpRequest/withCredentials": { - "modified": "2020-10-15T22:15:36.714Z", + "Web/SVG/Element/ellipse": { + "modified": "2020-09-29T06:35:14.424Z", "contributors": [ - "innocenzi", - "hsdino", - "SphinxKnight" + "cdoublev", + "wbamberg", + "Sebastianz", + "SphinxKnight", + "teoli", + "tregagnon", + "gemy_c" ] }, - "Web/API/XMLHttpRequestEventTarget": { - "modified": "2020-10-15T22:31:14.301Z", + "Web/SVG/Element/feBlend": { + "modified": "2020-10-15T22:12:16.605Z", "contributors": [ - "Voulto", - "devweb157" + "a-mt" ] }, - "Web/API/XMLHttpRequestEventTarget/onload": { - "modified": "2020-10-15T22:31:14.653Z", + "Web/SVG/Element/feColorMatrix": { + "modified": "2020-10-15T22:12:13.564Z", "contributors": [ - "fatmalimem19" + "a-mt" ] }, - "Web/API/XPathExpression": { - "modified": "2019-03-18T21:40:34.918Z", + "Web/SVG/Element/feComponentTransfer": { + "modified": "2020-10-15T22:12:14.922Z", "contributors": [ - "loella16" + "a-mt" ] }, - "Web/API/XSLTProcessor": { - "modified": "2020-08-30T07:26:30.646Z", + "Web/SVG/Element/feComposite": { + "modified": "2020-10-15T22:12:16.930Z", "contributors": [ - "Voulto", - "Mars073", - "erikadoyle" + "a-mt" ] }, - "Web/API/notification": { - "modified": "2020-10-15T21:26:50.253Z", + "Web/SVG/Element/feConvolveMatrix": { + "modified": "2020-10-15T22:12:18.458Z", "contributors": [ - "tomderudder", - "robin850", - "Omnilaika02", - "AshfaqHossain", - "P45QU10U" + "a-mt" ] }, - "Web/API/notification/Notification": { - "modified": "2020-10-15T22:34:41.434Z", + "Web/SVG/Element/feDiffuseLighting": { + "modified": "2020-10-15T22:12:15.916Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/Using_Web_Notifications": { - "modified": "2019-03-23T22:59:38.508Z", + "Web/SVG/Element/feDisplacementMap": { + "modified": "2020-10-15T22:12:17.332Z", "contributors": [ - "nhoizey", - "ajie62", - "Kazquo", - "Hell_Carlito", - "JeffD", - "3bandiste", - "Goofy", - "Moosh" + "a-mt" ] }, - "Web/API/notification/actions": { - "modified": "2020-10-15T22:34:52.498Z", + "Web/SVG/Element/feDistantLight": { + "modified": "2020-10-15T22:12:08.109Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/badge": { - "modified": "2020-10-15T22:34:53.335Z", + "Web/SVG/Element/feDropShadow": { + "modified": "2020-10-15T22:12:12.290Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/body": { - "modified": "2020-10-15T22:34:54.457Z", + "Web/SVG/Element/feFlood": { + "modified": "2020-10-15T22:11:42.213Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/close": { - "modified": "2020-10-15T22:34:52.199Z", + "Web/SVG/Element/feFuncA": { + "modified": "2020-10-15T22:12:15.038Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/data": { - "modified": "2020-10-15T22:34:54.481Z", + "Web/SVG/Element/feFuncB": { + "modified": "2020-10-15T22:12:15.581Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/dir": { - "modified": "2020-10-15T22:34:54.338Z", + "Web/SVG/Element/feFuncG": { + "modified": "2020-10-15T22:12:14.655Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/icon": { - "modified": "2020-10-15T22:34:54.321Z", + "Web/SVG/Element/feFuncR": { + "modified": "2020-10-15T22:12:16.404Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/image": { - "modified": "2020-10-15T22:34:54.254Z", + "Web/SVG/Element/feGaussianBlur": { + "modified": "2020-10-15T22:12:13.052Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/lang": { - "modified": "2020-10-15T22:34:54.385Z", + "Web/SVG/Element/feImage": { + "modified": "2020-10-15T22:11:41.220Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/maxActions": { - "modified": "2020-10-15T22:34:53.286Z", + "Web/SVG/Element/feMerge": { + "modified": "2020-10-15T22:12:14.023Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/onclick": { - "modified": "2020-10-15T21:46:42.833Z", + "Web/SVG/Element/feMergeNode": { + "modified": "2020-10-15T22:12:13.616Z", "contributors": [ - "SphinxKnight", - "matthieurambert" + "a-mt" ] }, - "Web/API/notification/onclose": { - "modified": "2020-10-15T22:34:55.643Z", + "Web/SVG/Element/feMorphology": { + "modified": "2020-10-15T22:12:09.662Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/onerror": { - "modified": "2020-10-15T22:34:55.473Z", + "Web/SVG/Element/feOffset": { + "modified": "2020-10-15T22:12:04.038Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/onshow": { - "modified": "2020-10-15T22:34:55.503Z", + "Web/SVG/Element/fePointLight": { + "modified": "2020-10-15T22:12:16.781Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/permission": { - "modified": "2020-10-15T22:34:55.540Z", + "Web/SVG/Element/feSpecularLighting": { + "modified": "2020-10-15T22:12:15.374Z", "contributors": [ - "tomderudder" + "AlainGourves", + "a-mt" ] }, - "Web/API/notification/renotify": { - "modified": "2020-10-15T22:34:56.481Z", + "Web/SVG/Element/feSpotLight": { + "modified": "2020-10-15T22:12:13.699Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/requestPermission": { - "modified": "2020-10-15T22:34:52.487Z", + "Web/SVG/Element/feTile": { + "modified": "2020-10-15T22:12:06.142Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/requireInteraction": { - "modified": "2020-10-15T22:34:56.272Z", + "Web/SVG/Element/feTurbulence": { + "modified": "2020-10-15T22:12:10.250Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/silent": { - "modified": "2020-10-15T22:34:55.185Z", + "Web/SVG/Element/filter": { + "modified": "2020-10-15T22:12:14.867Z", "contributors": [ - "tomderudder" + "a-mt" ] }, - "Web/API/notification/tag": { - "modified": "2020-10-15T22:34:55.217Z", + "Web/SVG/Element/foreignObject": { + "modified": "2020-10-15T21:28:38.917Z", "contributors": [ - "tomderudder" + "a-mt", + "Sebastianz", + "SphinxKnight", + "marie-ototoi", + "J.DMB", + "Goofy", + "akira86" ] }, - "Web/API/notification/timestamp": { - "modified": "2020-10-15T22:34:55.519Z", + "Web/SVG/Element/g": { + "modified": "2020-10-15T21:30:19.332Z", "contributors": [ - "tomderudder" + "a-mt", + "Sebastianz", + "SphinxKnight", + "teoli", + "J.DMB", + "fscholz", + "ylerjen" ] }, - "Web/API/notification/title": { - "modified": "2020-10-15T22:34:56.301Z", + "Web/SVG/Element/hkern": { + "modified": "2019-03-23T23:04:56.306Z", "contributors": [ - "tomderudder" + "Sebastianz", + "SphinxKnight", + "Barbrousse" ] }, - "Web/API/notification/vibrate": { - "modified": "2020-10-15T22:34:56.431Z", + "Web/SVG/Element/image": { + "modified": "2020-11-09T05:16:20.671Z", "contributors": [ - "tomderudder" + "Lucas-C", + "Sebastianz", + "SphinxKnight", + "teoli", + "Nicronics", + "Goofy" ] }, - "Web/API/window/location": { - "modified": "2019-03-23T23:59:30.762Z", + "Web/SVG/Element/line": { + "modified": "2019-03-23T23:15:29.052Z", "contributors": [ - "Mahabarata", - "fscholz", - "maelito", - "tregagnon", - "Julien.stuby", - "Mgjbot", - "BenoitL" + "wbamberg", + "Sebastianz", + "SphinxKnight", + "Fredchat", + "iainm" ] }, - "Web/Accessibility/ARIA/widgets": { - "modified": "2019-01-16T21:44:15.383Z", + "Web/SVG/Element/linearGradient": { + "modified": "2020-10-15T22:11:05.477Z", "contributors": [ - "Waxaal", - "julianosilvaa" + "a-mt" ] }, - "Web/Accessibility/ARIA/widgets/overview": { - "modified": "2019-03-23T22:43:55.361Z", + "Web/SVG/Element/marker": { + "modified": "2020-10-15T22:11:33.513Z", "contributors": [ - "paul.bignier" + "a-mt" ] }, - "Web/Accessibility/Understanding_WCAG": { - "modified": "2020-09-07T05:15:13.925Z", + "Web/SVG/Element/mask": { + "modified": "2020-10-15T21:45:31.463Z", "contributors": [ - "Voulto" + "a-mt", + "ylerjen", + "Sebastianz", + "SphinxKnight" ] }, - "Web/Accessibility/Understanding_WCAG/Perceivable": { - "modified": "2020-04-12T14:23:45.963Z", + "Web/SVG/Element/metadata": { + "modified": "2020-10-15T22:12:14.200Z", "contributors": [ - "chrisdavidmills" + "a-mt" ] }, - "Web/Accessibility/Understanding_WCAG/Perceivable/Contraste_de_la_couleur": { - "modified": "2020-05-11T17:06:50.947Z", + "Web/SVG/Element/mpath": { + "modified": "2020-10-15T22:12:17.500Z", "contributors": [ - "ewen-lbh", - "Maxi_Mega" + "a-mt" ] }, - "Web/CSS": { - "modified": "2020-08-12T16:33:21.340Z", + "Web/SVG/Element/path": { + "modified": "2020-10-15T21:09:41.993Z", "contributors": [ - "frmovies", - "zephimir", + "ventilateur.ventilateur", + "Gauths", + "Sebastianz", "SphinxKnight", - "adagioribbit", - "goofy_mdn", - "codingk8", - "juliendargelos", - "BenoitL", - "eerrtrr", - "tonybengue", - "Mozinet", - "romain.bohdanowicz", - "Daniel005", - "magikmanu", - "Oliviermoz", "teoli", - "wakka27", - "Goofy", - "FredB", - "Delapouite", "tregagnon", - "jackblack", - "Mgjbot", - "Fredchat", - "VincentN", - "Chbok", - "Bpruneau", - "Laurent Denis", - "Jean-Yves Cronier", - "Nickolay", - "Cbeard", - "TestUser" + "gemy_c" ] }, - "Web/CSS/--*": { - "modified": "2020-10-15T21:43:41.268Z", + "Web/SVG/Element/pattern": { + "modified": "2020-11-04T12:50:59.879Z", "contributors": [ + "cdoublev", + "wbamberg", + "Sebastianz", "SphinxKnight", - "lp177", - "Sagiliste", - "xdelatour" + "thomas-huguenin" ] }, - "Web/CSS/-moz-box-ordinal-group": { - "modified": "2019-04-05T07:25:19.546Z", + "Web/SVG/Element/polygon": { + "modified": "2020-10-15T21:56:31.856Z", "contributors": [ - "SphinxKnight", - "teoli", - "quentin.lamamy" + "Arzak656", + "AlexisColin" ] }, - "Web/CSS/-moz-cell": { - "modified": "2019-04-05T07:25:43.783Z", + "Web/SVG/Element/polyline": { + "modified": "2019-03-23T22:39:44.292Z", "contributors": [ "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "Sebastianz", + "Crocmagnon" ] }, - "Web/CSS/-moz-context-properties": { - "modified": "2020-10-15T21:54:21.107Z", + "Web/SVG/Element/radialGradient": { + "modified": "2019-03-23T22:07:50.374Z", + "contributors": [ + "AlexisColin", + "Gauths" + ] + }, + "Web/SVG/Element/rect": { + "modified": "2020-10-15T21:09:37.460Z", "contributors": [ + "EloD10", + "Sebastianz", "SphinxKnight", + "Nfroidure", "teoli", - "PolariTOON" + "tregagnon", + "gemy_c" ] }, - "Web/CSS/-moz-float-edge": { - "modified": "2019-04-05T07:27:19.851Z", + "Web/SVG/Element/stop": { + "modified": "2020-10-15T22:17:23.569Z", "contributors": [ - "SphinxKnight", - "teoli" + "cdoublev" ] }, - "Web/CSS/-moz-force-broken-image-icon": { - "modified": "2019-04-05T07:26:56.277Z", + "Web/SVG/Element/style": { + "modified": "2019-03-23T22:40:42.582Z", "contributors": [ - "SphinxKnight", "Sebastianz", "teoli", - "louuis" + "GrosMocassin" ] }, - "Web/CSS/-moz-image-rect": { - "modified": "2020-10-15T21:37:22.128Z", + "Web/SVG/Element/svg": { + "modified": "2019-03-23T22:23:41.325Z", "contributors": [ - "SphinxKnight", - "mrstork", - "teoli", - "pixoux" + "ferdi_", + "khalyomede" ] }, - "Web/CSS/-moz-image-region": { - "modified": "2020-10-15T21:18:05.925Z", + "Web/SVG/Element/switch": { + "modified": "2020-10-15T21:28:19.111Z", "contributors": [ + "a-mt", + "Sebastianz", "SphinxKnight", - "teoli", - "gudoy", - "FredB", - "Fredchat", - "Kyodev" + "J.DMB", + "loic" ] }, - "Web/CSS/-moz-orient": { - "modified": "2020-10-15T21:28:10.504Z", + "Web/SVG/Element/symbol": { + "modified": "2020-10-15T22:12:40.814Z", + "contributors": [ + "a-mt" + ] + }, + "Web/SVG/Element/text": { + "modified": "2019-03-23T22:57:14.491Z", "contributors": [ + "Sebastianz", + "GrandSchtroumpf", "SphinxKnight", - "teoli", - "louuis" + "ylerjen", + "B_M" ] }, - "Web/CSS/-moz-outline-radius": { - "modified": "2020-10-15T21:18:04.818Z", + "Web/SVG/Element/title": { + "modified": "2020-10-15T21:34:41.922Z", "contributors": [ + "a-mt", + "Sebastianz", "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "Goofy", + "B_M" + ] + }, + "Web/SVG/Element/tspan": { + "modified": "2019-03-23T22:28:46.810Z", + "contributors": [ + "wbamberg", + "Sebastianz", + "GrandSchtroumpf" ] }, - "Web/CSS/-moz-outline-radius-bottomleft": { - "modified": "2019-08-07T07:41:04.258Z", + "Web/SVG/Element/use": { + "modified": "2019-03-23T22:26:29.130Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Fredchat" + "yank7", + "Wismill", + "Nothus" ] }, - "Web/CSS/-moz-outline-radius-bottomright": { - "modified": "2019-08-07T07:41:12.958Z", + "Web/SVG/Index": { + "modified": "2019-01-16T21:57:35.980Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/-moz-outline-radius-topleft": { - "modified": "2019-08-07T07:41:19.867Z", + "Web/SVG/SVG_animation_with_SMIL": { + "modified": "2019-08-24T09:55:45.297Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Fredchat" + "JNa0", + "a-mt", + "fscholz", + "tonybengue" ] }, - "Web/CSS/-moz-outline-radius-topright": { - "modified": "2019-08-07T07:41:29.133Z", + "Web/Security": { + "modified": "2019-09-10T16:34:32.729Z", "contributors": [ "SphinxKnight", - "teoli", - "FredB", - "Fredchat" + "bldesign.ch", + "CarlosAvim", + "Tom_D", + "goofy_bz", + "marumari" ] }, - "Web/CSS/-moz-user-focus": { - "modified": "2020-10-15T21:48:29.475Z", + "Web/Security/Referer_header:_privacy_and_security_concerns": { + "modified": "2020-11-02T18:51:04.362Z", "contributors": [ - "SphinxKnight", - "teoli" + "JNa0", + "applicodeur", + "arnaud.wixiweb", + "duduindo", + "Elaxis_" ] }, - "Web/CSS/-moz-user-input": { - "modified": "2020-10-15T21:18:06.870Z", + "Web/Security/Secure_Contexts": { + "modified": "2019-03-23T22:17:00.806Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "nobe4" ] }, - "Web/CSS/-ms-high-contrast": { - "modified": "2019-04-06T12:02:58.663Z", + "Web/Security/Subresource_Integrity": { + "modified": "2019-03-23T22:27:34.272Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "nico3333fr" ] }, - "Web/CSS/-ms-scroll-snap-type": { - "modified": "2019-03-18T21:33:34.445Z", + "Web/Web_Components": { + "modified": "2020-10-09T12:10:17.619Z", "contributors": [ - "SphinxKnight" + "GuillaumeCz", + "jeanremy", + "coldPen", + "Voltariuss", + "ylerjen", + "JNa0", + "wulfy", + "SphinxKnight", + "oritlewski", + "linsolas", + "GtAntoine", + "mknx", + "oussama-jlassi", + "Zecat" ] }, - "Web/CSS/-ms-user-select": { - "modified": "2019-03-18T21:33:21.174Z", + "Web/Web_Components/HTML_Imports": { + "modified": "2020-10-15T22:12:01.555Z", "contributors": [ - "SphinxKnight" + "ledenis", + "ylerjen" ] }, - "Web/CSS/-webkit-border-before": { - "modified": "2020-10-15T21:48:29.989Z", + "Web/Web_Components/Using_custom_elements": { + "modified": "2019-03-18T21:38:08.858Z", "contributors": [ - "SphinxKnight", - "teoli" + "NemoNobobyPersonne" ] }, - "Web/CSS/-webkit-box-reflect": { - "modified": "2020-10-15T21:48:31.768Z", + "Web/Web_Components/Using_shadow_DOM": { + "modified": "2020-03-15T20:54:04.062Z", "contributors": [ - "SphinxKnight", - "teoli" + "JNa0" ] }, - "Web/CSS/-webkit-line-clamp": { - "modified": "2020-10-15T22:18:53.977Z", + "Web/XML": { + "modified": "2020-08-30T07:03:09.579Z", "contributors": [ - "SphinxKnight" + "Voulto", + "tristantheb", + "ExE-Boss" ] }, - "Web/CSS/-webkit-mask-attachment": { - "modified": "2020-10-15T21:48:27.080Z", + "Web/XML/xml:base": { + "modified": "2019-05-01T21:49:37.439Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "loella16" ] }, - "Web/CSS/-webkit-mask-box-image": { - "modified": "2020-10-15T21:33:47.333Z", + "Web/XPath": { + "modified": "2020-06-19T03:44:39.700Z", "contributors": [ - "SphinxKnight", - "teoli", - "Sebastianz", - "mrstork", - "lbelavoir" + "Jemmy4s", + "ExE-Boss", + "Fredchat", + "Delapouite", + "fscholz", + "Mgjbot", + "Celelibi", + "Chbok", + "BenoitL" ] }, - "Web/CSS/-webkit-mask-composite": { - "modified": "2020-10-15T21:48:30.437Z", + "Web/XPath/Axes": { + "modified": "2019-03-23T23:54:15.946Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "Delapouite", + "Fredchat", + "Mgjbot", + "VincentN" ] }, - "Web/CSS/-webkit-mask-image": { - "modified": "2019-03-23T22:58:08.427Z", + "Web/XPath/Axes/ancestor": { + "modified": "2019-01-16T16:12:07.983Z", "contributors": [ - "mrstork", - "ZorGleH" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-mask-position-x": { - "modified": "2020-10-15T21:48:29.056Z", + "Web/XPath/Axes/ancestor-or-self": { + "modified": "2019-01-16T16:12:08.969Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-mask-position-y": { - "modified": "2020-10-15T21:48:27.575Z", + "Web/XPath/Axes/attribute": { + "modified": "2019-01-16T16:11:52.452Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-mask-repeat-x": { - "modified": "2020-10-15T21:48:28.359Z", + "Web/XPath/Axes/child": { + "modified": "2019-01-16T16:11:53.728Z", "contributors": [ - "SphinxKnight" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-mask-repeat-y": { - "modified": "2020-10-15T21:48:28.259Z", + "Web/XPath/Axes/descendant": { + "modified": "2019-01-16T16:11:48.389Z", "contributors": [ - "SphinxKnight" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-overflow-scrolling": { - "modified": "2020-10-15T21:33:11.491Z", + "Web/XPath/Axes/descendant-or-self": { + "modified": "2019-01-16T16:12:14.349Z", "contributors": [ - "SphinxKnight", - "alhuno1" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-print-color-adjust": { - "modified": "2020-10-15T21:28:10.335Z", + "Web/XPath/Axes/following": { + "modified": "2019-01-16T16:11:54.323Z", "contributors": [ - "SphinxKnight", - "CuteRabbit", - "louuis" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-tap-highlight-color": { - "modified": "2019-04-26T02:53:32.938Z", + "Web/XPath/Axes/following-sibling": { + "modified": "2019-01-16T16:11:48.257Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-text-fill-color": { - "modified": "2020-10-15T21:43:41.928Z", + "Web/XPath/Axes/namespace": { + "modified": "2019-01-16T16:11:53.220Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-text-security": { - "modified": "2019-05-23T08:23:14.321Z", + "Web/XPath/Axes/parent": { + "modified": "2019-01-16T16:11:45.464Z", "contributors": [ - "SphinxKnight" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-text-stroke": { - "modified": "2020-11-09T04:48:47.938Z", + "Web/XPath/Axes/preceding": { + "modified": "2019-01-16T16:11:48.527Z", "contributors": [ - "sideshowbarker", - "codingdudecom", - "SphinxKnight" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-text-stroke-color": { - "modified": "2020-10-15T21:48:27.834Z", + "Web/XPath/Axes/preceding-sibling": { + "modified": "2019-01-16T16:11:01.463Z", "contributors": [ - "SphinxKnight" + "ExE-Boss", + "Fredchat" ] }, - "Web/CSS/-webkit-text-stroke-width": { - "modified": "2020-10-15T21:48:26.220Z", + "Web/XPath/Axes/self": { + "modified": "2019-01-16T16:11:01.388Z", "contributors": [ - "SphinxKnight" + "ExE-Boss", + "Mgjbot", + "Fredchat" ] }, - "Web/CSS/-webkit-touch-callout": { - "modified": "2020-10-15T21:37:55.730Z", + "Web/XSLT": { + "modified": "2019-03-24T00:02:50.333Z", "contributors": [ "SphinxKnight", - "teoli" + "chrisdavidmills", + "fscholz", + "Fredchat", + "Verruckt", + "BenoitL", + "Mgjbot", + "Takenbot", + "Chbok" ] }, - "Web/CSS/:-moz-broken": { - "modified": "2019-04-05T07:47:01.932Z", + "Web/XSLT/Element": { + "modified": "2019-03-23T23:45:04.079Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "ExE-Boss", + "chrisdavidmills", + "Fredchat", + "VincentN" ] }, - "Web/CSS/:-moz-drag-over": { - "modified": "2019-04-05T07:46:45.615Z", + "Web/XSLT/Element/element": { + "modified": "2019-01-16T16:02:01.198Z", "contributors": [ - "SphinxKnight", - "teoli" + "ExE-Boss", + "chrisdavidmills", + "Fredchat", + "VincentN" ] }, - "Web/CSS/:-moz-first-node": { - "modified": "2019-04-05T07:46:35.367Z", + "WebAssembly": { + "modified": "2019-03-23T22:14:12.769Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Fredchat" + "sylv1", + "dattaz", + "SphinxKnight" ] }, - "Web/CSS/:-moz-focusring": { - "modified": "2020-10-15T21:48:30.571Z", + "WebAssembly/C_to_wasm": { + "modified": "2019-10-28T10:12:05.168Z", "contributors": [ - "SphinxKnight", - "teoli", - "claudepache" + "WhiteMoll", + "benerone", + "NerOcrO", + "baviereteam", + "ClementNerma" ] }, - "Web/CSS/:-moz-handler-blocked": { - "modified": "2019-04-05T07:44:27.221Z", + "WebAssembly/Concepts": { + "modified": "2020-01-14T03:35:30.904Z", "contributors": [ "SphinxKnight", - "teoli" + "lionelquellery", + "NerOcrO", + "mael-jarnole", + "benerone", + "Keuklar", + "Mo-la-machette", + "arthurwhite" ] }, - "Web/CSS/:-moz-handler-crashed": { - "modified": "2019-04-05T07:44:15.559Z", + "WebAssembly/Exported_functions": { + "modified": "2019-06-18T16:22:08.093Z", "contributors": [ - "SphinxKnight", - "teoli" + "BenoitDel" ] }, - "Web/CSS/:-moz-handler-disabled": { - "modified": "2019-04-05T07:44:05.413Z", + "WebAssembly/Loading_and_running": { + "modified": "2019-06-18T08:32:36.065Z", "contributors": [ - "SphinxKnight", - "teoli" + "BenoitDel" ] }, - "Web/CSS/:-moz-last-node": { - "modified": "2019-04-05T07:43:47.239Z", + "WebAssembly/Understanding_the_text_format": { + "modified": "2020-11-08T19:45:23.458Z", "contributors": [ + "duduindo", + "lassana.drame.avenir", "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Fredchat" + "neilbryson", + "afauroux", + "marcpicaud" ] }, - "Web/CSS/:-moz-loading": { - "modified": "2019-04-05T07:43:32.819Z", + "WebAssembly/Using_the_JavaScript_API": { + "modified": "2020-02-29T07:32:23.744Z", "contributors": [ + "Sibian2019", + "BenoitDel", "SphinxKnight", - "teoli", - "J.DMB", - "louuis" + "nvana", + "si0ls", + "dattaz" ] }, - "Web/CSS/:-moz-locale-dir(ltr)": { - "modified": "2019-04-05T07:42:37.438Z", + "Web/Accessibility/An_overview_of_accessible_web_applications_and_widgets": { + "modified": "2020-05-08T11:21:39.179Z", "contributors": [ - "SphinxKnight", - "teoli", - "boby_drack" + "JNa0", + "P45QU10U", + "tonybengue", + "Louprenard", + "kevamp", + "jMoulis", + "Taver", + "vprigent", + "maeljirari", + "teoli" ] }, - "Web/CSS/:-moz-locale-dir(rtl)": { - "modified": "2019-04-05T07:42:24.268Z", + "Web/Accessibility/ARIA/How_to_file_ARIA-related_bugs": { + "modified": "2019-03-23T22:43:55.753Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "paul.bignier" ] }, - "Web/CSS/:-moz-only-whitespace": { - "modified": "2020-10-15T21:15:44.286Z", + "Web/Accessibility/ARIA/Web_applications_and_ARIA_FAQ": { + "modified": "2019-03-23T23:16:38.785Z", "contributors": [ - "SphinxKnight", - "louisgrasset", - "lp177", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", + "sdumetz", + "dFegnoux", + "Mozinet", "Fredchat" ] }, - "Web/CSS/:-moz-submit-invalid": { - "modified": "2020-10-15T21:46:06.689Z", + "Web/Accessibility/ARIA/forms/alerts": { + "modified": "2019-03-23T23:17:54.084Z", "contributors": [ - "SphinxKnight", - "teoli", - "xdelatour" + "P45QU10U", + "hmore", + "Goofy", + "Fredchat" ] }, - "Web/CSS/:-moz-suppressed": { - "modified": "2019-04-05T09:23:47.517Z", + "Web/Accessibility/ARIA/forms": { + "modified": "2019-03-23T23:18:04.282Z", "contributors": [ - "SphinxKnight", - "teoli", - "Fredchat", - "louuis" + "PhilippeV", + "Fredchat" ] }, - "Web/CSS/:-moz-ui-invalid": { - "modified": "2020-10-15T21:48:22.953Z", + "Web/Accessibility/ARIA/forms/Basic_form_hints": { + "modified": "2019-03-23T23:17:50.755Z", "contributors": [ - "SphinxKnight", - "teoli" + "hmore", + "Goofy", + "Fredchat" ] }, - "Web/CSS/:-moz-ui-valid": { - "modified": "2020-10-15T21:48:25.437Z", + "Web/Accessibility/ARIA/forms/Multipart_labels": { + "modified": "2019-03-23T23:17:46.968Z", "contributors": [ - "SphinxKnight", - "teoli", - "Aaaaaaa" + "hmore", + "Fredchat" ] }, - "Web/CSS/:-moz-user-disabled": { - "modified": "2019-04-05T09:18:22.670Z", + "Web/Accessibility/ARIA/ARIA_Guides": { + "modified": "2019-03-23T23:17:01.535Z", "contributors": [ - "SphinxKnight", - "teoli", - "xdelatour" + "hmore", + "Fredchat" ] }, - "Web/CSS/:-moz-window-inactive": { - "modified": "2020-10-15T21:48:27.167Z", + "Web/Accessibility/ARIA": { + "modified": "2019-11-08T13:58:24.544Z", "contributors": [ "SphinxKnight", - "teoli" - ] - }, - "Web/CSS/:-ms-input-placeholder": { - "modified": "2019-05-28T09:44:44.784Z", - "contributors": [ - "brunostasse", + "evefevrier", "teoli", - "SphinxKnight" + "BenoitL", + "Fredchat", + "Goofy", + "FredB", + "Anonymous" ] }, - "Web/CSS/:-webkit-autofill": { - "modified": "2020-10-15T21:48:21.767Z", + "Web/Accessibility/ARIA/ARIA_Techniques": { + "modified": "2019-03-23T23:17:45.799Z", "contributors": [ - "SphinxKnight", - "teoli" + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::-moz-color-swatch": { - "modified": "2020-10-15T22:02:12.946Z", + "Web/Accessibility/ARIA/ARIA_Techniques/ARIA_Technique_Template": { + "modified": "2019-03-23T23:17:02.348Z", "contributors": [ - "SphinxKnight", - "tonybengue" + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::-moz-list-bullet": { - "modified": "2019-04-05T09:17:36.311Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role": { + "modified": "2019-03-18T21:16:59.818Z", "contributors": [ - "SphinxKnight", - "teoli", - "xdelatour" + "paul.bignier" ] }, - "Web/CSS/::-moz-list-number": { - "modified": "2019-04-05T09:17:28.748Z", + "Web/Accessibility/ARIA/Roles/Switch_role": { + "modified": "2019-03-23T22:44:02.313Z", "contributors": [ - "SphinxKnight", - "teoli", - "xdelatour" + "paul.bignier" ] }, - "Web/CSS/::-moz-page": { - "modified": "2020-10-15T21:44:27.397Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute": { + "modified": "2019-03-23T23:14:38.539Z", "contributors": [ - "SphinxKnight", - "teoli", - "xdelatour" + "hmore", + "P45QU10U", + "Havano", + "Fredchat" ] }, - "Web/CSS/::-moz-page-sequence": { - "modified": "2020-10-15T21:48:23.764Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_attribute": { + "modified": "2019-03-23T23:14:24.380Z", "contributors": [ - "SphinxKnight", - "teoli" + "NerOcrO", + "Fredchat" ] }, - "Web/CSS/::-moz-progress-bar": { - "modified": "2019-04-05T09:15:19.260Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute": { + "modified": "2019-09-16T14:04:28.206Z", "contributors": [ - "SphinxKnight", - "teoli", - "Goofy", - "FredB", - "Delapouite", - "Zimmermann_Geoffrey" + "Lo_h", + "mathildebuenerd", + "bcetienne", + "David-Werbrouck", + "yoanmalie", + "oliv06", + "Fredchat" ] }, - "Web/CSS/::-moz-range-progress": { - "modified": "2020-10-15T21:48:21.065Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute": { + "modified": "2020-11-26T01:35:04.943Z", "contributors": [ - "SphinxKnight", - "teoli" + "PhilippePerret", + "OlivierNourry", + "dzc34", + "J.DMB", + "Havano", + "Fredchat" ] }, - "Web/CSS/::-moz-range-thumb": { - "modified": "2020-10-15T21:48:27.269Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute": { + "modified": "2019-03-23T23:14:15.589Z", "contributors": [ - "SphinxKnight", - "teoli" + "J.DMB", + "Fredchat" ] }, - "Web/CSS/::-moz-range-track": { - "modified": "2020-10-15T21:48:19.960Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-relevant_attribute": { + "modified": "2019-03-23T22:14:39.098Z", "contributors": [ - "SphinxKnight", - "teoli" + "NerOcrO", + "clokanku" ] }, - "Web/CSS/::-moz-scrolled-page-sequence": { - "modified": "2020-10-15T21:48:22.005Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-required_attribute": { + "modified": "2019-03-23T23:14:22.660Z", "contributors": [ - "SphinxKnight", - "teoli" + "clokanku", + "Fredchat" ] }, - "Web/CSS/::-webkit-file-upload-button": { - "modified": "2020-10-15T21:48:06.609Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemax_attribute": { + "modified": "2019-03-23T23:14:27.575Z", "contributors": [ - "SphinxKnight", - "teoli" + "Hell_Carlito", + "Fredchat" ] }, - "Web/CSS/::-webkit-inner-spin-button": { - "modified": "2020-10-15T21:48:12.641Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute": { + "modified": "2019-03-18T20:46:07.166Z", "contributors": [ - "SphinxKnight", - "teoli" + "JeffD", + "Fredchat" ] }, - "Web/CSS/::-webkit-input-placeholder": { - "modified": "2019-03-18T21:41:58.383Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuenow_attribute": { + "modified": "2019-03-23T23:14:27.424Z", "contributors": [ - "teoli", - "SphinxKnight" + "Gibus", + "Fredchat" ] }, - "Web/CSS/::-webkit-meter-bar": { - "modified": "2020-10-15T21:48:04.484Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuetext_attribute": { + "modified": "2019-03-18T20:46:06.951Z", "contributors": [ - "SphinxKnight" + "JeffD", + "Fredchat" ] }, - "Web/CSS/::-webkit-meter-even-less-good-value": { - "modified": "2020-10-15T21:48:04.434Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role": { + "modified": "2019-03-23T23:16:30.067Z", "contributors": [ - "SphinxKnight" + "hmore", + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::-webkit-meter-inner-element": { - "modified": "2020-10-15T21:48:12.603Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role": { + "modified": "2019-03-23T23:14:00.888Z", "contributors": [ - "SphinxKnight" + "trouba", + "AdeLyneBD", + "hmore", + "goetsu", + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::-webkit-meter-optimum-value": { - "modified": "2020-10-15T21:48:08.117Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_article_role": { + "modified": "2019-03-23T23:16:28.140Z", "contributors": [ - "SphinxKnight" + "hmore", + "Fredchat" ] }, - "Web/CSS/::-webkit-meter-suboptimum-value": { - "modified": "2020-10-15T21:48:01.492Z", + "Web/Accessibility/ARIA/Roles/Banner_role": { + "modified": "2019-03-23T23:15:06.469Z", "contributors": [ - "SphinxKnight" + "nerville", + "hmore", + "BenoitL", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-outer-spin-button": { - "modified": "2020-10-15T21:48:38.423Z", + "Web/Accessibility/ARIA/Roles/button_role": { + "modified": "2019-03-23T23:16:24.067Z", "contributors": [ - "SphinxKnight", - "teoli" + "frassinier", + "hmore", + "BenoitL", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-progress-bar": { - "modified": "2020-10-15T21:48:02.594Z", + "Web/Accessibility/ARIA/Roles/checkbox_role": { + "modified": "2019-03-23T23:14:59.469Z", "contributors": [ - "SphinxKnight", - "teoli" + "BenoitL", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-progress-inner-element": { - "modified": "2020-10-15T21:48:02.637Z", + "Web/Accessibility/ARIA/Roles/dialog_role": { + "modified": "2020-10-13T10:16:26.541Z", "contributors": [ - "SphinxKnight" + "newick", + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::-webkit-progress-value": { - "modified": "2020-10-15T21:48:03.069Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role": { + "modified": "2020-04-08T04:03:57.859Z", "contributors": [ - "SphinxKnight" + "olivierdupon", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-scrollbar": { - "modified": "2020-10-15T21:48:02.536Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role": { + "modified": "2019-03-23T23:14:59.014Z", "contributors": [ - "SphinxKnight" + "Manuela", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-search-cancel-button": { - "modified": "2020-10-15T21:48:01.643Z", + "Web/Accessibility/ARIA/Roles/listbox_role": { + "modified": "2019-03-23T23:14:58.870Z", "contributors": [ - "SphinxKnight" + "stevenmouret", + "Goofy", + "Fredchat" ] }, - "Web/CSS/::-webkit-search-results-button": { - "modified": "2020-10-15T21:48:08.586Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role": { + "modified": "2019-03-23T23:14:20.710Z", "contributors": [ - "SphinxKnight" + "J.DMB", + "Fredchat" ] }, - "Web/CSS/::-webkit-slider-runnable-track": { - "modified": "2020-10-15T21:48:01.943Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role": { + "modified": "2020-02-06T12:23:48.064Z", "contributors": [ - "SphinxKnight", - "teoli" + "GeoffreyC.", + "Fredchat" ] }, - "Web/CSS/::-webkit-slider-thumb": { - "modified": "2020-10-15T21:48:01.738Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role": { + "modified": "2019-03-29T05:52:02.630Z", "contributors": [ - "SphinxKnight", - "teoli" + "prsdta", + "Fredchat", + "Goofy" ] }, - "Web/CSS/::after": { - "modified": "2020-10-15T21:08:32.107Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role": { + "modified": "2019-03-23T23:14:53.364Z", "contributors": [ - "AbdelElMansari", - "SphinxKnight", - "alegout", - "NemoNobobyPersonne", - "Ryanfarrah25", - "P45QU10U", - "tregagnon", - "teoli", - "wakka27", - "FredB", - "Delapouite", - "pixelastic", - "BenoitL", - "Nathymig", - "Mgjbot", - "Elethiomel", + "Gibus", + "KrySoar", "Fredchat" ] }, - "Web/CSS/::backdrop": { - "modified": "2020-10-15T21:45:46.376Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role": { + "modified": "2019-03-23T23:13:50.573Z", "contributors": [ - "SphinxKnight" + "J.DMB", + "@lucieLme", + "Fredchat" ] }, - "Web/CSS/::before": { - "modified": "2020-10-15T21:08:27.713Z", + "Web/Accessibility/ARIA/Roles/textbox_role": { + "modified": "2019-03-23T23:13:40.655Z", "contributors": [ - "ylerjen", - "SphinxKnight", - "wakka27", - "LaurentBarbareau", - "teoli", - "cloughy", - "lespacedunmatin", - "Fredchat", - "ferncoder", - "FredB", - "tregagnon", - "BenoitL", - "Nathymig", - "Mgjbot", - "Elethiomel" + "J.DMB", + "Fredchat" ] }, - "Web/CSS/::cue": { - "modified": "2020-10-15T21:55:21.153Z", + "Web/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role": { + "modified": "2019-03-23T23:15:02.491Z", "contributors": [ - "SphinxKnight" + "Fredchat" ] }, - "Web/CSS/::cue-region": { - "modified": "2020-10-15T22:24:04.146Z", + "Web/Accessibility/ARIA/ARIA_Live_Regions": { + "modified": "2019-03-23T23:17:43.700Z", "contributors": [ - "SphinxKnight" + "kantoche", + "cdelhomme", + "BenoitL", + "Fredchat" ] }, - "Web/CSS/::first-letter": { - "modified": "2020-10-15T21:07:23.625Z", + "Web/Accessibility/Mobile_accessibility_checklist": { + "modified": "2019-03-23T23:16:50.803Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "yannicka", - "tregagnon", - "teoli", - "louuis", - "FredB" + "Fredchat", + "SphinxKnight" ] }, - "Web/CSS/::first-line": { - "modified": "2020-10-15T21:20:05.618Z", + "Web/Accessibility/Community": { + "modified": "2019-03-23T23:43:56.307Z", "contributors": [ - "SphinxKnight", - "Yann Dìnendal", - "tregagnon", - "teoli", - "louuis", - "wakka27", - "FredB" + "achraf", + "Jeremie", + "Fredchat" ] }, - "Web/CSS/::grammar-error": { - "modified": "2020-10-15T21:43:46.302Z", + "Web/Accessibility": { + "modified": "2020-04-12T15:58:54.738Z", "contributors": [ + "ele-gall-ac-mineducation", "SphinxKnight", - "lp177", - "xdelatour" + "NerOcrO", + "Steph", + "tonybengue", + "BenoitL", + "Fredchat", + "FredB", + "MoniqueB", + "fscholz", + "Chbok", + "Mgjbot", + "VincentN", + "Cedric", + "Mozinet", + "Jean-Yves Cronier", + "Anonymous", + "Laurent Denis", + "Nickolay" ] }, - "Web/CSS/::marker": { - "modified": "2020-10-15T21:45:48.780Z", + "Mozilla/Firefox/Releases/1.5/Adapting_XUL_Applications_for_Firefox_1.5": { + "modified": "2019-03-23T23:44:05.298Z", "contributors": [ - "SphinxKnight", - "lp177" + "wbamberg", + "Mgjbot", + "BenoitL", + "Sheppy", + "Chbok" ] }, - "Web/CSS/::part": { - "modified": "2020-10-15T22:20:01.491Z", + "Mozilla/Firefox/Releases/3/DOM_improvements": { + "modified": "2019-03-23T23:52:52.677Z", "contributors": [ - "SphinxKnight", - "verdy_p" + "wbamberg", + "BenoitL", + "Mgjbot" ] }, - "Web/CSS/::placeholder": { - "modified": "2020-10-15T21:45:47.586Z", + "Mozilla/Firefox/Releases/3/SVG_improvements": { + "modified": "2019-03-23T23:52:40.955Z", "contributors": [ - "SphinxKnight", - "lp177" + "wbamberg", + "BenoitL", + "Mgjbot" ] }, - "Web/CSS/::selection": { - "modified": "2020-10-15T21:03:37.745Z", + "Mozilla/Firefox/Releases/3/XUL_improvements_in_Firefox_3": { + "modified": "2019-03-24T00:02:27.372Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "Matdonell", - "BenoitEsnard", - "tregagnon", - "teoli", - "louuis", - "FredB" + "wbamberg", + "fscholz", + "BenoitL" ] }, - "Web/CSS/::slotted": { - "modified": "2020-10-15T22:01:37.195Z", + "Learn/Accessibility/Accessibility_troubleshooting": { + "modified": "2020-07-16T22:40:35.382Z", "contributors": [ - "samsad35", - "SphinxKnight", - "tonybengue" + "dragon38800" ] }, - "Web/CSS/::spelling-error": { - "modified": "2020-10-15T21:43:45.997Z", + "Learn/Accessibility/CSS_and_JavaScript": { + "modified": "2020-07-16T22:40:16.805Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "smeden-lod", + "JNa0", + "dragon38800" ] }, - "Web/CSS/:active": { - "modified": "2020-10-15T21:08:24.445Z", + "Learn/Accessibility/HTML": { + "modified": "2020-11-16T16:49:01.676Z", "contributors": [ + "Mozinet", + "smeden-lod", + "JNa0", + "dragon38800", "SphinxKnight", - "PhilippeV", - "gmetais", - "tregagnon", - "adevoufera", - "teoli", - "louuis", - "FredB", - "Delapouite", - "ThePrisoner" + "Tartasprint", + "n-chardon", + "tonybengue" ] }, - "Web/CSS/:any": { - "modified": "2020-10-15T21:28:06.961Z", + "Learn/Accessibility": { + "modified": "2020-07-16T22:39:56.923Z", "contributors": [ + "smeden-lod", + "KrySoar", + "Mozinet", "SphinxKnight", - "tregagnon", - "teoli", - "louuis" + "Steph" ] }, - "Web/CSS/:any-link": { - "modified": "2020-10-15T21:48:00.408Z", + "Learn/Accessibility/Mobile": { + "modified": "2020-07-16T22:40:29.992Z", "contributors": [ - "SphinxKnight", - "lp177" + "dragon38800" ] }, - "Web/CSS/:blank": { - "modified": "2020-10-15T22:12:33.251Z", + "Learn/Accessibility/Multimedia": { + "modified": "2020-07-16T22:40:26.301Z", "contributors": [ - "AbdelElMansari", - "SphinxKnight" + "dragon38800" ] }, - "Web/CSS/:checked": { - "modified": "2020-10-15T21:10:25.542Z", + "Learn/Accessibility/WAI-ARIA_basics": { + "modified": "2020-07-16T22:40:21.563Z", "contributors": [ - "SphinxKnight", - "FredB", - "tregagnon", - "teoli", - "ThePrisoner" + "JNa0", + "dragon38800" ] }, - "Web/CSS/:default": { - "modified": "2020-10-15T21:15:31.751Z", + "Learn/Accessibility/What_is_accessibility": { + "modified": "2020-08-21T07:34:09.191Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "FredB", - "Mgjbot", - "BenoitL" + "geoffctn", + "smeden-lod", + "dragon38800", + "gnoyaze", + "tonybengue" ] }, - "Web/CSS/:defined": { - "modified": "2020-10-15T22:01:14.016Z", + "Learn/Common_questions/What_is_accessibility": { + "modified": "2020-07-16T22:35:46.786Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/:dir": { - "modified": "2020-10-15T21:20:01.114Z", - "contributors": [ - "SphinxKnight", - "lp177", - "tregagnon", - "teoli", - "FredB" - ] - }, - "Web/CSS/:disabled": { - "modified": "2020-10-15T21:08:18.977Z", + "Learn/Common_questions/Available_text_editors": { + "modified": "2020-07-16T22:35:48.990Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB" + "SphinxKnight" ] }, - "Web/CSS/:empty": { - "modified": "2020-10-15T21:10:25.873Z", + "Learn/Getting_started_with_the_web/Dealing_with_files": { + "modified": "2020-07-16T22:34:33.292Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "tregagnon", - "teoli", - "FredB", - "ThePrisoner", - "Mgjbot", - "Kyodev", - "Fredchat" + "StrangeRocknRoller", + "Dralyab", + "Ilphrin", + "loella16", + "shoelaces", + "marie-ototoi", + "SphinxKnight" ] }, - "Web/CSS/:enabled": { - "modified": "2020-10-15T21:08:16.083Z", + "Learn/Getting_started_with_the_web": { + "modified": "2020-07-16T22:33:52.213Z", "contributors": [ + "Melanie.Almeida", + "Dralyab", + "Hirevo", + "Ilphrin", + "loella16", + "tonybengue", + "Porkepix", + "Aminelahlou", + "allan.miro", "SphinxKnight", - "tregagnon", - "teoli", - "FredB" + "mouloudia1981", + "Oliviermoz", + "qwincy", + "Luejni", + "Goofy", + "maxperchus" ] }, - "Web/CSS/:first": { - "modified": "2020-10-15T21:08:24.606Z", + "Learn/Getting_started_with_the_web/Installing_basic_software": { + "modified": "2020-10-20T05:04:23.584Z", "contributors": [ - "sizvix", - "cestoliv", + "SebastienLatouche", + "goofy_mdn", "SphinxKnight", - "edspeedy", - "teoli", - "tregagnon", - "FredB" + "NacimHarfouche", + "Chomchaum", + "Dralyab", + "zakaila", + "Ilphrin", + "TiCaillou", + "yannicka", + "loella16", + "clamb", + "PifyZ", + "DamienBertrand", + "qwincy", + "Luejni", + "Goofy" ] }, - "Web/CSS/:first-child": { - "modified": "2020-10-15T21:10:31.316Z", + "Learn/Getting_started_with_the_web/How_the_Web_works": { + "modified": "2020-07-16T22:34:00.161Z", "contributors": [ - "SphinxKnight", - "teoli", - "dohzya", - "tregagnon", - "FredB", - "ThePrisoner", - "Fredchat" + "grandoc", + "Keyrolus", + "ValentinFlamand", + "Dralyab", + "TheStarrK", + "Ilphrin", + "loella16", + "SphinxKnight" ] }, - "Web/CSS/:first-of-type": { - "modified": "2020-10-15T21:10:28.574Z", + "Learn/Getting_started_with_the_web/CSS_basics": { + "modified": "2020-07-16T22:34:58.312Z", "contributors": [ - "SphinxKnight", - "cdoublev", - "tregagnon", - "enogael", - "teoli", - "FredB", - "ThePrisoner" + "Melanie.Almeida", + "Dralyab", + "Ilphrin", + "loella16", + "Mozinet", + "marie-ototoi", + "bl4n", + "SphinxKnight" ] }, - "Web/CSS/:focus": { - "modified": "2020-10-15T21:10:39.154Z", + "Learn/Getting_started_with_the_web/HTML_basics": { + "modified": "2020-07-16T22:34:45.216Z", "contributors": [ - "Steph", + "aSeches", + "Chomchaum", + "StrangeRocknRoller", + "Dralyab", + "Ilphrin", + "loella16", + "tonybengue", + "KhalilSnaake", + "SphinxKnight" + ] + }, + "Learn/Getting_started_with_the_web/JavaScript_basics": { + "modified": "2020-07-16T22:35:10.257Z", + "contributors": [ + "edspeedy", + "grandoc", + "SuppWill", + "Melanie.Almeida", + "Drakone", + "clamb", + "manuilambert", + "Maartz", + "codingk8", + "Dralyab", + "TheStarrK", + "loella16", + "TheoDardel", + "bl4n", "SphinxKnight", - "tregagnon", - "teoli", - "FredB", - "ThePrisoner" + "Aelerinya" ] }, - "Web/CSS/:focus-visible": { - "modified": "2020-10-15T22:06:41.459Z", + "Learn/Getting_started_with_the_web/Publishing_your_website": { + "modified": "2020-07-16T22:34:25.316Z", "contributors": [ + "edspeedy", + "Dralyab", + "NemoNobobyPersonne", + "Ilphrin", + "villastien", "SphinxKnight" ] }, - "Web/CSS/:focus-within": { - "modified": "2020-10-15T21:49:33.879Z", + "Learn/Getting_started_with_the_web/What_will_your_website_look_like": { + "modified": "2020-07-16T22:34:16.258Z", "contributors": [ + "Dralyab", + "Ilphrin", + "yannicka", + "loella16", "SphinxKnight", - "PhilippeV" + "J.DMB", + "Luejni" ] }, - "Web/CSS/:fullscreen": { - "modified": "2020-10-15T21:26:16.468Z", + "Learn/Getting_started_with_the_web/The_web_and_web_standards": { + "modified": "2020-11-28T07:27:01.600Z", "contributors": [ - "ChristopheBoucaut", - "teluric", - "SphinxKnight", - "LaurentBarbareau", - "Porkepix", - "Medhy_35", - "FredB", - "teoli", - "tregagnon" + "Kinskikick", + "Chomchaum" ] }, - "Web/CSS/:has": { - "modified": "2020-10-15T21:45:03.002Z", + "Learn/Common_questions/Thinking_before_coding": { + "modified": "2020-07-16T22:35:34.202Z", "contributors": [ "SphinxKnight", - "lp177", - "aduh95" + "rtabusse" ] }, - "Web/CSS/:host": { - "modified": "2020-10-15T22:02:19.051Z", + "orphaned/Learn/How_to_contribute": { + "modified": "2020-07-16T22:33:43.608Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Dralyab", + "loella16", + "PetiPandaRou" ] }, - "Web/CSS/:host()": { - "modified": "2020-10-15T22:02:15.628Z", + "Learn/Common_questions/set_up_a_local_testing_server": { + "modified": "2020-07-16T22:35:52.861Z", "contributors": [ - "SphinxKnight", - "tonybengue" + "Duth", + "smeden-lod", + "ThCarrere", + "Zinavolia", + "fleuronvilik", + "TheStarrK", + "Albynton" ] }, - "Web/CSS/:host-context()": { - "modified": "2020-10-15T22:02:13.459Z", + "Learn/Common_questions": { + "modified": "2020-08-07T08:34:09.122Z", "contributors": [ - "SphinxKnight", - "lp177" + "ramakuzhou", + "As-Sinder", + "JeffD", + "Willyntobila" ] }, - "Web/CSS/:hover": { - "modified": "2020-10-15T21:10:36.788Z", + "Learn/Common_questions/What_is_a_URL": { + "modified": "2020-07-16T22:35:29.353Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "FredB", - "teoli", - "tregagnon", - "ThePrisoner", - "tcit" + "clamb", + "Porkepix", + "SphinxKnight" ] }, - "Web/CSS/:in-range": { - "modified": "2020-10-15T21:46:05.793Z", + "Learn/Common_questions/What_is_a_domain_name": { + "modified": "2020-07-16T22:35:44.035Z", "contributors": [ + "Porkepix", "SphinxKnight" ] }, - "Web/CSS/:indeterminate": { - "modified": "2020-10-15T21:08:18.181Z", + "Learn/Common_questions/Common_web_layouts": { + "modified": "2020-07-16T22:35:42.406Z", "contributors": [ - "artentica", "SphinxKnight", - "jbuiquan", - "edspeedy", - "GeoffreyC.", "Goofy", - "tregagnon", - "louuis", - "teoli", - "FredB" + "ValPom" ] }, - "Web/CSS/:invalid": { - "modified": "2020-10-15T21:07:22.814Z", + "Learn/Common_questions/Design_for_all_types_of_users": { + "modified": "2020-07-16T22:35:50.809Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB" + "SphinxKnight" ] }, - "Web/CSS/:is": { - "modified": "2020-10-15T22:02:43.628Z", + "Learn/CSS/Building_blocks/Advanced_styling_effects": { + "modified": "2020-07-16T22:28:21.276Z", "contributors": [ - "cdoublev", - "SphinxKnight", - "tonybengue", + "chrisdavidmills", "Dralyab" ] }, - "Web/CSS/:lang": { - "modified": "2020-10-15T21:08:15.878Z", - "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "louuis", - "FredB", - "ThePrisoner" - ] - }, - "Web/CSS/:last-child": { - "modified": "2020-10-15T21:10:26.996Z", + "Learn/CSS/Building_blocks/Backgrounds_and_borders": { + "modified": "2020-10-12T10:29:46.948Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "Fredchat", - "louuis", - "teoli", - "FredB", - "ThePrisoner", - "Vivelefrat" + "chuck2kill", + "pauline.chalus", + "smeden-lod" ] }, - "Web/CSS/:last-of-type": { - "modified": "2020-10-15T21:10:28.351Z", + "Learn/CSS/Building_blocks/Cascade_and_inheritance": { + "modified": "2020-10-17T12:41:21.832Z", "contributors": [ - "06Games", - "SphinxKnight", - "tregagnon", - "teoli", - "FredB", - "ThePrisoner" + "geraldventadour", + "smeden-lod" ] }, - "Web/CSS/:left": { - "modified": "2020-10-15T21:08:38.277Z", + "Learn/CSS/Building_blocks/Debugging_CSS": { + "modified": "2020-10-15T22:35:18.278Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB", - "Manu1400" + "chuck2kill" ] }, - "Web/CSS/:link": { - "modified": "2020-10-15T21:10:29.359Z", + "Learn/CSS/Building_blocks/Handling_different_text_directions": { + "modified": "2020-10-12T12:01:46.438Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB", - "Delapouite", - "ThePrisoner" + "chuck2kill" ] }, - "Web/CSS/:not": { - "modified": "2020-10-15T21:10:32.618Z", + "Learn/CSS/Building_blocks": { + "modified": "2020-09-16T07:14:02.390Z", "contributors": [ - "SphinxKnight", - "efd", - "edspeedy", - "venotp", - "dackmin", - "tregagnon", - "teoli", - "tzilliox", - "FredB", - "ThePrisoner" + "Voulto", + "smeden-lod", + "AxelGiauffret", + "chrisdavidmills" ] }, - "Web/CSS/:nth-child": { - "modified": "2020-10-15T21:10:27.568Z", + "Learn/CSS/Building_blocks/The_box_model": { + "modified": "2020-10-31T20:40:32.362Z", "contributors": [ - "SphinxKnight", - "Jeremie", - "clementpolito", - "Dexter_Deter", - "teoli", - "tregagnon", - "FredB", - "DavidWalsh", - "ThePrisoner" + "Romain04", + "devscipline", + "cgz141413", + "vvvaleee" ] }, - "Web/CSS/:nth-last-child": { - "modified": "2020-10-15T21:10:37.297Z", + "Learn/CSS/Building_blocks/Overflowing_content": { + "modified": "2020-10-13T05:02:31.498Z", "contributors": [ - "SphinxKnight", - "loicbourg", - "teoli", - "tregagnon", - "FredB", - "ThePrisoner" + "chuck2kill", + "JTR1103" ] }, - "Web/CSS/:nth-last-of-type": { - "modified": "2020-10-15T21:10:39.125Z", + "Learn/CSS/Building_blocks/Selectors/Combinators": { + "modified": "2020-12-07T09:25:08.631Z", "contributors": [ - "SphinxKnight", - "FredB", - "teoli", - "tregagnon", - "ThePrisoner" + "francoistm", + "chuck2kill" ] }, - "Web/CSS/:nth-of-type": { - "modified": "2020-10-15T21:10:26.292Z", + "Learn/CSS/Building_blocks/Selectors": { + "modified": "2020-10-09T07:28:41.371Z", "contributors": [ - "cdoublev", - "SphinxKnight", - "Groutch", - "yatoogamii", - "teoli", - "tregagnon", - "FredB", - "ThePrisoner" + "chuck2kill", + "smeden-lod", + "Zouayni" ] }, - "Web/CSS/:only-child": { - "modified": "2020-10-15T21:07:18.968Z", + "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements": { + "modified": "2020-10-17T16:55:55.753Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "Fredchat", - "louuis", - "teoli", - "FredB" + "geraldventadour", + "chuck2kill", + "time132", + "smeden-lod" ] }, - "Web/CSS/:only-of-type": { - "modified": "2020-10-15T21:10:36.883Z", + "Learn/CSS/Building_blocks/Selectors/Attribute_selectors": { + "modified": "2020-07-16T22:28:49.665Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB", - "ThePrisoner" + "smeden-lod" ] }, - "Web/CSS/:optional": { - "modified": "2020-10-15T21:07:19.786Z", + "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors": { + "modified": "2020-07-16T22:28:39.961Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli", - "FredB" + "smeden-lod" ] }, - "Web/CSS/:out-of-range": { - "modified": "2020-10-15T21:33:47.653Z", + "Learn/CSS/Building_blocks/Sizing_items_in_CSS": { + "modified": "2020-10-14T08:26:17.339Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "chuck2kill", + "Guetso", + "JTR1103", + "cgz141413", + "smeden-lod" ] }, - "Web/CSS/:placeholder-shown": { - "modified": "2020-10-15T21:49:18.000Z", + "Learn/CSS/Building_blocks/Styling_tables": { + "modified": "2020-07-16T22:28:15.930Z", "contributors": [ - "SphinxKnight", - "lp177" + "smeden-lod", + "chrisdavidmills", + "manuilambert", + "PhilippeV", + "Dralyab" ] }, - "Web/CSS/:read-only": { - "modified": "2020-10-15T21:41:39.400Z", + "Learn/CSS/Building_blocks/Values_and_units": { + "modified": "2020-10-13T07:02:20.601Z", "contributors": [ - "SphinxKnight", - "Norihiori", - "NathanB" + "chuck2kill" ] }, - "Web/CSS/:read-write": { - "modified": "2020-10-15T21:19:38.171Z", + "Learn/CSS/Howto/create_fancy_boxes": { + "modified": "2020-07-16T22:25:49.335Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "FredB" + "SphinxKnight" ] }, - "Web/CSS/:required": { - "modified": "2020-10-15T21:08:14.776Z", + "Learn/CSS/Howto/Generated_content": { + "modified": "2020-07-16T22:25:47.662Z", "contributors": [ - "SphinxKnight", + "chrisdavidmills", "teoli", - "tregagnon", - "FredB" + "grandoc", + "Mgjbot", + "Verruckt", + "BenoitL" ] }, - "Web/CSS/:right": { - "modified": "2020-10-15T21:08:33.609Z", + "Learn/CSS/Howto": { + "modified": "2020-07-16T22:25:42.247Z", "contributors": [ - "SphinxKnight", - "FredB", - "teoli", - "tregagnon", - "Manu1400" + "loella16", + "SphinxKnight" ] }, - "Web/CSS/:root": { - "modified": "2020-10-15T21:10:27.339Z", + "Learn/CSS/CSS_layout/Practical_positioning_examples": { + "modified": "2020-07-16T22:26:48.222Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "FredB", - "ThePrisoner" + "Anonymous" ] }, - "Web/CSS/:scope": { - "modified": "2020-10-15T21:28:07.626Z", + "Learn/CSS/CSS_layout/Flexbox_skills": { + "modified": "2020-07-16T22:27:33.960Z", "contributors": [ - "Maxi_Mega", - "SphinxKnight", - "b1nj", - "J.DMB", - "teoli", - "louuis" + "Anonymous" ] }, - "Web/CSS/:target": { - "modified": "2020-10-15T21:10:33.875Z", + "Learn/CSS/CSS_layout/Flexbox": { + "modified": "2020-07-16T22:26:52.633Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "FredB", - "ThePrisoner" + "Anonymous", + "interfacteur", + "_julien_", + "Dralyab" ] }, - "Web/CSS/:valid": { - "modified": "2020-10-15T21:18:37.134Z", + "Learn/CSS/CSS_layout/Floats": { + "modified": "2020-07-16T22:26:37.621Z", "contributors": [ - "SphinxKnight", - "viki53", - "enogael", - "FredB", - "teoli", - "tregagnon" + "Anonymous", + "Dralyab", + "Alan_Braut" ] }, - "Web/CSS/:visited": { - "modified": "2020-10-15T21:10:37.542Z", + "Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension": { + "modified": "2020-07-16T22:27:24.245Z", "contributors": [ - "yannicka", - "SphinxKnight", - "flexbox", - "FredB", - "teoli", - "tregagnon", - "ThePrisoner" + "tristantheb", + "junior-batilat" ] }, - "Web/CSS/:visited_et_la_vie_privée": { - "modified": "2019-04-06T13:09:09.164Z", + "Learn/CSS/CSS_layout/Grids": { + "modified": "2020-07-16T22:26:59.113Z", "contributors": [ - "SphinxKnight" + "Anonymous", + "Dralyab" ] }, - "Web/CSS/:where": { - "modified": "2020-10-15T22:12:34.192Z", + "Learn/CSS/CSS_layout": { + "modified": "2020-07-16T22:26:30.167Z", "contributors": [ - "SphinxKnight" + "Anonymous", + "manuilambert", + "Dralyab", + "tonybengue" ] }, - "Web/CSS/@charset": { - "modified": "2020-10-15T21:10:24.532Z", + "Learn/CSS/CSS_layout/Introduction": { + "modified": "2020-07-16T22:27:04.363Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "Guillaume-Heras", - "fscholz", - "FredB", - "teoli", - "jdvauguet", - "ThePrisoner" + "Anonymous", + "Dralyab", + "creposucre", + "Alan_Braut" ] }, - "Web/CSS/@counter-style": { - "modified": "2020-10-15T21:46:29.639Z", + "Learn/CSS/CSS_layout/Positioning": { + "modified": "2020-11-08T08:33:26.641Z", "contributors": [ - "VictorLequin", - "SphinxKnight" + "CCR-G", + "Anonymous", + "Dralyab", + "Alan_Braut" ] }, - "Web/CSS/@counter-style/additive-symbols": { - "modified": "2020-10-15T21:46:29.610Z", + "Learn/CSS/CSS_layout/Legacy_Layout_Methods": { + "modified": "2020-07-16T22:27:13.887Z", "contributors": [ - "SphinxKnight" + "Dralyab" ] }, - "Web/CSS/@counter-style/fallback": { - "modified": "2020-10-15T21:46:38.184Z", + "Learn/CSS/CSS_layout/Media_queries": { + "modified": "2020-07-16T22:27:31.483Z", "contributors": [ - "SphinxKnight" + "tristantheb" ] }, - "Web/CSS/@counter-style/negative": { - "modified": "2020-10-15T21:46:39.589Z", + "Learn/CSS/CSS_layout/Multiple-column_Layout": { + "modified": "2020-07-16T22:27:09.504Z", "contributors": [ - "SphinxKnight" + "Dralyab" ] }, - "Web/CSS/@counter-style/pad": { - "modified": "2020-10-15T21:46:39.962Z", + "Learn/CSS/CSS_layout/Normal_Flow": { + "modified": "2020-07-16T22:27:21.075Z", "contributors": [ - "SphinxKnight" + "Anonymous", + "Dralyab" ] }, - "Web/CSS/@counter-style/prefix": { - "modified": "2020-10-15T21:46:43.969Z", + "Learn/CSS/CSS_layout/Supporting_Older_Browsers": { + "modified": "2020-07-16T22:27:18.222Z", "contributors": [ - "SphinxKnight" + "tristantheb" ] }, - "Web/CSS/@counter-style/range": { - "modified": "2020-10-15T21:46:41.181Z", + "Learn/CSS/CSS_layout/Responsive_Design": { + "modified": "2020-07-16T22:27:27.744Z", "contributors": [ - "SphinxKnight" + "xavier.boisnon", + "tristantheb", + "Anonymous" ] }, - "Web/CSS/@counter-style/speak-as": { - "modified": "2020-10-15T21:46:42.317Z", + "Learn/CSS": { + "modified": "2020-10-08T16:01:55.051Z", "contributors": [ - "SphinxKnight" + "geraldventadour", + "BAHLOUL_Farouk", + "nherbaut", + "Dralyab", + "SphinxKnight", + "dattaz", + "Oliviermoz" ] }, - "Web/CSS/@counter-style/suffix": { - "modified": "2020-10-15T21:46:49.763Z", + "Learn/CSS/Building_blocks/Fundamental_CSS_comprehension": { + "modified": "2020-07-16T22:28:12.063Z", "contributors": [ - "SphinxKnight" + "Dralyab" ] }, - "Web/CSS/@counter-style/symbols": { - "modified": "2020-10-15T21:46:43.930Z", + "Learn/CSS/Building_blocks/A_cool_looking_box": { + "modified": "2020-07-16T22:28:26.748Z", "contributors": [ - "SphinxKnight" + "Dralyab" ] }, - "Web/CSS/@counter-style/system": { - "modified": "2020-10-15T21:46:44.513Z", + "Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper": { + "modified": "2020-07-16T22:28:24.684Z", "contributors": [ - "SphinxKnight", - "personnel" + "LeMilitaire", + "Dralyab" ] }, - "Web/CSS/@document": { - "modified": "2020-10-15T21:28:07.583Z", + "Learn/Common_questions/What_are_browser_developer_tools": { + "modified": "2020-07-16T22:35:47.424Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne", - "fscholz", - "FredB", - "teoli" + "SphinxKnight" ] }, - "Web/CSS/@font-face": { - "modified": "2020-10-15T21:14:44.961Z", + "Learn/Common_questions/How_does_the_Internet_work": { + "modified": "2020-07-16T22:35:36.757Z", "contributors": [ + "TheStarrK", + "Porkepix", "SphinxKnight", - "mh_nichts", - "fscholz", - "mleduque", - "Qu3tzalify", - "teoli", - "PifyZ", - "FredB", - "naar", - "Jürgen Jeka", - "BenoitL", - "Fredchat", - "Valacar", - "Huchezal", - "SebMouren" + "ValPom" ] }, - "Web/CSS/@font-face/font-display": { - "modified": "2020-10-15T21:48:25.337Z", + "Learn/Front-end_web_developer": { + "modified": "2020-12-12T07:17:26.887Z", "contributors": [ - "SphinxKnight", - "davidwerbrouck", - "tpillard", - "frlinw" + "leeadoukonou", + "Twinklelight", + "geraldventadour", + "KHALIL5benz", + "Gwenishere" ] }, - "Web/CSS/@font-face/font-family": { - "modified": "2020-10-15T21:46:27.023Z", + "Learn/HTML/Cheatsheet": { + "modified": "2020-07-16T22:22:44.025Z", "contributors": [ "SphinxKnight", - "personnel", - "Gibus" + "Goofy" ] }, - "Web/CSS/@font-face/font-stretch": { - "modified": "2020-10-15T22:24:06.161Z", + "Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image": { + "modified": "2020-07-16T22:22:42.935Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@font-face/font-style": { - "modified": "2020-10-15T21:46:53.998Z", + "Learn/HTML/Multimedia_and_embedding/Responsive_images": { + "modified": "2020-12-06T15:45:53.769Z", "contributors": [ + "Kinskikick", + "jwhitlock", + "ncodefun", + "Bpruneau", + "Dralyab", + "edspeedy", "SphinxKnight" ] }, - "Web/CSS/@font-face/font-variation-settings": { - "modified": "2020-10-15T22:02:45.623Z", + "Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web": { + "modified": "2020-07-16T22:24:39.978Z", "contributors": [ + "brundozer", + "Dralyab", + "carnival187", "SphinxKnight" ] }, - "Web/CSS/@font-face/font-weight": { - "modified": "2020-10-15T22:24:04.613Z", + "Learn/HTML/Howto/Define_terms_with_HTML": { + "modified": "2020-07-16T22:22:41.835Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@font-face/src": { - "modified": "2020-10-15T21:49:16.995Z", + "Learn/HTML/Howto": { + "modified": "2020-07-16T22:22:28.392Z", "contributors": [ - "SphinxKnight" + "Goofy", + "SphinxKnight", + "SisteSkygge" ] }, - "Web/CSS/@font-face/unicode-range": { - "modified": "2020-10-15T21:46:51.127Z", + "Learn/HTML/Howto/Use_data_attributes": { + "modified": "2020-07-16T22:22:34.977Z", "contributors": [ - "SphinxKnight" + "lotfire24", + "SphinxKnight", + "Goofy" ] }, - "Web/CSS/@font-feature-values": { - "modified": "2020-10-15T21:46:50.242Z", + "Learn/HTML/Howto/Use_JavaScript_within_a_webpage": { + "modified": "2020-07-16T22:22:40.147Z", "contributors": [ + "RomainLanz", "SphinxKnight" ] }, - "Web/CSS/@import": { - "modified": "2020-10-15T21:18:11.323Z", + "Learn/HTML": { + "modified": "2020-07-16T22:22:17.105Z", "contributors": [ + "Th0m4", + "Dralyab", + "zakaila", + "Ilphrin", + "interfacteur", + "Goofy", + "jlagneau", + "gillou58", "SphinxKnight", - "teoli", - "FredB", - "VincentN", - "Fredchat" + "DamienBertrand" ] }, - "Web/CSS/@keyframes": { - "modified": "2020-11-05T12:26:09.223Z", + "Learn/HTML/Introduction_to_HTML/Creating_hyperlinks": { + "modified": "2020-11-27T09:49:15.655Z", "contributors": [ - "julienw", - "SphinxKnight", - "lhapaipai", - "Matschik", - "ghivert", - "fscholz", - "Sheppy", - "teoli", - "LaChouette" + "Chomchaum", + "goofy_mdn", + "Dralyab", + "_kud", + "NemoNobobyPersonne", + "zakaila", + "Ilphrin" ] }, - "Web/CSS/@media": { - "modified": "2020-10-15T21:18:17.901Z", + "Learn/HTML/Introduction_to_HTML/Debugging_HTML": { + "modified": "2020-07-16T22:24:12.781Z", "contributors": [ - "SphinxKnight", - "ferdi_", - "edspeedy", - "fscholz", - "Chealer", - "teoli", - "wakka27", - "FredB", - "VincentN", - "ethertank", - "Fredchat" + "chrisdavidmills", + "LeMilitaire", + "Dralyab", + "Ilphrin" ] }, - "Web/CSS/@media/-moz-device-pixel-ratio": { - "modified": "2020-10-15T21:58:09.229Z", + "Learn/HTML/Introduction_to_HTML/Document_and_website_structure": { + "modified": "2020-07-16T22:24:04.214Z", "contributors": [ - "SphinxKnight" + "tonybengue", + "fredckl", + "Dralyab", + "AntoineJacquet", + "olschneider", + "SamuChan", + "Ilphrin" ] }, - "Web/CSS/@media/-webkit-animation": { - "modified": "2020-10-15T21:48:23.920Z", + "Learn/HTML/Introduction_to_HTML/Advanced_text_formatting": { + "modified": "2020-11-29T07:50:37.082Z", "contributors": [ - "SphinxKnight", - "teoli" + "Kinskikick", + "Dralyab", + "zakaila", + "BartGui", + "Goofy" ] }, - "Web/CSS/@media/-webkit-device-pixel-ratio": { - "modified": "2020-10-15T21:48:22.736Z", + "Learn/HTML/Introduction_to_HTML/Getting_started": { + "modified": "2020-07-16T22:23:00.212Z", "contributors": [ - "SphinxKnight" + "aSeches", + "Chomchaum", + "Dralyab", + "bastosh", + "Lizie", + "KhalilSnaake" ] }, - "Web/CSS/@media/-webkit-transform-2d": { - "modified": "2020-10-15T21:48:23.969Z", + "Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals": { + "modified": "2020-07-16T22:23:32.043Z", "contributors": [ - "SphinxKnight", - "teoli" + "aSeches", + "Chomchaum", + "LeMilitaire", + "Dralyab", + "gnoyaze", + "clamb", + "Ilphrin" ] }, - "Web/CSS/@media/-webkit-transform-3d": { - "modified": "2020-10-15T21:48:18.449Z", + "Learn/HTML/Introduction_to_HTML": { + "modified": "2020-07-16T22:22:47.142Z", "contributors": [ + "bfritscher", + "NerOcrO", + "Dralyab", + "Ilphrin", + "loella16", + "Porkepix", + "Jeremie", "SphinxKnight" ] }, - "Web/CSS/@media/-webkit-transition": { - "modified": "2020-10-15T21:48:23.562Z", + "Learn/HTML/Introduction_to_HTML/Marking_up_a_letter": { + "modified": "2020-12-05T16:03:44.361Z", "contributors": [ - "SphinxKnight", - "teoli" + "Kinskikick", + "chrisdavidmills", + "LeMilitaire", + "Dralyab", + "Ilphrin" ] }, - "Web/CSS/@media/Index": { - "modified": "2019-04-06T12:02:15.887Z", + "Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content": { + "modified": "2020-07-16T22:24:18.719Z", "contributors": [ - "SphinxKnight" + "LeMilitaire", + "Dralyab", + "Arkelis", + "Ilphrin" ] }, - "Web/CSS/@media/any-hover": { - "modified": "2020-10-15T21:47:18.453Z", + "Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML": { + "modified": "2020-11-17T15:11:05.138Z", "contributors": [ - "SphinxKnight" + "gauthier.delaserraz", + "lord128", + "Chomchaum", + "Dralyab", + "tonybengue", + "bastosh", + "loella16", + "Pethrow", + "KhalilSnaake" ] }, - "Web/CSS/@media/any-pointer": { - "modified": "2020-10-15T21:47:16.191Z", + "Learn/HTML/Multimedia_and_embedding/Video_and_audio_content": { + "modified": "2020-07-16T22:24:52.741Z", "contributors": [ - "SphinxKnight" + "Chomchaum", + "LeMilitaire", + "Dralyab", + "zakaila" ] }, - "Web/CSS/@media/aspect-ratio": { - "modified": "2020-10-15T21:47:21.069Z", + "Learn/HTML/Multimedia_and_embedding/Images_in_HTML": { + "modified": "2020-07-16T22:24:44.917Z", "contributors": [ - "SphinxKnight" + "BAHLOUL_Farouk", + "didierbroska", + "Chomchaum", + "daftaupe", + "zakaila", + "Dralyab" ] }, - "Web/CSS/@media/aural": { - "modified": "2019-04-06T12:01:18.819Z", + "Learn/HTML/Multimedia_and_embedding": { + "modified": "2020-07-16T22:24:25.278Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "tristantheb", + "Dralyab", + "AntoineJacquet", + "zakaila", + "Ilphrin" ] }, - "Web/CSS/@media/color": { - "modified": "2020-10-15T21:43:28.940Z", + "Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page": { + "modified": "2020-07-16T22:25:07.018Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "zakaila" ] }, - "Web/CSS/@media/color-gamut": { - "modified": "2020-10-15T21:55:30.101Z", + "Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies": { + "modified": "2020-07-16T22:25:01.620Z", "contributors": [ - "SphinxKnight" + "Dralyab" ] }, - "Web/CSS/@media/color-index": { - "modified": "2020-10-15T21:44:30.610Z", + "Learn/HTML/Tables/Advanced": { + "modified": "2020-07-16T22:25:25.886Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "Dralyab", + "loella16", + "tonybengue" ] }, - "Web/CSS/@media/device-aspect-ratio": { - "modified": "2020-10-15T21:47:20.425Z", + "Learn/HTML/Tables/Basics": { + "modified": "2020-12-13T07:01:09.726Z", "contributors": [ - "SphinxKnight" + "Kinskikick", + "ThCarrere", + "Dralyab", + "loella16", + "tonybengue" ] }, - "Web/CSS/@media/device-height": { - "modified": "2020-10-15T21:47:23.040Z", + "Learn/HTML/Tables": { + "modified": "2020-07-16T22:25:11.317Z", "contributors": [ - "SphinxKnight" + "NerOcrO", + "Dralyab", + "loella16", + "tonybengue" ] }, - "Web/CSS/@media/device-width": { - "modified": "2020-10-15T21:47:23.467Z", + "Learn/HTML/Tables/Structuring_planet_data": { + "modified": "2020-07-16T22:25:29.724Z", "contributors": [ - "SphinxKnight" + "Dralyab", + "loella16", + "tonybengue" ] }, - "Web/CSS/@media/display-mode": { - "modified": "2020-10-15T21:47:18.852Z", + "Learn": { + "modified": "2020-10-08T14:43:04.373Z", "contributors": [ - "SphinxKnight" + "geraldventadour", + "stphngrc", + "smeden-lod", + "methodx", + "SphinxKnight", + "Melanie.Almeida", + "fredrun14", + "lecoeurseb", + "StrangeRocknRoller", + "tonybengue", + "Dralyab", + "egidiusmendel", + "unsteadyCode", + "W1773ND", + "Ilphrin", + "Raulel", + "JeffD", + "mliatt", + "teoli", + "gcodeur", + "Goofy", + "PetiPandaRou", + "jeromepasquelin", + "ValPom", + "Oliviermoz", + "DamienBertrand", + "wakka27", + "Benedetti", + "maxperchus" ] }, - "Web/CSS/@media/forced-colors": { - "modified": "2020-10-15T22:20:18.237Z", + "Learn/Index": { + "modified": "2020-07-16T22:33:36.900Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@media/grid": { - "modified": "2020-10-15T21:47:19.575Z", + "Learn/JavaScript/Building_blocks/Build_your_own_function": { + "modified": "2020-07-16T22:31:29.138Z", "contributors": [ - "SphinxKnight" + "smeden-lod", + "EmerikC", + "Chaospherae", + "andyquin", + "Gasperowicz" ] }, - "Web/CSS/@media/height": { - "modified": "2020-10-15T21:47:19.978Z", + "Learn/JavaScript/Building_blocks/conditionals": { + "modified": "2020-07-16T22:31:13.085Z", "contributors": [ - "SphinxKnight" + "Tendø", + "smeden-lod", + "Chomchaum", + "Eric-ciccotti", + "grandoc", + "tonybengue", + "Dralyab", + "OxyDesign" ] }, - "Web/CSS/@media/hover": { - "modified": "2020-10-15T21:47:18.517Z", + "Learn/JavaScript/Building_blocks/Events": { + "modified": "2020-07-16T22:31:37.886Z", "contributors": [ - "SphinxKnight" + "Chaospherae", + "bubzy34", + "tonybengue" ] }, - "Web/CSS/@media/inverted-colors": { - "modified": "2020-10-15T21:47:20.806Z", + "Learn/JavaScript/Building_blocks/Functions": { + "modified": "2020-07-16T22:31:24.630Z", "contributors": [ - "SphinxKnight" + "Voltariuss", + "smeden-lod", + "vacarme", + "Mania", + "bubzy34", + "tonybengue" ] }, - "Web/CSS/@media/monochrome": { - "modified": "2020-10-15T21:47:20.532Z", + "Learn/JavaScript/Building_blocks/Image_gallery": { + "modified": "2020-07-16T22:31:43.231Z", "contributors": [ - "SphinxKnight" + "tristantheb", + "Chaospherae", + "Jcninho87", + "SphinxKnight", + "tonybengue" ] }, - "Web/CSS/@media/orientation": { - "modified": "2020-10-15T21:43:29.519Z", + "Learn/JavaScript/Building_blocks": { + "modified": "2020-07-16T22:31:07.626Z", "contributors": [ + "smeden-lod", + "tonybengue", "SphinxKnight", - "damiencaselli", - "xdelatour" + "benjaminlepine", + "loella16", + "daufinsyd" ] }, - "Web/CSS/@media/overflow-block": { - "modified": "2020-10-15T21:47:24.131Z", + "Learn/JavaScript/Building_blocks/Looping_code": { + "modified": "2020-07-16T22:31:19.091Z", "contributors": [ - "SphinxKnight" + "JNa0", + "baslumol", + "Eric-ciccotti", + "andyquin", + "ThCarrere", + "bubzy34", + "tonybengue", + "joan38", + "Abrams" ] }, - "Web/CSS/@media/overflow-inline": { - "modified": "2020-10-15T21:47:19.850Z", + "Learn/JavaScript/Building_blocks/Return_values": { + "modified": "2020-07-16T22:31:33.181Z", "contributors": [ - "SphinxKnight" + "Chaospherae", + "andyquin", + "tonybengue", + "farantDEV" ] }, - "Web/CSS/@media/pointer": { - "modified": "2020-10-15T21:47:18.966Z", + "Learn/JavaScript/Client-side_web_APIs/Client-side_storage": { + "modified": "2020-07-16T22:33:04.752Z", "contributors": [ - "SphinxKnight" + "smeden-lod", + "a-mt" ] }, - "Web/CSS/@media/prefers-color-scheme": { - "modified": "2020-10-15T22:11:37.399Z", + "Learn/JavaScript/Client-side_web_APIs/Drawing_graphics": { + "modified": "2020-07-16T22:33:01.225Z", "contributors": [ - "bopol", - "AbdelElMansari", - "SphinxKnight" + "CcelestinC", + "a-mt" ] }, - "Web/CSS/@media/prefers-contrast": { - "modified": "2020-10-15T22:20:20.152Z", + "Learn/JavaScript/Client-side_web_APIs/Fetching_data": { + "modified": "2020-07-16T22:32:57.712Z", "contributors": [ - "SphinxKnight" + "nrdAio", + "smeden-lod", + "neytsumi", + "CcelestinC", + "BigBigDoudou", + "a-mt" ] }, - "Web/CSS/@media/prefers-reduced-motion": { - "modified": "2020-10-15T22:10:02.862Z", + "Learn/JavaScript/Client-side_web_APIs": { + "modified": "2020-07-16T22:32:39.093Z", "contributors": [ - "Neilyroth", - "SphinxKnight" + "a-mt", + "Dralyab", + "bretondev" ] }, - "Web/CSS/@media/prefers-reduced-transparency": { - "modified": "2020-10-15T22:20:20.333Z", + "Learn/JavaScript/Client-side_web_APIs/Introduction": { + "modified": "2020-07-16T22:32:44.687Z", "contributors": [ - "SphinxKnight" + "zoora", + "fuentesloic", + "BigBigDoudou", + "a-mt", + "Dralyab", + "elWombator", + "bretondev" ] }, - "Web/CSS/@media/resolution": { - "modified": "2020-10-15T21:47:24.193Z", + "Learn/JavaScript/Client-side_web_APIs/Manipulating_documents": { + "modified": "2020-07-16T22:32:47.994Z", "contributors": [ - "SphinxKnight" + "Vony", + "a-mt" ] }, - "Web/CSS/@media/scan": { - "modified": "2020-10-15T21:47:29.526Z", + "Learn/JavaScript/Client-side_web_APIs/Third_party_APIs": { + "modified": "2020-07-16T22:32:54.118Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "a-mt" ] }, - "Web/CSS/@media/scripting": { - "modified": "2020-10-15T21:47:29.228Z", + "Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs": { + "modified": "2020-07-16T22:32:52.122Z", "contributors": [ - "SphinxKnight" + "a-mt", + "Naouak" ] }, - "Web/CSS/@media/shape": { - "modified": "2020-10-15T22:21:05.763Z", + "Learn/JavaScript": { + "modified": "2020-07-16T22:29:38.759Z", + "contributors": [ + "mper", + "Dralyab", + "tonybengue", + "loella16", + "SphinxKnight", + "Thogusa" + ] + }, + "Learn/Common_questions/What_are_hyperlinks": { + "modified": "2020-07-16T22:35:43.089Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@media/update-frequency": { - "modified": "2020-10-15T21:47:29.603Z", + "Learn/Tools_and_testing/GitHub": { + "modified": "2020-09-09T16:10:57.840Z", + "contributors": [ + "JNa0" + ] + }, + "Learn/Tools_and_testing": { + "modified": "2020-07-16T22:38:55.131Z", + "contributors": [ + "gnoyaze", + "KrySoar" + ] + }, + "Learn/Common_questions/Pages_sites_servers_and_search_engines": { + "modified": "2020-07-16T22:35:39.748Z", + "contributors": [ + "SphinxKnight", + "fndiaye", + "ValPom" + ] + }, + "Learn/Common_questions/How_much_does_it_cost": { + "modified": "2020-07-16T22:35:45.519Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@media/width": { - "modified": "2020-10-15T21:47:29.961Z", + "Learn/Common_questions/What_is_a_web_server": { + "modified": "2020-07-16T22:35:31.313Z", "contributors": [ + "jswisher", + "adupays", + "LooDom", "SphinxKnight" ] }, - "Web/CSS/@namespace": { - "modified": "2020-10-15T21:47:29.816Z", + "Learn/Common_questions/What_software_do_I_need": { + "modified": "2020-07-16T22:35:33.023Z", "contributors": [ - "SphinxKnight", - "HTeuMeuLeu" + "JNa0", + "SphinxKnight" ] }, - "Web/CSS/@page": { - "modified": "2020-10-15T21:21:45.119Z", + "Learn/Common_questions/Checking_that_your_web_site_is_working_properly": { + "modified": "2020-07-16T22:35:50.068Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Skoua" + "SphinxKnight" ] }, - "Web/CSS/@page/bleed": { - "modified": "2020-10-15T21:47:32.177Z", + "Learn/Common_questions/Upload_files_to_a_web_server": { + "modified": "2020-07-16T22:35:41.575Z", "contributors": [ "SphinxKnight" ] }, - "Web/CSS/@page/marks": { - "modified": "2020-10-15T21:20:05.400Z", + "orphaned/Web/Security/Information_Security_Basics": { + "modified": "2019-03-23T22:46:47.760Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB" + "SphinxKnight" ] }, - "Web/CSS/@page/size": { - "modified": "2020-10-15T21:47:32.255Z", + "Learn/Common_questions/Using_Github_pages": { + "modified": "2020-07-16T22:35:51.735Z", "contributors": [ + "tonybengue", "SphinxKnight" ] }, - "Web/CSS/@supports": { - "modified": "2020-10-15T21:21:41.949Z", + "Mozilla/Firefox/Releases/3/Notable_bugs_fixed": { + "modified": "2019-03-23T23:50:56.565Z", "contributors": [ - "regseb", - "SphinxKnight", - "edspeedy", - "fscholz", - "teoli", - "FredB" + "wbamberg", + "Mgjbot", + "BenoitL" ] }, - "Web/CSS/@viewport": { - "modified": "2020-10-15T21:21:36.008Z", + "Mozilla/Firefox/Releases/3/Site_compatibility": { + "modified": "2019-03-23T23:51:24.948Z", "contributors": [ - "SphinxKnight", - "fscholz", - "J.DMB", - "louuis", - "teoli", - "Igro", - "FredB", - "Delapouite" + "wbamberg", + "Sheppy", + "Mgjbot", + "BenoitL", + "Kyodev", + "Fredchat" ] }, - "Web/CSS/@viewport/height": { - "modified": "2020-10-15T21:47:32.203Z", + "Web/API/Document_object_model/How_to_create_a_DOM_tree": { + "modified": "2019-03-24T00:07:12.456Z", "contributors": [ - "SphinxKnight" + "loella16", + "kmaglione", + "Azema", + "Valacar", + "Fredchat", + "Fping" ] }, - "Web/CSS/@viewport/max-height": { - "modified": "2020-10-15T21:47:31.282Z", + "Web/Accessibility/Keyboard-navigable_JavaScript_widgets": { + "modified": "2019-03-23T23:45:41.315Z", "contributors": [ - "SphinxKnight" + "Jeremie", + "Fredchat", + "Kyodev", + "Daaaaad", + "BenoitL" ] }, - "Web/CSS/@viewport/max-width": { - "modified": "2020-10-15T21:47:34.574Z", + "Web/SVG/Tutorial/SVG_and_CSS": { + "modified": "2019-03-23T23:43:35.150Z", "contributors": [ - "SphinxKnight" + "teoli", + "Verruckt", + "BenoitL" ] }, - "Web/CSS/@viewport/max-zoom": { - "modified": "2020-10-15T21:46:46.765Z", + "Web/Progressive_web_apps/Responsive/Media_types": { + "modified": "2019-03-24T00:11:03.641Z", "contributors": [ - "SphinxKnight", - "HerveRenault", - "Akitoshi" + "teoli", + "grandoc", + "Verruckt", + "BenoitL" ] }, - "Web/CSS/@viewport/min-height": { - "modified": "2020-10-15T21:47:36.736Z", + "Web/Guide/Writing_forward-compatible_websites": { + "modified": "2019-03-24T00:13:23.048Z", "contributors": [ - "SphinxKnight" + "Dralyab", + "pixelastic" ] }, - "Web/CSS/@viewport/min-width": { - "modified": "2020-10-15T21:47:32.971Z", + "Web/Guide/Introduction_to_Web_development": { + "modified": "2019-03-24T00:03:04.501Z", "contributors": [ - "SphinxKnight" + "Jeremie", + "fscholz", + "BenoitL" ] }, - "Web/CSS/@viewport/min-zoom": { - "modified": "2020-10-15T21:47:33.735Z", + "Glossary/DHTML": { + "modified": "2019-03-24T00:02:32.004Z", "contributors": [ - "SphinxKnight" + "loella16", + "fscholz", + "Mgjbot", + "BenoitL", + "Chbok", + "Anonymous" ] }, - "Web/CSS/@viewport/orientation": { - "modified": "2020-10-15T21:47:32.251Z", + "Web/API/Document_Object_Model/Traversing_an_HTML_table_with_JavaScript_and_DOM_Interfaces": { + "modified": "2019-03-23T23:47:28.003Z", "contributors": [ - "SphinxKnight" + "loella16", + "BenoitL", + "Mgjbot", + "Planche" ] }, - "Web/CSS/@viewport/user-zoom": { - "modified": "2020-10-15T21:47:36.683Z", + "Web/API/XSLTProcessor/XSL_Transformations_in_Mozilla_FAQ": { + "modified": "2019-01-16T16:04:45.409Z", "contributors": [ - "SphinxKnight" + "VincentN", + "Mgjbot", + "Kyodev", + "Fredchat", + "BenoitL" ] }, - "Web/CSS/@viewport/viewport-fit": { - "modified": "2020-10-15T22:10:03.823Z", + "Web/API/Window/devicemotion_event": { + "modified": "2019-04-18T20:33:39.760Z", "contributors": [ - "duduindo", - "SphinxKnight" + "wbamberg", + "estelle", + "fscholz", + "Kalwyn" ] }, - "Web/CSS/@viewport/width": { - "modified": "2020-10-15T21:47:33.307Z", + "Web/API/Window/deviceorientation_event": { + "modified": "2019-04-18T20:33:41.817Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "estelle", + "fscholz", + "Kalwyn" ] }, - "Web/CSS/@viewport/zoom": { - "modified": "2020-10-15T21:47:36.061Z", + "Games/Tutorials/2D_breakout_game_Phaser": { + "modified": "2019-06-20T04:41:51.709Z", "contributors": [ - "SphinxKnight" + "Zyrass" ] }, - "Web/CSS/A_Propos_Du_Bloc_Conteneur": { - "modified": "2020-09-13T07:51:15.383Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field": { + "modified": "2020-06-28T04:40:48.007Z", "contributors": [ - "devscipline", - "alattalatta", - "SphinxKnight", - "Frigory", - "loganblangenois" + "PascalLeMerrer", + "ms-studio", + "NadjaRbgt", + "jgil83000", + "socadance" ] }, - "Web/CSS/Animations_CSS": { - "modified": "2020-10-15T21:40:14.931Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it": { + "modified": "2020-06-27T09:58:29.574Z", "contributors": [ - "SphinxKnight", - "teoli" + "PascalLeMerrer", + "antzilla", + "wbamberg", + "loella16", + "mboultoureau" ] }, - "Web/CSS/Animations_CSS/Conseils": { - "modified": "2019-04-06T12:14:05.389Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection": { + "modified": "2020-06-28T03:56:54.608Z", "contributors": [ - "SphinxKnight" + "PascalLeMerrer", + "NadjaRbgt", + "Antoine-92" ] }, - "Web/CSS/Animations_CSS/Détecter_la_prise_en_charge_des_animations_CSS": { - "modified": "2019-04-06T12:13:54.913Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Bounce_off_the_walls": { + "modified": "2020-06-27T07:15:09.503Z", "contributors": [ - "SphinxKnight", - "wbamberg" + "PascalLeMerrer", + "ms-studio", + "jgil83000", + "wbamberg", + "eerrtrr" ] }, - "Web/CSS/Animations_CSS/Utiliser_les_animations_CSS": { - "modified": "2019-09-12T15:12:07.417Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up": { + "modified": "2020-06-27T06:26:41.729Z", "contributors": [ - "SphinxKnight", - "Hytsar", - "Zgore14", - "magikmanu", - "Iwazaru", - "teoli", - "lapinter", - "FredB" + "PascalLeMerrer" ] }, - "Web/CSS/Arrière-plans_et_bordures_CSS": { - "modified": "2019-04-19T04:03:57.429Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Game_over": { + "modified": "2020-06-27T09:56:22.821Z", "contributors": [ - "SphinxKnight", - "teoli" + "PascalLeMerrer", + "ms-studio", + "wbamberg", + "GaryJULIEN" ] }, - "Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-image": { - "modified": "2019-03-23T22:30:30.328Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript": { + "modified": "2020-06-27T08:09:27.078Z", "contributors": [ - "SphinxKnight" + "PascalLeMerrer", + "wbamberg", + "loella16", + "Flacipe", + "mboultoureau" ] }, - "Web/CSS/Arrière-plans_et_bordures_CSS/Générateur_border-radius": { - "modified": "2019-03-23T22:30:26.745Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls": { + "modified": "2020-06-28T04:14:12.215Z", "contributors": [ - "SphinxKnight" + "PascalLeMerrer" ] }, - "Web/CSS/Block_formatting_context": { - "modified": "2019-05-18T12:20:40.602Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball": { + "modified": "2020-06-27T10:00:36.942Z", "contributors": [ + "PascalLeMerrer", "SphinxKnight", - "teoli", - "tregagnon" + "jgil83000", + "wbamberg", + "eerrtrr", + "Arhance05", + "Cotting" ] }, - "Web/CSS/CSSOM_View": { - "modified": "2020-10-15T21:47:55.001Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Paddle_and_keyboard_controls": { + "modified": "2020-06-27T09:45:30.950Z", "contributors": [ - "SphinxKnight" + "PascalLeMerrer", + "ms-studio", + "jgil83000", + "wbamberg", + "eerrtrr" ] }, - "Web/CSS/CSSOM_View/Systèmes_de_coordonnées": { - "modified": "2019-04-06T13:17:41.411Z", + "Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win": { + "modified": "2020-06-28T04:10:36.923Z", "contributors": [ - "SphinxKnight" + "PascalLeMerrer", + "ms-studio", + "NadjaRbgt", + "Camrifof" ] }, - "Web/CSS/CSS_Backgrounds_and_Borders": { - "modified": "2019-04-06T12:13:22.172Z", + "Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation": { + "modified": "2019-03-23T23:13:43.165Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "loella16", + "mliatt", + "PhilippeS", + "Antoine" ] }, - "Web/CSS/CSS_Backgrounds_and_Borders/Scaling_background_images": { - "modified": "2019-06-18T19:28:42.872Z", + "Games/Tutorials": { + "modified": "2019-03-23T23:13:37.908Z", "contributors": [ - "SphinxKnight", - "jcisio" + "wbamberg", + "loella16", + "LineVA", + "Antoine", + "groovecoder" ] }, - "Web/CSS/CSS_Backgrounds_and_Borders/Utiliser_plusieurs_arrière-plans": { - "modified": "2019-04-06T12:13:04.362Z", + "Glossary/404": { + "modified": "2019-03-23T23:07:59.110Z", "contributors": [ - "SphinxKnight" + "loella16", + "Jeremie", + "Porkepix", + "genma" ] }, - "Web/CSS/CSS_Basic_User_Interface": { - "modified": "2019-04-26T03:46:44.475Z", + "Glossary/502": { + "modified": "2019-03-23T23:00:23.677Z", "contributors": [ - "SphinxKnight", - "ExE-Boss" + "loella16", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Basic_User_Interface/Utilisation_d_URL_pour_la_propriété_cursor": { - "modified": "2019-04-06T12:43:13.926Z", + "Glossary/Abstraction": { + "modified": "2019-03-23T23:00:07.652Z", "contributors": [ - "SphinxKnight", - "ExE-Boss", - "teoli", - "Kyodev", - "Mgjbot", - "Sheppy", - "BenoitL", - "Fredchat", - "Learning", - "Chbok" + "loella16", + "AlemFarid", + "Porkepix", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Box_Alignment": { - "modified": "2019-04-06T12:42:39.208Z", + "Glossary/Accessibility": { + "modified": "2019-03-23T23:00:06.850Z", "contributors": [ - "SphinxKnight" + "loella16", + "vanz", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_Flexbox": { - "modified": "2019-04-26T03:47:25.587Z", + "Glossary/Adobe_Flash": { + "modified": "2019-03-23T23:00:08.019Z", "contributors": [ - "SphinxKnight" + "loella16", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_bloc_absolue_tableau": { - "modified": "2019-04-06T12:43:22.538Z", + "Glossary/AJAX": { + "modified": "2020-02-09T18:25:52.010Z", "contributors": [ - "SphinxKnight" + "tristantheb", + "tanguymartinez", + "AbdelElMansari", + "NemoNobobyPersonne", + "loella16", + "wakeuteu", + "Tradetnet", + "Gibus", + "vanz", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_colonnes": { - "modified": "2019-04-06T12:43:28.533Z", + "Glossary/Algorithm": { + "modified": "2019-01-16T20:52:42.595Z", "contributors": [ + "loella16", + "vanz", "SphinxKnight" ] }, - "Web/CSS/CSS_Box_Alignment/Alignement_boîtes_disposition_grille": { - "modified": "2019-04-06T12:42:13.894Z", + "Glossary/Alignment_Container": { + "modified": "2019-03-18T21:18:07.982Z", "contributors": [ - "SphinxKnight" + "AurelieBayre" ] }, - "Web/CSS/CSS_Color": { - "modified": "2020-10-15T22:02:12.684Z", + "Glossary/Alignment_Subject": { + "modified": "2019-07-26T06:07:44.096Z", "contributors": [ - "SphinxKnight" + "necraidan" ] }, - "Web/CSS/CSS_Columns": { - "modified": "2019-03-23T22:43:50.171Z", + "Glossary/ALPN": { + "modified": "2020-09-25T06:08:01.612Z", "contributors": [ - "SphinxKnight", - "Sebastianz" + "Voulto" ] }, - "Web/CSS/CSS_Columns/Concepts_base_multi-colonnes": { - "modified": "2019-04-06T12:54:10.082Z", + "Glossary/Progressive_Enhancement": { + "modified": "2019-03-23T22:39:20.648Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Columns/Gestion_dépassement_multi-colonnes": { - "modified": "2019-04-06T12:53:58.823Z", + "Glossary/API": { + "modified": "2019-10-18T09:39:16.224Z", "contributors": [ - "SphinxKnight" + "tanguymartinez", + "loella16", + "vanz", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Columns/Gérer_rupture_contenu_entre_colonnes": { - "modified": "2019-04-06T12:53:51.858Z", + "Glossary/Apple_Safari": { + "modified": "2019-03-23T23:00:07.474Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Columns/Mettre_en_forme_les_colonnes": { - "modified": "2019-07-12T07:43:39.985Z", + "Glossary/application_context": { + "modified": "2019-03-23T22:25:39.268Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "htindon" ] }, - "Web/CSS/CSS_Columns/Répartir_entre_les_colonnes": { - "modified": "2019-04-06T12:53:13.456Z", + "Glossary/Modern_web_apps": { + "modified": "2019-01-17T02:12:55.112Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/CSS_Columns/Utiliser_une_disposition_multi-colonnes": { - "modified": "2019-04-26T04:16:31.564Z", + "Glossary/Information_architecture": { + "modified": "2019-03-23T22:02:39.824Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "louuis", - "Delapouite", - "FredB", - "tregagnon", - "Fredchat", - "BenoitL", - "Mgjbot", - "Jorolo", - "Chbok" + "loella16" ] }, - "Web/CSS/CSS_Conditional_Rules": { - "modified": "2020-10-15T21:44:14.343Z", + "Glossary/Argument": { + "modified": "2019-03-23T23:00:07.319Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16", + "Porkepix", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Conditional_Rules/Utiliser_requêtes_fonctionnalité_(feature_queries)": { - "modified": "2019-11-04T09:09:49.786Z", + "Glossary/ARIA": { + "modified": "2019-03-23T23:00:07.200Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "vanz", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Counter_Styles": { - "modified": "2020-10-15T21:58:13.628Z", + "Glossary/ARPA": { + "modified": "2019-03-23T22:41:59.454Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/CSS_Device_Adaptation": { - "modified": "2020-10-15T21:44:13.646Z", + "Glossary/Arpanet": { + "modified": "2019-03-23T22:41:20.781Z", "contributors": [ - "SphinxKnight", "xdelatour" ] }, - "Web/CSS/CSS_Display": { - "modified": "2020-10-15T21:44:13.926Z", + "Glossary/array": { + "modified": "2019-03-23T23:00:07.104Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16", + "Porkepix", + "Gibus", + "CLEm", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Flexible_Box_Layout": { - "modified": "2019-08-18T10:02:17.518Z", + "Glossary/ASCII": { + "modified": "2019-03-23T22:46:33.759Z", "contributors": [ - "patboens", - "SphinxKnight", - "fscholz" + "loella16", + "Porkepix", + "vanz" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Aligner_des_éléments_dans_un_conteneur_flexible": { - "modified": "2020-05-15T19:19:41.021Z", + "Glossary/Asynchronous": { + "modified": "2019-03-23T22:40:37.762Z", "contributors": [ - "lhapaipai", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web": { - "modified": "2019-03-23T22:29:57.804Z", + "Glossary/ATAG": { + "modified": "2019-03-23T23:00:06.741Z", "contributors": [ - "SphinxKnight" + "loella16", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Cas_utilisation_flexbox": { - "modified": "2019-04-06T12:35:25.205Z", + "Glossary/DOS_attack": { + "modified": "2019-03-23T22:38:58.117Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Concepts_de_base_flexbox": { - "modified": "2019-04-06T12:37:54.531Z", + "Glossary/Attribute": { + "modified": "2019-03-23T23:00:06.975Z", "contributors": [ - "SphinxKnight", - "PolPasop", - "Goofy" + "loella16", + "gharel", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Contrôler_les_proportions_des_boîtes_flexibles_le_long_de_l_axe_principal": { - "modified": "2019-04-06T12:38:05.161Z", + "Glossary/Grid_Axis": { + "modified": "2019-03-23T22:03:10.370Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Liens_entre_flexbox_et_les_autres_dispositions": { - "modified": "2019-04-01T10:49:49.132Z", + "Glossary/Main_Axis": { + "modified": "2019-03-18T21:45:39.916Z", "contributors": [ - "lhapaipai", - "SphinxKnight" + "loella16" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Maîtriser_passage_à_la_ligne_des_éléments_flexibles": { - "modified": "2019-04-06T12:37:23.388Z", + "Glossary/Cross_Axis": { + "modified": "2019-03-18T21:45:47.680Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Mixins": { - "modified": "2019-04-06T12:37:32.698Z", + "Glossary/Tag": { + "modified": "2019-03-23T22:57:07.360Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "pixoux" + "loella16", + "Porkepix", + "GeekShadow" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Ordonner_éléments_flexibles": { - "modified": "2019-04-06T12:35:46.732Z", + "Glossary/Bandwidth": { + "modified": "2019-03-23T22:42:48.033Z", "contributors": [ - "SphinxKnight", - "dattaz" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox": { - "modified": "2019-04-06T12:38:31.267Z", + "Glossary/beacon": { + "modified": "2020-09-25T05:38:18.987Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Flow_Layout": { - "modified": "2019-04-06T12:35:10.609Z", + "Glossary/Bézier_curve": { + "modified": "2020-10-05T03:57:01.254Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Flow_Layout/Dans_le_flux_ou_en_dehors": { - "modified": "2019-04-06T12:34:12.506Z", + "Glossary/BiDi": { + "modified": "2019-03-23T22:41:59.861Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Flow_Layout/Disposition_de_bloc_en_ligne_avec_flux_normal": { - "modified": "2019-08-05T13:45:58.006Z", + "Glossary/BigInt": { + "modified": "2020-09-25T05:47:04.712Z", "contributors": [ - "SphinxKnight", - "edspeedy" + "Voulto" ] }, - "Web/CSS/CSS_Flow_Layout/Disposition_flux_et_dépassement": { - "modified": "2019-04-06T12:34:48.167Z", + "Glossary/Blink": { + "modified": "2019-03-23T22:59:53.173Z", "contributors": [ - "SphinxKnight" + "loella16", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Flow_Layout/Disposition_flux_et_modes_écriture": { - "modified": "2019-04-06T12:34:40.772Z", + "Glossary/Block_cipher_mode_of_operation": { + "modified": "2020-09-25T05:52:15.554Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Flow_Layout/Explications_contextes_formatage": { - "modified": "2019-06-19T08:53:49.103Z", + "Glossary/Boolean": { + "modified": "2019-03-23T22:58:43.329Z", "contributors": [ - "SphinxKnight" + "loella16", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Fonts": { - "modified": "2020-09-29T14:45:42.143Z", + "Glossary/Boot2Gecko": { + "modified": "2019-03-23T22:44:37.220Z", "contributors": [ - "sylozof", - "SphinxKnight", - "xdelatour" + "loella16", + "Bat" ] }, - "Web/CSS/CSS_Fonts/Guide_caractéristiques_police_OpenType": { - "modified": "2019-04-06T12:33:40.801Z", + "Glossary/Bootstrap": { + "modified": "2020-10-08T09:01:42.946Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Fonts/Guide_polices_variables": { - "modified": "2019-08-23T17:50:35.852Z", + "Glossary/Breadcrumb": { + "modified": "2020-09-25T06:01:58.166Z", "contributors": [ - "JNa0", - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Fragmentation": { - "modified": "2019-04-06T12:33:06.910Z", + "Glossary/brotli_compression": { + "modified": "2020-09-25T05:08:06.594Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/CSS_Generated_Content": { - "modified": "2019-04-26T03:48:56.862Z", + "Glossary/Browsing_context": { + "modified": "2020-09-27T07:13:04.450Z", "contributors": [ - "SphinxKnight", + "tomderudder", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout": { - "modified": "2019-05-23T08:33:35.461Z", + "Glossary/Cache": { + "modified": "2019-10-26T12:15:38.533Z", "contributors": [ - "SphinxKnight", - "ferdi_", - "marie-ototoi", - "xdelatour" + "ledenis", + "Othael" ] }, - "Web/CSS/CSS_Grid_Layout/Alignement_des_boîtes_avec_les_grilles_CSS": { - "modified": "2020-05-31T18:37:07.590Z", + "Glossary/cacheable": { + "modified": "2019-03-23T22:03:25.242Z", "contributors": [ - "fesaille", - "SphinxKnight", - "Kalwyn" + "loella16" ] }, - "Web/CSS/CSS_Grid_Layout/Construire_des_dispositions_courantes_avec_des_grilles_CSS": { - "modified": "2020-05-31T18:37:07.771Z", + "Glossary/CalDAV": { + "modified": "2019-03-23T22:42:10.052Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Définir_des_zones_sur_une_grille": { - "modified": "2020-05-31T18:37:07.195Z", + "Glossary/Canvas": { + "modified": "2019-03-23T22:46:31.363Z", "contributors": [ - "SphinxKnight", - "JivaHard" + "loella16", + "vanz" ] }, - "Web/CSS/CSS_Grid_Layout/Les_concepts_de_base": { - "modified": "2020-05-31T18:37:07.467Z", + "Glossary/CardDAV": { + "modified": "2019-03-23T22:42:06.600Z", "contributors": [ - "SphinxKnight", - "Dev-Crea", - "Goofy", - "Halkeand", - "JeffD", - "marec", - "marie-ototoi" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_accessibilité": { - "modified": "2020-05-31T18:37:07.017Z", + "Glossary/CDN": { + "modified": "2019-03-23T22:40:07.356Z", "contributors": [ - "SphinxKnight", - "ldvc", - "Terag" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_et_l_amélioration_progressive": { - "modified": "2020-05-31T18:37:08.537Z", + "Glossary/Grid_Cell": { + "modified": "2019-03-23T22:03:17.867Z", "contributors": [ - "SphinxKnight", - "alexr" + "loella16" ] }, - "Web/CSS/CSS_Grid_Layout/Les_grilles_CSS_les_valeurs_logiques_les_modes_d_écriture": { - "modified": "2020-05-31T18:37:09.641Z", + "Glossary/Digital_certificate": { + "modified": "2019-03-23T22:40:24.230Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Modèle_de_grille_et_autres_modèles_de_disposition": { - "modified": "2020-09-14T10:03:49.856Z", + "Glossary/Certificate_authority": { + "modified": "2019-03-23T22:40:36.402Z", "contributors": [ - "devscipline", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Placement_automatique_sur_une_grille_CSS": { - "modified": "2020-05-31T18:37:07.981Z", + "Glossary/Certified": { + "modified": "2019-03-23T22:40:21.550Z", "contributors": [ - "lhapaipai", - "SphinxKnight", - "mathieuLacroix", - "alexr" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Grid_Layout/Placer_les_éléments_sur_les_lignes_d_une_grille_CSS": { - "modified": "2020-05-31T18:37:09.049Z", + "Glossary/Character": { + "modified": "2019-03-23T22:57:04.701Z", "contributors": [ - "SphinxKnight", - "Alan_Braut" + "loella16", + "Porkepix", + "Lizie" ] }, - "Web/CSS/CSS_Grid_Layout/Subgrid": { - "modified": "2019-11-13T15:40:12.000Z", + "Glossary/Cipher": { + "modified": "2019-03-23T22:32:32.968Z", "contributors": [ - "Loliwe", - "Lo_h", - "SphinxKnight" + "loella16", + "Hell_Carlito", + "sebastien-bartoli" ] }, - "Web/CSS/CSS_Grid_Layout/Utiliser_des_lignes_nommées_sur_une_grille": { - "modified": "2020-05-31T18:37:08.613Z", + "Glossary/Encryption": { + "modified": "2019-03-23T22:39:39.008Z", "contributors": [ - "SphinxKnight" + "loella16", + "SphinxKnight", + "xdelatour" ] }, - "Web/CSS/CSS_Images": { - "modified": "2019-04-06T12:28:36.193Z", + "Glossary/Chrome": { + "modified": "2019-03-23T23:04:30.083Z", "contributors": [ - "SphinxKnight", - "wizAmit", - "xdelatour", - "mrstork" + "loella16", + "Jeremie", + "J.DMB", + "Pierre.Fauconnier", + "oooops" ] }, - "Web/CSS/CSS_Images/Sprites_CSS": { - "modified": "2019-06-03T14:14:53.416Z", + "Glossary/Class": { + "modified": "2019-03-23T22:41:15.262Z", "contributors": [ - "SphinxKnight", - "Horsell", - "JeffD", - "PifyZ" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Lists": { - "modified": "2019-07-12T07:42:40.998Z", + "Glossary/Key": { + "modified": "2019-03-23T22:02:44.687Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/CSS_Lists/Compteurs_CSS": { - "modified": "2019-07-27T03:11:03.371Z", + "Glossary/CMS": { + "modified": "2019-03-23T22:57:05.726Z", "contributors": [ - "SphinxKnight", - "teoli", - "Delapouite", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Lists/Indentation_homogène_des_listes": { - "modified": "2019-04-06T12:56:13.956Z", + "Glossary/character_encoding": { + "modified": "2019-03-23T22:25:41.959Z", "contributors": [ - "SphinxKnight", - "tonybengue", - "Kyodev", - "BenoitL", - "Ferbenoit", - "Laurent Denis" + "loella16", + "Hell_Carlito", + "htindon" ] }, - "Web/CSS/CSS_Logical_Properties": { - "modified": "2019-06-18T19:34:36.043Z", + "Glossary/Codec": { + "modified": "2019-03-23T22:42:11.584Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Logical_Properties/Concepts_de_base": { - "modified": "2019-04-06T12:55:47.785Z", + "Glossary/Grid_Column": { + "modified": "2019-03-23T22:03:13.654Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/CSS_Logical_Properties/Dimensionnement": { - "modified": "2019-04-06T12:54:33.371Z", + "Glossary/Compile": { + "modified": "2019-03-23T22:49:54.371Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "y9mo" ] }, - "Web/CSS/CSS_Logical_Properties/Propriétés_logiques_flottements_positionnement": { - "modified": "2019-06-03T14:16:43.059Z", + "Glossary/lossy_compression": { + "modified": "2020-05-17T20:09:32.712Z", "contributors": [ - "SphinxKnight" + "pauladeville" ] }, - "Web/CSS/CSS_Logical_Properties/Propriétés_logiques_marges_bordures_remplissages": { - "modified": "2019-04-06T12:55:25.631Z", + "Glossary/Lossless_compression": { + "modified": "2020-11-10T04:48:58.531Z", "contributors": [ - "SphinxKnight" + "Voulto", + "pauladeville" ] }, - "Web/CSS/CSS_Masks": { - "modified": "2019-04-27T13:46:10.634Z", + "Glossary/Computer_Programming": { + "modified": "2019-03-23T22:42:04.675Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Miscellaneous": { - "modified": "2019-04-06T12:54:16.767Z", + "Glossary/Digest": { + "modified": "2019-03-23T22:39:24.362Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Namespaces": { - "modified": "2020-10-15T21:44:29.065Z", + "Glossary/Conditional": { + "modified": "2019-03-23T22:40:22.363Z", "contributors": [ - "SphinxKnight", + "loella16", + "Porkepix", "xdelatour" ] }, - "Web/CSS/CSS_Overflow": { - "modified": "2019-11-04T14:40:28.794Z", + "Glossary/Constant": { + "modified": "2019-03-23T22:42:08.752Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Pages": { - "modified": "2019-04-06T12:52:06.180Z", + "Glossary/Constructor": { + "modified": "2019-03-23T22:40:24.326Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Positioning": { - "modified": "2019-04-06T12:51:56.824Z", + "Glossary/Stacking_context": { + "modified": "2019-03-18T21:45:45.716Z", "contributors": [ - "SphinxKnight", - "younes-14", - "xdelatour" + "loella16" ] }, - "Web/CSS/CSS_Properties_Reference": { - "modified": "2019-04-06T12:50:15.870Z", + "Glossary/Type_Conversion": { + "modified": "2019-03-23T22:41:51.598Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Ruby": { - "modified": "2019-04-26T04:17:25.189Z", + "Glossary/Cookie": { + "modified": "2019-03-23T22:40:01.278Z", "contributors": [ - "SphinxKnight" + "Porkepix", + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Scroll_Snap": { - "modified": "2020-12-06T20:57:49.980Z", + "Glossary/Copyleft": { + "modified": "2019-03-23T22:38:55.191Z", "contributors": [ - "Rik", - "giloop", - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/CSS_Scroll_Snap/Compatibilité_navigateurs": { - "modified": "2019-07-21T13:28:24.043Z", + "Glossary/CORS": { + "modified": "2019-03-23T22:40:00.673Z", "contributors": [ - "SphinxKnight" + "loella16", + "Yves_ASTIER", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/CSS_Scroll_Snap/Concepts_de_base": { - "modified": "2019-06-18T19:40:17.355Z", + "Glossary/CRLF": { + "modified": "2019-03-23T22:39:56.107Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/CSS_Scroll_Snap_Points": { - "modified": "2019-04-26T04:18:54.788Z", + "Glossary/Cross-site_scripting": { + "modified": "2020-09-04T02:51:19.273Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "jooo.market", + "loella16" ] }, - "Web/CSS/CSS_Scrollbars": { - "modified": "2020-10-15T22:10:56.124Z", + "Glossary/CRUD": { + "modified": "2019-03-23T22:56:57.160Z", "contributors": [ - "tristantheb", - "SphinxKnight" + "loella16", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/CSS_Shapes": { - "modified": "2019-04-26T04:23:36.000Z", + "Glossary/Cryptanalysis": { + "modified": "2019-03-23T22:39:19.630Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Shapes/Aperçu_formes_CSS": { - "modified": "2019-04-06T12:48:50.622Z", + "Glossary/Ciphertext": { + "modified": "2019-03-23T22:53:37.701Z", "contributors": [ + "loella16", + "Goofy", "SphinxKnight" ] }, - "Web/CSS/CSS_Shapes/Créer_formes_boîtes": { - "modified": "2019-04-06T13:09:43.597Z", + "Glossary/Cryptography": { + "modified": "2019-03-23T22:39:19.721Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Shapes/Formes_simples": { - "modified": "2019-04-06T12:49:01.114Z", + "Glossary/CSP": { + "modified": "2020-12-12T07:41:44.720Z", "contributors": [ - "SphinxKnight" + "JNa0", + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Shapes/Générer_formes_images": { - "modified": "2019-04-06T12:48:32.877Z", + "Glossary/CSRF": { + "modified": "2019-03-23T22:39:14.118Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/CSS_Table": { - "modified": "2019-04-06T12:48:15.509Z", + "Glossary/CSS": { + "modified": "2020-05-24T07:09:43.791Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "tristantheb", + "loella16", + "tonybengue", + "arlequin", + "interfacteur", + "ysabelm", + "Porkepix", + "marie-ototoi", + "magikmanu", + "Jeremie", + "Goofy", + "htindon" ] }, - "Web/CSS/CSS_Text": { - "modified": "2019-04-06T12:48:00.980Z", + "Glossary/caret": { + "modified": "2019-03-18T21:45:34.459Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/CSS_Text_Decoration": { - "modified": "2019-04-06T13:10:17.701Z", + "Glossary/Decryption": { + "modified": "2019-03-23T22:39:22.127Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/CSS_Transforms": { - "modified": "2019-04-06T13:09:54.986Z", + "Glossary/challenge": { + "modified": "2019-03-23T22:03:29.414Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "teoli" + "loella16" ] }, - "Web/CSS/CSS_Transforms/Utilisation_des_transformations_CSS": { - "modified": "2019-08-23T07:06:08.586Z", + "Glossary/Delta": { + "modified": "2020-10-08T09:27:37.753Z", "contributors": [ - "Flaburgan", - "SphinxKnight", - "edspeedy", - "fscholz", - "teoli", - "Delapouite", - "FredB", - "BenoitL" + "Voulto" ] }, - "Web/CSS/CSS_Transitions": { - "modified": "2019-04-06T13:10:27.488Z", + "Glossary/Distributed_Denial_of_Service": { + "modified": "2019-03-23T22:03:22.826Z", "contributors": [ - "SphinxKnight", - "Gibus", - "amdufour" + "loella16" ] }, - "Web/CSS/CSS_Transitions/Utiliser_transitions_CSS": { - "modified": "2019-09-12T15:19:25.668Z", + "Glossary/Denial_of_Service": { + "modified": "2019-01-16T22:13:09.374Z", "contributors": [ - "SphinxKnight", - "Nantosuelte", - "Louis-MarieMatthews", - "lotfire24", - "amdufour" + "xdelatour" ] }, - "Web/CSS/CSS_Variables": { - "modified": "2019-04-06T12:40:29.577Z", + "Glossary/Repo": { + "modified": "2019-03-18T21:15:47.756Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/CSS_Writing_Modes": { - "modified": "2019-04-06T13:11:34.329Z", + "Glossary/Descriptor_(CSS)": { + "modified": "2019-03-23T22:03:25.810Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/CSS_questions_frequentes": { - "modified": "2020-07-16T22:25:44.957Z", + "Glossary/Deserialization": { + "modified": "2019-03-23T22:03:27.594Z", "contributors": [ - "SphinxKnight", - "PetiPandaRou", - "MatthieuHa", - "teoli", - "laurent-thuy" + "loella16" ] }, - "Web/CSS/Combinateur_colonne": { - "modified": "2020-10-15T22:10:06.707Z", + "Glossary/Session_Hijacking": { + "modified": "2019-05-23T08:47:32.401Z", "contributors": [ - "SphinxKnight", - "ExE-Boss" + "Watilin", + "loella16" ] }, - "Web/CSS/Combinateur_de_voisin_direct": { - "modified": "2020-10-15T21:46:19.453Z", + "Glossary/Developer_Tools": { + "modified": "2019-03-23T22:03:22.936Z", "contributors": [ - "SphinxKnight", - "builgui", - "ffoodd" + "loella16" ] }, - "Web/CSS/Comments": { - "modified": "2019-04-06T13:14:39.069Z", + "Glossary/CIA": { + "modified": "2019-03-23T22:39:55.578Z", "contributors": [ - "SphinxKnight", - "juliemoynat", - "teoli", - "FredB", - "tregagnon", - "ThePrisoner" + "xdelatour" ] }, - "Web/CSS/Compartimentation_CSS": { - "modified": "2019-11-04T14:25:26.741Z", + "Glossary/Navigation_directive": { + "modified": "2019-03-23T22:03:14.851Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Compositing_and_Blending": { - "modified": "2020-10-15T22:02:46.274Z", + "Glossary/Reporting_directive": { + "modified": "2019-03-23T22:03:09.311Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Comprendre_z-index": { - "modified": "2020-05-31T18:36:39.203Z", + "Glossary/Fetch_directive": { + "modified": "2019-03-23T22:03:13.368Z", "contributors": [ - "SphinxKnight", - "mo0z", - "Serrulien", - "teoli", - "tregagnon", - "BenoitL", - "Lapinkiller", - "Fredchat" + "loella16" ] }, - "Web/CSS/Comprendre_z-index/Ajout_de_z-index": { - "modified": "2020-05-31T18:36:38.468Z", + "Glossary/DMZ": { + "modified": "2019-03-23T22:03:28.627Z", "contributors": [ - "SphinxKnight", - "christophe-petitjean", - "mo0z", - "Serrulien", - "teoli", - "tregagnon", - "BenoitL", - "Fredchat" + "loella16", + "macmorning" ] }, - "Web/CSS/Comprendre_z-index/Empilement_de_couches": { - "modified": "2020-05-31T18:36:40.196Z", + "Glossary/DNS": { + "modified": "2019-03-23T22:56:52.127Z", "contributors": [ - "v-Stein", - "SphinxKnight", - "teoli", - "tregagnon", - "BenoitL", - "Fredchat" + "loella16", + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/Comprendre_z-index/Empilement_et_float": { - "modified": "2020-05-31T18:36:35.517Z", + "Glossary/Doctype": { + "modified": "2019-03-23T23:06:03.805Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "teoli", - "tregagnon", - "BenoitL", - "Lapinkiller", - "Fredchat" + "loella16", + "Jeremie", + "Dexter_Deter" ] }, - "Web/CSS/Comprendre_z-index/Empilement_sans_z-index": { - "modified": "2020-05-31T18:36:35.932Z", + "Glossary/Document_directive": { + "modified": "2019-03-23T22:03:22.186Z", "contributors": [ - "SphinxKnight", - "teoli", - "invitetheweb", - "tregagnon", - "BenoitL", - "Fredchat" + "Porkepix", + "loella16" ] }, - "Web/CSS/Comprendre_z-index/Exemple_1": { - "modified": "2020-05-31T18:36:35.214Z", + "Glossary/DOM": { + "modified": "2019-03-23T22:57:17.449Z", "contributors": [ - "maximesanmartin", - "SphinxKnight", - "teoli", - "tregagnon", - "BenoitL", - "Fredchat" + "loella16", + "davidgourde", + "vanz", + "Goofy", + "htindon" ] }, - "Web/CSS/Comprendre_z-index/Exemple_2": { - "modified": "2020-05-31T18:36:34.925Z", + "Glossary/Second-level_Domain": { + "modified": "2019-01-16T21:52:29.757Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "webskin", - "BenoitL", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/Comprendre_z-index/Exemple_3": { - "modified": "2020-05-31T18:36:35.162Z", + "Glossary/Domain": { + "modified": "2019-03-23T22:32:24.113Z", "contributors": [ - "maximesanmartin", - "SphinxKnight", - "teoli", - "tregagnon", - "BenoitL", - "Fredchat" + "loella16", + "Hell_Carlito", + "htindon" ] }, - "Web/CSS/Concepts_viewport": { - "modified": "2019-05-23T08:44:33.152Z", + "Glossary/Dominator": { + "modified": "2019-03-23T22:03:21.288Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Contexte_de_formatage_en_ligne": { - "modified": "2019-11-05T09:02:18.660Z", + "Glossary/DTMF": { + "modified": "2019-03-23T22:03:28.745Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Couleurs_CSS": { - "modified": "2019-03-23T22:48:09.885Z", + "Glossary/ECMA": { + "modified": "2019-03-23T22:46:33.851Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli" + "loella16", + "Porkepix", + "vanz" ] }, - "Web/CSS/Couleurs_CSS/Sélecteur_de_couleurs": { - "modified": "2019-03-23T23:09:13.209Z", + "Glossary/ECMAScript": { + "modified": "2019-03-23T22:42:01.993Z", "contributors": [ - "YannisDelmas", - "SphinxKnight", - "Fabien_Hanquet" + "xdelatour" ] }, - "Web/CSS/Extensions_CSS_Microsoft": { - "modified": "2019-04-06T13:12:03.310Z", + "Glossary/Empty_element": { + "modified": "2019-03-23T22:58:49.655Z", "contributors": [ - "SphinxKnight" + "loella16", + "cdr" ] }, - "Web/CSS/Extensions_Mozilla": { - "modified": "2019-04-06T13:09:25.625Z", + "Glossary/Element": { + "modified": "2019-03-18T21:38:38.555Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "Ilphrin", - "louuis", - "teoli", - "Fredchat", - "Goofy" + "AurelieBayre", + "gnoyaze" ] }, - "Web/CSS/Feuilles_de_style_alternatives": { - "modified": "2019-04-06T12:15:36.750Z", + "Glossary/Script-supporting_element": { + "modified": "2019-03-18T21:46:41.808Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "BenoitL" + "loella16" ] }, - "Web/CSS/Filter_Effects": { - "modified": "2020-10-15T21:58:36.661Z", + "Glossary/Simple_response_header": { + "modified": "2019-03-18T21:45:55.399Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Filters_Effects": { - "modified": "2019-03-23T22:35:55.917Z", + "Glossary/Request_header": { + "modified": "2019-03-18T21:46:42.307Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/Héritage": { - "modified": "2019-04-06T13:06:49.569Z", + "Glossary/Entity_header": { + "modified": "2019-03-23T22:12:49.956Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16", + "Badacadabra" ] }, - "Web/CSS/Image-rendering": { - "modified": "2020-10-15T21:19:37.197Z", + "Glossary/Simple_header": { + "modified": "2019-03-18T21:45:54.235Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "piouPiouM", - "teoli", - "FredB", - "DavidWalsh" + "loella16" ] }, - "Web/CSS/Implémentation_des_Brouillons_CSS": { - "modified": "2019-04-06T13:16:07.903Z", + "Glossary/Head": { + "modified": "2019-03-23T22:39:01.787Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/Index": { - "modified": "2019-04-06T13:12:11.177Z", + "Glossary/Response_header": { + "modified": "2019-03-18T21:46:41.952Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/Jeux_de_caractères_CSS": { - "modified": "2020-10-15T21:44:09.549Z", + "Glossary/Encapsulation": { + "modified": "2019-03-23T22:41:15.348Z", "contributors": [ - "SphinxKnight", + "loella16", "xdelatour" ] }, - "Web/CSS/Layout_cookbook": { - "modified": "2019-04-06T12:59:27.445Z", + "Glossary/Endianness": { + "modified": "2019-03-23T22:39:43.705Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills" + "warpdesign", + "loella16", + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Bas_de_page_adhérant": { - "modified": "2020-10-15T22:10:28.813Z", + "Glossary/Engine": { + "modified": "2019-03-23T22:42:14.243Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Carte": { - "modified": "2020-10-15T22:10:32.076Z", + "Glossary/Entity": { + "modified": "2019-03-23T22:42:04.087Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Centrer_un_element": { - "modified": "2020-10-15T22:10:07.676Z", + "Glossary/document_environment": { + "modified": "2019-03-18T21:45:35.460Z", "contributors": [ - "SphinxKnight", - "jaouedjackson", - "mouffy" + "loella16" ] }, - "Web/CSS/Layout_cookbook/Contribuer_à_une_recette": { - "modified": "2019-04-06T12:58:12.249Z", + "Glossary/event": { + "modified": "2019-03-23T22:03:33.571Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills" + "loella16" ] }, - "Web/CSS/Layout_cookbook/Contribuer_à_une_recette/Cookbook_template": { - "modified": "2020-10-15T22:10:21.166Z", + "Glossary/Exception": { + "modified": "2019-03-23T22:49:59.707Z", "contributors": [ - "SphinxKnight" + "loella16", + "Gibus", + "y9mo" ] }, - "Web/CSS/Layout_cookbook/Disposition_en_colonnes": { - "modified": "2020-10-15T22:10:25.136Z", + "Glossary/Expando": { + "modified": "2019-03-23T22:41:24.942Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Grid_wrapper": { - "modified": "2020-10-15T22:11:37.851Z", + "Glossary/ISP": { + "modified": "2019-03-23T22:41:15.640Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Liste_groupes_avec_indicateurs": { - "modified": "2020-10-15T22:10:18.617Z", + "Glossary/Falsy": { + "modified": "2019-03-23T22:24:34.255Z", "contributors": [ - "SphinxKnight" + "forresst", + "loella16", + "myrmecia" ] }, - "Web/CSS/Layout_cookbook/Media_objects": { - "modified": "2020-10-15T22:10:31.768Z", + "Glossary/Favicon": { + "modified": "2020-10-08T10:43:13.038Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/Layout_cookbook/Navigation_Breadcrumb": { - "modified": "2020-10-15T22:10:26.639Z", + "Glossary/Closure": { + "modified": "2019-03-23T22:38:51.275Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Layout_cookbook/Navigation_segmentée": { - "modified": "2020-10-15T22:10:27.669Z", + "Glossary/Firefox_OS": { + "modified": "2019-03-23T23:08:04.734Z", "contributors": [ - "SphinxKnight" + "loella16", + "Jeremie", + "genma" ] }, - "Web/CSS/Layout_cookbook/Pagination": { - "modified": "2020-10-15T22:10:27.609Z", + "Glossary/First_contentful_paint": { + "modified": "2020-11-10T08:21:34.381Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/Liste_de_Fonctionnalités_CSS_Propriétaires": { - "modified": "2019-04-06T13:18:27.677Z", + "Glossary/first_meaningful_paint": { + "modified": "2020-11-10T08:20:23.558Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "Voulto" ] }, - "Web/CSS/Liste_propriétés_CSS_animées": { - "modified": "2019-04-06T12:15:29.279Z", + "Glossary/Flex_Container": { + "modified": "2019-03-18T21:45:56.489Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "tregagnon" + "loella16" ] }, - "Web/CSS/Mode_de_mise_en_page": { - "modified": "2019-04-06T13:12:21.356Z", + "Glossary/Flex_Item": { + "modified": "2019-03-18T21:45:50.759Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/Modèle_de_boîte_CSS": { - "modified": "2019-04-06T12:12:44.675Z", + "Glossary/Flex": { + "modified": "2019-03-18T21:45:53.322Z", "contributors": [ - "SphinxKnight", - "teoli" + "loella16" ] }, - "Web/CSS/Modèle_de_boîte_CSS/Fusion_des_marges": { - "modified": "2019-07-21T06:30:38.788Z", + "Glossary/Flexbox": { + "modified": "2019-03-18T21:45:59.605Z", "contributors": [ - "SphinxKnight", - "gcyrillus", - "fscholz", - "teoli", - "FredB", - "Elethiomel", - "Worms", - "Fredchat", - "Kyodev" + "loella16" ] }, - "Web/CSS/Modèle_de_boîte_CSS/Générateur_box-shadow": { - "modified": "2019-03-18T20:43:43.479Z", + "Glossary/Self-Executing_Anonymous_Function": { + "modified": "2019-03-18T21:27:08.446Z", "contributors": [ - "BychekRU", - "SphinxKnight", - "kiux" + "Porkepix" ] }, - "Web/CSS/Modèle_de_mise_en_forme_visuelle": { - "modified": "2020-09-14T06:31:27.412Z", + "Glossary/Cryptographic_hash_function": { + "modified": "2019-03-23T22:39:21.209Z", "contributors": [ - "devscipline", - "echayotte", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Motion_Path": { - "modified": "2020-10-15T21:47:42.306Z", + "Glossary/First-class_Function": { + "modified": "2019-03-23T22:03:09.220Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Média_paginés": { - "modified": "2019-04-06T13:19:25.688Z", + "Glossary/Callback_function": { + "modified": "2019-10-23T02:51:28.575Z", "contributors": [ "SphinxKnight", - "xdelatour" + "loella16" ] }, - "Web/CSS/Outils": { - "modified": "2019-04-06T13:47:45.843Z", + "Glossary/Function": { + "modified": "2019-03-23T22:57:15.355Z", "contributors": [ - "SphinxKnight", - "velvel53" + "loella16", + "Goofy", + "htindon" ] }, - "Web/CSS/Outils/Générateur_de_courbe_de_Bézier": { - "modified": "2019-04-06T13:46:55.571Z", + "Glossary/Forbidden_header_name": { + "modified": "2019-03-23T22:03:08.442Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix" ] }, - "Web/CSS/Outils/Générateur_de_dégradés_linéaires": { - "modified": "2019-04-06T13:48:01.466Z", + "Glossary/Forbidden_response_header_name": { + "modified": "2019-03-23T22:03:07.354Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Propriétés_raccourcies": { - "modified": "2020-07-28T11:04:21.446Z", + "Glossary/Fork": { + "modified": "2019-10-16T12:26:16.525Z", "contributors": [ - "Yevgeniy.Shumakov", - "SphinxKnight", - "Banban", - "teoli", - "FredB" + "Mozinet", + "hellosct1" ] }, - "Web/CSS/Pseudo-classes": { - "modified": "2019-11-12T05:33:01.534Z", + "Glossary/FTP": { + "modified": "2019-03-23T22:57:02.956Z", "contributors": [ - "Totokoutonio", - "SphinxKnight", - "bgaude", - "teoli", + "loella16", "Goofy", - "louuis", - "FredB", - "tregagnon" + "Toumitoun" ] }, - "Web/CSS/Pseudo-éléments": { - "modified": "2019-11-12T05:40:37.053Z", + "Glossary/FTU": { + "modified": "2019-03-23T22:39:47.645Z", "contributors": [ - "Totokoutonio", - "SphinxKnight", - "teoli", - "wakka27", - "Delapouite", - "FredB", - "tregagnon" + "xdelatour" ] }, - "Web/CSS/Redimensionnement_arrière-plans_SVG": { - "modified": "2020-06-14T04:32:11.030Z", + "Glossary/Gaia": { + "modified": "2019-03-23T22:42:05.161Z", "contributors": [ - "yanns1", - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/Reference": { - "modified": "2019-10-28T09:11:58.317Z", + "Glossary/Gecko": { + "modified": "2019-03-23T22:42:01.710Z", "contributors": [ - "SphinxKnight", - "Camrifof", - "eiro", - "verdy_p", - "JNa0", - "PolariTOON", - "unsteadyCode", - "BEHOUBA", - "tonybengue", - "Oliviermoz", - "challet", - "teoli", - "thenew", - "Fredchat", - "wakka27", - "tregagnon", - "FredB", - "jackblack", - "Jeremie", - "openjck", - "groovecoder", - "ThePrisoner", - "BenoitL", - "Mgjbot", - "Nathymig" + "loella16", + "xdelatour" ] }, - "Web/CSS/Requêtes_média": { - "modified": "2019-06-03T14:19:49.928Z", + "Glossary/General_header": { + "modified": "2019-03-23T22:17:50.134Z", "contributors": [ - "SphinxKnight", - "zakaila" + "loella16", + "Posey1235" ] }, - "Web/CSS/Requêtes_média/Tester_les_media_queries": { - "modified": "2020-10-15T21:48:31.789Z", + "Glossary/gif": { + "modified": "2019-03-23T22:42:12.743Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/Requêtes_média/Utilisation_requêtes_media_accessibilité": { - "modified": "2019-04-06T13:18:57.827Z", + "Glossary/GIJ": { + "modified": "2019-01-16T21:52:08.705Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/Requêtes_média/Utiliser_les_Media_queries": { - "modified": "2020-09-12T11:51:58.821Z", + "Glossary/Git": { + "modified": "2019-03-23T22:56:56.750Z", "contributors": [ - "kgrandemange", - "tzilliox", - "SphinxKnight", - "JNa0", - "JeffD", - "Sebastianz", - "mrstork", - "malayaleecoder", - "adevoufera", - "teoli", - "wakka27", - "infogenious", - "tregagnon", - "FredB", - "BenoitL" + "loella16", + "Gibus", + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/Règles_@": { - "modified": "2019-04-06T12:15:09.052Z", + "Glossary/Glyph": { + "modified": "2019-08-25T18:38:32.909Z", "contributors": [ - "SphinxKnight", - "LudoL", - "loella16", - "brikou", - "vvvaleee", - "Chealer", - "teoli", - "naar", - "FredB" + "Pols12" ] }, - "Web/CSS/Selector_list": { - "modified": "2020-10-15T22:24:05.333Z", + "Glossary/Gonk": { + "modified": "2019-03-23T22:41:40.903Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/Syntaxe_de_définition_des_valeurs": { - "modified": "2019-04-06T13:47:19.541Z", + "Glossary/Google_Chrome": { + "modified": "2019-03-23T22:41:41.934Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "Guillaume-Heras", - "prayash", - "pixoux", - "teoli", - "FredB" + "xdelatour" ] }, - "Web/CSS/Sélecteurs_CSS": { - "modified": "2019-10-31T07:53:06.500Z", + "Glossary/GPL": { + "modified": "2019-03-23T22:41:39.440Z", "contributors": [ - "bdrnglm", - "SphinxKnight", - "a-mt", - "cabscorp", - "edspeedy", - "TiWisti", - "daisyback", - "personnel", - "Sebastianz" + "xdelatour" ] }, - "Web/CSS/Sélecteurs_CSS/Comparison_with_XPath": { - "modified": "2019-03-18T21:23:27.990Z", + "Glossary/GPU": { + "modified": "2019-01-17T00:05:22.673Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/Sélecteurs_CSS/Utiliser_la_pseudo-classe_:target_dans_un_selecteur": { - "modified": "2019-04-06T13:14:05.671Z", + "Glossary/Graceful_degradation": { + "modified": "2019-03-23T22:03:22.370Z", "contributors": [ - "SphinxKnight", - "ffoodd" + "loella16" ] }, - "Web/CSS/Sélecteurs_d_ID": { - "modified": "2020-10-15T21:04:23.373Z", + "Glossary/Grid_Container": { + "modified": "2019-03-30T11:19:32.680Z", "contributors": [ - "SphinxKnight", - "teoli", - "louuis", - "FredB", - "tregagnon" + "kaderamrichat" ] }, - "Web/CSS/Sélecteurs_d_attribut": { - "modified": "2020-10-15T21:04:28.909Z", + "Glossary/Grid": { + "modified": "2019-03-23T22:03:08.561Z", "contributors": [ - "SphinxKnight", - "BenMorel", - "fuentesloic", - "teoli", - "tregagnon", - "FredB" + "loella16" ] }, - "Web/CSS/Sélecteurs_de_classe": { - "modified": "2020-10-15T21:04:22.803Z", + "Glossary/Guard": { + "modified": "2019-01-17T02:08:05.574Z", "contributors": [ - "SphinxKnight", - "teoli", - "goofy_bz", - "FredB" + "loella16" ] }, - "Web/CSS/Sélecteurs_de_type": { - "modified": "2020-10-15T21:04:24.242Z", + "Glossary/Gutters": { + "modified": "2019-03-23T22:02:47.196Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/Sélecteurs_de_voisins_généraux": { - "modified": "2020-10-15T21:04:26.332Z", + "Glossary/GZip_compression": { + "modified": "2019-03-23T22:03:21.908Z", "contributors": [ - "BrnvrlUoeey", - "SphinxKnight", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/Sélecteurs_descendant": { - "modified": "2020-10-15T21:04:29.156Z", + "Glossary/hash": { + "modified": "2019-03-23T22:39:11.400Z", "contributors": [ - "SphinxKnight", - "eloi-duwer", - "yannicka", - "teoli", - "FredB" + "loella16", + "xdelatour" ] }, - "Web/CSS/Sélecteurs_enfant": { - "modified": "2020-10-15T21:04:28.522Z", + "Glossary/HTTP_header": { + "modified": "2019-03-23T22:13:03.478Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "tregagnon" + "loella16", + "luccioman" ] }, - "Web/CSS/Sélecteurs_universels": { - "modified": "2020-10-15T21:04:25.083Z", + "Glossary/Inheritance": { + "modified": "2019-03-18T21:15:48.792Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB" + "loella16", + "xdelatour" ] }, - "Web/CSS/Tutorials": { - "modified": "2019-04-06T13:11:04.601Z", + "Glossary/HMAC": { + "modified": "2019-03-23T22:02:44.595Z", "contributors": [ - "SphinxKnight", - "Oliviermoz", - "teoli", - "Axel_Viala" + "loella16" ] }, - "Web/CSS/Type_color": { - "modified": "2020-10-15T21:15:21.928Z", + "Glossary/Hoisting": { + "modified": "2019-03-23T22:32:08.449Z", "contributors": [ - "SphinxKnight", - "benoitdubuc", - "cdoublev", - "Simplexible", - "fscholz", - "teoli", - "louuis", - "FredB", - "BenoitL" + "NemoNobobyPersonne", + "loella16", + "latour4", + "ericnsh", + "ylerjen" ] }, - "Web/CSS/Type_position": { - "modified": "2020-10-15T21:46:27.417Z", + "Glossary/Host": { + "modified": "2019-03-23T22:42:04.779Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/Types_CSS": { - "modified": "2019-07-12T07:45:36.764Z", + "Glossary/Hotlink": { + "modified": "2019-03-23T22:02:45.441Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/Using_CSS_custom_properties": { - "modified": "2020-10-15T21:44:45.745Z", + "Glossary/Houdini": { + "modified": "2020-09-25T06:35:50.044Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "autodidactie", - "edspeedy", - "OhNiice" + "Voulto" ] }, - "Web/CSS/Utilisation_de_dégradés_CSS": { - "modified": "2019-09-12T16:42:50.201Z", + "Glossary/HPKP": { + "modified": "2019-03-23T22:02:44.491Z", "contributors": [ - "SphinxKnight", - "Darkilen", - "3dos", - "wizAmit", - "slayslot", - "teoli", - "wakka27", - "FredB", - "julienw", - "floEdelmann", - "BenoitL" + "loella16" ] }, - "Web/CSS/Valeur_calculée": { - "modified": "2019-07-12T07:46:01.465Z", - "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "Glossary/HSTS": { + "modified": "2019-03-23T22:17:04.593Z", + "contributors": [ + "loella16", + "David-5-1", + "Porkepix" ] }, - "Web/CSS/Valeur_initiale": { - "modified": "2019-04-06T13:12:40.534Z", + "Glossary/HTML": { + "modified": "2020-02-08T12:46:36.790Z", "contributors": [ + "tristantheb", + "Porkepix", "SphinxKnight", - "teoli", - "louuis", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "Brahim-Tb", + "AbdelElMansari", + "Watilin", + "louisgrasset", + "loella16", + "marie-ototoi", + "xdelatour" ] }, - "Web/CSS/Valeur_spécifiée": { - "modified": "2019-07-12T07:46:53.914Z", + "Glossary/HTML5": { + "modified": "2019-03-23T22:42:01.476Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "FredB" + "Mozinet", + "Goofy", + "xdelatour" ] }, - "Web/CSS/Valeur_utilisée": { - "modified": "2019-07-12T07:47:30.131Z", + "Glossary/HTTP_2": { + "modified": "2020-02-23T18:12:20.047Z", "contributors": [ - "SphinxKnight", - "Golga", - "vava", - "teoli", - "FredB" + "tristantheb" ] }, - "Web/CSS/Valeurs_et_unités_CSS": { - "modified": "2019-04-06T13:14:19.030Z", + "Glossary/HTTP_3": { + "modified": "2020-10-08T10:15:56.390Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/WebKit_Extensions": { - "modified": "2019-10-07T02:42:25.089Z", + "Glossary/HTTP": { + "modified": "2019-12-04T16:30:35.039Z", "contributors": [ - "Lo_h", - "SphinxKnight", - "ExE-Boss", + "Porkepix", + "marcpicaud", + "loella16", + "marie-ototoi", + "Jeremie", "Goofy", - "louuis" + "htindon" ] }, - "Web/CSS/align-content": { - "modified": "2020-10-15T21:30:37.361Z", + "Glossary/https": { + "modified": "2019-03-23T22:41:38.751Z", "contributors": [ "SphinxKnight", - "teoli", - "JackNUMBER", - "fscholz", - "Sebastianz", - "Goofy", - "Dexter_Deter" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/align-items": { - "modified": "2020-10-15T21:39:37.167Z", + "Glossary/Hyperlink": { + "modified": "2019-03-18T21:43:54.235Z", "contributors": [ - "SphinxKnight", - "rolf39" + "loella16" ] }, - "Web/CSS/align-self": { - "modified": "2020-10-15T21:45:37.829Z", + "Glossary/Hypertext": { + "modified": "2019-03-23T22:42:03.435Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/all": { - "modified": "2020-10-15T21:45:31.166Z", + "Glossary/I18N": { + "modified": "2019-03-23T22:41:26.912Z", "contributors": [ - "SphinxKnight" + "Goofy", + "xdelatour" ] }, - "Web/CSS/alpha-value": { - "modified": "2019-10-29T08:59:32.213Z", + "Glossary/IANA": { + "modified": "2019-03-23T22:42:02.685Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/angle": { - "modified": "2020-10-15T21:08:35.880Z", + "Glossary/ICANN": { + "modified": "2019-03-23T22:41:20.475Z", "contributors": [ - "SphinxKnight", - "dxsp", - "Sebastianz", - "Prinz_Rana", - "fscholz", - "teoli", - "FredB", - "tregagnon" + "loella16", + "xdelatour" ] }, - "Web/CSS/angle-percentage": { - "modified": "2020-10-15T22:14:23.636Z", + "Glossary/ICE": { + "modified": "2019-03-18T21:15:41.890Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/animation": { - "modified": "2020-10-15T21:08:29.411Z", + "Glossary/IDE": { + "modified": "2019-03-23T22:42:01.895Z", "contributors": [ - "SphinxKnight", - "mrstork", - "teoli", - "Sebastianz", - "gudoy", - "tregagnon", - "Delapouite", - "FredB", - "trevorh" + "xdelatour" ] }, - "Web/CSS/animation-delay": { - "modified": "2020-10-15T21:08:26.081Z", + "Glossary/Idempotent": { + "modified": "2019-03-23T22:02:43.812Z", "contributors": [ "SphinxKnight", - "Mr21", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "loella16" ] }, - "Web/CSS/animation-direction": { - "modified": "2020-10-15T21:04:49.473Z", + "Glossary/Identifier": { + "modified": "2019-03-23T22:41:09.348Z", "contributors": [ + "loella16", "SphinxKnight", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "xdelatour" ] }, - "Web/CSS/animation-duration": { - "modified": "2020-10-15T21:09:29.304Z", + "Glossary/IDL": { + "modified": "2019-03-23T22:40:46.124Z", "contributors": [ - "lhapaipai", - "SphinxKnight", - "teoli", - "Sebastianz", - "FredB" + "xdelatour" ] }, - "Web/CSS/animation-fill-mode": { - "modified": "2020-10-15T21:08:35.038Z", + "Glossary/IETF": { + "modified": "2019-03-23T22:41:14.969Z", "contributors": [ - "SphinxKnight", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/animation-iteration-count": { - "modified": "2020-10-15T21:08:37.214Z", + "Glossary/IIFE": { + "modified": "2019-03-23T22:40:31.554Z", "contributors": [ - "lhapaipai", - "SphinxKnight", - "verdy_p", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "loella16", + "xdelatour" ] }, - "Web/CSS/animation-name": { - "modified": "2020-10-15T21:08:32.798Z", + "Glossary/Raster_image": { + "modified": "2019-03-18T21:46:42.119Z", "contributors": [ - "SphinxKnight", - "Ramzi2892", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "loella16" ] }, - "Web/CSS/animation-play-state": { - "modified": "2020-10-15T21:08:35.700Z", + "Glossary/IMAP": { + "modified": "2019-03-23T22:40:46.212Z", "contributors": [ - "SphinxKnight", - "ThreadElric", - "teoli", - "Sebastianz", - "FredB", - "tregagnon" + "loella16", + "xdelatour" ] }, - "Web/CSS/animation-timing-function": { - "modified": "2020-10-15T21:08:36.973Z", + "Glossary/Immutable": { + "modified": "2019-03-23T22:40:36.312Z", "contributors": [ - "SphinxKnight", - "mrstork", - "teoli", - "Sebastianz", - "coets", - "FredB", - "tregagnon" + "loella16", + "xdelatour" ] }, - "Web/CSS/appearance": { - "modified": "2020-10-15T21:15:48.651Z", + "Glossary": { + "modified": "2020-10-11T04:48:06.317Z", "contributors": [ - "escattone", + "peterbe", "SphinxKnight", - "ExE-Boss", "wbamberg", - "AymDev", - "teoli", - "wakka27", - "ksad", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "floustier", + "loella16", + "Jeremie", + "Macadam" ] }, - "Web/CSS/attr()": { - "modified": "2020-11-04T08:51:39.350Z", + "Glossary/Index": { + "modified": "2019-01-16T21:55:44.075Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "mrstork", - "prayash", - "enogael", - "teoli", - "tregagnon", - "FredB", - "matteodelabre", - "philippe97" + "xdelatour" ] }, - "Web/CSS/auto": { - "modified": "2019-03-24T00:14:22.694Z", + "Glossary/IndexedDB": { + "modified": "2019-03-23T22:46:35.134Z", "contributors": [ - "goofy_bz", - "louuis", - "teoli", - "FredB", - "tregagnon", - "ThePrisoner" + "loella16", + "vanz" ] }, - "Web/CSS/backdrop-filter": { - "modified": "2020-10-15T21:45:16.620Z", + "Glossary/SQL_Injection": { + "modified": "2019-03-18T21:46:32.446Z", "contributors": [ - "SphinxKnight", - "Colisan" + "loella16" ] }, - "Web/CSS/backface-visibility": { - "modified": "2020-10-15T21:08:31.865Z", + "Glossary/Input_method_editor": { + "modified": "2020-07-20T14:35:12.540Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "ethertank", - "tregagnon" + "tbetous" ] }, - "Web/CSS/background": { - "modified": "2020-10-15T21:08:39.389Z", + "Glossary/Instance": { + "modified": "2019-03-23T22:41:11.990Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "FredB", - "teoli", - "tregagnon", - "Yuichiro", - "BenoitL", - "Mgjbot", - "Fredchat", - "Kyodev" + "xdelatour" ] }, - "Web/CSS/background-attachment": { - "modified": "2020-10-15T21:08:33.405Z", + "Glossary/Middleware": { + "modified": "2019-03-23T22:02:42.236Z", "contributors": [ - "SphinxKnight", - "kustolovic", - "teoli", - "ShamsGolap", - "FredB", - "tregagnon", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16" ] }, - "Web/CSS/background-blend-mode": { - "modified": "2020-10-15T21:30:51.492Z", + "Glossary/Internationalization_and_localization": { + "modified": "2020-10-09T08:51:46.428Z", "contributors": [ - "SphinxKnight", - "LukyVj", - "mrstork", - "Sebastianz", - "J.DMB", - "YoruNoHikage" + "Voulto" ] }, - "Web/CSS/background-clip": { - "modified": "2020-10-15T21:09:30.832Z", + "Glossary/Internet": { + "modified": "2019-03-23T22:53:44.936Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "loella16", + "Goofy", + "htindon" ] }, - "Web/CSS/background-color": { - "modified": "2020-10-15T21:08:20.811Z", + "Glossary/IP_Address": { + "modified": "2019-03-23T22:53:42.998Z", "contributors": [ - "SphinxKnight", - "teoli", - "Sebastianz", - "ksad", - "FredB", - "tregagnon", - "Yuichiro", - "Fredchat", - "Mgjbot", - "Nathymig", - "Boly38", - "Kyodev" + "loella16", + "Goofy", + "htindon" ] }, - "Web/CSS/background-image": { - "modified": "2020-10-15T21:08:35.762Z", + "Glossary/IPv4": { + "modified": "2019-03-23T22:57:18.924Z", "contributors": [ - "SphinxKnight", - "jgil83000", - "Tactless7", - "wizAmit", - "magikmanu", - "fscholz", - "teoli", - "FredB", - "tregagnon", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16", + "Porkepix", + "Goofy", + "dattaz" ] }, - "Web/CSS/background-origin": { - "modified": "2020-10-15T21:09:26.607Z", + "Glossary/IPv6": { + "modified": "2019-03-23T22:57:21.986Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "Goofy", + "dattaz" ] }, - "Web/CSS/background-position": { - "modified": "2020-10-15T21:08:28.344Z", + "Glossary/IRC": { + "modified": "2019-03-23T22:58:51.295Z", "contributors": [ - "SphinxKnight", - "kantoche", + "loella16", "Goofy", - "mrstork", - "teoli", - "enogael", - "FredB", - "tregagnon", - "Mgjbot", - "Kyodev", - "Fredchat" + "Sodan" ] }, - "Web/CSS/background-position-x": { - "modified": "2020-10-15T21:45:43.001Z", + "Glossary/ISO": { + "modified": "2019-03-23T22:40:36.585Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/background-position-y": { - "modified": "2020-10-15T21:45:41.534Z", + "Glossary/ITU": { + "modified": "2020-09-25T06:42:41.752Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/background-repeat": { - "modified": "2020-10-15T21:08:24.169Z", + "Glossary/Jank": { + "modified": "2019-01-17T02:07:53.363Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "technolabtips", - "louuis", - "teoli", - "FredB", - "tregagnon", - "Nathymig", - "Kyodev", - "Fredchat" + "loella16" ] }, - "Web/CSS/background-size": { - "modified": "2020-10-15T21:08:32.072Z", + "Glossary/Java": { + "modified": "2019-03-23T22:40:52.651Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "fscholz", - "teoli", - "FredB", - "claudepache", - "tregagnon" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/basic-shape": { - "modified": "2020-10-15T21:46:24.284Z", + "Glossary/JavaScript": { + "modified": "2019-07-06T09:36:27.477Z", "contributors": [ - "SphinxKnight" + "JNa0", + "abvll", + "loella16", + "marie-ototoi", + "vanz" ] }, - "Web/CSS/blend-mode": { - "modified": "2020-10-15T21:32:22.353Z", + "Glossary/jpeg": { + "modified": "2019-03-23T22:42:05.422Z", "contributors": [ - "SphinxKnight", - "Nolwennig", - "GeoffreyC.", - "fscholz" + "xdelatour" ] }, - "Web/CSS/block-size": { - "modified": "2020-10-15T21:45:10.040Z", + "Glossary/jQuery": { + "modified": "2019-03-18T21:44:06.026Z", "contributors": [ - "SphinxKnight", - "amazingphilippe" + "loella16" ] }, - "Web/CSS/border": { - "modified": "2020-10-15T21:08:26.155Z", + "Glossary/JSON": { + "modified": "2019-03-23T22:14:27.925Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "vava", - "teoli", - "ksad", - "FredB", - "tregagnon", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "marcpicaud", + "BenoitL" ] }, - "Web/CSS/border-block": { - "modified": "2020-10-15T22:10:54.566Z", + "Glossary/Keyword": { + "modified": "2019-03-23T22:40:38.596Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/border-block-color": { - "modified": "2020-10-15T22:10:56.045Z", + "Glossary/High-level_programming_language": { + "modified": "2019-03-23T22:02:41.493Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/border-block-end": { - "modified": "2020-10-15T21:45:11.203Z", + "Glossary/Dynamic_programming_language": { + "modified": "2019-03-23T22:03:22.277Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16" ] }, - "Web/CSS/border-block-end-color": { - "modified": "2020-10-15T21:45:08.326Z", + "Glossary/Latency": { + "modified": "2019-10-26T12:09:56.716Z", "contributors": [ - "SphinxKnight", - "lp177" + "ledenis" ] }, - "Web/CSS/border-block-end-style": { - "modified": "2020-10-15T21:45:07.749Z", + "Glossary/Lazy_load": { + "modified": "2020-08-28T17:22:57.514Z", "contributors": [ - "SphinxKnight", - "lp177" + "jsiny" ] }, - "Web/CSS/border-block-end-width": { - "modified": "2020-10-15T21:45:07.994Z", + "Glossary/LGPL": { + "modified": "2019-03-23T22:40:24.920Z", "contributors": [ - "SphinxKnight", - "lp177" + "xdelatour" ] }, - "Web/CSS/border-block-start": { - "modified": "2020-10-15T21:45:09.987Z", + "Glossary/Ligature": { + "modified": "2019-03-23T22:40:33.596Z", "contributors": [ - "SphinxKnight", - "lp177" + "xdelatour" ] }, - "Web/CSS/border-block-start-color": { - "modified": "2020-10-15T21:45:06.536Z", + "Glossary/baseline": { + "modified": "2019-08-25T18:36:58.702Z", "contributors": [ - "SphinxKnight", - "lp177" + "Pols12" ] }, - "Web/CSS/border-block-start-style": { - "modified": "2020-10-15T21:45:07.141Z", + "Glossary/Grid_Lines": { + "modified": "2019-03-23T22:03:18.469Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16" ] }, - "Web/CSS/border-block-start-width": { - "modified": "2020-10-15T21:45:08.997Z", + "Glossary/Grid_Rows": { + "modified": "2019-03-23T22:03:16.488Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16" ] }, - "Web/CSS/border-block-style": { - "modified": "2020-10-15T22:11:05.093Z", + "Glossary/Locale": { + "modified": "2019-03-23T22:53:30.385Z", "contributors": [ - "SphinxKnight" + "Goofy", + "Porkepix" ] }, - "Web/CSS/border-block-width": { - "modified": "2020-10-15T22:11:02.717Z", + "Glossary/loop": { + "modified": "2019-03-23T22:41:58.930Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-bottom": { - "modified": "2020-10-15T21:12:33.513Z", + "Glossary/ltr": { + "modified": "2019-01-16T21:54:05.497Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "Golmote", - "ksad", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev" + "xdelatour" ] }, - "Web/CSS/border-bottom-color": { - "modified": "2020-10-15T21:08:17.967Z", + "Glossary/State_machine": { + "modified": "2019-03-18T21:45:44.311Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "tregagnon", - "Yuichiro", - "Nathymig", - "Fredchat", - "Kyodev" + "loella16" ] }, - "Web/CSS/border-bottom-left-radius": { - "modified": "2020-10-15T21:09:26.046Z", + "Glossary/MathML": { + "modified": "2019-03-23T22:40:42.034Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "Yuichiro", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/border-bottom-right-radius": { - "modified": "2020-10-15T21:09:24.108Z", + "Glossary/Media/CSS": { + "modified": "2020-10-09T09:27:07.839Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "Yuichiro", - "Fredchat" + "Voulto" ] }, - "Web/CSS/border-bottom-style": { - "modified": "2020-10-15T21:12:44.728Z", + "Glossary/Media": { + "modified": "2020-09-25T06:46:27.178Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev" + "Voulto" ] }, - "Web/CSS/border-bottom-width": { - "modified": "2020-10-15T21:10:09.492Z", + "Glossary/Metadata": { + "modified": "2019-03-23T22:39:13.695Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev" + "xdelatour" ] }, - "Web/CSS/border-collapse": { - "modified": "2020-10-15T21:16:01.217Z", + "Glossary/Method": { + "modified": "2019-03-23T22:48:52.633Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "Gibus", + "CLEm" ] }, - "Web/CSS/border-color": { - "modified": "2020-10-15T21:12:51.249Z", + "Glossary/Microsoft_Edge": { + "modified": "2019-03-23T22:42:05.336Z", "contributors": [ - "SphinxKnight", - "begmans", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "xdelatour" ] }, - "Web/CSS/border-end-end-radius": { - "modified": "2020-10-15T22:13:15.093Z", + "Glossary/Microsoft_Internet_Explorer": { + "modified": "2019-03-23T22:41:39.204Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/border-end-start-radius": { - "modified": "2020-10-15T22:13:15.935Z", + "Glossary/mime": { + "modified": "2019-03-23T22:41:30.560Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-image": { - "modified": "2020-10-15T21:19:08.857Z", + "Glossary/minification": { + "modified": "2020-10-09T09:12:43.676Z", "contributors": [ - "SphinxKnight", - "teoli", - "pl6025", - "FredB", - "PetiPandaRou", - "openjck", - "Jeremie" + "Voulto" ] }, - "Web/CSS/border-image-outset": { - "modified": "2020-10-15T21:45:07.479Z", + "Glossary/MitM": { + "modified": "2019-03-23T22:02:42.338Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/border-image-repeat": { - "modified": "2020-10-15T21:45:07.940Z", + "Glossary/Mixin": { + "modified": "2019-03-23T22:40:20.738Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-image-slice": { - "modified": "2020-10-15T21:45:08.549Z", + "Glossary/Mobile_First": { + "modified": "2019-01-17T02:07:48.652Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/border-image-source": { - "modified": "2020-10-15T21:20:04.870Z", + "Glossary/Modem": { + "modified": "2019-03-23T22:01:18.215Z", "contributors": [ - "SphinxKnight", - "wizAmit", - "teoli", - "FredB", - "PetiPandaRou" + "loella16" ] }, - "Web/CSS/border-image-width": { - "modified": "2020-10-15T21:20:03.679Z", + "Glossary/modularity": { + "modified": "2019-03-23T22:40:53.509Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "PetiPandaRou" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-inline": { - "modified": "2020-10-15T22:10:55.949Z", + "Glossary/Compile_time": { + "modified": "2019-03-23T22:38:58.464Z", "contributors": [ - "SphinxKnight" + "Jeremie", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-inline-color": { - "modified": "2020-10-15T22:10:55.459Z", + "Glossary/Search_engine": { + "modified": "2019-03-23T22:39:26.753Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-inline-end": { - "modified": "2020-10-15T21:45:09.637Z", + "Glossary/Rendering_engine": { + "modified": "2019-03-23T22:41:58.102Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-inline-end-color": { - "modified": "2020-10-15T21:45:06.629Z", + "Glossary/Mozilla_Firefox": { + "modified": "2019-03-23T22:42:01.387Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-inline-end-style": { - "modified": "2020-10-15T21:45:06.083Z", + "Glossary/Mutable": { + "modified": "2019-03-23T22:01:19.010Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/border-inline-end-width": { - "modified": "2020-10-15T21:45:06.227Z", + "Glossary/MVC": { + "modified": "2019-03-23T22:02:46.018Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/border-inline-start": { - "modified": "2020-10-15T21:45:09.428Z", + "Glossary/Namespace": { + "modified": "2019-03-23T22:40:18.478Z", "contributors": [ - "SphinxKnight" + "ylerjen" ] }, - "Web/CSS/border-inline-start-color": { - "modified": "2020-10-15T21:45:05.240Z", + "Glossary/NaN": { + "modified": "2019-03-23T22:50:00.212Z", "contributors": [ - "SphinxKnight" + "loella16", + "Gibus", + "Porkepix" ] }, - "Web/CSS/border-inline-start-style": { - "modified": "2020-10-15T21:45:06.115Z", + "Glossary/NAT": { + "modified": "2019-03-23T22:41:06.552Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-inline-start-width": { - "modified": "2020-10-15T21:45:04.477Z", + "Glossary/Native": { + "modified": "2019-03-23T22:41:39.546Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-inline-style": { - "modified": "2020-10-15T22:10:57.659Z", + "Glossary/Browser": { + "modified": "2019-03-23T22:58:47.673Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "Goofy", + "Sodan" ] }, - "Web/CSS/border-inline-width": { - "modified": "2020-10-15T22:11:00.439Z", + "Glossary/Netscape_Navigator": { + "modified": "2019-03-23T22:41:30.201Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/border-left": { - "modified": "2020-10-15T21:12:37.709Z", + "Glossary/NNTP": { + "modified": "2019-03-23T22:40:45.090Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-left-color": { - "modified": "2020-10-15T21:12:49.527Z", + "Glossary/Node.js": { + "modified": "2019-03-23T22:57:00.606Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "loella16", + "vanz", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/border-left-style": { - "modified": "2020-10-15T21:12:37.629Z", + "Glossary/Domain_name": { + "modified": "2019-03-23T22:41:45.215Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/border-left-width": { - "modified": "2020-10-15T21:12:47.533Z", + "Glossary/Placeholder_names": { + "modified": "2019-03-23T22:01:08.667Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Fredchat" + "loella16" ] }, - "Web/CSS/border-radius": { - "modified": "2020-10-15T21:28:07.970Z", + "Glossary/non-normative": { + "modified": "2019-03-23T22:40:53.799Z", "contributors": [ - "SphinxKnight", - "someone", - "Prinz_Rana", - "teoli", - "Qu3tzalify" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-right": { - "modified": "2020-10-15T21:12:26.680Z", + "Glossary/Normative": { + "modified": "2019-03-23T22:40:46.036Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Yuichiro", - "Fredchat", - "Kyodev" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/border-right-color": { - "modified": "2020-10-15T21:12:46.785Z", + "Glossary/Null": { + "modified": "2019-03-23T22:41:31.875Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/border-right-style": { - "modified": "2020-10-15T21:12:38.190Z", + "Glossary/Number": { + "modified": "2019-07-30T05:53:43.899Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/border-right-width": { - "modified": "2020-10-15T21:12:51.216Z", + "Glossary/Global_object": { + "modified": "2019-08-12T02:59:41.540Z", "contributors": [ "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "yvisherve", + "loella16", + "xdelatour" ] }, - "Web/CSS/border-spacing": { - "modified": "2020-10-15T21:16:01.215Z", + "Glossary/Parent_object": { + "modified": "2019-03-23T22:41:08.742Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "L2o", - "teoli", - "Chealer", - "simonrenoult", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-start-end-radius": { - "modified": "2020-10-15T22:13:16.127Z", + "Glossary/Object": { + "modified": "2019-03-23T22:48:58.921Z", "contributors": [ - "SphinxKnight" + "loella16", + "Cobrand", + "CLEm" ] }, - "Web/CSS/border-start-start-radius": { - "modified": "2020-10-15T22:13:16.075Z", + "Glossary/OpenGL": { + "modified": "2019-03-23T22:39:58.850Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-style": { - "modified": "2020-10-15T21:12:31.333Z", + "Glossary/OpenSSL": { + "modified": "2019-03-23T22:40:31.413Z", "contributors": [ - "SphinxKnight", - "begmans", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-top": { - "modified": "2020-10-15T21:12:31.816Z", + "Glossary/Opera_Browser": { + "modified": "2019-03-23T22:42:05.249Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "Yuichiro", - "Fredchat", - "Kyodev" + "xdelatour" ] }, - "Web/CSS/border-top-color": { - "modified": "2020-10-15T21:12:47.503Z", + "Glossary/Operand": { + "modified": "2019-03-23T22:42:03.272Z", "contributors": [ + "loella16", "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/border-top-left-radius": { - "modified": "2020-10-15T21:09:14.310Z", + "Glossary/Operator": { + "modified": "2019-03-23T22:41:59.764Z", "contributors": [ - "SphinxKnight", - "Titouan", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "Yuichiro", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/border-top-right-radius": { - "modified": "2020-10-15T21:09:22.219Z", + "Glossary/Canonical_order": { + "modified": "2019-03-23T22:03:27.512Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "Fredchat" + "loella16" ] }, - "Web/CSS/border-top-style": { - "modified": "2020-10-15T21:12:48.569Z", + "Glossary/Origin": { + "modified": "2019-03-23T23:05:24.534Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "loella16", + "Jeremie", + "Watilin" ] }, - "Web/CSS/border-top-width": { - "modified": "2020-10-15T21:12:47.537Z", + "Glossary/OTA": { + "modified": "2019-03-23T22:57:20.732Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat" + "loella16", + "vanz", + "Goofy", + "dattaz" ] }, - "Web/CSS/border-width": { - "modified": "2020-10-15T21:10:07.340Z", + "Glossary/OWASP": { + "modified": "2019-03-23T22:40:34.868Z", "contributors": [ - "SphinxKnight", - "Hinato15", - "teoli", - "FredB", - "Yuichiro", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "xdelatour" ] }, - "Web/CSS/bottom": { - "modified": "2020-10-15T21:16:33.323Z", + "Glossary/P2P": { + "modified": "2019-03-23T22:57:06.814Z", "contributors": [ - "SphinxKnight", - "WhiteMoll", - "fscholz", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev", - "Elodouwen" + "Goofy", + "Toumitoun" ] }, - "Web/CSS/box-align": { - "modified": "2020-10-15T21:18:10.666Z", + "Glossary/PAC": { + "modified": "2019-03-23T22:36:31.695Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/box-decoration-break": { - "modified": "2020-10-15T21:39:24.954Z", + "Glossary/Packet": { + "modified": "2020-10-12T03:29:11.646Z", "contributors": [ - "SphinxKnight", - "teoli" + "Voulto" ] }, - "Web/CSS/box-direction": { - "modified": "2020-10-15T21:18:11.464Z", + "Glossary/Parameter": { + "modified": "2019-03-23T22:40:31.655Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/box-flex": { - "modified": "2020-10-15T21:18:07.577Z", + "Glossary/firewall": { + "modified": "2019-03-23T22:33:06.193Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/box-flex-group": { - "modified": "2020-10-15T21:45:38.209Z", + "Glossary/Parse": { + "modified": "2019-03-23T22:40:37.469Z", "contributors": [ - "SphinxKnight", - "teoli" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/box-lines": { - "modified": "2020-10-15T21:45:33.444Z", + "Glossary/Parser": { + "modified": "2019-03-23T22:40:29.017Z", "contributors": [ - "SphinxKnight", - "teoli" + "loella16", + "xdelatour" ] }, - "Web/CSS/box-ordinal-group": { - "modified": "2020-10-15T21:45:25.640Z", + "Glossary/PDF": { + "modified": "2019-03-23T22:57:04.556Z", "contributors": [ - "SphinxKnight", - "teoli" + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/box-orient": { - "modified": "2020-10-15T21:16:50.386Z", + "Glossary/percent-encoding": { + "modified": "2019-03-23T22:01:15.210Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Fredchat", - "Kyodev" + "loella16" ] }, - "Web/CSS/box-pack": { - "modified": "2020-10-15T21:18:09.298Z", + "Glossary/PHP": { + "modified": "2019-03-23T22:57:01.311Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "Toumitoun" ] }, - "Web/CSS/box-shadow": { - "modified": "2020-10-15T21:09:23.643Z", + "Glossary/Call_stack": { + "modified": "2019-03-23T22:41:33.785Z", "contributors": [ - "SphinxKnight", - "Bidjit", - "teoli", - "skinnyfoetusboy", - "Goofy", - "FredB" + "loella16", + "xdelatour" ] }, - "Web/CSS/box-sizing": { - "modified": "2020-10-15T21:24:49.409Z", + "Glossary/Grid_Tracks": { + "modified": "2019-03-23T22:02:47.082Z", "contributors": [ - "tristantheb", - "SphinxKnight", - "Mr21", - "pldz", - "lehollandaisvolant", - "Sebastianz", - "teoli", - "jsilvestre", - "tregagnon", - "FredB" + "loella16" ] }, - "Web/CSS/break-after": { - "modified": "2020-10-15T21:44:47.797Z", + "Glossary/CSS_pixel": { + "modified": "2020-10-05T04:42:31.706Z", "contributors": [ - "SphinxKnight", - "edspeedy" + "Voulto" ] }, - "Web/CSS/break-before": { - "modified": "2020-10-15T21:44:48.986Z", + "Glossary/Pixel": { + "modified": "2019-03-23T22:40:37.845Z", "contributors": [ - "SphinxKnight" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/break-inside": { - "modified": "2020-10-15T21:44:48.451Z", + "Glossary/PNG": { + "modified": "2019-03-23T22:41:50.073Z", "contributors": [ - "bershanskiy", - "SphinxKnight", - "edspeedy" + "loella16", + "xdelatour" ] }, - "Web/CSS/calc()": { - "modified": "2020-11-04T09:09:07.893Z", + "Glossary/Polyfill": { + "modified": "2019-03-18T20:40:41.785Z", "contributors": [ - "chrisdavidmills", - "ludivinepoussier", - "SphinxKnight", - "mborges", - "L2o", - "mrstork", - "prayash", - "teoli", - "nhoizey", - "nicodel", - "tregagnon", - "FredB" + "GaelWLR", + "caribouflex", + "loella16", + "Ostefanini" ] }, - "Web/CSS/caption-side": { - "modified": "2020-10-15T21:15:41.669Z", + "Glossary/Polymorphism": { + "modified": "2019-03-23T22:39:57.969Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "Sheppy", - "teoli", - "FredB", - "BenoitL", - "*.Har(d)t" + "loella16", + "xdelatour" ] }, - "Web/CSS/caret-color": { - "modified": "2020-10-15T21:51:25.881Z", + "Glossary/OOP": { + "modified": "2019-03-23T22:48:59.017Z", "contributors": [ - "SphinxKnight" + "loella16", + "Gibus", + "CLEm" ] }, - "Web/CSS/clamp()": { - "modified": "2020-11-05T09:58:32.959Z", + "Glossary/POP": { + "modified": "2019-03-23T22:40:50.975Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/clear": { - "modified": "2020-10-15T21:18:05.718Z", + "Glossary/Port": { + "modified": "2019-03-23T22:58:43.599Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "J.DMB", - "louuis", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "loella16", + "Porkepix", + "Lulamay", + "Jeremie" ] }, - "Web/CSS/clip": { - "modified": "2020-10-15T21:15:46.162Z", + "Glossary/Global_scope": { + "modified": "2019-03-23T22:41:14.880Z", "contributors": [ - "SphinxKnight", - "mrstork", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "Valacar", - "Elethiomel", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/clip-path": { - "modified": "2020-10-15T21:26:12.097Z", + "Glossary/Local_scope": { + "modified": "2019-03-23T22:40:56.046Z", "contributors": [ - "brunostasse", - "SphinxKnight", - "guv3n", - "teoli", - "Philippe_Lambotte" + "loella16", + "xdelatour" ] }, - "Web/CSS/color": { - "modified": "2020-10-15T21:15:41.703Z", + "Glossary/Scope": { + "modified": "2019-03-23T22:40:22.490Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "louuis", - "Golmote", - "FredB", - "philippe97", - "Mgjbot", - "BenoitL", - "Fredchat", - "Kyodev", - "VincentN" + "loella16", + "xdelatour" ] }, - "Web/CSS/color-adjust": { - "modified": "2020-10-15T22:07:37.043Z", + "Glossary/Vendor_Prefix": { + "modified": "2019-03-23T22:40:15.581Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/column-count": { - "modified": "2020-10-15T21:20:32.539Z", + "Glossary/CSS_preprocessor": { + "modified": "2019-03-23T22:03:31.823Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/column-fill": { - "modified": "2020-10-15T21:20:32.258Z", + "Glossary/Presto": { + "modified": "2019-03-23T22:42:11.378Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Munto", - "Sebastianz", - "teoli", - "FredB", - "Delapouite" + "loella16", + "xdelatour" ] }, - "Web/CSS/column-gap": { - "modified": "2020-10-15T21:20:34.750Z", + "Glossary/Primitive": { + "modified": "2019-03-23T22:48:58.549Z", "contributors": [ - "SphinxKnight", - "mrstork", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16", + "Gibus", + "CLEm" ] }, - "Web/CSS/column-rule": { - "modified": "2020-10-15T21:20:34.908Z", + "Glossary/privileged_code": { + "modified": "2019-03-18T21:44:10.644Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/column-rule-color": { - "modified": "2020-10-15T21:20:38.875Z", + "Glossary/Privileged": { + "modified": "2019-03-23T22:41:29.520Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "xdelatour" ] }, - "Web/CSS/column-rule-style": { - "modified": "2020-10-15T21:20:38.835Z", + "Glossary/Prototype-based_programming": { + "modified": "2019-03-23T22:01:08.082Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16" ] }, - "Web/CSS/column-rule-width": { - "modified": "2020-10-15T21:20:37.812Z", + "Glossary/Progressive_web_apps": { + "modified": "2019-03-23T22:18:10.153Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16", + "unpeudetout", + "Jeremie" ] }, - "Web/CSS/column-span": { - "modified": "2020-10-15T21:20:33.008Z", + "Glossary/Promise": { + "modified": "2020-11-29T17:08:43.767Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "louuis", - "teoli", - "FredB" + "Dimitri_TRAVAILLOUX", + "JNa0", + "tpoisseau" ] }, - "Web/CSS/column-width": { - "modified": "2020-10-15T21:20:31.296Z", + "Glossary/property/CSS": { + "modified": "2019-03-23T22:57:05.036Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16", + "xdelatour", + "Goofy", + "htindon" ] }, - "Web/CSS/columns": { - "modified": "2020-10-15T21:20:34.997Z", + "Glossary/Protocol": { + "modified": "2019-03-23T22:42:16.452Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "louuis", - "teoli", - "FredB" + "xdelatour" ] }, - "Web/CSS/conic-gradient()": { - "modified": "2020-11-05T10:00:17.716Z", + "Glossary/Prototype": { + "modified": "2019-03-23T22:40:20.436Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "AlainGourves" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/contain": { - "modified": "2020-10-15T21:47:58.553Z", + "Glossary/Pseudo-class": { + "modified": "2019-03-23T22:40:46.877Z", "contributors": [ - "SphinxKnight", - "ebrehault", - "vdesdoigts" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/content": { - "modified": "2020-10-15T21:09:16.938Z", + "Glossary/Pseudocode": { + "modified": "2019-03-18T21:47:09.076Z", "contributors": [ - "SphinxKnight", - "HerveRenault", - "teoli", - "Sebastianz", - "FredB" + "loella16" ] }, - "Web/CSS/counter()": { - "modified": "2020-11-09T07:18:11.964Z", + "Glossary/Pseudo-element": { + "modified": "2019-03-23T22:40:07.267Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/counter-increment": { - "modified": "2020-10-15T21:17:58.093Z", + "Glossary/Python": { + "modified": "2019-03-23T22:40:49.701Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "Fredchat", - "VincentN" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/counter-reset": { - "modified": "2020-10-15T21:14:15.574Z", + "Glossary/Quality_values": { + "modified": "2019-03-18T21:47:07.513Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "fscholz", - "Fredchat", - "VincentN" + "loella16" ] }, - "Web/CSS/counter-set": { - "modified": "2020-10-15T22:20:18.195Z", + "Glossary/QUIC": { + "modified": "2020-10-12T03:40:33.880Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/counters()": { - "modified": "2020-11-09T07:19:24.761Z", + "Glossary/RAIL": { + "modified": "2020-10-11T05:55:50.398Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/cross-fade()": { - "modified": "2020-11-09T07:22:14.922Z", + "Glossary/Garbage_collection": { + "modified": "2019-03-23T22:37:46.005Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/cursor": { - "modified": "2020-10-15T21:12:05.631Z", + "Glossary/RDF": { + "modified": "2019-03-23T22:40:14.803Z", "contributors": [ - "SphinxKnight", - "Grahack", - "mrstork", - "Sebastianz", - "teoli", - "Golmote", - "FredB", - "loranger", - "Julien.stuby", - "Mgjbot", - "Fredchat", - "Kyodev", - "Sheppy" + "loella16", + "xdelatour" ] }, - "Web/CSS/custom-ident": { - "modified": "2019-08-05T13:45:05.582Z", + "Glossary/Real_User_Monitoring": { + "modified": "2020-09-25T05:36:48.774Z", "contributors": [ - "SphinxKnight", - "Krenair", - "teoli", - "FredB" + "Voulto" ] }, - "Web/CSS/dimension": { - "modified": "2020-10-15T22:14:27.905Z", + "Glossary/bounding_box": { + "modified": "2019-01-17T00:01:56.249Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "htindon" ] }, - "Web/CSS/direction": { - "modified": "2020-10-15T21:16:36.245Z", + "Glossary/Recursion": { + "modified": "2019-03-23T22:41:09.659Z", "contributors": [ - "SphinxKnight", - "ncoden", - "Sebastianz", - "teoli", - "ksad", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "xdelatour" ] }, - "Web/CSS/display": { - "modified": "2020-10-15T21:15:53.886Z", + "Glossary/Object_reference": { + "modified": "2019-03-23T22:40:23.211Z", "contributors": [ - "johannpinson", - "SphinxKnight", - "cdjoubert", - "NemoNobobyPersonne", - "Baptistou", - "jwhitlock", - "friendofweb", - "ThibautMln", - "jean-pierre.gay", - "renoirb", - "Sebastianz", - "teoli", - "Golmote", - "FredB", - "Mgjbot", - "BenoitL", - "Fredchat", - "Kyodev" + "loella16", + "xdelatour" ] }, - "Web/CSS/display-box": { - "modified": "2020-10-15T22:10:05.031Z", + "Glossary/Reference": { + "modified": "2019-03-23T22:40:24.148Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/display-inside": { - "modified": "2020-10-15T22:09:59.712Z", + "Glossary/Reflow": { + "modified": "2019-03-18T21:46:42.626Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/display-internal": { - "modified": "2020-10-15T22:10:02.353Z", + "Glossary/Regular_expression": { + "modified": "2019-03-23T22:46:36.694Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "Hell_Carlito", + "sebastien-bartoli", + "vanz" ] }, - "Web/CSS/display-legacy": { - "modified": "2020-10-15T22:10:07.242Z", + "Glossary/Preflight_request": { + "modified": "2019-03-23T22:14:22.077Z", "contributors": [ - "SphinxKnight" + "Porkepix", + "elias551", + "loella16", + "Yves_ASTIER" ] }, - "Web/CSS/display-listitem": { - "modified": "2020-10-15T22:10:07.777Z", + "Glossary/Responsive_web_design": { + "modified": "2019-03-18T21:46:42.758Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/display-outside": { - "modified": "2020-10-15T22:10:04.504Z", + "Glossary/REST": { + "modified": "2019-03-23T22:39:50.192Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/element()": { - "modified": "2020-11-10T11:06:03.387Z", + "Glossary/RGB": { + "modified": "2019-03-23T22:39:05.612Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/empty-cells": { - "modified": "2020-10-15T21:09:02.588Z", + "Glossary/RIL": { + "modified": "2019-03-23T22:39:40.462Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "loella16", + "xdelatour" ] }, - "Web/CSS/env()": { - "modified": "2020-11-10T11:09:42.633Z", + "Glossary/RNG": { + "modified": "2019-03-23T22:39:14.416Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Goofy", + "xdelatour" ] }, - "Web/CSS/filter": { - "modified": "2020-10-15T21:21:38.971Z", + "Glossary/Crawler": { + "modified": "2019-03-23T22:39:26.515Z", "contributors": [ - "escattone", - "SphinxKnight", - "aziaziazi", - "Sebastianz", - "Prinz_Rana", - "teoli", - "emersion", - "wakka27", - "flexbox", - "FredB", - "thenew" + "xdelatour" ] }, - "Web/CSS/filter-function": { - "modified": "2019-04-26T03:07:50.831Z", + "Glossary/Robots.txt": { + "modified": "2019-03-23T22:39:27.042Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/filter-function/blur()": { - "modified": "2020-11-05T09:45:36.368Z", + "Glossary/RSS": { + "modified": "2019-03-23T22:40:15.677Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/filter-function/brightness()": { - "modified": "2020-11-05T09:57:14.227Z", + "Glossary/RTF": { + "modified": "2019-03-23T22:42:05.530Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/filter-function/contrast()": { - "modified": "2020-11-09T07:20:47.447Z", + "Glossary/rtl": { + "modified": "2019-01-16T20:52:28.089Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Goofy", + "Porkepix" ] }, - "Web/CSS/filter-function/drop-shadow()": { - "modified": "2020-11-10T10:58:25.362Z", + "Glossary/RTP": { + "modified": "2020-09-30T07:30:27.350Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/filter-function/grayscale()": { - "modified": "2020-11-10T11:18:37.733Z", + "Glossary/Ruby": { + "modified": "2019-03-23T22:41:17.345Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/filter-function/hue-rotate()": { - "modified": "2020-11-16T08:50:37.620Z", + "Glossary/Same-origin_policy": { + "modified": "2019-06-14T06:25:34.615Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Watilin" ] }, - "Web/CSS/filter-function/invert()": { - "modified": "2020-11-16T08:55:25.015Z", + "Glossary/SCM": { + "modified": "2019-03-23T22:38:57.015Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/filter-function/opacity()": { - "modified": "2020-11-16T09:07:46.418Z", + "Glossary/SCTP": { + "modified": "2019-03-18T21:46:38.825Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16" ] }, - "Web/CSS/filter-function/saturate()": { - "modified": "2020-11-30T10:11:43.128Z", + "Glossary/SDP": { + "modified": "2019-03-23T22:41:12.448Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/filter-function/sepia()": { - "modified": "2020-11-30T10:24:25.787Z", + "Glossary/safe": { + "modified": "2019-03-18T21:46:28.796Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16" ] }, - "Web/CSS/filter-function/url": { - "modified": "2019-04-06T11:57:29.213Z", + "Glossary/CSS_Selector": { + "modified": "2019-03-23T22:39:53.102Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/fit-content": { - "modified": "2020-10-15T21:50:10.072Z", + "Glossary/Semantics": { + "modified": "2019-03-23T22:38:43.484Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16", + "xdelatour" ] }, - "Web/CSS/flex": { - "modified": "2020-10-15T21:19:44.037Z", + "Glossary/SEO": { + "modified": "2019-03-18T21:46:24.952Z", "contributors": [ - "julienw", - "Thyme1152", - "SphinxKnight", - "Hartesic", - "sylvainpolletvillard", - "fscholz", - "Sebastianz", - "Mahan91", - "teoli", - "Golmote", - "FredB", - "Delapouite", - "lalop", - "rd6137" + "loella16" ] }, - "Web/CSS/flex-basis": { - "modified": "2020-10-15T21:44:13.576Z", + "Glossary/Serialization": { + "modified": "2019-03-23T22:03:28.172Z", "contributors": [ - "SphinxKnight", - "JonathanMM", - "kristofbc" + "macmorning", + "loella16" ] }, - "Web/CSS/flex-direction": { - "modified": "2020-10-15T21:26:06.082Z", + "Glossary/Proxy_server": { + "modified": "2019-03-18T21:47:12.657Z", "contributors": [ - "SphinxKnight", - "robiseb", - "Goofy", - "fscholz", - "Sebastianz", - "teoli", - "Golmote", - "PifyZ" + "loella16" ] }, - "Web/CSS/flex-flow": { - "modified": "2020-10-15T21:40:46.682Z", + "Glossary/Web_server": { + "modified": "2020-10-11T04:52:56.117Z", "contributors": [ - "SphinxKnight", - "jmpp" + "Voulto" ] }, - "Web/CSS/flex-grow": { - "modified": "2020-10-15T21:29:35.886Z", + "Glossary/Server": { + "modified": "2019-03-23T22:41:08.500Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "mondayking" + "loella16", + "xdelatour" ] }, - "Web/CSS/flex-shrink": { - "modified": "2020-10-15T21:44:15.655Z", + "Glossary/Shim": { + "modified": "2019-03-18T21:45:43.959Z", "contributors": [ - "SphinxKnight", - "hvanhonacker", - "tifabien" + "loella16" ] }, - "Web/CSS/flex-wrap": { - "modified": "2020-10-15T21:42:48.548Z", + "Glossary/Signature/Function": { + "modified": "2019-03-23T22:40:21.442Z", "contributors": [ - "SphinxKnight", - "lhapaipai", - "YoruNoHikage", - "stephaniehobson", - "ss-bb" + "loella16", + "xdelatour" ] }, - "Web/CSS/flex_value": { - "modified": "2020-10-15T21:50:03.779Z", + "Glossary/Signature": { + "modified": "2019-03-23T22:40:17.194Z", "contributors": [ - "SphinxKnight", "xdelatour" ] }, - "Web/CSS/float": { - "modified": "2020-10-15T21:14:08.559Z", + "Glossary/Signature/Security": { + "modified": "2019-03-23T22:40:22.990Z", "contributors": [ - "SphinxKnight", - "tnga", - "fscholz", - "teoli", - "FredB", - "Mgjbot", - "Nathymig", - "Elethiomel", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/font": { - "modified": "2020-10-15T21:15:25.017Z", + "Glossary/SIMD": { + "modified": "2019-03-23T22:41:12.178Z", "contributors": [ - "yvisherve", - "SphinxKnight", - "edspeedy", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "xdelatour" ] }, - "Web/CSS/font-family": { - "modified": "2020-10-15T21:16:01.425Z", + "Glossary/SISD": { + "modified": "2019-03-23T22:41:10.120Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Sheppy", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "xdelatour" ] }, - "Web/CSS/font-feature-settings": { - "modified": "2020-10-15T21:19:34.721Z", + "Glossary/Site_map": { + "modified": "2020-10-11T05:42:01.722Z", "contributors": [ - "SphinxKnight", - "Krenair", - "Sebastianz", - "teoli", - "FredB" + "Voulto" ] }, - "Web/CSS/font-kerning": { - "modified": "2020-10-15T21:38:55.741Z", + "Glossary/Site": { + "modified": "2020-10-11T05:33:50.641Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "B_M" + "Voulto" ] }, - "Web/CSS/font-language-override": { - "modified": "2020-10-15T21:44:15.835Z", + "Glossary/SLD": { + "modified": "2019-03-23T22:42:04.405Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/font-optical-sizing": { - "modified": "2020-10-15T22:05:43.637Z", + "Glossary/Sloppy_mode": { + "modified": "2019-03-18T21:45:43.833Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/font-size": { - "modified": "2020-10-15T21:16:35.611Z", + "Glossary/Slug": { + "modified": "2019-03-18T21:45:46.971Z", "contributors": [ - "yaaax", - "JNa0", - "SphinxKnight", - "Kocal", - "Bringdal", - "fscholz", - "teoli", - "Fredchat", - "louuis", - "FredB", - "anthony.gaidot", - "Mgjbot", - "Kyodev" + "loella16" ] }, - "Web/CSS/font-size-adjust": { - "modified": "2020-10-15T21:15:30.021Z", + "Glossary/SMTP": { + "modified": "2019-03-23T22:40:17.302Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "BenoitL", - "Fredchat", - "Kyodev" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-smooth": { - "modified": "2020-10-15T21:44:12.301Z", + "Glossary/SOAP": { + "modified": "2019-03-23T22:40:38.697Z", "contributors": [ - "SphinxKnight", - "Kerumen" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-stretch": { - "modified": "2020-11-30T11:20:47.071Z", + "Glossary/Specification": { + "modified": "2019-03-23T22:41:43.100Z", "contributors": [ - "Moyogo", - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "GrCOTE7", - "FredB", - "Valacar", - "Mgjbot", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-style": { - "modified": "2020-10-15T21:15:34.339Z", + "Glossary/SQL": { + "modified": "2019-03-23T22:57:00.831Z", "contributors": [ - "n3wborn", - "SphinxKnight", - "teoli", - "FredB", - "Mgjbot", - "Domif", - "Fredchat" + "Porkepix", + "Toumitoun" ] }, - "Web/CSS/font-synthesis": { - "modified": "2020-10-30T07:13:04.039Z", + "Glossary/SRI": { + "modified": "2019-03-18T21:46:37.925Z", "contributors": [ - "JNa0", - "SphinxKnight" + "loella16" ] }, - "Web/CSS/font-variant": { - "modified": "2020-10-15T21:15:18.085Z", + "Glossary/SSL": { + "modified": "2019-03-18T21:46:35.161Z", "contributors": [ - "SphinxKnight", - "B_M", - "fscholz", - "Gibus", - "Sebastianz", - "Igro", - "teoli", - "FredB", - "Mgjbot", - "Fredchat" + "loella16" ] }, - "Web/CSS/font-variant-alternates": { - "modified": "2020-10-15T21:44:15.520Z", + "Glossary/Statement": { + "modified": "2019-03-23T22:42:03.846Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/font-variant-caps": { - "modified": "2020-10-29T08:39:50.937Z", + "Glossary/String": { + "modified": "2019-03-23T22:40:00.102Z", "contributors": [ - "JNa0", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-variant-east-asian": { - "modified": "2020-10-15T21:44:08.241Z", + "Glossary/Control_flow": { + "modified": "2019-03-23T22:41:59.034Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-variant-ligatures": { - "modified": "2020-10-15T21:39:41.117Z", + "Glossary/Data_structure": { + "modified": "2019-09-04T16:13:28.582Z", "contributors": [ "SphinxKnight", - "nfriedli" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/font-variant-numeric": { - "modified": "2020-10-15T21:44:06.991Z", + "Glossary/STUN": { + "modified": "2019-03-23T22:40:15.360Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/font-variant-position": { - "modified": "2020-10-15T21:43:55.206Z", + "Glossary/Cipher_suite": { + "modified": "2019-03-23T22:32:22.378Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "sebastien-bartoli" ] }, - "Web/CSS/font-variation-settings": { - "modified": "2020-10-15T21:52:12.257Z", + "Glossary/SVG": { + "modified": "2019-03-23T22:40:20.842Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "marie-ototoi", + "xdelatour" ] }, - "Web/CSS/font-weight": { - "modified": "2020-10-15T21:15:14.602Z", + "Glossary/SVN": { + "modified": "2019-03-23T22:57:07.228Z", "contributors": [ - "SphinxKnight", - "ygarbage", - "fscholz", - "Sebastianz", - "teoli", - "tregagnon", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "loella16", + "Toumitoun" ] }, - "Web/CSS/frequency": { - "modified": "2020-10-15T21:24:47.689Z", + "Glossary/Symbol": { + "modified": "2019-03-23T22:39:08.053Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "fscholz", - "teoli", - "FredB", - "Goofy" + "Nopias", + "loella16", + "xdelatour" ] }, - "Web/CSS/frequency-percentage": { - "modified": "2020-10-15T22:14:25.485Z", + "Glossary/Synchronous": { + "modified": "2019-03-23T22:40:33.779Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/gap": { - "modified": "2020-10-15T22:05:45.614Z", + "Glossary/Syntax_error": { + "modified": "2019-03-23T22:41:06.855Z", "contributors": [ - "JNa0", - "SphinxKnight" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/gradient": { - "modified": "2020-10-15T21:46:27.099Z", + "Glossary/Syntax": { + "modified": "2019-03-23T22:39:03.649Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/grid": { - "modified": "2020-10-15T21:43:57.613Z", + "Glossary/buffer": { + "modified": "2019-03-18T21:45:35.327Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/grid-area": { - "modified": "2020-10-15T21:43:57.849Z", + "Glossary/TCP_handshake": { + "modified": "2019-09-15T08:41:25.795Z", "contributors": [ - "SphinxKnight" + "estelle" ] }, - "Web/CSS/grid-auto-columns": { - "modified": "2020-10-15T21:43:52.496Z", + "Glossary/TCP_slow_start": { + "modified": "2019-09-02T01:46:30.468Z", "contributors": [ - "SphinxKnight" + "estelle" ] }, - "Web/CSS/grid-auto-flow": { - "modified": "2020-10-15T21:45:27.360Z", + "Glossary/TCP": { + "modified": "2019-03-23T22:57:04.926Z", "contributors": [ - "SphinxKnight" + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/grid-auto-rows": { - "modified": "2020-10-15T21:43:57.525Z", + "Glossary/Telnet": { + "modified": "2019-03-23T22:42:10.476Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/grid-column": { - "modified": "2020-10-15T21:44:00.007Z", + "Glossary/Smoke_Test": { + "modified": "2019-03-18T21:45:36.505Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/grid-column-end": { - "modified": "2020-10-15T21:43:52.597Z", + "Glossary/Texel": { + "modified": "2020-10-11T05:05:07.567Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/grid-column-gap": { - "modified": "2020-10-15T21:43:57.480Z", + "Glossary/Plaintext": { + "modified": "2019-03-23T22:39:26.132Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/grid-column-start": { - "modified": "2020-10-15T21:43:52.983Z", + "Glossary/Three_js": { + "modified": "2019-03-23T22:40:32.870Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/grid-row": { - "modified": "2020-10-15T21:43:47.449Z", + "Glossary/Time_to_interactive": { + "modified": "2020-11-10T08:04:33.624Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/grid-row-end": { - "modified": "2020-10-15T21:43:54.687Z", + "Glossary/TLD": { + "modified": "2019-03-23T22:38:54.058Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/grid-row-start": { - "modified": "2020-10-15T21:43:46.372Z", + "Glossary/TLS": { + "modified": "2019-03-23T22:39:14.027Z", "contributors": [ - "SphinxKnight", - "Goofy" + "loella16", + "xdelatour" ] }, - "Web/CSS/grid-template": { - "modified": "2020-10-15T21:43:56.133Z", + "Glossary/TOFU": { + "modified": "2019-03-18T21:45:44.983Z", "contributors": [ "SphinxKnight", - "BenJ-R" + "loella16" ] }, - "Web/CSS/grid-template-areas": { - "modified": "2020-10-15T21:43:51.408Z", + "Glossary/Transmission_Control_Protocol_(TCP)": { + "modified": "2019-09-13T20:23:27.919Z", "contributors": [ - "SphinxKnight" + "estelle" ] }, - "Web/CSS/grid-template-columns": { - "modified": "2020-10-15T21:43:47.170Z", + "Glossary/Tree_shaking": { + "modified": "2019-03-18T21:45:48.808Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/grid-template-rows": { - "modified": "2020-10-15T21:43:51.505Z", + "Glossary/Card_sorting": { + "modified": "2019-03-23T22:25:45.561Z", "contributors": [ - "SphinxKnight" + "loella16", + "Hell_Carlito", + "htindon" + ] + }, + "Glossary/Trident": { + "modified": "2019-03-23T22:57:05.971Z", + "contributors": [ + "loella16", + "GeekShadow" ] }, - "Web/CSS/hanging-punctuation": { - "modified": "2020-10-15T21:54:18.228Z", + "Glossary/Truthy": { + "modified": "2019-03-23T22:43:00.610Z", "contributors": [ - "SphinxKnight" + "loella16", + "davidbourguignon", + "jswisher", + "raoul632" ] }, - "Web/CSS/height": { - "modified": "2020-10-15T21:15:21.230Z", + "Glossary/TTL": { + "modified": "2019-03-18T21:45:45.855Z", "contributors": [ "SphinxKnight", - "MaxEvron", - "fscholz", - "Sebastianz", - "teoli", - "dabus", - "FredB", - "Mgjbot", - "Aurelgadjo", - "Fredchat" + "loella16" ] }, - "Web/CSS/hyphens": { - "modified": "2020-10-15T21:09:12.598Z", + "Glossary/TURN": { + "modified": "2019-03-23T22:40:25.013Z", "contributors": [ - "SphinxKnight", - "Menkid", - "Sebastianz", - "SJW", - "teoli", - "MorganeH", - "FredB" + "loella16", + "xdelatour" ] }, - "Web/CSS/image": { - "modified": "2020-10-15T21:08:52.732Z", + "Glossary/Dynamic_typing": { + "modified": "2019-03-23T22:41:39.637Z", "contributors": [ - "SphinxKnight", - "jsx", - "slayslot", - "mrstork", - "fscholz", - "teoli", - "FredB", - "Goofy" + "loella16", + "xdelatour" ] }, - "Web/CSS/image()": { - "modified": "2020-11-16T08:52:05.684Z", + "Glossary/Static_typing": { + "modified": "2019-03-23T22:41:24.853Z", "contributors": [ - "chrisdavidmills", - "escattone", - "SphinxKnight", - "estelle", - "ExE-Boss" + "loella16", + "xdelatour" ] }, - "Web/CSS/image-orientation": { - "modified": "2020-10-15T21:19:41.469Z", + "Glossary/Type_coercion": { + "modified": "2020-08-28T17:39:29.859Z", "contributors": [ - "SphinxKnight", - "prayash", - "Sebastianz", - "teoli", - "FredB" + "jsiny" ] }, - "Web/CSS/image-set()": { - "modified": "2020-11-16T08:53:24.499Z", + "Glossary/MIME_type": { + "modified": "2019-03-23T22:40:46.635Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/ime-mode": { - "modified": "2020-10-15T21:16:34.560Z", + "Glossary/Type": { + "modified": "2019-03-23T22:42:01.802Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "BenoitL" + "loella16", + "xdelatour" ] }, - "Web/CSS/inherit": { - "modified": "2020-10-15T21:16:37.390Z", + "Glossary/UDP": { + "modified": "2019-03-23T22:41:59.662Z", "contributors": [ - "SphinxKnight", - "teoli", - "cdromain", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "loella16", + "xdelatour" ] }, - "Web/CSS/initial": { - "modified": "2020-10-15T21:16:37.376Z", + "Glossary/UI": { + "modified": "2019-03-23T22:41:37.563Z", "contributors": [ "SphinxKnight", - "adrien-gueret", - "nhoizey", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "Gibus", + "xdelatour" ] }, - "Web/CSS/initial-letter": { - "modified": "2020-10-15T21:43:46.301Z", + "Glossary/undefined": { + "modified": "2019-03-23T22:04:28.704Z", "contributors": [ - "SphinxKnight" + "loella16", + "michelc" ] }, - "Web/CSS/initial-letter-align": { - "modified": "2020-10-15T21:43:51.948Z", + "Glossary/Unicode": { + "modified": "2019-03-18T21:45:46.646Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/inline-size": { - "modified": "2020-10-15T21:43:58.068Z", + "Glossary/URI": { + "modified": "2019-03-23T22:57:00.503Z", "contributors": [ - "SphinxKnight" + "loella16", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/inset": { - "modified": "2020-10-15T22:10:58.848Z", + "Glossary/URL": { + "modified": "2020-10-19T13:47:26.150Z", "contributors": [ - "Yukulele.", - "SphinxKnight" + "Voulto", + "loella16", + "marie-ototoi", + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/inset-block": { - "modified": "2020-10-15T22:11:00.485Z", + "Glossary/URN": { + "modified": "2019-03-23T22:39:50.091Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/inset-inline": { - "modified": "2020-10-15T22:11:01.666Z", + "Glossary/Usenet": { + "modified": "2019-03-23T22:40:09.482Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/integer": { - "modified": "2020-10-15T21:04:03.191Z", + "Glossary/User_agent": { + "modified": "2019-03-23T22:40:37.671Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "fscholz", - "teoli", - "FredB", - "tregagnon", - "Goofy" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/isolation": { - "modified": "2020-10-15T21:43:45.017Z", + "Glossary/UTF-8": { + "modified": "2019-03-23T22:39:53.487Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/justify-content": { - "modified": "2020-10-15T21:41:40.322Z", + "Glossary/UX": { + "modified": "2019-03-23T22:32:29.107Z", "contributors": [ - "NemoNobobyPersonne", - "SphinxKnight", - "YoannR.", - "ChristopheBoucaut" + "Gibus", + "htindon" ] }, - "Web/CSS/justify-items": { - "modified": "2020-10-15T21:52:49.461Z", + "Glossary/Value": { + "modified": "2019-03-23T22:40:20.340Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/justify-self": { - "modified": "2020-10-15T21:52:50.877Z", + "Glossary/Validator": { + "modified": "2019-03-23T22:57:06.137Z", "contributors": [ - "SphinxKnight" + "loella16", + "Porkepix", + "Toumitoun" ] }, - "Web/CSS/left": { - "modified": "2020-10-15T21:14:12.510Z", + "Glossary/Global_variable": { + "modified": "2019-03-23T22:41:13.951Z", "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "tcit" + "loella16", + "xdelatour" ] }, - "Web/CSS/length": { - "modified": "2020-10-15T21:15:22.701Z", + "Glossary/Local_variable": { + "modified": "2019-03-23T22:41:09.572Z", "contributors": [ - "SphinxKnight", - "emmanuelclement", - "Simplexible", - "fscholz", - "teoli", - "wakka27", - "tregagnon", - "Goofy", - "FredB", - "BenoitL", - "Mgjbot", - "Fredchat", - "Kyodev" + "loella16", + "xdelatour" ] }, - "Web/CSS/length-percentage": { - "modified": "2020-10-15T22:14:28.822Z", + "Glossary/Variable": { + "modified": "2019-03-23T22:42:09.601Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/letter-spacing": { - "modified": "2020-10-15T21:08:58.951Z", + "Glossary/Viewport": { + "modified": "2019-03-23T22:39:08.726Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "hugo42", - "teoli", - "FredB" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/line-break": { - "modified": "2020-10-15T21:37:07.983Z", + "Glossary/VoIP": { + "modified": "2019-03-23T22:39:39.990Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "Yvain" + "xdelatour" ] }, - "Web/CSS/line-height": { - "modified": "2020-10-15T21:15:28.749Z", + "Glossary/W3C": { + "modified": "2019-03-23T22:57:06.246Z", "contributors": [ - "SphinxKnight", - "gharel", - "Nashella", - "teoli", - "Sebastianz", - "Hell_Carlito", - "jadecrea", - "Havano", - "remjie", - "Fredchat", - "FredB", - "BenoitL" + "Porkepix", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/line-height-step": { - "modified": "2020-10-15T21:56:21.204Z", + "Glossary/WAI": { + "modified": "2019-03-23T22:39:58.348Z", "contributors": [ - "SphinxKnight", - "kodliber" + "xdelatour" ] }, - "Web/CSS/linear-gradient()": { - "modified": "2020-11-16T08:57:11.795Z", + "Glossary/WCAG": { + "modified": "2019-03-23T22:40:02.080Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "edspeedy", - "Javarome", - "lhapaipai", - "Guillaume.Wulpes", - "Simplexible", - "wizAmit", - "slayslot", - "prayash", - "Nazcange", - "nicofrand", - "teoli", - "Golmote", - "tregagnon", - "FredB", - "thenew" + "loella16", + "xdelatour" ] }, - "Web/CSS/list-style": { - "modified": "2020-10-15T21:15:56.797Z", + "Glossary/Web_standards": { + "modified": "2019-03-23T22:40:24.427Z", "contributors": [ - "SphinxKnight", - "malenki", - "Sebastianz", - "louuis", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "Porkepix", + "xdelatour" ] }, - "Web/CSS/list-style-image": { - "modified": "2020-10-15T21:15:55.198Z", + "Glossary/WebDAV": { + "modified": "2019-03-23T22:40:37.379Z", "contributors": [ - "SphinxKnight", - "Hinato15", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "tonybengue", + "xdelatour" ] }, - "Web/CSS/list-style-position": { - "modified": "2020-10-15T21:16:01.140Z", + "Glossary/WebExtensions": { + "modified": "2019-03-23T22:07:24.912Z", "contributors": [ - "SphinxKnight", - "teoli", - "fscholz", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev", - "VincentN" + "Mozinet" ] }, - "Web/CSS/list-style-type": { - "modified": "2020-10-15T21:16:00.197Z", + "Glossary/WebGL": { + "modified": "2019-03-23T22:40:38.243Z", "contributors": [ - "SphinxKnight", - "GregMorel", - "fscholz", - "Goofy", - "teoli", - "Sebastianz", - "FredB", - "Mgjbot", - "ethertank", - "Fredchat", - "Kyodev", - "VincentN" + "xdelatour" ] }, - "Web/CSS/margin": { - "modified": "2020-10-15T21:10:35.628Z", + "Glossary/WebIDL": { + "modified": "2019-03-23T22:40:18.690Z", "contributors": [ - "nathsou", - "SphinxKnight", - "guirip", - "mrstork", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner", - "tcit" + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-block": { - "modified": "2020-10-15T22:10:58.480Z", + "Glossary/WebKit": { + "modified": "2019-03-23T22:40:36.496Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/margin-block-end": { - "modified": "2020-10-15T21:43:50.805Z", + "Glossary/webm": { + "modified": "2019-03-23T22:40:30.477Z", "contributors": [ - "SphinxKnight", - "Goofy" + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-block-start": { - "modified": "2020-10-15T21:43:45.525Z", + "Glossary/webp": { + "modified": "2019-03-23T22:40:38.141Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/margin-bottom": { - "modified": "2020-10-15T21:10:36.296Z", + "Glossary/WebRTC": { + "modified": "2019-03-23T22:41:08.284Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-inline": { - "modified": "2020-10-15T22:11:03.669Z", + "Glossary/WebSockets": { + "modified": "2019-03-23T22:40:37.281Z", "contributors": [ - "SphinxKnight" + "Raul6469", + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-inline-end": { - "modified": "2020-10-15T21:18:24.194Z", + "Glossary/WebVTT": { + "modified": "2019-03-18T21:45:46.184Z", "contributors": [ - "SphinxKnight", - "teoli", - "J.DMB", - "louuis", - "FredB", - "VincentN", - "Fredchat" + "loella16" ] }, - "Web/CSS/margin-inline-start": { - "modified": "2020-10-15T21:18:22.766Z", + "Glossary/WHATWG": { + "modified": "2019-03-23T22:40:20.041Z", "contributors": [ - "SphinxKnight", - "teoli", - "louuis", - "FredB", - "VincentN", - "Fredchat" + "xdelatour" ] }, - "Web/CSS/margin-left": { - "modified": "2020-10-15T21:10:37.744Z", + "Glossary/Whitespace": { + "modified": "2020-09-25T06:24:07.540Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "Voulto" ] }, - "Web/CSS/margin-right": { - "modified": "2020-10-15T21:10:35.139Z", + "Glossary/World_Wide_Web": { + "modified": "2019-03-23T22:40:59.764Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-top": { - "modified": "2020-10-15T21:10:41.432Z", + "Glossary/Wrapper": { + "modified": "2019-03-23T22:40:25.100Z", "contributors": [ - "SphinxKnight", - "mrstork", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "loella16", + "xdelatour" ] }, - "Web/CSS/margin-trim": { - "modified": "2020-10-15T22:11:07.350Z", + "Glossary/XForms": { + "modified": "2019-03-23T22:40:51.846Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/mask": { - "modified": "2020-10-15T21:43:53.941Z", + "Glossary/XHR_(XMLHttpRequest)": { + "modified": "2019-03-18T21:45:35.065Z", "contributors": [ - "SphinxKnight", - "LTerrier" + "Porkepix", + "loella16" ] }, - "Web/CSS/mask-border": { - "modified": "2019-04-07T09:00:35.499Z", + "Glossary/XInclude": { + "modified": "2019-03-18T21:44:11.126Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/mask-border-mode": { - "modified": "2019-04-07T09:04:43.048Z", + "Glossary/XLink": { + "modified": "2019-03-23T22:39:40.575Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/mask-border-outset": { - "modified": "2019-04-06T16:09:39.252Z", + "Glossary/XML": { + "modified": "2019-03-23T22:41:20.251Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/mask-border-repeat": { - "modified": "2019-04-06T16:09:31.479Z", + "Glossary/XPath": { + "modified": "2019-03-23T22:40:53.901Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/mask-border-slice": { - "modified": "2019-04-06T16:09:23.034Z", + "Glossary/XQuery": { + "modified": "2019-03-23T22:40:51.223Z", "contributors": [ - "SphinxKnight" + "loella16", + "xdelatour" ] }, - "Web/CSS/mask-border-source": { - "modified": "2019-04-06T16:08:52.761Z", + "Glossary/XSLT": { + "modified": "2019-03-23T22:40:34.285Z", "contributors": [ - "SphinxKnight" + "xdelatour" ] }, - "Web/CSS/mask-border-width": { - "modified": "2019-04-06T16:08:41.957Z", + "Glossary/Grid_Areas": { + "modified": "2019-06-14T08:10:14.682Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/CSS/mask-clip": { - "modified": "2020-10-15T21:44:07.704Z", + "Glossary/Block/CSS": { + "modified": "2019-03-23T22:56:52.690Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16", + "Goofy", + "Toumitoun" ] }, - "Web/CSS/mask-composite": { - "modified": "2020-10-15T21:44:09.144Z", + "Glossary/Node/networking": { + "modified": "2019-03-23T22:42:03.351Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16", + "Porkepix", + "xdelatour" ] }, - "Web/CSS/mask-image": { - "modified": "2020-10-15T21:45:26.294Z", + "Web/API/Canvas_API/Manipulating_video_using_canvas": { + "modified": "2019-03-23T23:19:48.901Z", "contributors": [ - "SphinxKnight", - "lp177" + "loella16", + "kuronoyurei" ] }, - "Web/CSS/mask-mode": { - "modified": "2020-10-15T21:45:26.649Z", + "Web/CSS/inset-block-end": { + "modified": "2020-10-15T21:43:23.981Z", "contributors": [ "SphinxKnight", - "lp177" + "rachelandrew" ] }, - "Web/CSS/mask-origin": { - "modified": "2020-10-15T21:45:26.109Z", + "Web/CSS/inset-block-start": { + "modified": "2020-10-15T21:43:23.193Z", "contributors": [ "SphinxKnight", - "lp177" + "rachelandrew" ] }, - "Web/CSS/mask-position": { - "modified": "2020-10-15T21:45:24.708Z", + "Web/CSS/inset-inline-end": { + "modified": "2020-10-15T21:43:21.489Z", "contributors": [ "SphinxKnight", - "lp177" + "rachelandrew" ] }, - "Web/CSS/mask-repeat": { - "modified": "2020-10-15T21:45:24.759Z", + "Web/CSS/inset-inline-start": { + "modified": "2020-10-15T21:43:20.633Z", "contributors": [ "SphinxKnight", - "lp177" + "rachelandrew" ] }, - "Web/CSS/mask-size": { - "modified": "2020-10-15T21:45:21.752Z", + "orphaned/Tools/Add-ons/DOM_Inspector/DOM_Inspector_FAQ": { + "modified": "2020-07-16T22:36:25.515Z", "contributors": [ - "SphinxKnight", - "lp177" + "wbamberg", + "maximelore" ] }, - "Web/CSS/mask-type": { - "modified": "2020-10-15T21:43:42.404Z", + "orphaned/Tools/Add-ons/DOM_Inspector": { + "modified": "2020-07-16T22:36:24.288Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "maximelore", + "tregagnon", + "Delapouite", + "Mgjbot", + "BenoitL", + "Sheppy", + "Chbok" ] }, - "Web/CSS/max()": { - "modified": "2020-11-16T09:02:34.879Z", + "orphaned/Tools/Add-ons/DOM_Inspector/Internals": { + "modified": "2020-07-16T22:36:25.144Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "wbamberg", + "maximelore" ] }, - "Web/CSS/max-block-size": { - "modified": "2020-10-15T21:43:44.853Z", + "orphaned/Tools/Add-ons/DOM_Inspector/Introduction_to_DOM_Inspector": { + "modified": "2020-07-16T22:36:25.833Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg" ] }, - "Web/CSS/max-height": { - "modified": "2020-10-15T21:15:55.797Z", + "orphaned/Introduction_à_la_cryptographie_à_clef_publique/Certificats_et_authentification": { + "modified": "2019-03-24T00:12:07.320Z", "contributors": [ - "ldvc", + "fsiliadin", "SphinxKnight", - "fscholz", "Sebastianz", - "teoli", - "FredB", - "Mgjbot", + "Sheppy", + "nterray", + "BenoitL", "Fredchat" ] }, - "Web/CSS/max-inline-size": { - "modified": "2020-10-15T21:43:33.488Z", + "orphaned/Introduction_à_la_cryptographie_à_clef_publique/Chiffrement_et_déchiffrement": { + "modified": "2019-03-23T23:47:48.910Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "acemann", + "Sebastianz", + "CedricP", + "Fredchat" ] }, - "Web/CSS/max-width": { - "modified": "2020-10-15T21:16:38.615Z", + "orphaned/Introduction_à_la_cryptographie_à_clef_publique/Gestion_des_certificats": { + "modified": "2019-03-23T23:47:44.500Z", "contributors": [ - "SphinxKnight", + "acemann", "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "BenoitL", + "fscholz", + "CedricP", "Fredchat" ] }, - "Web/CSS/min()": { - "modified": "2020-11-16T09:04:19.879Z", + "orphaned/Introduction_à_la_cryptographie_à_clef_publique/Les_problèmes_de_sécurité_sur_Internet": { + "modified": "2019-03-23T23:47:50.104Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "Sebastianz", + "CedricP", + "Fredchat" ] }, - "Web/CSS/min-block-size": { - "modified": "2020-10-15T21:43:26.727Z", + "orphaned/Introduction_à_la_cryptographie_à_clef_publique/Signatures_numériques": { + "modified": "2019-03-23T23:47:49.334Z", "contributors": [ - "SphinxKnight" + "fsiliadin", + "Sebastianz", + "CedricP", + "Fredchat" ] }, - "Web/CSS/min-height": { - "modified": "2020-10-15T21:16:02.253Z", + "Web/JavaScript/Reference/Deprecated_and_obsolete_features": { + "modified": "2020-03-12T19:36:16.242Z", "contributors": [ - "Derek", "SphinxKnight", - "Sebastianz", + "soleuu", + "Vnicolas", "teoli", - "FredB", - "Grsmto", - "Delapouite", - "tregagnon", - "Mgjbot", - "Fredchat" + "LaBoumerde", + "matteodelabre" ] }, - "Web/CSS/min-inline-size": { - "modified": "2020-10-15T21:43:22.753Z", + "Games/Anatomy": { + "modified": "2019-01-17T06:54:31.636Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "und3rh00d", + "loella16", + "ericfourmaux" ] }, - "Web/CSS/min-width": { - "modified": "2020-10-15T21:16:36.385Z", + "Games/Examples": { + "modified": "2019-03-23T22:44:48.124Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "BenoitL", - "Fredchat" + "wbamberg", + "loella16", + "Gibus", + "samuelbeloola", + "BNedry" ] }, - "Web/CSS/minmax()": { - "modified": "2020-11-16T09:06:07.004Z", + "Games": { + "modified": "2019-09-09T15:31:44.765Z", "contributors": [ - "chrisdavidmills", "SphinxKnight", - "HerveRenault", - "lp177" + "wbamberg", + "gnoyaze", + "Zefling", + "loella16", + "Tetrastorm" ] }, - "Web/CSS/mix-blend-mode": { - "modified": "2020-10-15T21:37:54.397Z", + "Games/Index": { + "modified": "2019-01-16T21:55:43.323Z", "contributors": [ - "SphinxKnight", - "mrstork", - "LukyVj", - "Sebastianz", - "Hell_Carlito" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/none": { - "modified": "2019-03-18T21:17:42.214Z", + "Games/Introduction_to_HTML5_Game_Development": { + "modified": "2020-09-28T01:50:43.797Z", "contributors": [ - "teoli", - "FredB", - "ThePrisoner" + "Voulto", + "JNa0", + "dragon38800" ] }, - "Web/CSS/normal": { - "modified": "2019-03-24T00:11:40.284Z", + "Games/Introduction": { + "modified": "2019-04-23T09:34:16.784Z", "contributors": [ - "teoli", - "FredB", - "ThePrisoner" + "As-Sinder", + "wbamberg", + "loella16", + "DeathPixHell", + "CarlosAvim", + "Tetrastorm", + "Goofy", + "SphinxKnight" ] }, - "Web/CSS/number": { - "modified": "2020-10-15T21:15:34.930Z", + "Games/Publishing_games/Game_monetization": { + "modified": "2020-10-08T10:55:08.029Z", "contributors": [ - "SphinxKnight", - "fscholz", - "louuis", - "teoli", - "FredB", - "tregagnon", - "Goofy", - "BenoitL" + "Voulto" ] }, - "Web/CSS/object-fit": { - "modified": "2020-10-15T21:40:35.077Z", + "Games/Publishing_games": { + "modified": "2020-09-28T03:39:21.488Z", "contributors": [ - "uniuc", + "Voulto", + "wbamberg", + "NerOcrO", + "Tipoussin" + ] + }, + "Mozilla/Firefox/Releases/2/Security_changes": { + "modified": "2019-03-23T23:54:31.258Z", + "contributors": [ + "wbamberg", + "Mgjbot", + "BenoitL", + "Fredchat", + "Chbok" + ] + }, + "Learn/CSS/First_steps/What_is_CSS": { + "modified": "2020-10-15T22:25:55.680Z", + "contributors": [ + "geraldventadour", "SphinxKnight", - "LauJi", - "PifyZ" + "smeden-lod" ] }, - "Web/CSS/object-position": { - "modified": "2020-10-15T21:43:24.887Z", + "Learn/CSS/Styling_text/Fundamentals": { + "modified": "2020-07-16T22:26:05.430Z", "contributors": [ - "SphinxKnight" + "Dralyab", + "loella16", + "Oliv" ] }, - "Web/CSS/offset": { - "modified": "2020-10-15T21:43:23.702Z", + "Learn/CSS/Styling_text/Styling_links": { + "modified": "2020-11-15T18:10:36.319Z", "contributors": [ - "SphinxKnight" + "NemoNobobyPersonne", + "Dralyab" ] }, - "Web/CSS/offset-anchor": { - "modified": "2020-10-15T22:24:05.493Z", + "Learn/JavaScript/First_steps/Useful_string_methods": { + "modified": "2020-07-16T22:30:46.814Z", "contributors": [ - "SphinxKnight" + "smeden-lod", + "Dralyab", + "Iwazaru", + "tonybengue" ] }, - "Web/CSS/offset-distance": { - "modified": "2020-10-15T21:43:21.224Z", + "Learn/JavaScript/First_steps/Arrays": { + "modified": "2020-07-16T22:30:53.940Z", "contributors": [ - "SphinxKnight" + "smeden-lod", + "tavax", + "Dralyab", + "tonybengue" ] }, - "Web/CSS/offset-path": { - "modified": "2020-10-15T21:43:23.613Z", + "Learn/JavaScript/First_steps/Test_your_skills:_Arrays": { + "modified": "2020-10-17T18:40:31.138Z", "contributors": [ - "SphinxKnight", - "a-mt" + "tonybengue" ] }, - "Web/CSS/offset-position": { - "modified": "2020-10-15T22:34:44.413Z", + "Learn/JavaScript/Objects/Adding_bouncing_balls_features": { + "modified": "2020-07-16T22:32:34.729Z", "contributors": [ - "cdoublev" + "AkwindFr", + "tonybengue" ] }, - "Web/CSS/offset-rotate": { - "modified": "2020-10-15T21:43:21.156Z", + "Learn/JavaScript/Objects/Inheritance": { + "modified": "2020-07-16T22:32:13.707Z", "contributors": [ - "SphinxKnight" + "franssu", + "loranger32", + "elWombator", + "lobertrand", + "manuwhat", + "Yopai", + "AntrHaxx", + "MartyO256", + "Alpha" ] }, - "Web/CSS/opacity": { - "modified": "2020-10-15T21:09:09.094Z", + "Learn/JavaScript/Objects/Object-oriented_JS": { + "modified": "2020-07-16T22:32:05.419Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "Kyodev", - "Fredchat" + "grandoc", + "FloppyJunior", + "vacarme", + "zoora", + "Jetinho", + "elWombator", + "manuwhat", + "antoninha", + "LDCL", + "Alpha", + "SphinxKnight" ] }, - "Web/CSS/order": { - "modified": "2020-10-15T21:43:22.198Z", + "Learn/JavaScript/Objects/Object_building_practice": { + "modified": "2020-07-16T22:32:31.265Z", "contributors": [ - "cdoublev", - "SphinxKnight", - "tzilliox" + "smeden-lod", + "loranger32", + "manuwhat" ] }, - "Web/CSS/orphans": { - "modified": "2020-10-15T21:09:04.253Z", + "Learn/JavaScript/Objects/Object_prototypes": { + "modified": "2020-07-16T22:32:19.975Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "djacquel" + "grandoc", + "Etheonor", + "aSeches", + "zoora", + "Jetinho", + "JonGarbayo", + "LDCL", + "Alpha" ] }, - "Web/CSS/outline": { - "modified": "2020-10-15T21:09:11.603Z", + "Learn/Performance/why_web_performance": { + "modified": "2020-11-10T09:10:02.087Z", "contributors": [ - "erwanjugand", - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "wakka27", - "FredB", - "Blackhole", - "Kyodev", - "Fredchat" + "Voulto" ] }, - "Web/CSS/outline-color": { - "modified": "2020-10-15T21:08:56.862Z", + "Learn/Server-side/Django/Generic_views": { + "modified": "2020-08-10T12:14:32.253Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "BrRoman" ] }, - "Web/CSS/outline-offset": { - "modified": "2020-10-15T21:08:49.087Z", + "Learn/Server-side/First_steps/Client-Server_overview": { + "modified": "2020-07-16T22:36:19.848Z", "contributors": [ + "smeden-lod", + "houckontape", "SphinxKnight", - "mrstork", - "fscholz", - "Sebastianz", - "teoli", - "Manumanu", - "FredB", - "Kyodev", - "Fredchat" + "ThCarrere" ] }, - "Web/CSS/outline-style": { - "modified": "2020-10-15T21:09:08.315Z", + "Learn/Server-side/First_steps": { + "modified": "2020-07-16T22:36:08.675Z", "contributors": [ - "johannpinson", + "Etheonor", + "smeden-lod", "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "JeffD", + "KurtC0ba1n", + "ayshiff", + "chrisdavidmills" ] }, - "Web/CSS/outline-width": { - "modified": "2020-10-15T21:09:11.670Z", + "Learn/Server-side/First_steps/Introduction": { + "modified": "2020-07-16T22:36:13.996Z", "contributors": [ + "smeden-lod", "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Kyodev", - "Fredchat" + "ThCarrere", + "a-mt" ] }, - "Web/CSS/overflow": { - "modified": "2020-10-15T21:08:56.186Z", + "Learn/Server-side/First_steps/Web_frameworks": { + "modified": "2020-07-16T22:36:24.273Z", "contributors": [ + "smeden-lod", + "houckontape", "SphinxKnight", - "fdnhkj", - "mapiki", - "matsumonkie", - "Sebastianz", - "scaillerie", - "teoli", - "FredB" + "Mania" ] }, - "Web/CSS/overflow-anchor": { - "modified": "2020-10-15T22:10:01.845Z", + "Learn/Server-side/First_steps/Website_security": { + "modified": "2020-07-16T22:36:28.165Z", "contributors": [ - "SphinxKnight" + "smeden-lod", + "ThCarrere", + "LeMilitaire", + "SphinxKnight", + "JeffD" ] }, - "Web/CSS/overflow-anchor/Guide_ancrage_défilement": { - "modified": "2020-10-15T22:17:58.241Z", + "Learn/Tools_and_testing/Cross_browser_testing/Accessibility": { + "modified": "2020-07-16T22:39:16.445Z", "contributors": [ - "SphinxKnight" + "Dralyab", + "Azyme" ] }, - "Web/CSS/overflow-block": { - "modified": "2020-10-15T22:17:59.313Z", + "Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS": { + "modified": "2020-07-16T22:39:09.777Z", "contributors": [ - "SphinxKnight" + "NacimHarfouche", + "Azyme" ] }, - "Web/CSS/overflow-inline": { - "modified": "2020-10-15T22:17:57.651Z", + "Learn/Tools_and_testing/Understanding_client-side_tools/Command_line": { + "modified": "2020-08-07T09:37:14.013Z", "contributors": [ - "SphinxKnight" + "voronamanga" ] }, - "Web/CSS/overflow-wrap": { - "modified": "2020-10-15T21:20:31.219Z", + "Glossary/Localization": { + "modified": "2019-03-24T00:14:08.788Z", "contributors": [ - "SphinxKnight", - "anisometropie", - "patrickfournier", - "fscholz", - "Sebastianz", - "PofMagicfingers", - "teoli", - "BiAiB", - "philippe97", - "FredB", - "Delapouite" + "loella16", + "ethertank", + "DirkS", + "Mgjbot", + "Fredchat", + "BenoitL", + "Goofy", + "Verruckt", + "Takenbot", + "Chbok" ] }, - "Web/CSS/overflow-x": { - "modified": "2020-10-15T21:21:34.563Z", + "conflicting/MDN/Contribute": { + "modified": "2020-02-19T18:10:07.383Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "tregagnon", - "Delapouite", - "Igro" + "jswisher", + "SphinxKnight" ] }, - "Web/CSS/overflow-y": { - "modified": "2020-10-15T21:21:35.151Z", + "MDN/At_ten/History_of_MDN": { + "modified": "2019-03-23T22:50:37.833Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "enogael", - "FredB", - "tregagnon", - "Delapouite", - "Igro" + "stephaniehobson", + "tchevalier", + "SphinxKnight" ] }, - "Web/CSS/overscroll-behavior": { - "modified": "2020-10-15T22:01:11.932Z", + "MDN/At_ten": { + "modified": "2019-03-23T22:50:40.435Z", "contributors": [ + "lumiru", + "achraf", + "stephaniehobson", + "Cyber-Tron", + "ArtonP", "SphinxKnight", - "brunostasse" + "tchevalier" ] }, - "Web/CSS/overscroll-behavior-x": { - "modified": "2020-10-15T22:01:15.043Z", + "MDN/About": { + "modified": "2019-03-24T00:12:46.908Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "Porkepix", + "Mozinet", + "fscholz", + "jswisher", + "microsoft", + "wakka27", + "Jeremie", + "teoli", + "tregagnon", + "le penseur", + "Akiro", + "BenoitL", + "Petrus", + "Omnisilver", + "Gege2", + "Dria", + "Cbeard", + "Anonymous" ] }, - "Web/CSS/overscroll-behavior-y": { - "modified": "2020-10-15T22:01:11.740Z", + "orphaned/MDN/Contribute/Howto/Create_an_MDN_account": { + "modified": "2019-01-16T18:25:23.702Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "SphinxKnight", + "Goofy" ] }, - "Web/CSS/padding": { - "modified": "2020-10-15T21:10:34.387Z", + "MDN/Contribute/Howto/Convert_code_samples_to_be_live": { + "modified": "2019-01-16T20:18:20.962Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "wbamberg", + "Maamouch", + "Goofy", + "Lamaw" ] }, - "Web/CSS/padding-block": { - "modified": "2020-10-15T22:11:17.883Z", + "MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web": { + "modified": "2019-07-17T03:15:29.432Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "AkwindFr" ] }, - "Web/CSS/padding-block-end": { - "modified": "2020-10-15T21:43:04.401Z", + "orphaned/MDN/Contribute/Howto/Tag_JavaScript_pages": { + "modified": "2019-01-16T19:52:49.003Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "NerOcrO", + "jswisher", + "Johann-S", + "Maamouch", + "BiGrEgGaErOoTs", + "Bath66", + "ainouss", + "Wladek92", + "DOCUBE", + "Luejni" ] }, - "Web/CSS/padding-block-start": { - "modified": "2020-10-15T21:43:04.242Z", + "orphaned/MDN/Contribute/Howto/Do_an_editorial_review": { + "modified": "2020-04-12T16:14:40.644Z", "contributors": [ - "SphinxKnight" + "ele-gall-ac-mineducation", + "wbamberg", + "ussmarc", + "SphinxKnight", + "Raulel", + "ThinkDumbIndustries", + "Fabienne1963", + "Requiem75020", + "tregagnon" ] }, - "Web/CSS/padding-bottom": { - "modified": "2020-10-15T21:10:37.788Z", + "orphaned/MDN/Contribute/Howto/Do_a_technical_review": { + "modified": "2019-08-07T15:32:02.446Z", "contributors": [ + "mathildebuenerd", + "wbamberg", "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "AlemFarid", + "vhf", + "tregagnon" ] }, - "Web/CSS/padding-inline": { - "modified": "2020-10-15T22:11:15.316Z", + "orphaned/MDN/Contribute/Howto/Set_the_summary_for_a_page": { + "modified": "2019-03-23T22:55:58.937Z", "contributors": [ - "Loliwe", - "SphinxKnight" + "wbamberg", + "loella16", + "Hell_Carlito", + "pixoux", + "diomabb" ] }, - "Web/CSS/padding-inline-end": { - "modified": "2020-10-15T21:18:26.917Z", + "orphaned/MDN/Contribute/Howto/Write_an_article_to_help_learn_about_the_Web": { + "modified": "2020-02-28T22:24:52.629Z", "contributors": [ - "SphinxKnight", - "teoli", - "FredB", - "VincentN", - "Fredchat" + "As-Sinder", + "wbamberg", + "Dralyab" ] }, - "Web/CSS/padding-inline-start": { - "modified": "2020-10-15T21:18:27.911Z", + "orphaned/MDN/Editor/Basics": { + "modified": "2020-09-30T15:38:34.461Z", "contributors": [ - "SphinxKnight", - "AmauryH", - "teoli", - "FredB", - "VincentN", - "Fredchat" + "chrisdavidmills", + "Voulto", + "jswisher" ] }, - "Web/CSS/padding-left": { - "modified": "2020-10-15T21:10:35.530Z", + "orphaned/MDN/Editor/Basics/Attachments": { + "modified": "2020-09-30T15:38:34.580Z", "contributors": [ - "SphinxKnight", - "warso", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "chrisdavidmills", + "ele-gall-ac-mineducation" ] }, - "Web/CSS/padding-right": { - "modified": "2020-10-15T21:10:31.706Z", + "orphaned/MDN/Editor": { + "modified": "2020-09-30T15:38:34.314Z", "contributors": [ - "SphinxKnight", - "Sebastianz", + "chrisdavidmills", + "verdy_p", + "wbamberg", + "Keyrolus", + "ftoulouse", + "Mylainos", + "Jeremie", "teoli", - "FredB", - "ThePrisoner" + "BenoitL" ] }, - "Web/CSS/padding-top": { - "modified": "2020-10-15T21:10:29.837Z", + "MDN/Guidelines/Code_guidelines": { + "modified": "2020-09-30T15:29:18.597Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "chrisdavidmills", + "tristantheb" ] }, - "Web/CSS/page-break-after": { - "modified": "2020-10-15T21:31:45.771Z", + "MDN/Yari": { + "modified": "2020-02-08T12:56:22.102Z", "contributors": [ - "SphinxKnight", - "ncoden", - "Sebastianz", - "gmichard", - "ilaborie" + "tristantheb" ] }, - "Web/CSS/page-break-before": { - "modified": "2020-10-15T21:43:02.913Z", + "orphaned/MDN/Community/Conversations": { + "modified": "2019-01-17T02:52:45.654Z", "contributors": [ - "jibe0123", - "SphinxKnight" + "wbamberg", + "zakaila" ] }, - "Web/CSS/page-break-inside": { - "modified": "2020-10-15T21:43:05.193Z", + "orphaned/MDN/Community/Doc_sprints": { + "modified": "2019-03-23T22:40:48.518Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "qwincy_p", + "Manuela" ] }, - "Web/CSS/paint()": { - "modified": "2020-11-16T12:34:32.285Z", + "orphaned/MDN/Community": { + "modified": "2019-09-11T08:03:04.252Z", "contributors": [ - "JNa0", - "chrisdavidmills", - "SphinxKnight" + "SphinxKnight", + "wbamberg", + "NerOcrO", + "loella16", + "ZakCodes", + "Mozinet", + "teoli", + "wakka27" ] }, - "Web/CSS/paint-order": { - "modified": "2020-10-15T22:02:33.903Z", + "orphaned/MDN/Community/Whats_happening": { + "modified": "2020-10-05T06:56:25.370Z", "contributors": [ - "SphinxKnight" + "Voulto" ] }, - "Web/CSS/percentage": { - "modified": "2020-10-15T21:15:29.581Z", + "MDN/Structures/Live_samples": { + "modified": "2020-09-30T09:06:59.551Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "fscholz", - "teoli", - "FredB", - "tregagnon", - "BenoitL" + "chrisdavidmills", + "tristantheb", + "wbamberg", + "Johann-S" ] }, - "Web/CSS/perspective": { - "modified": "2020-10-15T21:19:38.260Z", + "MDN/Structures/Compatibility_tables": { + "modified": "2020-10-15T22:02:05.521Z", "contributors": [ - "SphinxKnight", - "eviouchka", - "pierretusseau", - "fscholz", - "Sebastianz", - "teoli", - "pl6025", - "FredB" + "chrisdavidmills", + "wbamberg", + "jcletousey", + "loella16" ] }, - "Web/CSS/perspective-origin": { - "modified": "2020-10-15T21:20:18.754Z", + "orphaned/MDN/Tools/Template_editing": { + "modified": "2020-09-30T16:48:33.737Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "chrisdavidmills", + "JNa0" ] }, - "Web/CSS/place-content": { - "modified": "2020-10-15T21:52:51.184Z", + "Mozilla/Firefox/Releases/3/Updating_web_applications": { + "modified": "2019-03-23T23:53:12.406Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "Sheppy", + "Mgjbot", + "BenoitL" ] }, - "Web/CSS/place-items": { - "modified": "2020-10-15T21:52:53.357Z", + "Mozilla/Firefox/Releases/2/Updating_extensions": { + "modified": "2019-03-23T23:50:49.070Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "Mgjbot", + "Fredchat", + "Planche" ] }, - "Web/CSS/place-self": { - "modified": "2020-10-15T21:52:50.692Z", + "Mozilla/Firefox/Releases/3/Updating_extensions": { + "modified": "2019-12-13T20:33:09.962Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "Sheppy", + "Gandoulf", + "BenoitL", + "Mgjbot", + "Fredchat" ] }, - "Web/CSS/pointer-events": { - "modified": "2020-10-15T21:22:42.114Z", + "orphaned/Mozilla/Add-ons_bonnes_pratiques_performances_extensions": { + "modified": "2019-03-23T22:52:30.998Z", "contributors": [ - "SphinxKnight", - "flexbox", - "teoli", - "SiegfriedEhret", - "avetisk" + "ArakNoPhob" ] }, - "Web/CSS/position": { - "modified": "2020-10-15T21:16:08.130Z", + "Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar": { + "modified": "2019-07-03T05:22:48.886Z", "contributors": [ - "SphinxKnight", - "Loliwe", - "Machou", - "adaedra", - "fscholz", - "Sebastianz", - "cconcolato", - "FredB", - "teoli", - "Mgjbot", - "Fredchat", - "Kyodev" + "hellosct1", + "JNa0", + "Goofy" ] }, - "Web/CSS/quotes": { - "modified": "2020-10-15T21:08:51.774Z", + "Mozilla/Add-ons/WebExtensions/Implement_a_settings_page": { + "modified": "2019-05-19T03:44:17.070Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB" + "hellosct1", + "RoyalPanda" ] }, - "Web/CSS/radial-gradient()": { - "modified": "2020-11-18T14:42:17.846Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_for_desktop_apps": { + "modified": "2019-09-30T14:55:22.937Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "PetiPandaRou", - "teoli", - "philippe97", - "FredB", - "Jeansebastien.ney" + "hellosct1" ] }, - "Web/CSS/ratio": { - "modified": "2020-10-15T21:21:46.974Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Add-ons_in_the_enterprise": { + "modified": "2019-07-08T08:21:59.137Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB" + "hellosct1", + "JeffD" ] }, - "Web/CSS/repeat()": { - "modified": "2020-11-18T14:44:25.185Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options": { + "modified": "2019-07-08T08:22:26.722Z", "contributors": [ - "chrisdavidmills", + "hellosct1", "SphinxKnight" ] }, - "Web/CSS/repeating-conic-gradient()": { - "modified": "2020-11-18T14:49:14.177Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Distribution_options/Sideloading_add-ons": { + "modified": "2019-07-08T08:20:57.253Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/repeating-linear-gradient()": { - "modified": "2020-11-18T14:45:56.794Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/settings": { + "modified": "2020-10-15T22:04:59.888Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "wizAmit", - "prayash", - "bfn", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/repeating-radial-gradient()": { - "modified": "2020-11-18T14:47:29.838Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/eval": { + "modified": "2020-10-15T21:55:14.114Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "a-mt" + "hellosct1", + "m-r-r" ] }, - "Web/CSS/resize": { - "modified": "2020-10-15T21:19:06.332Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow": { + "modified": "2020-10-15T21:55:11.329Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/resolution": { - "modified": "2020-10-15T21:24:52.090Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/reload": { + "modified": "2020-10-15T21:55:58.911Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "fscholz", - "J.DMB", - "louuis", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/revert": { - "modified": "2020-10-15T21:42:54.151Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/tabId": { + "modified": "2020-10-15T21:55:59.720Z", "contributors": [ - "SphinxKnight", - "Zefling" + "hellosct1" ] }, - "Web/CSS/right": { - "modified": "2020-10-15T21:08:54.080Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/network/getHAR": { + "modified": "2020-10-15T22:04:36.939Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "Delapouite" + "hellosct1" ] }, - "Web/CSS/rotate": { - "modified": "2020-10-15T22:02:45.073Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/network": { + "modified": "2020-10-15T21:55:16.357Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/row-gap": { - "modified": "2020-10-15T22:05:44.066Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/network/onNavigated": { + "modified": "2020-10-15T21:56:01.394Z", "contributors": [ - "SphinxKnight", - "JNa0" + "hellosct1" ] }, - "Web/CSS/ruby-align": { - "modified": "2020-10-15T21:43:02.784Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/network/onRequestFinished": { + "modified": "2020-10-15T22:04:12.813Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/ruby-position": { - "modified": "2020-10-15T21:42:41.711Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/create": { + "modified": "2020-10-15T21:56:02.132Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scale": { - "modified": "2020-10-15T22:02:41.753Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/elements": { + "modified": "2020-10-15T22:04:11.356Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-behavior": { - "modified": "2020-10-15T21:42:38.519Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/createSidebarPane": { + "modified": "2020-10-15T22:04:11.111Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin": { - "modified": "2020-10-15T22:11:29.331Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel": { + "modified": "2020-10-15T21:56:25.683Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-block": { - "modified": "2020-10-15T22:11:26.331Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/onSelectionChanged": { + "modified": "2020-10-15T21:56:28.564Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-block-end": { - "modified": "2020-10-15T22:11:24.840Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionPanel": { + "modified": "2020-10-15T21:56:01.635Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-block-start": { - "modified": "2020-10-15T22:11:27.968Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane": { + "modified": "2020-10-15T22:04:11.081Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-bottom": { - "modified": "2020-10-15T22:11:27.109Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onHidden": { + "modified": "2020-10-15T22:04:12.026Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-inline": { - "modified": "2020-10-15T22:11:27.758Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onShown": { + "modified": "2020-10-15T22:04:11.474Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-inline-end": { - "modified": "2020-10-15T22:11:29.215Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setExpression": { + "modified": "2020-10-15T22:04:11.532Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-inline-start": { - "modified": "2020-10-15T22:11:31.365Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setObject": { + "modified": "2020-10-15T22:04:12.294Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-left": { - "modified": "2020-10-15T22:11:32.305Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setPage": { + "modified": "2020-10-15T22:15:03.534Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-right": { - "modified": "2020-10-15T22:11:31.609Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels": { + "modified": "2020-10-15T21:55:15.857Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-margin-top": { - "modified": "2020-10-15T22:11:25.637Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/onThemeChanged": { + "modified": "2020-10-15T21:55:59.922Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding": { - "modified": "2020-10-15T22:11:29.445Z", + "Mozilla/Add-ons/WebExtensions/API/devtools/panels/themeName": { + "modified": "2020-10-15T21:55:59.431Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-block": { - "modified": "2020-10-15T22:11:28.191Z", + "conflicting/Mozilla/Add-ons/WebExtensions/API/menus/overrideContext": { + "modified": "2019-07-03T07:58:27.877Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-block-end": { - "modified": "2020-10-15T22:11:29.968Z", + "Mozilla/Add-ons/WebExtensions/API/proxy/onError": { + "modified": "2020-10-15T22:00:36.758Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "wbamberg" ] }, - "Web/CSS/scroll-padding-block-start": { - "modified": "2020-10-15T22:11:29.801Z", + "orphaned/Mozilla/Add-ons/WebExtensions/API/userScripts/APIScript": { + "modified": "2019-10-13T04:23:03.445Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-bottom": { - "modified": "2020-10-15T22:11:30.415Z", + "conflicting/Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/unregister": { + "modified": "2020-10-15T22:23:34.113Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-inline": { - "modified": "2020-10-15T22:11:26.827Z", + "Mozilla/Add-ons/WebExtensions/API/userScripts/Working_with_userScripts": { + "modified": "2019-10-13T04:55:15.939Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-inline-end": { - "modified": "2020-10-15T22:11:26.380Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Best_practices_for_updating_your_extension": { + "modified": "2019-07-05T09:31:56.338Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-inline-start": { - "modified": "2020-10-15T22:11:30.209Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Choose_a_Firefox_version_for_web_extension_develop": { + "modified": "2019-10-12T17:29:13.794Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-padding-left": { - "modified": "2020-10-15T22:11:32.055Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK": { + "modified": "2019-05-19T07:28:28.529Z", "contributors": [ + "hellosct1", "SphinxKnight" ] }, - "Web/CSS/scroll-padding-right": { - "modified": "2020-10-15T22:11:31.603Z", + "Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs": { + "modified": "2020-10-15T20:55:07.811Z", "contributors": [ + "hellosct1", "SphinxKnight" ] }, - "Web/CSS/scroll-padding-top": { - "modified": "2020-10-15T22:11:27.462Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Developer_accounts": { + "modified": "2019-10-12T19:14:11.531Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-snap-align": { - "modified": "2020-10-15T22:11:32.358Z", + "Mozilla/Add-ons/WebExtensions/Build_a_cross_browser_extension": { + "modified": "2019-09-22T19:56:40.143Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "ponsfrilus" ] }, - "Web/CSS/scroll-snap-coordinate": { - "modified": "2020-10-15T21:42:48.115Z", + "Mozilla/Add-ons/WebExtensions/Debugging_(before_Firefox_50)": { + "modified": "2019-03-18T21:02:43.036Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-snap-destination": { - "modified": "2020-10-15T21:42:40.512Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions": { + "modified": "2019-07-03T12:00:26.344Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "regseb" ] }, - "Web/CSS/scroll-snap-points-x": { - "modified": "2020-10-15T21:42:45.133Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Test_permission_requests": { + "modified": "2019-05-18T18:06:34.313Z", "contributors": [ - "SphinxKnight", - "teoli" + "hellosct1" ] }, - "Web/CSS/scroll-snap-points-y": { - "modified": "2020-10-15T21:42:38.109Z", + "Mozilla/Add-ons/WebExtensions/Differences_between_API_implementations": { + "modified": "2019-07-08T08:23:30.368Z", "contributors": [ - "SphinxKnight", - "teoli" + "hellosct1" ] }, - "Web/CSS/scroll-snap-stop": { - "modified": "2020-10-15T22:10:03.086Z", + "Mozilla/Add-ons/WebExtensions/Examples": { + "modified": "2020-05-24T09:35:11.044Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "NerOcrO", + "gritchou" ] }, - "Web/CSS/scroll-snap-type": { - "modified": "2020-10-15T21:42:50.969Z", + "orphaned/Mozilla/Add-ons/WebExtensions/User_experience_best_practices": { + "modified": "2019-05-18T19:46:03.001Z", "contributors": [ - "SphinxKnight", - "jide" + "hellosct1" ] }, - "Web/CSS/scroll-snap-type-x": { - "modified": "2020-10-15T21:42:38.724Z", + "Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools": { + "modified": "2019-07-08T08:20:22.550Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/scroll-snap-type-y": { - "modified": "2020-10-15T21:42:39.974Z", + "Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities": { + "modified": "2019-10-13T06:54:47.652Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "SphinxKnight", + "lp177", + "wtoscer", + "Goofy", + "Bat41" ] }, - "Web/CSS/scrollbar-color": { - "modified": "2020-10-15T22:10:04.861Z", + "Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page": { + "modified": "2019-07-03T12:00:39.099Z", "contributors": [ - "SphinxKnight", - "lp177" + "hellosct1" ] }, - "Web/CSS/scrollbar-width": { - "modified": "2020-10-15T22:10:07.959Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox": { + "modified": "2019-03-28T06:57:14.853Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "zecakeh", + "fbessou" ] }, - "Web/CSS/shape": { - "modified": "2020-10-15T21:46:30.260Z", + "Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard": { + "modified": "2019-07-03T05:46:49.789Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "MyriamB" ] }, - "Web/CSS/shape-box": { - "modified": "2019-03-23T22:32:55.011Z", + "Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests": { + "modified": "2019-07-03T05:48:59.759Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "Wintersunshine-Do" ] }, - "Web/CSS/shape-image-threshold": { - "modified": "2020-10-15T21:42:37.534Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/background": { + "modified": "2020-10-15T21:53:54.965Z", "contributors": [ - "SphinxKnight", - "Zefling" + "hellosct1", + "Porkepix", + "loella16" ] }, - "Web/CSS/shape-margin": { - "modified": "2020-10-15T21:42:48.010Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/author": { + "modified": "2020-10-15T21:53:55.193Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "fscholz", + "regseb", + "Porkepix", + "loella16" ] }, - "Web/CSS/shape-outside": { - "modified": "2020-10-15T21:33:45.682Z", + "Mozilla/Add-ons/WebExtensions/manifest.json/theme_experiment": { + "modified": "2020-10-15T22:23:34.499Z", "contributors": [ - "SphinxKnight", - "HTeuMeuLeu", - "teoli", - "Sebastianz", - "lbelavoir" + "hellosct1" ] }, - "Web/CSS/string": { - "modified": "2020-10-15T21:10:36.585Z", + "Mozilla/Add-ons/WebExtensions/Native_manifests": { + "modified": "2019-09-30T13:34:40.128Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "ThePrisoner" + "hellosct1" ] }, - "Web/CSS/symbols()": { - "modified": "2020-11-30T10:29:26.349Z", + "Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts": { + "modified": "2020-09-21T20:21:11.522Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight" + "JackNUMBER", + "hellosct1" ] }, - "Web/CSS/tab-size": { - "modified": "2020-10-15T21:19:02.503Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on": { + "modified": "2019-05-19T03:42:46.903Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "Sebastianz", - "teoli", - "FredB" + "hellosct1", + "TheSirC" ] }, - "Web/CSS/table-layout": { - "modified": "2020-10-15T21:19:02.718Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Package_your_extension_": { + "modified": "2019-09-22T20:09:03.419Z", "contributors": [ - "SphinxKnight", - "bsitruk", - "emmanuelclement", - "fscholz", - "Sebastianz", - "teoli", - "b_b", - "FredB", - "ethertank" + "hellosct1", + "zecakeh", + "adorsaz", + "ValentinG", + "romainneutron" ] }, - "Web/CSS/text-align": { - "modified": "2020-10-15T21:15:12.893Z", + "Mozilla/Add-ons/WebExtensions/What_next_": { + "modified": "2020-05-24T10:03:42.606Z", "contributors": [ - "n3wborn", - "SphinxKnight", - "SpaVec", - "NicolasGoudry", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "Fredchat", - "Kyodev" + "hellosct1" ] }, - "Web/CSS/text-align-last": { - "modified": "2020-10-15T21:19:07.972Z", + "orphaned/Mozilla/Add-ons/WebExtensions/What_does_review_rejection_mean_to_users": { + "modified": "2019-09-30T16:27:32.411Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "fvignals", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/text-combine-upright": { - "modified": "2020-10-15T21:42:38.110Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Security_best_practices": { + "modified": "2019-05-18T18:20:19.136Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "JNa0" ] }, - "Web/CSS/text-decoration": { - "modified": "2020-10-15T21:17:58.514Z", + "orphaned/Mozilla/Add-ons/WebExtensions/Testing_persistent_and_restart_features": { + "modified": "2019-05-19T02:44:57.977Z", "contributors": [ - "Maxi-MenuBestOfPlus", - "SphinxKnight", - "Sebastianz", - "teoli", - "316k", - "FredB", - "Fredchat", - "Kyodev" + "hellosct1" ] }, - "Web/CSS/text-decoration-color": { - "modified": "2020-10-15T21:08:48.730Z", + "Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities": { + "modified": "2019-07-03T12:03:14.858Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "fscholz", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/text-decoration-line": { - "modified": "2020-10-15T21:19:04.173Z", + "Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API": { + "modified": "2019-07-03T12:04:24.574Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "hellosct1" ] }, - "Web/CSS/text-decoration-skip": { - "modified": "2020-10-15T21:47:35.040Z", + "Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API": { + "modified": "2019-10-13T09:50:25.032Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/text-decoration-skip-ink": { - "modified": "2020-10-15T21:59:08.170Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Sidebars": { + "modified": "2020-06-21T16:36:44.213Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "Eonm" ] }, - "Web/CSS/text-decoration-style": { - "modified": "2020-10-15T21:19:03.614Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items": { + "modified": "2019-09-30T14:46:57.757Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "hellosct1", + "chrisspb", + "Outpox" ] }, - "Web/CSS/text-decoration-thickness": { - "modified": "2020-10-15T22:24:05.293Z", + "orphaned/Mozilla/Add-ons/WebExtensions/user_interface/Accessibility_guidelines": { + "modified": "2019-10-12T19:02:53.249Z", "contributors": [ - "SphinxKnight" + "hellosct1" ] }, - "Web/CSS/text-emphasis": { - "modified": "2020-10-15T21:43:05.328Z", + "Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages": { + "modified": "2020-06-09T16:59:51.409Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "JNa0" ] }, - "Web/CSS/text-emphasis-color": { - "modified": "2020-10-15T21:41:37.102Z", + "Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels": { + "modified": "2019-07-03T14:11:08.292Z", "contributors": [ - "SphinxKnight", - "webdif" + "hellosct1" ] }, - "Web/CSS/text-emphasis-position": { - "modified": "2020-10-15T21:41:37.345Z", + "Mozilla/Developer_guide/So_you_just_built_Firefox": { + "modified": "2019-03-23T23:19:14.291Z", "contributors": [ - "SphinxKnight" + "chrisdavidmills", + "juleschz" ] }, - "Web/CSS/text-emphasis-style": { - "modified": "2020-10-15T21:41:36.302Z", + "Mozilla/Firefox/Releases/1.5": { + "modified": "2019-03-24T00:15:36.655Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner", + "BenoitL", + "Mgjbot", + "Mozinet", + "Chbok" ] }, - "Web/CSS/text-indent": { - "modified": "2020-10-15T21:08:57.783Z", + "Mozilla/Firefox/Releases/11": { + "modified": "2019-03-23T23:38:04.029Z", "contributors": [ - "SphinxKnight", - "neurone12000", - "Prinz_Rana", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/text-justify": { - "modified": "2020-10-15T21:53:58.739Z", + "Mozilla/Firefox/Releases/12": { + "modified": "2019-03-18T21:08:58.052Z", "contributors": [ - "SphinxKnight", - "Deraw-", - "Joel-Costamagna" + "fscholz", + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/text-orientation": { - "modified": "2020-10-15T21:41:37.989Z", + "Mozilla/Firefox/Releases/13": { + "modified": "2019-03-23T23:38:05.142Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "prayash", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/text-overflow": { - "modified": "2020-10-15T21:09:08.503Z", + "Mozilla/Firefox/Releases/15": { + "modified": "2019-03-23T23:06:29.503Z", "contributors": [ - "Ryanfarrah25", - "SphinxKnight", - "dackmin", - "Guillaume-Heras", - "Sebastianz", - "PifyZ", - "LukyVj", - "teoli", - "FredB" + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/text-rendering": { - "modified": "2020-10-15T21:08:21.121Z", + "Mozilla/Firefox/Releases/16": { + "modified": "2019-03-23T23:37:32.181Z", "contributors": [ - "SphinxKnight", - "fscholz", - "webdif", - "teoli", + "wbamberg", + "mrstork", + "tregagnon", "FredB", - "hsablonniere", - "Manu1400" + "ThePrisoner" ] }, - "Web/CSS/text-shadow": { - "modified": "2020-10-15T21:11:21.315Z", + "Mozilla/Firefox/Releases/17": { + "modified": "2019-03-18T21:08:57.759Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne", "fscholz", - "Sebastianz", - "teoli", + "wbamberg", + "tregagnon", "FredB", - "BadFox", - "BenoitL" + "ThePrisoner" ] }, - "Web/CSS/text-size-adjust": { - "modified": "2020-10-15T21:41:38.977Z", + "Mozilla/Firefox/Releases/17/Site_compatibility": { + "modified": "2019-01-16T21:49:04.673Z", "contributors": [ - "SphinxKnight", - "Goofy" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/text-transform": { - "modified": "2020-10-15T21:08:51.025Z", + "Mozilla/Firefox/Releases/18": { + "modified": "2019-03-23T23:35:11.165Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "sylozof", - "teoli", + "wbamberg", + "tregagnon", "FredB", - "Matouche" + "ThePrisoner" ] }, - "Web/CSS/text-underline-offset": { - "modified": "2020-10-15T22:21:50.660Z", + "Mozilla/Firefox/Releases/18/Site_compatibility": { + "modified": "2019-01-16T21:57:32.133Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/text-underline-position": { - "modified": "2020-10-15T21:21:32.888Z", + "Mozilla/Firefox/Releases/19": { + "modified": "2019-03-23T23:34:04.814Z", "contributors": [ - "SphinxKnight", + "wbamberg", "Sebastianz", - "teoli", - "FredB" + "tregagnon", + "FredB", + "ThePrisoner", + "Skoua" ] }, - "Web/CSS/time": { - "modified": "2020-10-15T21:04:47.409Z", + "Mozilla/Firefox/Releases/19/Site_compatibility": { + "modified": "2019-01-16T21:57:39.651Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "Prinz_Rana", - "fscholz", + "wbamberg", + "xdelatour" + ] + }, + "Mozilla/Firefox/Releases/2": { + "modified": "2019-03-24T00:04:11.055Z", + "contributors": [ + "wbamberg", + "tregagnon", "FredB", - "teoli", - "tregagnon" + "fscholz", + "Mgjbot", + "BenoitL", + "Fredchat", + "Chbok", + "Lefou", + "Planche", + "Mozinet" ] }, - "Web/CSS/time-percentage": { - "modified": "2020-10-15T22:14:23.852Z", + "Mozilla/Firefox/Releases/20": { + "modified": "2019-03-23T23:33:26.421Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "FredB", + "ThePrisoner", + "Martial76" ] }, - "Web/CSS/timing-function": { - "modified": "2020-10-15T21:46:31.385Z", + "Mozilla/Firefox/Releases/20/Site_compatibility": { + "modified": "2019-01-16T21:58:36.580Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/top": { - "modified": "2020-10-15T21:19:40.106Z", + "Mozilla/Firefox/Releases/21": { + "modified": "2019-11-20T21:19:06.767Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB", - "ethertank", - "DavidWalsh" + "wbamberg", + "tregagnon", + "Delapouite" ] }, - "Web/CSS/touch-action": { - "modified": "2020-10-15T21:41:20.063Z", + "Mozilla/Firefox/Releases/21/Site_compatibility": { + "modified": "2019-01-16T21:57:29.270Z", "contributors": [ - "daformat", - "SphinxKnight" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform": { - "modified": "2020-10-15T21:19:05.910Z", + "Mozilla/Firefox/Releases/22": { + "modified": "2019-03-23T23:28:17.543Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "Sebastianz", - "Sheppy", - "teoli", - "FredB", - "lmorchard" + "wbamberg", + "chrisdavidmills", + "Skoua" ] }, - "Web/CSS/transform-box": { - "modified": "2020-10-15T21:41:17.907Z", + "Mozilla/Firefox/Releases/22/Site_compatibility": { + "modified": "2019-01-16T21:57:40.074Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function": { - "modified": "2020-10-15T21:42:33.342Z", + "Mozilla/Firefox/Releases/23": { + "modified": "2019-03-23T22:59:15.612Z", "contributors": [ - "SphinxKnight", - "AntoineTohan", - "mrstork" + "wbamberg", + "benaddou", + "ThePrisoner" ] }, - "Web/CSS/transform-function/matrix()": { - "modified": "2020-11-16T08:59:24.432Z", + "Mozilla/Firefox/Releases/23/Site_compatibility": { + "modified": "2019-01-16T21:57:25.542Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "stephane-tessier" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function/matrix3d()": { - "modified": "2020-11-16T09:01:09.677Z", + "Mozilla/Firefox/Releases/24": { + "modified": "2019-03-23T22:43:17.357Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Sebastianz" + "wbamberg", + "ThePrisoner" ] }, - "Web/CSS/transform-function/perspective()": { - "modified": "2020-11-16T09:10:28.191Z", + "Mozilla/Firefox/Releases/24/Site_compatibility": { + "modified": "2019-01-16T21:57:47.692Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "mrstork" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function/rotate()": { - "modified": "2020-11-19T16:05:47.321Z", + "Mozilla/Firefox/Releases/3.5": { + "modified": "2019-03-24T00:01:24.251Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "goofy_mdn", - "prayash" + "wbamberg", + "tregagnon", + "FredB", + "BenoitL", + "Chbok", + "Goofy", + "Mgjbot" ] }, - "Web/CSS/transform-function/rotate3d()": { - "modified": "2020-11-19T16:07:17.057Z", + "Mozilla/Firefox/Releases/3.6": { + "modified": "2019-12-13T20:33:39.144Z", "contributors": [ - "chrisdavidmills", - "GuiBret", - "SphinxKnight", - "Sebastianz", - "prayash" + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner", + "fryn", + "fscholz", + "Thomash", + "BenoitL" ] }, - "Web/CSS/transform-function/rotateX()": { - "modified": "2020-11-19T16:08:58.335Z", + "Mozilla/Firefox/Releases/3": { + "modified": "2019-03-23T23:57:59.495Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "prayash" + "wbamberg", + "tregagnon", + "FredB", + "BenoitL", + "Mgjbot", + "Chbok", + "Mozinet", + "Fredchat", + "Rishtarz", + "Kyodev" ] }, - "Web/CSS/transform-function/rotateY()": { - "modified": "2020-11-19T16:09:55.866Z", + "Mozilla/Firefox/Releases/35": { + "modified": "2019-12-13T20:33:22.682Z", "contributors": [ - "chrisdavidmills", + "wbamberg", "SphinxKnight", - "prayash" + "mliatt", + "Godrod", + "Runatal" ] }, - "Web/CSS/transform-function/rotateZ()": { - "modified": "2020-11-30T10:07:33.024Z", + "Mozilla/Firefox/Releases/35/Site_Compatibility": { + "modified": "2019-01-16T21:49:04.592Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "prayash" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function/scale()": { - "modified": "2020-11-30T10:15:36.688Z", + "Mozilla/Firefox/Releases/4": { + "modified": "2019-11-21T00:43:25.071Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Halkeand", - "Loliwe", - "Sebastianz" + "wbamberg", + "Sebastianz", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/transform-function/scale3d()": { - "modified": "2020-11-30T10:19:17.844Z", + "Mozilla/Firefox/Releases/40": { + "modified": "2019-03-23T22:51:13.163Z", "contributors": [ - "chrisdavidmills", + "wbamberg", "SphinxKnight", - "DavidDx", - "Sebastianz" + "BenoitEsnard", + "ov357" ] }, - "Web/CSS/transform-function/scaleX()": { - "modified": "2020-11-30T10:20:33.117Z", + "Mozilla/Firefox/Releases/40/Site_Compatibility": { + "modified": "2019-01-16T21:48:27.545Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Sebastianz" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function/scaleY()": { - "modified": "2020-11-30T10:21:46.233Z", + "Mozilla/Firefox/Releases/41": { + "modified": "2019-03-23T22:49:38.696Z", "contributors": [ - "chrisdavidmills", + "wbamberg", "SphinxKnight", - "Sebastianz" + "Paleno" ] }, - "Web/CSS/transform-function/scaleZ()": { - "modified": "2020-11-30T10:23:37.630Z", + "Mozilla/Firefox/Releases/41/Site_Compatibility": { + "modified": "2019-01-16T21:48:49.107Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Sebastianz" + "wbamberg", + "xdelatour" ] }, - "Web/CSS/transform-function/skew()": { - "modified": "2020-11-30T10:25:40.996Z", + "Mozilla/Firefox/Releases/5": { + "modified": "2019-03-23T23:38:10.236Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "prayash" + "fscholz", + "wbamberg", + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/transform-function/skewX()": { - "modified": "2020-11-30T10:27:10.768Z", + "Mozilla/Firefox/Releases/50": { + "modified": "2019-03-23T22:23:32.722Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "Ramzi2892", - "prayash" + "wbamberg", + "Xhelas" ] }, - "Web/CSS/transform-function/skewY()": { - "modified": "2020-11-30T10:28:12.012Z", + "Mozilla/Firefox/Releases/59": { + "modified": "2019-03-18T21:37:37.649Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "prayash" + "wbamberg", + "julienw" ] }, - "Web/CSS/transform-function/translate()": { - "modified": "2020-11-30T10:30:22.993Z", + "Mozilla/Firefox/Releases/6": { + "modified": "2019-11-21T00:43:13.867Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "mrstork" + "wbamberg", + "tregagnon", + "ThePrisoner" ] }, - "Web/CSS/transform-function/translate3d()": { - "modified": "2020-11-30T12:56:47.640Z", + "Mozilla/Firefox/Releases/63": { + "modified": "2019-03-18T21:22:08.997Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "ThreadElric", - "mrstork" + "algorun77" ] }, - "Web/CSS/transform-function/translateX": { - "modified": "2019-04-06T11:48:19.824Z", + "Mozilla/Firefox/Releases/65": { + "modified": "2019-03-18T20:39:08.555Z", "contributors": [ - "SphinxKnight", - "mrstork" + "samus35" ] }, - "Web/CSS/transform-function/translateY()": { - "modified": "2020-11-30T13:01:02.374Z", + "Mozilla/Firefox/Releases/68": { + "modified": "2019-08-22T13:01:38.971Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "mrstork" + "BuzzRage" ] }, - "Web/CSS/transform-function/translateZ()": { - "modified": "2020-11-30T13:02:52.702Z", + "Mozilla/Firefox/Releases/69": { + "modified": "2019-08-14T05:59:15.506Z", "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "mrstork" + "Kuzcoo" ] }, - "Web/CSS/transform-origin": { - "modified": "2020-10-15T21:19:06.049Z", + "Mozilla/Firefox/Releases/7": { + "modified": "2019-03-23T23:38:06.097Z", "contributors": [ - "tristantheb", + "wbamberg", "SphinxKnight", - "Prinz_Rana", - "Sebastianz", - "antograssiot", - "teoli", - "FredB" + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/transform-style": { - "modified": "2020-10-15T21:19:45.597Z", + "Mozilla/Firefox/Releases/70": { + "modified": "2019-09-02T05:07:52.712Z", "contributors": [ - "SphinxKnight", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "pbrosset" ] }, - "Web/CSS/transition": { - "modified": "2020-10-15T21:20:31.652Z", + "Mozilla/Firefox/Releases/76": { + "modified": "2020-05-10T16:11:03.049Z", "contributors": [ - "SphinxKnight", - "ovaxio", - "sztan", - "fscholz", - "Sebastianz", - "J.DMB", - "louuis", - "teoli", - "FredB" + "tristantheb" ] }, - "Web/CSS/transition-delay": { - "modified": "2020-10-15T21:19:58.171Z", + "Mozilla/Firefox/Releases/77": { + "modified": "2020-05-10T15:53:10.394Z", "contributors": [ - "SphinxKnight", - "mrstork", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "tristantheb", + "Neku3721" ] }, - "Web/CSS/transition-duration": { - "modified": "2020-10-15T21:20:14.863Z", + "Mozilla/Firefox/Releases/8": { + "modified": "2019-11-21T00:43:06.185Z", "contributors": [ - "SphinxKnight", - "mrstork", - "fscholz", + "wbamberg", "Sebastianz", - "teoli", - "FredB" + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/transition-property": { - "modified": "2020-10-15T21:20:09.909Z", + "Mozilla/Firefox/Releases/9": { + "modified": "2019-12-13T20:33:26.081Z", "contributors": [ - "SphinxKnight", + "wbamberg", "fscholz", - "Sebastianz", - "teoli", - "gudoy", - "FredB" + "tregagnon", + "FredB", + "ThePrisoner" ] }, - "Web/CSS/transition-timing-function": { - "modified": "2020-10-15T21:20:09.412Z", + "Mozilla/Firefox/Releases": { + "modified": "2020-09-04T09:36:06.531Z", "contributors": [ - "SphinxKnight", - "mrstork", - "fscholz", - "Sebastianz", - "teoli", - "FredB" + "Voulto", + "wbamberg", + "FredB", + "Sheppy" ] }, - "Web/CSS/translate": { - "modified": "2020-10-15T22:02:43.081Z", + "Web/API/Navigator/getUserMedia": { + "modified": "2019-03-23T23:05:32.482Z", "contributors": [ - "SphinxKnight" + "a-mt", + "Nek-", + "Eric013", + "SuperStrong" ] }, - "Web/CSS/translation-value": { - "modified": "2019-04-06T11:47:12.242Z", + "Tools/about:debugging/about:debugging_before_Firefox_68": { + "modified": "2020-07-16T22:36:33.804Z", "contributors": [ - "SphinxKnight", - "J.DMB", - "teoli", - "louuis" + "caleyz" ] }, - "Web/CSS/unicode-bidi": { - "modified": "2020-10-15T21:10:25.144Z", + "Tools/about:debugging": { + "modified": "2020-07-16T22:36:32.303Z", "contributors": [ - "SphinxKnight", - "trouba", - "Sebastianz", - "teoli", - "FredB", - "ThePrisoner" + "maximelore", + "wbamberg" ] }, - "Web/CSS/unset": { - "modified": "2020-10-15T21:40:50.115Z", + "Tools/Accessing_the_Developer_Tools": { + "modified": "2020-07-16T22:35:25.957Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "maximelore" ] }, - "Web/CSS/url": { - "modified": "2020-10-15T21:10:36.777Z", + "orphaned/Tools/Add-ons": { + "modified": "2020-07-16T22:36:23.351Z", "contributors": [ - "SphinxKnight", - "fscholz", - "teoli", - "FredB", - "ThePrisoner" + "maximelore", + "wbamberg" ] }, - "Web/CSS/url()": { - "modified": "2020-10-15T22:20:27.752Z", + "Tools/Browser_Toolbox": { + "modified": "2020-07-16T22:35:55.531Z", "contributors": [ - "SphinxKnight" + "hellosct1", + "wbamberg", + "maximelore", + "nico_nc", + "teoli", + "KittenOverlord", + "nora" ] }, - "Web/CSS/user-modify": { - "modified": "2020-10-15T21:43:01.040Z", + "Tools/Browser_Console": { + "modified": "2020-07-16T22:35:42.346Z", "contributors": [ - "SphinxKnight", - "NicolasT" + "maximelore", + "wbamberg", + "teoli", + "Jeremie", + "tregagnon", + "Delapouite", + "SylvainPasche", + "BenoitL", + "Pablor44", + "Fredchat", + "Matdere" ] }, - "Web/CSS/user-select": { - "modified": "2020-10-15T21:28:08.010Z", + "Tools/Web_Console/Console_messages": { + "modified": "2020-08-29T03:46:11.424Z", "contributors": [ - "SphinxKnight", - "Sheppy", - "Fredchat", - "teoli", - "louuis" + "stphngrc", + "wbamberg", + "maximelore", + "glickind" ] }, - "Web/CSS/valeur_reelle": { - "modified": "2019-04-06T12:16:17.195Z", + "Tools/Web_Console/Helpers": { + "modified": "2020-08-28T09:54:35.807Z", "contributors": [ - "SphinxKnight", - "louuis", + "stphngrc", + "wbamberg", + "maximelore", "teoli", - "FredB" + "tregagnon" ] }, - "Web/CSS/valeur_résolue": { - "modified": "2019-04-06T13:07:44.816Z", + "Tools/Web_Console": { + "modified": "2020-07-16T22:34:05.900Z", "contributors": [ - "SphinxKnight", - "xdelatour" + "maximelore", + "wbamberg", + "glickind", + "Coraline", + "teoli", + "Thegennok", + "trevorh", + "J.DMB", + "tregagnon", + "milc", + "sperling", + "dataG" ] }, - "Web/CSS/var()": { - "modified": "2020-10-15T21:42:32.805Z", + "Tools/Web_Console/Keyboard_shortcuts": { + "modified": "2020-07-16T22:34:22.621Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg" ] }, - "Web/CSS/vertical-align": { - "modified": "2020-10-15T21:17:57.980Z", + "Tools/Web_Console/UI_Tour": { + "modified": "2020-07-16T22:34:17.163Z", "contributors": [ - "SphinxKnight", - "vlakoff", - "Loliwe", - "Sebastianz", - "teoli", - "FredB", - "Fredchat", - "Kyodev" + "maximelore", + "wbamberg", + "glickind" ] }, - "Web/CSS/visibility": { - "modified": "2020-10-15T21:18:07.321Z", + "Tools/Web_Console/Rich_output": { + "modified": "2020-07-16T22:34:20.227Z", "contributors": [ - "patrickfournier", - "SphinxKnight", - "Sebastianz", - "Hell_Carlito", - "vava", - "teoli", - "tregagnon", - "FredB", - "Kyodev", - "Fredchat" + "maximelore", + "wbamberg" ] }, - "Web/CSS/white-space": { - "modified": "2020-10-15T21:19:07.297Z", + "Tools/Web_Console/Split_console": { + "modified": "2020-07-16T22:34:20.903Z", "contributors": [ - "SphinxKnight", - "nykola", - "fscholz", - "teoli", - "claudepache", - "FredB", - "nonos" + "maximelore", + "wbamberg" ] }, - "Web/CSS/widows": { - "modified": "2020-10-15T21:19:18.585Z", + "Tools/Web_Console/The_command_line_interpreter": { + "modified": "2020-08-28T09:12:31.516Z", "contributors": [ - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB" + "stphngrc", + "tchioubak", + "aminelch", + "A-312", + "maximelore", + "wbamberg" ] }, - "Web/CSS/width": { - "modified": "2020-10-15T21:16:34.721Z", + "Tools/DevToolsColors": { + "modified": "2020-07-16T22:35:53.314Z", "contributors": [ - "cdoublev", - "SphinxKnight", - "Sebastianz", - "teoli", - "FredB", - "Mgjbot", - "BenoitL", - "Fredchat", - "Kyodev" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/CSS/will-change": { - "modified": "2020-10-15T21:38:00.394Z", + "orphaned/Tools/CSS_Coverage": { + "modified": "2019-03-23T22:51:54.141Z", "contributors": [ - "cdoublev", - "Marc.V", - "SphinxKnight", - "Sebastianz", - "PRASS95" + "maximelore", + "wbamberg" ] }, - "Web/CSS/word-break": { - "modified": "2020-10-15T21:20:32.265Z", + "Tools/Remote_Debugging/Chrome_Desktop": { + "modified": "2020-07-16T22:35:40.256Z", "contributors": [ + "wbamberg", "SphinxKnight", - "Sylfare", - "PifyZ", "teoli", - "fscholz", - "Sebastianz", - "louuis", - "FredB" + "jsx", + "dorianecampagne" ] }, - "Web/CSS/word-spacing": { - "modified": "2020-10-15T21:09:07.377Z", + "Tools/Remote_Debugging/Debugging_Firefox_Desktop": { + "modified": "2020-07-16T22:35:40.983Z", "contributors": [ - "SphinxKnight", - "Prinz_Rana", - "fscholz", - "Sebastianz", - "teoli", - "Goofy", - "louuis", - "FredB" + "maximelore", + "wbamberg" ] }, - "Web/CSS/writing-mode": { - "modified": "2020-10-15T21:23:45.445Z", + "Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE": { + "modified": "2020-07-16T22:35:40.616Z", "contributors": [ - "SphinxKnight", - "YoruNoHikage", - "L2o", - "teoli", - "FredB" + "wbamberg", + "maximelore" ] }, - "Web/CSS/z-index": { - "modified": "2020-10-15T21:08:18.747Z", + "Tools/Remote_Debugging": { + "modified": "2020-07-16T22:35:37.277Z", "contributors": [ - "SphinxKnight", - "Sebastianz", + "maximelore", + "wbamberg", + "glickind", "teoli", - "FredB", - "tregagnon", - "Fredchat", - "Kyodev", - "Lapinkiller" - ] - }, - "Web/CSS/zoom": { - "modified": "2020-10-15T21:45:23.245Z", - "contributors": [ - "SphinxKnight", - "BenMorel", - "JayPanoz" + "J.DMB", + "G-de-Bruges", + "medhi.naveau@hotmail.be", + "Omnilaika02", + "KIDY" ] }, - "Web/CSS/Élément_remplacé": { - "modified": "2019-04-06T13:08:03.406Z", + "Tools/Remote_Debugging/Thunderbird": { + "modified": "2020-07-16T22:35:39.867Z", "contributors": [ - "SphinxKnight", - "Loliwe", - "teoli", - "Halfman", - "FredB" + "wbamberg", + "maximelore" ] }, - "Web/Démos_de_technologies_open_web": { - "modified": "2019-03-18T20:44:11.081Z", + "Tools/Debugger/How_to/Access_debugging_in_add-ons": { + "modified": "2020-07-16T22:35:14.754Z", "contributors": [ - "goofy_mdn", - "xavierjs", - "qwincy_p" + "wbamberg", + "maximelore", + "teoli" ] }, - "Web/EXSLT": { - "modified": "2019-01-17T10:26:33.088Z", + "Tools/Debugger/How_to/Highlight_and_inspect_DOM_nodes": { + "modified": "2020-07-16T22:35:13.697Z", "contributors": [ - "ExE-Boss", - "BenoitL", - "Mgjbot" + "wbamberg", + "maximelore", + "teoli" ] }, - "Web/EXSLT/exsl": { - "modified": "2019-01-16T15:20:55.825Z", + "Tools/Debugger/How_to/Set_a_conditional_breakpoint": { + "modified": "2020-07-16T22:35:10.533Z", "contributors": [ - "ExE-Boss", - "teoli", - "Jeremie", - "tregagnon", - "Anonymous" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/exsl/node-set": { - "modified": "2019-01-16T15:43:16.875Z", + "Tools/Debugger/How_to/Set_a_breakpoint": { + "modified": "2020-07-16T22:35:09.962Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "BenoitL", - "Fredchat" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/exsl/object-type": { - "modified": "2019-03-23T23:51:29.001Z", + "Tools/Debugger/How_to/Breaking_on_exceptions": { + "modified": "2020-07-16T22:35:15.043Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg" ] }, - "Web/EXSLT/math": { - "modified": "2019-01-16T15:25:32.670Z", + "Tools/Debugger/How_to/Debug_eval_sources": { + "modified": "2020-07-16T22:35:14.396Z", "contributors": [ - "ExE-Boss", - "teoli", - "Jeremie", - "tregagnon", - "Anonymous" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/math/highest": { - "modified": "2019-03-23T23:51:27.731Z", + "Tools/Debugger/How_to/Disable_breakpoints": { + "modified": "2020-07-16T22:35:11.273Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/math/lowest": { - "modified": "2019-03-23T23:51:32.457Z", + "Tools/Debugger/How_to/Pretty-print_a_minified_file": { + "modified": "2020-07-16T22:35:13.988Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/math/min": { - "modified": "2019-03-23T23:50:33.876Z", + "Tools/Debugger/How_to": { + "modified": "2020-09-04T07:36:16.042Z", "contributors": [ - "ExE-Boss", - "Dralyab", - "jackblack", - "Mgjbot", - "Fredchat" + "Voulto", + "wbamberg", + "maximelore", + "teoli", + "sidgan" ] }, - "Web/EXSLT/set": { - "modified": "2019-01-16T15:22:46.319Z", + "Tools/Debugger/How_to/Ignore_a_source": { + "modified": "2020-07-16T22:35:13.367Z", "contributors": [ - "ExE-Boss", - "Jeremie", - "Anonymous" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/set/difference": { - "modified": "2019-03-23T23:50:39.871Z", + "Tools/Debugger/How_to/Open_the_debugger": { + "modified": "2020-07-16T22:35:09.012Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/set/distinct": { - "modified": "2019-03-23T23:50:37.743Z", + "Tools/Debugger/How_to/Step_through_code": { + "modified": "2020-07-16T22:35:11.898Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/set/has-same-node": { - "modified": "2019-03-23T23:50:40.804Z", + "Tools/Debugger/How_to/Search": { + "modified": "2020-07-16T22:35:15.360Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg" ] }, - "Web/EXSLT/set/intersection": { - "modified": "2019-03-23T23:50:32.370Z", + "Tools/Debugger/How_to/Set_Watch_Expressions": { + "modified": "2020-07-16T22:35:15.802Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg" ] }, - "Web/EXSLT/set/leading": { - "modified": "2019-03-23T23:50:41.424Z", + "Tools/Debugger/How_to/Use_a_source_map": { + "modified": "2020-07-16T22:35:12.417Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "tchevalier", + "maximelore", + "wbamberg", + "hervehobbes", + "necraidan", + "teoli", + "franckuser16" ] }, - "Web/EXSLT/set/trailing": { - "modified": "2019-03-23T23:50:41.695Z", + "Tools/Debugger": { + "modified": "2020-07-16T22:35:04.438Z", "contributors": [ - "ExE-Boss", + "maximelore", + "wbamberg", + "glickind", + "teoli", "SphinxKnight", - "Mgjbot", - "Fredchat" + "Omnilaika02", + "nora" ] }, - "Web/EXSLT/str": { - "modified": "2019-01-16T15:24:44.465Z", + "orphaned/Tools/Debugger/Limitations_of_the_new_debugger": { + "modified": "2019-03-23T22:22:02.266Z", "contributors": [ - "ExE-Boss", - "Jeremie", - "Anonymous" + "wbamberg", + "maximelore" ] }, - "Web/EXSLT/str/concat": { - "modified": "2019-03-24T00:12:37.407Z", + "Tools/Debugger/Keyboard_shortcuts": { + "modified": "2020-07-16T22:35:18.146Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Fredchat", - "Mgjbot" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/EXSLT/str/split": { - "modified": "2019-03-23T23:50:37.644Z", + "Tools/Debugger/Set_an_XHR_breakpoint": { + "modified": "2020-07-16T22:35:20.080Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore" ] }, - "Web/EXSLT/str/tokenize": { - "modified": "2019-03-23T23:50:34.788Z", + "Tools/Debugger/Source_map_errors": { + "modified": "2020-07-16T22:35:19.304Z", "contributors": [ - "ExE-Boss", - "SphinxKnight", - "Mgjbot", - "Fredchat" + "maximelore", + "wbamberg" ] }, - "Web/Events": { - "modified": "2020-09-03T05:30:03.906Z", + "Tools/Debugger/UI_Tour": { + "modified": "2020-07-16T22:35:16.333Z", "contributors": [ - "Voulto", - "cendrars59", + "maximelore", "wbamberg", - "Alain20100", - "ebear", - "linedubeth", - "AlainRinder" + "teoli", + "Goofy" ] }, - "Web/Events/DOMContentLoaded": { - "modified": "2020-10-15T21:40:06.593Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/Disable_breakpoints": { + "modified": "2019-03-23T22:21:17.073Z", "contributors": [ - "Watilin", - "fscholz", - "zede-master", - "Gastonite", - "Shinze", - "jmh" + "wbamberg", + "maximelore" ] }, - "Web/Events/abort": { - "modified": "2019-04-30T14:03:20.605Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Access_debugging_in_add-ons": { + "modified": "2019-03-23T22:21:33.063Z", "contributors": [ "wbamberg", - "fscholz", - "Kalwyn" + "teoli", + "maximelore" ] }, - "Web/Events/abort_(ProgressEvent)": { - "modified": "2019-03-23T22:24:38.520Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Black_box_a_source": { + "modified": "2019-03-23T22:21:44.269Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/afterprint": { - "modified": "2019-03-23T22:24:13.216Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Break_on_a_DOM_event": { + "modified": "2019-03-23T22:22:11.943Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/animationend": { - "modified": "2019-03-23T22:24:25.318Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Debug_eval_sources": { + "modified": "2019-03-23T22:22:29.066Z", "contributors": [ - "edspeedy", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/animationiteration": { - "modified": "2019-03-23T22:24:12.393Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Disable_breakpoints": { + "modified": "2019-03-23T22:22:13.461Z", "contributors": [ - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/animationstart": { - "modified": "2019-03-23T22:24:27.835Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Examine,_modify,_and_watch_variables": { + "modified": "2019-03-23T22:22:09.066Z", "contributors": [ - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/audioprocess": { - "modified": "2019-03-18T21:01:00.247Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Highlight_and_inspect_DOM_nodes": { + "modified": "2019-03-23T22:22:10.389Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/beforeprint": { - "modified": "2020-11-25T15:13:28.637Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to": { + "modified": "2019-03-23T22:22:26.886Z", "contributors": [ - "Wixonic", - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/beforeunload": { - "modified": "2020-01-22T07:04:02.410Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Open_the_debugger": { + "modified": "2019-03-23T22:22:10.293Z", "contributors": [ - "julienc", "wbamberg", - "Pierre.Fauconnier", - "Kalwyn" + "maximelore", + "teoli" ] }, - "Web/Events/complete": { - "modified": "2019-03-18T21:01:07.959Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Pretty-print_a_minified_file": { + "modified": "2019-03-23T22:22:11.012Z", "contributors": [ - "fscholz", - "David_B", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/compositionend": { - "modified": "2020-10-15T21:50:42.611Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Search_and_filter": { + "modified": "2019-03-23T22:21:42.961Z", "contributors": [ - "tbetous", "wbamberg", - "Kalwyn" + "teoli", + "maximelore" ] }, - "Web/Events/compositionstart": { - "modified": "2019-04-30T13:48:11.171Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_breakpoint": { + "modified": "2019-03-23T22:21:42.671Z", "contributors": [ "wbamberg", - "Kalwyn" + "teoli", + "maximelore" ] }, - "Web/Events/compositionupdate": { - "modified": "2019-04-30T13:48:17.939Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Set_a_conditional_breakpoint": { + "modified": "2019-03-23T22:21:51.627Z", "contributors": [ "wbamberg", - "fscholz", - "Kalwyn" + "teoli", + "maximelore" ] }, - "Web/Events/copy": { - "modified": "2019-03-23T22:22:48.922Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Step_through_code": { + "modified": "2019-03-23T22:21:44.640Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/ended_(Web_Audio)": { - "modified": "2019-03-18T21:16:53.303Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/How_to/Use_a_source_map": { + "modified": "2019-03-23T22:21:49.457Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/Events/error": { - "modified": "2019-03-23T22:21:21.432Z", + "orphaned/Tools/Debugger_(before_Firefox_52)": { + "modified": "2019-03-23T22:22:28.971Z", "contributors": [ - "fscholz", - "loella16", - "Kalwyn" + "wbamberg", + "maximelore" ] }, - "Web/Events/focusin": { - "modified": "2019-03-23T22:20:35.765Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/Keyboard_shortcuts": { + "modified": "2019-03-23T22:21:50.707Z", "contributors": [ - "fscholz", - "Kalwyn" + "wbamberg", + "maximelore" ] }, - "Web/Events/focusout": { - "modified": "2019-03-23T22:22:45.276Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/Settings": { + "modified": "2019-03-23T22:14:03.961Z", "contributors": [ - "fscholz", - "Kalwyn", - "Behrouze" + "wbamberg", + "maximelore" ] }, - "Web/Events/load": { - "modified": "2019-03-18T20:54:13.374Z", + "orphaned/Tools/Debugger_(before_Firefox_52)/UI_Tour": { + "modified": "2019-03-23T22:19:32.754Z", "contributors": [ - "fscholz", - "Watilin", - "SphinxKnight", - "SaShimy", - "ebear", - "jmh" + "wbamberg", + "maximelore" ] }, - "Web/Events/pagehide": { - "modified": "2019-03-18T21:31:42.222Z", + "Tools/DevToolsAPI": { + "modified": "2020-07-16T22:35:24.078Z", "contributors": [ - "Watilin" + "maximelore", + "wbamberg" ] }, - "Web/Events/pageshow": { - "modified": "2019-03-23T22:44:21.347Z", + "Tools/DOM_Property_Viewer": { + "modified": "2020-07-16T22:36:34.322Z", "contributors": [ - "Watilin", - "fscholz", - "jmh" + "maximelore", + "wbamberg" ] }, - "Web/Events/readystatechange": { - "modified": "2019-03-23T22:44:19.958Z", + "Tools/Shader_Editor": { + "modified": "2020-07-16T22:35:54.397Z", "contributors": [ - "fscholz", - "cedeber", - "jmh" + "maximelore", + "wbamberg", + "stephaniehobson", + "teoli", + "bassam", + "tregagnon" ] }, - "Web/Events/transitionend": { - "modified": "2020-10-15T21:58:39.030Z", + "Tools/Style_Editor": { + "modified": "2020-07-16T22:35:00.333Z", "contributors": [ - "Voulto", - "fscholz", - "dominiquevilain" + "maximelore", + "wbamberg", + "teoli", + "tregagnon", + "salsero" ] }, - "Web/Events/unload": { - "modified": "2019-04-30T14:26:18.615Z", + "Tools/Web_Audio_Editor": { + "modified": "2020-07-16T22:36:08.440Z", "contributors": [ + "maximelore", "wbamberg", - "CptGerV", - "florent.vaucelle" + "teoli", + "tregagnon", + "batisteo" ] }, - "Web/Guide": { - "modified": "2020-04-12T14:16:39.360Z", + "Tools/Firefox_OS_Simulator_clone": { + "modified": "2020-07-16T22:36:22.890Z", "contributors": [ - "ele-gall-ac-mineducation", - "tristantheb", - "SphinxKnight", - "Leticiak37", - "demangejeremy", - "EloD10", - "axel8591", - "SaintCyr", - "Hydr0s", - "Fredchat", - "Caudralys", - "teoli", - "fama25", - "ethertank", - "tregagnon", - "Sheppy" + "wbamberg", + "xdelatour" ] }, - "Web/Guide/AJAX": { - "modified": "2020-06-08T12:58:09.722Z", + "Tools": { + "modified": "2020-07-16T22:44:14.844Z", "contributors": [ - "Maxi-MenuBestOfPlus", - "CyrilKrylatov", "SphinxKnight", - "chrisdavidmills", - "Arkhall", - "Nothus", + "maximelore", + "sunazerty", + "wbamberg", + "Dralyab", + "unpeudetout", + "stephane34", + "enguerran", + "BenoitL", + "Pierrot", + "Goofy", + "Sabine", + "Azurrea", + "thequestion", + "KittenOverlord", + "ninovelena", "tregagnon", - "arena", - "Mgjbot", - "Summit677", + "teoli", + "wakka27", + "Juju77", + "tchevalier", + "Delapouite", + "FredB", + "ethertank", + "julienw", + "tcit", "Fredchat", - "BenoitL", - "Neumann", + "Kyodev", + "Mgjbot", + "Takenbot", + "Andreas Wuest", + "Jean-Yves Cronier", "Chbok", - "VincentN", - "Dria" + "Jep", + "Nickolay", + "TestUser" ] }, - "Web/Guide/AJAX/Communauté": { - "modified": "2019-01-16T16:10:44.992Z", + "Tools/Index": { + "modified": "2020-07-16T22:36:03.885Z", "contributors": [ - "chrisdavidmills", - "Fredchat", - "Mgjbot", - "VincentN", - "Chbok" + "wbamberg", + "xdelatour" ] }, - "Web/Guide/AJAX/Premiers_pas": { - "modified": "2020-05-07T07:49:40.639Z", + "Tools/Accessibility_inspector": { + "modified": "2020-07-16T22:36:39.636Z", "contributors": [ - "grandoc", - "VictorLequin", - "Watilin", - "GregMorel", - "CyrilKrylatov", - "chrisdavidmills", - "Jibec", - "P_MO", - "arena", - "Mgjbot", - "Fredchat", - "Rbories", - "BenoitL", - "Cbi1net", - "Rodolphe", - "Chbok", - "VincentN", - "Taken", - "Oumar", - "Diskostu" + "maximelore", + "hellosct1", + "SphinxKnight" ] }, - "Web/Guide/API": { - "modified": "2019-03-23T23:08:38.035Z", + "Tools/Accessibility_inspector/Simulation": { + "modified": "2020-07-16T22:36:40.512Z", "contributors": [ - "SphinxKnight", - "demangejeremy", - "shing0608" + "MarieComet" ] }, - "Web/Guide/API/Gamepad": { - "modified": "2019-03-23T23:08:49.794Z", + "Tools/Page_Inspector/3-pane_mode": { + "modified": "2020-07-16T22:34:53.714Z", "contributors": [ - "matteodelabre", - "Goofy", - "jessmania" + "maximelore" ] }, - "Web/Guide/API/WebRTC": { - "modified": "2019-03-23T23:07:44.484Z", + "Tools/Page_Inspector/How_to/Edit_CSS_filters": { + "modified": "2020-07-16T22:34:45.240Z", "contributors": [ - "wordsbybird" + "maximelore", + "wbamberg", + "MRdotB" ] }, - "Web/Guide/API/WebRTC/WebRTC_architecture": { - "modified": "2019-03-23T23:07:50.082Z", + "Tools/Page_Inspector/How_to/Examine_grid_layouts": { + "modified": "2020-07-16T22:34:47.223Z", "contributors": [ - "Goofy", - "wordsbybird" + "GregMorel", + "maximelore", + "wbamberg", + "Mozinet", + "PhilippePerret" + ] + }, + "Tools/Page_Inspector/How_to/Examine_and_edit_HTML": { + "modified": "2020-07-16T22:34:40.766Z", + "contributors": [ + "maximelore", + "wbamberg", + "JeffD", + "teoli", + "micetf", + "SphinxKnight", + "Goofy" + ] + }, + "Tools/Page_Inspector/How_to/Examine_and_edit_CSS": { + "modified": "2020-07-16T22:34:42.394Z", + "contributors": [ + "wbamberg", + "Alan_Braut", + "maximelore", + "Loliwe", + "SphinxKnight", + "teoli" ] }, - "Web/Guide/API/WebRTC/WebRTC_basics": { - "modified": "2020-11-22T05:39:33.506Z", + "Tools/Page_Inspector/How_to/Examine_and_edit_the_box_model": { + "modified": "2020-07-16T22:34:34.287Z", "contributors": [ - "tonybengue", - "amineSsa", - "wordsbybird" + "wbamberg", + "maximelore", + "clementpolito", + "teoli", + "jsx" ] }, - "Web/Guide/Audio_and_video_delivery": { - "modified": "2019-03-23T22:00:15.299Z", + "Tools/Page_Inspector/How_to/Examine_event_listeners": { + "modified": "2020-07-16T22:34:35.648Z", "contributors": [ - "chrisdavidmills", - "a-mt" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/Guide/Audio_and_video_delivery/Live_streaming_web_audio_and_video": { - "modified": "2019-03-18T20:51:45.799Z", + "Tools/Page_Inspector/How_to": { + "modified": "2020-07-16T22:34:31.149Z", "contributors": [ - "chrisdavidmills", - "a-mt" + "maximelore", + "wbamberg", + "teoli", + "sidgan" ] }, - "Web/Guide/Audio_and_video_delivery/buffering_seeking_time_ranges": { - "modified": "2019-03-18T20:51:45.442Z", + "Tools/Page_Inspector/How_to/Inspect_and_select_colors": { + "modified": "2020-07-16T22:34:34.991Z", "contributors": [ - "chrisdavidmills", - "a-mt" + "wbamberg", + "maximelore", + "teoli", + "jsx" ] }, - "Web/Guide/Audio_and_video_manipulation": { - "modified": "2019-03-23T22:00:16.201Z", + "Tools/Page_Inspector/How_to/Open_the_Inspector": { + "modified": "2020-07-16T22:34:32.703Z", "contributors": [ - "chrisdavidmills", - "a-mt" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/Guide/DOM": { - "modified": "2020-08-30T07:19:22.993Z", + "Tools/Page_Inspector/How_to/View_background_images": { + "modified": "2020-07-16T22:34:44.112Z", "contributors": [ - "Voulto", - "tregagnon", - "Sheppy" + "wbamberg", + "maximelore", + "teoli" ] }, - "Web/Guide/DOM/Events": { - "modified": "2020-08-30T07:20:46.985Z", + "Tools/Page_Inspector/How_to/Reposition_elements_in_the_page": { + "modified": "2020-07-16T22:34:45.853Z", "contributors": [ - "Voulto", - "Sheppy" + "wbamberg", + "maximelore" ] }, - "Web/Guide/DOM/Events/Creating_and_triggering_events": { - "modified": "2020-10-15T21:40:07.710Z", + "Tools/Page_Inspector/How_to/Select_and_highlight_elements": { + "modified": "2020-07-16T22:34:46.553Z", "contributors": [ - "tristantheb", - "loella16", - "csblo", - "yasakura_", - "jmh" + "wbamberg", + "maximelore" ] }, - "Web/Guide/DOM/Events/Les_données_d_orientation_et_de_mouvement_expliquées": { - "modified": "2019-03-18T21:41:00.371Z", + "Tools/Page_Inspector/How_to/Select_an_element": { + "modified": "2020-07-16T22:34:33.580Z", "contributors": [ - "loella16" + "wbamberg", + "maximelore", + "teoli", + "jsx" ] }, - "Web/Guide/DOM/Events/Touch_events": { - "modified": "2020-10-15T21:23:44.732Z", + "Tools/Page_Inspector/How_to/Use_the_Inspector_API": { + "modified": "2020-07-16T22:34:44.851Z", "contributors": [ - "ebear", + "maximelore", "wbamberg", - "quentin.lamamy", - "nmonceyron", - "Goofy", - "SphinxKnight" + "daimebag", + "teoli" ] }, - "Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris": { - "modified": "2019-03-18T21:33:21.001Z", + "Tools/Page_Inspector/How_to/Use_the_Inspector_from_the_Web_Console": { + "modified": "2020-07-16T22:34:44.470Z", "contributors": [ - "CharlotteW" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/Guide/DOM/Events/evenement_medias": { - "modified": "2019-03-23T22:20:46.809Z", + "Tools/Page_Inspector/How_to/Visualize_transforms": { + "modified": "2020-07-16T22:34:39.528Z", "contributors": [ - "Hell_Carlito", - "jucrouzet" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/Guide/DOM/Manipuler_historique_du_navigateur": { - "modified": "2019-03-23T23:36:51.472Z", + "Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_(Firefox_41_and_42)": { + "modified": "2020-07-16T22:34:37.976Z", "contributors": [ - "Watilin", - "Outlivier", - "loella16", - "JoJoMimosa", - "zessx", - "tregagnon", - "CapFlow", - "Beaver", - "pparidans" + "maximelore", + "wbamberg" ] }, - "Web/Guide/DOM/Manipuler_historique_du_navigateur/Example": { - "modified": "2019-03-23T23:32:28.258Z", + "Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_example:_Web_Animations_API": { + "modified": "2020-07-16T22:34:38.254Z", "contributors": [ - "tregagnon", - "matteodelabre" + "wbamberg", + "maximelore" ] }, - "Web/Guide/DOM/Using_full_screen_mode": { - "modified": "2019-03-23T23:28:29.789Z", + "Tools/Page_Inspector/How_to/Work_with_animations/Animation_inspector_example:_CSS_transitions": { + "modified": "2020-07-16T22:34:37.720Z", "contributors": [ "wbamberg", - "loella16", - "Gaelliss", - "kiux", - "warpdesign", - "Rudloff" + "maximelore" ] }, - "Web/Guide/Graphics": { - "modified": "2019-03-23T23:29:27.864Z", + "Tools/Page_Inspector/How_to/Work_with_animations": { + "modified": "2020-07-16T22:34:36.523Z", "contributors": [ - "tonybengue", - "Patrice-Koumar", - "Goofy", - "tregagnon", - "darnuria" + "maximelore", + "wbamberg", + "daimebag", + "colibri83", + "hutrd", + "MRdotB" ] }, - "Web/Guide/Graphics/Dessiner_avec_canvas": { - "modified": "2019-03-23T23:59:59.422Z", + "Tools/Page_Inspector": { + "modified": "2020-07-16T22:34:27.499Z", "contributors": [ - "emersion", - "Laurent_Lyaudet", - "Delapouite", + "maximelore", + "wbamberg", + "clementpolito", + "teoli", + "J.DMB", "tregagnon", - "Nairod", - "BenoitL", - "Chbok", - "Mgjbot", - "Pitux" + "milc", + "tchevalier", + "Delapouite" ] }, - "Web/Guide/HTML/Astuces_de_création_de_pages_HTML_à_affichage_rapide": { - "modified": "2020-07-16T22:22:32.522Z", + "Tools/Page_Inspector/Keyboard_shortcuts": { + "modified": "2020-07-16T22:34:50.971Z", "contributors": [ - "tbazin", - "rfc791", - "tregagnon", - "ethertank", - "rgkdev", - "shgz", - "Shz" + "wbamberg", + "maximelore", + "teoli" ] }, - "Web/Guide/HTML/Catégories_de_contenu": { - "modified": "2020-03-31T11:01:50.986Z", + "Tools/Page_Inspector/UI_Tour": { + "modified": "2020-07-16T22:34:49.046Z", "contributors": [ - "tristantheb", - "SphinxKnight", - "loella16", - "marie-ototoi", - "tregagnon", - "xaky" + "maximelore", + "wbamberg", + "fixius69gggg", + "hutrd", + "clementpolito" ] }, - "Web/Guide/HTML/Formulaires": { - "modified": "2020-07-16T22:20:56.659Z", + "Tools/JSON_viewer": { + "modified": "2020-07-16T22:36:31.458Z", "contributors": [ - "BAHLOUL_Farouk", - "Dralyab", - "klenzo", - "Porkepix", - "Orkrum", - "diomabb", - "SphinxKnight", - "Goofy", - "tregagnon", - "FredB" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms": { - "modified": "2020-07-16T22:21:34.205Z", + "Tools/Measure_a_portion_of_the_page": { + "modified": "2020-07-16T22:36:38.831Z", "contributors": [ - "Dralyab" + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML": { - "modified": "2020-07-16T22:21:30.990Z", + "Tools/Memory/Aggregate_view": { + "modified": "2020-07-16T22:36:28.617Z", "contributors": [ - "Dralyab", - "Goofy", - "tregagnon", - "FredB" + "wbamberg", + "maximelore", + "solfen" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés": { - "modified": "2020-07-16T22:21:55.892Z", + "Tools/Memory/Basic_operations": { + "modified": "2020-07-16T22:36:29.526Z", "contributors": [ - "Dralyab" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_3": { - "modified": "2020-07-16T22:21:59.707Z", + "Tools/Memory/DOM_allocation_example": { + "modified": "2020-07-16T22:36:30.900Z", "contributors": [ - "Dralyab" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_4": { - "modified": "2020-07-16T22:22:00.018Z", + "Tools/Memory/Dominators_view": { + "modified": "2020-07-16T22:36:28.146Z", "contributors": [ - "Dralyab" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_5": { - "modified": "2020-07-16T22:22:00.342Z", + "Tools/Memory/Dominators": { + "modified": "2020-07-16T22:36:29.172Z", "contributors": [ - "Dralyab" + "wkz3w59", + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_1": { - "modified": "2020-07-16T22:21:58.979Z", + "Tools/Memory": { + "modified": "2020-07-16T22:36:26.928Z", "contributors": [ - "Dralyab" + "wbamberg", + "maximelore", + "unpeudetout" ] }, - "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_2": { - "modified": "2020-07-16T22:21:59.361Z", + "Tools/Memory/Monster_example": { + "modified": "2020-07-16T22:36:29.974Z", "contributors": [ - "Dralyab" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML": { - "modified": "2020-07-16T22:21:11.591Z", + "Tools/Memory/Tree_map_view": { + "modified": "2020-07-16T22:36:30.334Z", "contributors": [ - "Dralyab", - "Lotfire", - "efazenda", - "Sheppy", - "tregagnon", - "FredB" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple": { - "modified": "2020-07-16T22:21:17.064Z", + "Tools/Migrating_from_Firebug": { + "modified": "2020-07-16T22:36:37.454Z", "contributors": [ - "Dralyab", - "elseydi", - "tregagnon", - "FredB" + "maximelore", + "wbamberg" ] }, - "Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires": { - "modified": "2020-07-16T22:21:26.847Z", + "Tools/Network_Monitor": { + "modified": "2020-07-16T22:35:30.164Z", "contributors": [ - "Dralyab", - "ChristianR25", - "Bam92", - "ben391", - "Thorium90", + "maximelore", + "roiLeo", + "wbamberg", + "Breizhim", + "Hell_Carlito", + "marie-ototoi", "teoli", - "rebeccachaix" + "J.DMB", + "P45QU10U", + "Omnilaika02", + "Goofy" ] }, - "Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers": { - "modified": "2020-07-16T22:22:03.313Z", + "Tools/Network_Monitor/Performance_Analysis": { + "modified": "2020-11-12T09:23:11.969Z", "contributors": [ - "Dralyab", - "eli.g" + "JNa0", + "maximelore", + "zatteo" ] }, - "Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs": { - "modified": "2020-12-12T09:57:29.663Z", + "Tools/Network_Monitor/recording": { + "modified": "2020-07-16T22:35:35.319Z", "contributors": [ - "Idlus", - "Rififia", - "Dralyab", - "efazenda", - "tregagnon", - "FredB" + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML": { - "modified": "2020-11-20T03:07:01.051Z", + "Tools/Network_Monitor/request_details": { + "modified": "2020-11-12T09:26:09.919Z", "contributors": [ - "SphinxKnight", - "tiluc", - "BAHLOUL_Farouk", - "mikeleyeti", - "Dralyab", - "DineshMv", - "teoli", - "Sheppy", - "jean-pierre.gay", - "Goofy", - "ChaaSof", - "FredB", - "Mozinet", - "tregagnon" + "JNa0", + "hellosct1", + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple": { - "modified": "2020-07-16T22:21:08.230Z", + "Tools/Network_Monitor/request_list": { + "modified": "2020-07-16T22:35:33.669Z", "contributors": [ - "Dralyab", - "tregagnon", - "FredB" + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Property_compatibility_table_for_form_widgets": { - "modified": "2020-07-16T22:21:39.980Z", + "Tools/Network_Monitor/Throttling": { + "modified": "2020-07-16T22:35:36.195Z", "contributors": [ - "Dralyab" + "maximelore" ] }, - "Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript": { - "modified": "2020-07-16T22:22:01.597Z", + "Tools/Network_Monitor/toolbar": { + "modified": "2020-07-16T22:35:32.750Z", "contributors": [ - "Dralyab" + "maximelore", + "hellosct1" ] }, - "Web/Guide/HTML/Formulaires/Validation_donnees_formulaire": { - "modified": "2020-07-16T22:21:50.526Z", + "Tools/Tools_Toolbox": { + "modified": "2020-07-16T22:35:27.255Z", "contributors": [ - "ariasuni", - "Dralyab", - "SphinxKnight", - "HereComesJuju" + "maximelore", + "sunazerty", + "wbamberg", + "Amandine83", + "joel.costamagna" ] }, - "Web/Guide/HTML/HTML5": { - "modified": "2019-11-06T04:21:55.272Z", + "Tools/Paint_Flashing_Tool": { + "modified": "2020-07-16T22:35:43.506Z", "contributors": [ - "Awebsome", - "teoli", - "tregagnon", - "leoetlino", - "Flaburgan", - "DavidWalsh", - "vigia122", - "MatthieuMaler", - "rd6137", - "Dwchiang", - "BenoitL" + "nicofrand", + "maximelore", + "wbamberg" ] }, - "Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5": { - "modified": "2019-03-23T23:39:45.493Z", + "Tools/Performance/Allocations": { + "modified": "2020-07-16T22:36:22.257Z", "contributors": [ - "LiliTha", - "tregagnon", - "teoli", - "regisg27", - "Fredchat", - "MatthieuMaler" + "wbamberg", + "maximelore" ] }, - "Web/Guide/HTML/Liens_email": { - "modified": "2020-10-27T03:22:58.763Z", + "Tools/Performance/Call_Tree": { + "modified": "2020-07-16T22:36:19.677Z", "contributors": [ - "SphinxKnight", - "cristianxhaca199", - "OhNiice" + "maximelore", + "wbamberg", + "Puxarnal" ] }, - "Web/Guide/Mobile": { - "modified": "2019-03-23T23:29:36.868Z", + "Tools/Performance/Examples": { + "modified": "2020-07-16T22:36:20.791Z", "contributors": [ - "wakka27", - "BenoitL" + "wbamberg", + "maximelore" ] }, - "Web/Guide/Performance": { - "modified": "2019-03-23T23:28:31.959Z", + "Tools/Performance/Examples/Sorting_algorithms_comparison": { + "modified": "2020-07-16T22:36:21.341Z", "contributors": [ - "superfrenchboy", - "teoli", - "Sheppy" + "wbamberg", + "maximelore" ] }, - "Web/Guide/User_input_methods": { - "modified": "2019-03-23T22:00:16.721Z", + "Tools/Performance/Flame_Chart": { + "modified": "2020-07-16T22:36:20.412Z", "contributors": [ - "chrisdavidmills", - "a-mt" + "wbamberg", + "maximelore" ] }, - "Web/Guide/Using_FormData_Objects": { - "modified": "2019-03-23T23:02:24.025Z", + "Tools/Performance/Frame_rate": { + "modified": "2020-07-16T22:36:19.001Z", "contributors": [ - "pierreadrienbuisson", - "jean-pierre.gay" + "wbamberg", + "maximelore" ] }, - "Web/HTML": { - "modified": "2020-05-09T13:47:36.411Z", + "Tools/Performance/How_to": { + "modified": "2020-07-16T22:36:21.749Z", "contributors": [ - "SphinxKnight", - "facebook", - "tristantheb", - "NicolasCELLA", - "NerOcrO", - "tonybengue", - "Goofy", - "KhalilSnaake", - "Aminelahlou", - "CLEm", - "daniel35310", - "Gibus", - "krischamp", - "julia31", - "jsx", - "teoli", - "jalu78", - "DamienBertrand", - "wakka27", - "Luejni", - "nicoo", - "PetiPandaRou", - "Junipa", - "msherefel", - "claudepache", - "tregagnon", - "Saydev", - "FredB", - "BenoitL", - "ThePrisoner", - "abc222", - "david-suisse", - "Shz", - "xaky", - "fscholz", - "Mgjbot", - "Chbok", - "Planche", - "Takenbot" + "wbamberg", + "Porkepix", + "maximelore" ] }, - "Web/HTML/Appliquer_des_couleurs": { - "modified": "2019-05-09T08:27:28.339Z", + "Tools/Performance": { + "modified": "2020-07-16T22:36:12.629Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg", + "Porkepix", + "KrySoar", + "WSH", + "adim" ] }, - "Web/HTML/Attributs": { - "modified": "2019-08-05T13:35:34.698Z", + "Tools/Performance/Scenarios/Animating_CSS_properties": { + "modified": "2020-07-16T22:36:16.242Z", "contributors": [ - "SphinxKnight", - "louuis", - "msherefel", - "tregagnon", - "FredB" + "maximelore", + "wbamberg" ] }, - "Web/HTML/Attributs/autocomplete": { - "modified": "2020-10-30T09:19:41.790Z", + "Tools/Performance/Scenarios": { + "modified": "2020-07-16T22:36:15.683Z", "contributors": [ - "xel1045", - "Thosquey", - "fx-kuntz-dw", - "SphinxKnight", - "klnjmm" + "wbamberg", + "maximelore" ] }, - "Web/HTML/Attributs/pattern": { - "modified": "2020-12-02T04:01:31.109Z", + "Tools/Performance/Scenarios/Intensive_JavaScript": { + "modified": "2020-07-16T22:36:16.709Z", "contributors": [ - "SphinxKnight", - "roxaneprovost" + "wbamberg", + "maximelore" ] }, - "Web/HTML/Attributs_universels": { - "modified": "2020-10-15T21:07:20.352Z", + "Tools/Performance/UI_Tour": { + "modified": "2020-07-16T22:36:14.899Z", "contributors": [ - "SphinxKnight", - "xxDukeMCxx", - "Loliwe", - "wakooka", - "claudepache", - "louuis", - "msherefel", - "tregagnon", - "mistyrouge", - "Shz", - "xaky" + "Thomsath", + "wbamberg", + "elsawalker", + "maximelore", + "axel8591" ] }, - "Web/HTML/Attributs_universels/accesskey": { - "modified": "2020-10-15T21:33:33.820Z", + "Tools/Performance/Waterfall": { + "modified": "2020-07-16T22:36:17.448Z", "contributors": [ - "SphinxKnight", - "Goofy", - "guillaumev" + "maximelore", + "wbamberg", + "P45QU10U" ] }, - "Web/HTML/Attributs_universels/autocapitalize": { - "modified": "2020-10-15T22:02:11.899Z", + "Tools/Eyedropper": { + "modified": "2020-07-16T22:36:07.358Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "maximelore", + "teoli", + "Goofy", + "maybe", + "AnthonyMaton", + "louloutche" ] }, - "Web/HTML/Attributs_universels/class": { - "modified": "2020-10-15T21:33:47.181Z", + "Tools/Keyboard_shortcuts": { + "modified": "2020-07-16T22:35:47.095Z", "contributors": [ + "Mozinet", + "maximelore", + "wbamberg", + "maybe", + "teoli", "SphinxKnight", - "vazyvite" + "fscholz", + "tregagnon", + "Fredchat", + "Omnilaika02" ] }, - "Web/HTML/Attributs_universels/contenteditable": { - "modified": "2020-10-15T21:33:48.879Z", + "Tools/Rulers": { + "modified": "2020-07-16T22:36:26.322Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg", + "sayabiws" ] }, - "Web/HTML/Attributs_universels/contextmenu": { - "modified": "2020-10-15T21:33:49.445Z", + "Tools/Settings": { + "modified": "2020-07-16T22:36:34.961Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg" ] }, - "Web/HTML/Attributs_universels/data-*": { - "modified": "2020-10-15T21:33:48.787Z", + "Tools/Taking_screenshots": { + "modified": "2020-07-16T22:36:38.392Z", "contributors": [ - "SphinxKnight", - "ClementRocket", - "dashdashzako", - "olange" + "maximelore", + "wbamberg", + "Porkepix", + "QuaiSera" ] }, - "Web/HTML/Attributs_universels/dir": { - "modified": "2020-10-15T21:33:54.030Z", + "Tools/Tips": { + "modified": "2020-07-16T22:36:36.322Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg", + "JeffD" ] }, - "Web/HTML/Attributs_universels/draggable": { - "modified": "2020-10-15T21:33:51.496Z", + "Tools/Working_with_iframes": { + "modified": "2020-07-16T22:36:11.851Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg", + "unpeudetout", + "yaaboukir", + "teoli", + "maybe", + "Sheppy", + "J.DMB" ] }, - "Web/HTML/Attributs_universels/dropzone": { - "modified": "2020-10-15T21:33:33.621Z", + "Tools/Validators": { + "modified": "2020-07-16T22:35:03.388Z", "contributors": [ - "tristantheb", - "SphinxKnight", - "Goofy", - "guillaumev" + "wbamberg", + "maximelore", + "tregagnon", + "Mgjbot", + "Kyodev", + "Fredchat", + "Jean-Yves Cronier" ] }, - "Web/HTML/Attributs_universels/hidden": { - "modified": "2020-10-15T21:33:54.525Z", + "Tools/View_source": { + "modified": "2020-07-16T22:35:02.805Z", "contributors": [ - "SphinxKnight" + "maximelore", + "wbamberg" ] }, - "Web/HTML/Attributs_universels/id": { - "modified": "2020-10-15T21:33:53.408Z", + "Tools/3D_View": { + "modified": "2020-07-16T22:34:25.273Z", "contributors": [ - "SphinxKnight" + "Kearny", + "maximelore", + "wbamberg", + "erwandf", + "Red-Phoenix", + "Bene", + "tregagnon", + "ModernGames" ] }, - "Web/HTML/Attributs_universels/inputmode": { - "modified": "2020-10-15T22:11:16.049Z", + "Tools/Responsive_Design_Mode": { + "modified": "2020-07-16T22:35:21.388Z", "contributors": [ - "regseb", - "SphinxKnight" + "maximelore", + "Machou", + "wbamberg", + "LaurentGarnier", + "WillyReyno", + "trevorh", + "J.DMB", + "Nadra", + "Omnilaika02", + "wakka27", + "tregagnon", + "Goofy", + "Delapouite", + "mh_nichts" ] }, - "Web/HTML/Attributs_universels/is": { - "modified": "2020-10-15T22:01:11.769Z", + "Glossary/SGML": { + "modified": "2019-03-23T23:31:44.178Z", "contributors": [ + "loella16", + "Hell_Carlito", + "sebastien-bartoli", "SphinxKnight" ] }, - "Web/HTML/Attributs_universels/itemid": { - "modified": "2020-10-15T21:43:26.402Z", + "Web/SVG/SVG_1.1_Support_in_Firefox": { + "modified": "2019-03-23T23:49:52.334Z", "contributors": [ - "SphinxKnight" + "marie-ototoi", + "wakka27", + "Fredchat", + "BenoitL", + "VincentN", + "Mgjbot", + "Chbok" ] }, - "Web/HTML/Attributs_universels/itemprop": { - "modified": "2020-10-15T21:43:28.895Z", + "Web/API/Canvas_API/A_basic_ray-caster": { + "modified": "2019-03-23T23:44:18.702Z", "contributors": [ - "SphinxKnight" + "loella16", + "teoli", + "Delapouite", + "Fredchat", + "VincentN", + "Planche" ] }, - "Web/HTML/Attributs_universels/itemref": { - "modified": "2020-10-15T21:43:27.145Z", + "Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching": { + "modified": "2019-03-24T00:03:08.986Z", "contributors": [ - "SphinxKnight" + "wbamberg", + "nicofrand", + "fscholz", + "Mgjbot", + "Sheppy", + "BenoitL", + "Doozer", + "Chbok" ] }, - "Web/HTML/Attributs_universels/itemscope": { - "modified": "2020-10-15T21:43:32.087Z", + "Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast": { + "modified": "2020-05-11T17:06:50.947Z", "contributors": [ - "SphinxKnight", - "dFegnoux" + "ewen-lbh", + "Maxi_Mega" ] }, - "Web/HTML/Attributs_universels/itemtype": { - "modified": "2020-10-15T21:43:29.485Z", + "Web/API/EffectTiming/delay": { + "modified": "2019-03-23T22:28:20.379Z", "contributors": [ "SphinxKnight", - "ferdi_" + "HereComesJuju" ] }, - "Web/HTML/Attributs_universels/lang": { - "modified": "2020-10-15T21:33:54.262Z", + "Web/API/EffectTiming": { + "modified": "2019-03-23T22:28:24.754Z", "contributors": [ "SphinxKnight", - "gfc" + "HereComesJuju", + "rachelnabors" ] }, - "Web/HTML/Attributs_universels/slot": { - "modified": "2020-10-15T21:51:35.355Z", + "Web/API/File_and_Directory_Entries_API": { + "modified": "2019-03-23T22:35:43.265Z", "contributors": [ - "SphinxKnight" + "alexisdelee" ] }, - "Web/HTML/Attributs_universels/spellcheck": { - "modified": "2020-10-15T21:33:50.764Z", + "Web/API/HTML_Drag_and_Drop_API": { + "modified": "2019-10-25T04:36:55.763Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "jledentu", + "teoli", + "kazma", + "goofy_bz", + "azurakaiser", + "Delapouite", + "rd6137" ] }, - "Web/HTML/Attributs_universels/style": { - "modified": "2020-10-15T21:33:51.867Z", + "Web/API/HTML_Drag_and_Drop_API/Drag_operations": { + "modified": "2019-11-28T11:30:12.535Z", "contributors": [ + "azocankara", + "arthurlacoste", "SphinxKnight", - "Morgan-jarry" + "teoli", + "Jeremie", + "Chbok" ] }, - "Web/HTML/Attributs_universels/tabindex": { - "modified": "2020-10-15T21:33:53.441Z", + "Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB": { + "modified": "2020-03-19T07:25:26.127Z", "contributors": [ + "ChristopheBoucaut", + "loella16", + "Alpha", "SphinxKnight", - "ggrossetie", - "Le_suisse", - "Goofy" + "teoli", + "julienw" ] }, - "Web/HTML/Attributs_universels/title": { - "modified": "2020-10-15T21:33:33.266Z", + "Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria": { + "modified": "2019-07-09T03:14:33.430Z", "contributors": [ "SphinxKnight", - "babsolune", - "Goofy", - "guillaumev" + "xavieralt", + "loella16", + "Billos" ] }, - "Web/HTML/Attributs_universels/translate": { - "modified": "2020-10-15T21:33:34.133Z", + "Web/API/IndexedDB_API": { + "modified": "2020-05-12T10:06:55.343Z", "contributors": [ + "floreengrad", + "giloop", + "matmorel", + "eiro", + "EloD10", + "onra87", + "loella16", + "gharel", "SphinxKnight", - "Goofy", - "guillaumev" + "JeffD", + "P45QU10U", + "Caudralys", + "moins52" ] }, - "Web/HTML/Attributs_universels/x-ms-acceleratorkey": { - "modified": "2019-08-05T13:42:31.573Z", + "Web/API/IndexedDB_API/Using_IndexedDB": { + "modified": "2019-11-09T09:03:11.340Z", "contributors": [ - "SphinxKnight" + "JNa0", + "wbamberg", + "loella16", + "P45QU10U", + "SphinxKnight", + "zap221" ] }, - "Web/HTML/Attributs_universels/x-ms-format-detection": { - "modified": "2019-08-05T13:38:52.259Z", + "Web/API/BaseAudioContext/createGain": { + "modified": "2019-03-23T22:43:18.087Z", "contributors": [ - "SphinxKnight" + "JNa0", + "marie-ototoi", + "Threstle" ] }, - "Web/HTML/Contenu_editable": { - "modified": "2019-04-20T23:42:36.501Z", + "Web/API/Canvas_API/Tutorial/Advanced_animations": { + "modified": "2020-11-13T03:38:18.424Z", "contributors": [ - "tregagnon", - "SphinxKnight" + "SphinxKnight", + "benjaminbouwyn", + "PaperFlu", + "loella16", + "gliluaume", + "lumiru", + "vanz" ] }, - "Web/HTML/Element": { - "modified": "2019-06-20T13:53:53.330Z", + "Web/API/Canvas_API/Tutorial/Applying_styles_and_colors": { + "modified": "2020-11-13T03:38:20.196Z", "contributors": [ "SphinxKnight", - "PhilippeV", - "RolandOnGitHub", - "Loliwe", - "unpeudetout", - "tregagnon", - "OlivierBaudry", - "BlackSheep", - "BenoitL", - "Lomalarch", - "jackblack", - "Shz", - "xaky", - "teoli", - "Mgjbot" + "lhapaipai", + "a-mt", + "lebernard", + "loella16", + "JNa0", + "ecolinet", + "jmh" ] }, - "Web/HTML/Element/Button": { - "modified": "2020-10-15T21:14:16.152Z", + "Web/API/Canvas_API/Tutorial/Basic_animations": { + "modified": "2020-11-13T03:38:18.694Z", "contributors": [ - "yannbertrand", "SphinxKnight", - "vvvaleee", - "grandoc", - "Chealer", - "marie-ototoi", - "arnaudb", - "FredB", - "tregagnon", - "ethertank", - "teoli" + "a-mt", + "loella16", + "lumiru", + "zaphibel" ] }, - "Web/HTML/Element/Fieldset": { - "modified": "2020-10-15T21:14:14.734Z", + "Web/API/Canvas_API/Tutorial/Compositing/Example": { + "modified": "2020-11-13T03:38:18.691Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon", - "teoli", - "ethertank" + "a-mt" ] }, - "Web/HTML/Element/Form": { - "modified": "2020-10-15T21:14:20.837Z", + "Web/API/Canvas_API/Tutorial/Compositing": { + "modified": "2020-11-13T03:38:19.786Z", "contributors": [ "SphinxKnight", - "Hirevo", - "edspeedy", - "Jack_Duthen", - "msherefel", - "Goofy", - "wakooka", - "tregagnon", - "teoli", - "jswisher" + "a-mt", + "Syberam" ] }, - "Web/HTML/Element/Heading_Elements": { - "modified": "2020-11-02T08:01:39.577Z", + "Web/API/Canvas_API/Tutorial/Drawing_text": { + "modified": "2020-11-13T03:38:17.919Z", "contributors": [ - "ylerjen", "SphinxKnight", - "marie-ototoi", - "Bat", - "tregagnon", - "ThePrisoner" + "a-mt", + "loella16", + "jmh", + "emersion", + "Delapouite", + "Mgjbot", + "BenoitL" ] }, - "Web/HTML/Element/Img": { - "modified": "2020-10-15T21:23:10.312Z", + "Web/API/Canvas_API/Tutorial/Drawing_shapes": { + "modified": "2020-11-13T03:38:18.692Z", "contributors": [ - "tristantheb", - "Yukulele.", "SphinxKnight", - "Chomchaum", - "jgil83000", - "codemmousse", - "Yves_ASTIER", - "Hell_Carlito", - "hostalerye", - "FranckCo", - "louuis", - "Alexfrits", - "msherefel", - "tregagnon", - "olibre", - "Goofy" + "Link_D._Potter", + "jpcote", + "NerOcrO", + "a-mt", + "lebernard", + "Halkeand", + "loella16", + "NemoNobobyPersonne", + "ecolinet", + "mesclics", + "JNa0", + "jmh", + "teoli", + "pie3636", + "anaskiee", + "Mathieu_deLauniere" ] }, - "Web/HTML/Element/Input": { - "modified": "2020-10-15T21:14:16.017Z", + "Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility": { + "modified": "2020-11-13T03:38:19.005Z", "contributors": [ "SphinxKnight", - "VictorLequin", - "Flop", - "Dridou", - "SimonArruti", - "lionel", - "marie-ototoi", - "nicofrand", - "wakka27", - "Flaburgan", - "jbeuh", - "arnaudbienner", - "msherefel", - "tregagnon", - "teoli" + "smartinus44", + "Syberam" ] }, - "Web/HTML/Element/Input/button": { - "modified": "2020-10-15T21:37:46.494Z", + "Web/API/Canvas_API/Tutorial": { + "modified": "2020-11-13T03:38:17.265Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "dreizn", - "Bat", - "Goofy" + "loella16", + "lumiru", + "jmh", + "Mathieu_deLauniere", + "teoli", + "Jeremie", + "Delapouite", + "Mgjbot", + "BenoitL", + "Chbok" ] }, - "Web/HTML/Element/Input/checkbox": { - "modified": "2020-10-15T21:39:40.574Z", + "Web/API/Canvas_API/Tutorial/Optimizing_canvas": { + "modified": "2020-11-13T03:38:18.443Z", "contributors": [ - "Jamelkol", - "a-carvallo", "SphinxKnight", - "LaurentBarbareau", - "euZebe", - "FanJiyong", - "ctjhoa", - "AnthonyMaton" + "jonathanlinat", + "lumiru", + "Hell_Carlito", + "ClementNerma" ] }, - "Web/HTML/Element/Input/color": { - "modified": "2020-10-15T21:34:25.198Z", + "Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas": { + "modified": "2020-11-13T03:38:20.129Z", "contributors": [ - "Jamelkol", "SphinxKnight", - "nicofrand", - "josephcab" + "loella16", + "NemoNobobyPersonne", + "jodenda" ] }, - "Web/HTML/Element/Input/date": { - "modified": "2020-10-15T21:39:48.210Z", + "Web/API/Canvas_API/Tutorial/Transformations": { + "modified": "2020-11-13T03:38:19.573Z", "contributors": [ - "Flaburgan", "SphinxKnight", - "Lodec", - "P45QU10U", - "mliatt", - "doriangillet", - "marie-ototoi", - "Bat" + "ni.pineau", + "loella16", + "BEHOUBA", + "gliluaume" ] }, - "Web/HTML/Element/Input/datetime": { - "modified": "2019-04-04T15:45:35.933Z", + "Web/API/Canvas_API/Tutorial/Using_images": { + "modified": "2020-11-13T03:38:17.830Z", "contributors": [ "SphinxKnight", - "Antoine-Demailly", - "marie-ototoi", - "KylianLM" + "a-mt", + "loella16", + "jmh", + "Sebastianz", + "teoli", + "Laurent_Lyaudet", + "Delapouite", + "Notafish", + "Mgjbot", + "BenoitL" ] }, - "Web/HTML/Element/Input/datetime-local": { - "modified": "2020-10-28T11:18:38.925Z", + "Web/API/Canvas_API/Tutorial/Basic_usage": { + "modified": "2020-11-13T03:38:18.165Z", "contributors": [ - "nbtetreault", - "SphinxKnight" + "SphinxKnight", + "OhNiice", + "FabienTregan", + "NerOcrO", + "lebernard", + "iyadev", + "loella16", + "mireero", + "CoCay", + "AymDev", + "jmh", + "Nicolas_A", + "Olivier_C", + "MicroJoe", + "Mathieu_deLauniere" ] }, - "Web/HTML/Element/Input/email": { - "modified": "2020-10-15T21:55:52.405Z", + "Web/API/DeviceOrientationEvent/absolute": { + "modified": "2019-03-23T23:28:20.161Z", "contributors": [ - "SphinxKnight" + "Hellscream360", + "AshfaqHossain", + "darnuria" ] }, - "Web/HTML/Element/Input/file": { - "modified": "2020-10-15T21:54:07.371Z", + "Web/API/Document_Object_Model/Examples": { + "modified": "2019-03-23T23:50:50.905Z", "contributors": [ - "brunostasse", - "masonlouchart", + "loella16", "SphinxKnight", - "PhilippePerret", - "gnoxr", - "daufinsyd" + "teoli", + "khalid32", + "BenoitL", + "Domif", + "Mgjbot", + "Fredchat" ] }, - "Web/HTML/Element/Input/hidden": { - "modified": "2020-10-15T21:55:51.697Z", + "Web/API/Document_Object_Model/Events": { + "modified": "2019-03-18T21:39:20.100Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/HTML/Element/Input/image": { - "modified": "2020-10-15T21:43:35.571Z", + "Web/API/Document_object_model/Locating_DOM_elements_using_selectors": { + "modified": "2019-03-18T21:39:30.176Z", "contributors": [ - "Jamelkol", - "SphinxKnight" + "loella16" ] }, - "Web/HTML/Element/Input/month": { - "modified": "2020-10-15T21:56:34.329Z", + "Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core/Example": { + "modified": "2020-03-02T10:16:52.814Z", "contributors": [ "SphinxKnight", - "loganblangenois" + "loella16" ] }, - "Web/HTML/Element/Input/number": { - "modified": "2020-10-15T21:55:45.586Z", + "Web/API/Document_object_model/Using_the_W3C_DOM_Level_1_Core": { + "modified": "2020-03-02T10:16:52.732Z", "contributors": [ "SphinxKnight", - "nbrdx", - "Louis-PhilippeTrempe" + "wbamberg", + "loella16", + "Mgjbot", + "BenoitL" + ] + }, + "Web/API/Document/anchors": { + "modified": "2019-09-26T06:32:48.667Z", + "contributors": [ + "Le-Bookman", + "wbamberg", + "ThibautBremand", + "symsym" ] }, - "Web/HTML/Element/Input/password": { - "modified": "2020-10-15T21:43:36.452Z", + "Web/API/HTMLOrForeignElement/blur": { + "modified": "2020-10-15T21:17:21.812Z", "contributors": [ - "SphinxKnight", - "CAILAC-Maxime" + "abvll", + "a-mt", + "teoli", + "jsx", + "tregagnon", + "BenoitL" ] }, - "Web/HTML/Element/Input/radio": { - "modified": "2020-10-15T21:55:43.403Z", + "Web/API/Element/innerHTML": { + "modified": "2020-11-03T14:59:36.186Z", "contributors": [ - "SphinxKnight", - "FanJiyong" + "spirival", + "loella16", + "sami.boukortt", + "fscholz", + "teoli", + "scaillerie", + "khalid32", + "ethertank", + "grafik.muzik", + "Mgjbot", + "BenoitL", + "Takenbot", + "Anonymous" ] }, - "Web/HTML/Element/Input/range": { - "modified": "2020-10-15T21:55:44.797Z", + "Web/API/GlobalEventHandlers/onwheel": { + "modified": "2019-03-18T21:09:01.795Z", "contributors": [ - "SphinxKnight", - "jerominejournet" + "fscholz", + "loella16", + "alexandre-le-borgne" ] }, - "Web/HTML/Element/Input/reset": { - "modified": "2020-10-15T21:55:53.083Z", + "orphaned/Web/API/Entity": { + "modified": "2019-03-18T21:40:22.544Z", "contributors": [ - "SphinxKnight" + "loella16" ] }, - "Web/HTML/Element/Input/search": { - "modified": "2020-10-15T21:55:52.204Z", + "orphaned/Web/API/EntityReference": { + "modified": "2019-03-18T21:40:29.302Z", "contributors": [ - "SphinxKnight", - "lionralfs" + "loella16" ] }, - "Web/HTML/Element/Input/submit": { - "modified": "2020-10-15T21:56:12.673Z", + "Web/API/Event/Comparison_of_Event_Targets": { + "modified": "2019-03-18T21:39:09.103Z", "contributors": [ - "SphinxKnight", - "cabalpit" + "loella16" ] }, - "Web/HTML/Element/Input/tel": { - "modified": "2020-11-24T06:34:33.505Z", + "Web/API/FormData/Using_FormData_Objects": { + "modified": "2019-03-23T22:14:27.375Z", "contributors": [ - "Superkooka", - "SphinxKnight" + "Wintersunshine-Do" ] }, - "Web/HTML/Element/Input/text": { - "modified": "2020-10-15T21:57:28.394Z", + "Web/API/HTMLOrForeignElement/dataset": { + "modified": "2020-10-15T21:37:22.950Z", "contributors": [ - "SphinxKnight", - "Keyhaku" + "abvll", + "P45QU10U", + "tburette", + "Hell_Carlito", + "Laurent_Lyaudet" ] }, - "Web/HTML/Element/Input/time": { - "modified": "2020-10-15T21:57:37.801Z", + "Web/API/HTMLOrForeignElement/focus": { + "modified": "2019-10-10T16:45:54.605Z", "contributors": [ - "SphinxKnight" + "HRobineau", + "a-mt", + "vava", + "fscholz", + "teoli", + "jsx", + "tregagnon", + "BenoitL" ] }, - "Web/HTML/Element/Input/url": { - "modified": "2020-10-15T21:57:06.539Z", + "Web/API/ElementCSSInlineStyle/style": { + "modified": "2020-10-15T21:09:58.052Z", "contributors": [ - "SphinxKnight" + "tristantheb", + "dominiquevilain", + "edspeedy", + "ebear", + "fscholz", + "teoli", + "xuancanh", + "Julien.stuby", + "BenoitL", + "Mgjbot", + "Takenbot" ] }, - "Web/HTML/Element/Input/week": { - "modified": "2020-10-15T21:57:06.373Z", + "Web/API/HTMLOrForeignElement/tabIndex": { + "modified": "2019-03-24T00:13:15.014Z", "contributors": [ - "SphinxKnight" + "fscholz", + "khalid32", + "teoli", + "dextra", + "BenoitL" ] }, - "Web/HTML/Element/Keygen": { - "modified": "2020-10-15T21:14:21.658Z", + "Web/API/HTMLFormElement/submit_event": { + "modified": "2019-09-03T20:50:22.661Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "msherefel", - "tregagnon", - "teoli" + "estelle", + "Watilin", + "fscholz", + "thbil" ] }, - "Web/HTML/Element/Label": { - "modified": "2020-10-15T21:14:20.293Z", + "Web/API/IDBOpenDBRequest/blocked_event": { + "modified": "2019-03-23T22:00:21.621Z", "contributors": [ - "SphinxKnight", - "colindefais", - "marie-ototoi", - "tregagnon", - "teoli" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Web/HTML/Element/Legend": { - "modified": "2020-10-15T21:14:17.910Z", + "orphaned/Web/API/NameList": { + "modified": "2020-10-13T11:05:39.955Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "teoli" + "Voulto" ] }, - "Web/HTML/Element/Meter": { - "modified": "2020-10-15T21:14:20.481Z", + "Web/API/NavigatorOnLine/Online_and_offline_events": { + "modified": "2019-03-23T23:53:02.447Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon", - "teoli" + "Suriteka", + "chrisdavidmills", + "BenoitL", + "Mgjbot" ] }, - "Web/HTML/Element/Optgroup": { - "modified": "2020-10-15T21:14:18.536Z", + "Web/API/HTMLElement/innerText": { + "modified": "2020-10-15T21:45:59.327Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "ethertank", - "teoli" + "loella16", + "Watilin", + "kodliber", + "lansanasylla" ] }, - "Web/HTML/Element/Option": { - "modified": "2020-10-15T21:14:23.462Z", + "Web/API/Notifications_API/Using_the_Notifications_API": { + "modified": "2019-03-23T22:59:38.508Z", "contributors": [ - "Jamelkol", - "SphinxKnight", - "stevenremot", - "tregagnon", - "teoli" + "nhoizey", + "ajie62", + "Kazquo", + "Hell_Carlito", + "JeffD", + "3bandiste", + "Goofy", + "Moosh" ] }, - "Web/HTML/Element/Progress": { - "modified": "2020-10-15T21:14:19.837Z", + "Web/API/Pointer_events/Pinch_zoom_gestures": { + "modified": "2019-03-23T22:13:16.101Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon", - "Goofy", - "ethertank", - "teoli" + "a-mt", + "insomniaqc" ] }, - "Web/HTML/Element/Shadow": { - "modified": "2020-10-15T21:39:46.549Z", + "Web/API/Crypto/getRandomValues": { + "modified": "2020-10-15T21:32:23.009Z", "contributors": [ - "SphinxKnight", - "jean-pierre.gay" + "tristantheb", + "noftaly", + "Clemix37", + "ea1000", + "fscholz", + "Grahack" ] }, - "Web/HTML/Element/Source": { - "modified": "2020-10-15T21:11:10.814Z", + "conflicting/Web/API/Selection": { + "modified": "2019-03-18T21:28:44.424Z", "contributors": [ - "SphinxKnight", - "Hell_Carlito", - "Goofy", - "louuis", - "FredB", - "tregagnon", - "mekal" + "Watilin" ] }, - "Web/HTML/Element/Textarea": { - "modified": "2020-10-15T21:14:21.148Z", + "Web/API/HTMLHyperlinkElementUtils": { + "modified": "2019-03-23T23:15:38.230Z", "contributors": [ - "SphinxKnight", - "lulu5239", - "kagagnon", - "wakka27", - "emagnier", - "tregagnon", - "teoli" + "Watilin" ] }, - "Web/HTML/Element/a": { - "modified": "2020-11-06T11:21:23.131Z", + "Web/API/Web_Workers_API/Structured_clone_algorithm": { + "modified": "2019-03-23T22:20:19.039Z", "contributors": [ - "CCR-G", - "arkhi", - "mathildebuenerd", - "SphinxKnight", - "Miraty", - "NerOcrO", - "Banban", - "marie-ototoi", - "teoli", - "msherefel", - "tregagnon", - "Goofy", - "ethertank", - "DavidWalsh", - "FredB", - "autodidactie", - "BenoitL" + "Hell_Carlito", + "Watilin" ] }, - "Web/HTML/Element/abbr": { - "modified": "2020-10-15T21:20:25.117Z", + "Web/API/Web_Workers_API/Using_web_workers": { + "modified": "2019-11-27T14:21:09.047Z", "contributors": [ + "leobnt", "SphinxKnight", - "grandoc", - "marie-ototoi", - "fscholz", - "msherefel", + "hyphaene", + "necraidan", + "loella16", + "aurelienb33", + "Gasperowicz", + "dcamilleri", + "Philiphil", + "mliatt", + "SaintCyr", + "qwincy_p", + "m3doune", + "nicodel", + "jmh", + "goofy_bz", + "ThibautBremand", + "jean-pierre.gay", + "gaspardbenoit", + "teoli", "tregagnon", - "Pandark", - "Fredchat" + "dbruant", + "AurelienM" ] }, - "Web/HTML/Element/acronym": { - "modified": "2020-10-15T21:23:09.919Z", + "Web/API/WebGL_API/By_example/Clearing_with_colors": { + "modified": "2019-03-23T22:42:38.405Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/address": { - "modified": "2020-10-15T21:21:12.040Z", + "Web/API/WebGL_API/By_example/Basic_scissoring": { + "modified": "2019-03-23T22:42:39.054Z", "contributors": [ - "SphinxKnight", - "MisterDaFunk", - "edspeedy", - "marie-ototoi", - "tregagnon", - "msherefel", - "laparn" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/applet": { - "modified": "2020-10-15T21:23:12.907Z", + "Web/API/WebGL_API/By_example/Clearing_by_clicking": { + "modified": "2019-03-23T22:42:47.790Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/area": { - "modified": "2020-10-15T21:23:17.179Z", + "Web/API/WebGL_API/By_example/Scissor_animation": { + "modified": "2019-03-23T22:41:55.736Z", "contributors": [ - "SphinxKnight", - "sp00m", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/article": { - "modified": "2020-10-15T21:20:54.261Z", + "Web/API/WebGL_API/By_example/Simple_color_animation": { + "modified": "2019-03-23T22:42:38.639Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "Hell_Carlito", - "jumperparis", - "marie-ototoi", - "louuis", - "teoli", - "tregagnon", - "SwordArMor" + "chrisdavidmills", + "phareal", + "SphinxKnight" ] }, - "Web/HTML/Element/aside": { - "modified": "2020-10-15T21:20:52.000Z", + "Web/API/WebGL_API/By_example/Detect_WebGL": { + "modified": "2019-03-23T22:42:45.973Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne", - "marie-ototoi", - "tregagnon", - "msherefel", - "SwordArMor" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/audio": { - "modified": "2020-10-15T21:05:01.673Z", + "Web/API/WebGL_API/By_example/Textures_from_code": { + "modified": "2019-03-23T22:42:34.831Z", "contributors": [ - "SphinxKnight", - "MisterDaFunk", - "Brah0um", - "Goofy", - "EnzDev", - "marie-ototoi", - "WSH", - "louuis", - "msherefel", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/b": { - "modified": "2020-10-15T21:13:13.517Z", + "Web/API/WebGL_API/By_example/Hello_vertex_attributes": { + "modified": "2019-03-23T22:41:53.712Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "msherefel", - "tregagnon", - "Goofy", - "ethertank", - "Shz" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/base": { - "modified": "2020-10-15T21:23:10.852Z", + "Web/API/WebGL_API/By_example/Video_textures": { + "modified": "2019-03-23T22:42:42.053Z", "contributors": [ - "SphinxKnight", - "eduleboss", - "teoli", - "louuis", - "msherefel", - "tregagnon" + "chrisdavidmills", + "Porkepix", + "SphinxKnight" ] }, - "Web/HTML/Element/basefont": { - "modified": "2020-10-15T21:23:31.867Z", + "Web/API/WebGL_API/By_example/Color_masking": { + "modified": "2019-03-23T22:37:46.638Z", "contributors": [ - "SphinxKnight", - "fscholz", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/bdi": { - "modified": "2020-10-15T21:23:16.145Z", + "Web/API/WebGL_API/By_example/Boilerplate_1": { + "modified": "2019-03-23T22:41:51.922Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon", - "Delapouite" + "chrisdavidmills", + "wbamberg", + "SphinxKnight" ] }, - "Web/HTML/Element/bdo": { - "modified": "2020-10-15T21:23:20.744Z", + "Web/API/WebGL_API/By_example/Canvas_size_and_WebGL": { + "modified": "2019-03-23T22:41:53.133Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "marie-ototoi", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/bgsound": { - "modified": "2020-10-15T21:23:34.219Z", + "Web/API/WebGL_API/By_example/Raining_rectangles": { + "modified": "2019-03-23T22:41:53.831Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/HTML/Element/big": { - "modified": "2020-10-15T21:23:57.237Z", + "Web/API/WebGL_API/Data": { + "modified": "2019-03-23T22:01:55.247Z", "contributors": [ - "SphinxKnight", - "Daniel005", - "Goofy", - "tregagnon" + "NemoNobobyPersonne" ] }, - "Web/HTML/Element/blink": { - "modified": "2020-10-15T21:23:48.718Z", + "Web/API/WebGL_API/Tutorial/Using_shaders_to_apply_color_in_WebGL": { + "modified": "2019-12-30T10:10:01.835Z", "contributors": [ - "SphinxKnight", + "JNa0", + "NemoNobobyPersonne", + "greberger", "teoli", - "cgrimal", - "tregagnon" + "fscholz", + "TimN" ] }, - "Web/HTML/Element/blockquote": { - "modified": "2020-10-15T21:20:42.040Z", + "Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context": { + "modified": "2020-05-20T15:13:08.482Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "marie-ototoi", - "tregagnon", + "monsieurbadia", + "NemoNobobyPersonne", + "jeljeli", + "Golmote", + "Yomguithereal", + "JohnBerlin", "teoli", - "regisg27" + "fscholz", + "TimN", + "ThePrisoner" ] }, - "Web/HTML/Element/body": { - "modified": "2020-10-15T21:13:11.999Z", + "Web/API/WebGL_API/Tutorial/Animating_textures_in_WebGL": { + "modified": "2019-03-18T21:41:52.213Z", "contributors": [ - "SphinxKnight", - "PhilippeV", - "begmans", - "msherefel", - "tregagnon", - "Shz", - "ethertank" + "NemoNobobyPersonne" ] }, - "Web/HTML/Element/br": { - "modified": "2020-10-15T21:13:11.891Z", + "Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL": { + "modified": "2019-03-23T22:58:21.362Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "louuis", - "tregagnon", - "ethertank", - "Shz" + "NemoNobobyPersonne", + "xovaox", + "Golmote", + "teoli", + "fscholz", + "LDelhez" ] }, - "Web/HTML/Element/canvas": { - "modified": "2020-10-15T21:11:31.038Z", + "Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL": { + "modified": "2019-10-05T20:05:27.908Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "emersion", - "tregagnon", - "lumiru", - "Shahor", - "xaky" + "Yukulele.", + "Julien-prrs", + "chrisdavidmills", + "TimPrd", + "BonoBX", + "naneunga", + "NemoNobobyPersonne", + "museifu1", + "nonatomiclabs", + "teoli", + "fscholz", + "TimN", + "ThePrisoner" ] }, - "Web/HTML/Element/caption": { - "modified": "2020-10-15T21:23:14.688Z", + "Web/API/WebGL_API/Tutorial/Creating_3D_objects_using_WebGL": { + "modified": "2019-03-23T22:52:14.509Z", "contributors": [ - "SphinxKnight", - "Valbou", - "_pierrick_", - "tregagnon" + "PJoy", + "NemoNobobyPersonne", + "teoli", + "fscholz", + "Bat" ] }, - "Web/HTML/Element/center": { - "modified": "2020-10-15T21:23:55.900Z", + "Web/API/WebGL_API/Tutorial/Lighting_in_WebGL": { + "modified": "2019-03-23T22:11:17.974Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "dxsp", + "Slayug" ] - }, - "Web/HTML/Element/cite": { - "modified": "2020-10-15T21:23:18.545Z", + }, + "Web/API/WebGL_API/Tutorial/Using_textures_in_WebGL": { + "modified": "2019-03-23T22:58:22.974Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "louuis", - "AnthonyMaton", - "tregagnon" + "NemoNobobyPersonne", + "teoli", + "fscholz", + "Nasso", + "LDelhez" ] }, - "Web/HTML/Element/code": { - "modified": "2020-10-15T21:13:10.410Z", + "Web/API/WebGLRenderingContext/enable": { + "modified": "2020-10-15T21:59:29.725Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "Nadra", - "tregagnon", - "ethertank", - "xaky" + "NemoNobobyPersonne" ] }, - "Web/HTML/Element/col": { - "modified": "2020-10-15T21:23:13.154Z", + "Web/API/WebGLRenderingContext/canvas": { + "modified": "2020-10-15T21:59:28.454Z", "contributors": [ - "SphinxKnight", - "msherefel", - "tregagnon" + "NemoNobobyPersonne" ] }, - "Web/HTML/Element/colgroup": { - "modified": "2020-10-15T21:23:21.879Z", + "Web/API/WebVR_API/Using_VR_controllers_with_WebVR": { + "modified": "2019-03-18T21:44:15.461Z", "contributors": [ - "SphinxKnight", - "msherefel", - "tregagnon" + "DavidLibeau" ] }, - "Web/HTML/Element/command": { - "modified": "2020-10-15T21:20:20.685Z", + "conflicting/Web/API/GlobalEventHandlers/onresize": { + "modified": "2019-03-23T23:03:02.343Z", "contributors": [ - "SphinxKnight", - "JNa0", - "tregagnon", - "DirtyVader" + "loella16", + "fscholz", + "mikadev" ] }, - "Web/HTML/Element/content": { - "modified": "2020-10-15T21:26:28.598Z", + "Web/API/WindowOrWorkerGlobalScope/atob": { + "modified": "2019-09-24T09:32:03.862Z", "contributors": [ - "SphinxKnight", - "Mylainos" + "NemoNobobyPersonne", + "tbroadley", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL", + "Celelibi" ] }, - "Web/HTML/Element/data": { - "modified": "2020-10-15T21:23:14.238Z", + "Web/API/WindowOrWorkerGlobalScope/btoa": { + "modified": "2019-03-18T21:13:03.287Z", "contributors": [ - "lespacedunmatin", - "SphinxKnight", - "marie-ototoi", - "tregagnon" + "PamProg", + "NemoNobobyPersonne", + "teoli", + "lovasoa", + "fscholz", + "jsx", + "e7d", + "Mgjbot", + "BenoitL", + "Celelibi" ] }, - "Web/HTML/Element/datalist": { - "modified": "2020-10-15T21:14:21.726Z", + "Glossary/Base64": { + "modified": "2020-07-01T11:04:19.647Z", "contributors": [ + "sigmal", + "olivierdupon", "SphinxKnight", - "msherefel", - "Zefling", - "tregagnon", - "Goofy", - "Delapouite", - "ethertank", - "teoli" + "fscholz" ] }, - "Web/HTML/Element/dd": { - "modified": "2020-10-15T21:23:15.318Z", + "Web/API/WindowOrWorkerGlobalScope/clearInterval": { + "modified": "2020-10-15T21:18:22.478Z", "contributors": [ "SphinxKnight", - "tregagnon" + "faflo10", + "Shinomix", + "fscholz", + "teoli", + "khalid32", + "Mgjbot", + "BenoitL" ] }, - "Web/HTML/Element/del": { - "modified": "2020-10-15T21:23:25.321Z", + "Web/API/Web_Workers_API/Functions_and_classes_available_to_workers": { + "modified": "2019-03-23T23:02:00.292Z", "contributors": [ - "THE_PHOENIX", - "SphinxKnight", + "oaubert", "Goofy", - "thomas.g", - "tregagnon" + "jean-pierre.gay" ] }, - "Web/HTML/Element/details": { - "modified": "2020-10-15T21:20:52.346Z", + "Web/API/XMLHttpRequest/Using_XMLHttpRequest": { + "modified": "2019-03-23T23:16:32.724Z", "contributors": [ - "SphinxKnight", - "bhenbe", - "marie-ototoi", - "Elanis", - "louuis", - "msherefel", - "tregagnon", - "ThePrisoner" + "sylv1", + "JNa0", + "lessonsharing", + "Deleplace", + "teoli", + "riderodd" ] }, - "Web/HTML/Element/dfn": { - "modified": "2020-10-15T21:23:19.445Z", + "Web/CSS/:user-invalid": { + "modified": "2020-10-15T21:48:22.953Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon" + "teoli" ] }, - "Web/HTML/Element/dialog": { - "modified": "2020-10-15T21:29:25.711Z", + "Web/CSS/:autofill": { + "modified": "2020-10-15T21:48:21.767Z", "contributors": [ "SphinxKnight", - "J.DMB", - "KkFalse2", - "louuis" + "teoli" ] }, - "Web/HTML/Element/dir": { - "modified": "2020-10-15T21:23:54.346Z", + "Web/CSS/Privacy_and_the_:visited_selector": { + "modified": "2019-04-06T13:09:09.164Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/div": { - "modified": "2020-10-15T21:20:48.669Z", + "Web/CSS/:-moz-list-bullet": { + "modified": "2019-04-05T09:17:36.311Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon", "teoli", - "dhar" + "xdelatour" ] }, - "Web/HTML/Element/dl": { - "modified": "2020-10-15T21:23:31.779Z", + "Web/CSS/:-moz-list-number": { + "modified": "2019-04-05T09:17:28.748Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "msherefel", - "tregagnon" + "teoli", + "xdelatour" ] }, - "Web/HTML/Element/dt": { - "modified": "2020-10-15T21:23:25.261Z", + "Web/CSS/::file-selector-button": { + "modified": "2020-10-15T21:48:06.609Z", "contributors": [ "SphinxKnight", - "msherefel", - "tregagnon" + "teoli" ] }, - "Web/HTML/Element/element": { - "modified": "2020-10-15T21:26:29.511Z", + "Web/CSS/@media/-ms-high-contrast": { + "modified": "2019-04-06T12:02:58.663Z", "contributors": [ - "SphinxKnight", - "JNa0", - "teoli", - "louuis", - "ylerjen" + "SphinxKnight" ] }, - "Web/HTML/Element/em": { - "modified": "2020-10-15T21:20:54.814Z", + "orphaned/Web/CSS/@media/Index": { + "modified": "2019-04-06T12:02:15.887Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "Goofy", - "tregagnon", - "teoli", - "regisg27" + "SphinxKnight" ] }, - "Web/HTML/Element/embed": { - "modified": "2020-10-15T21:23:16.484Z", + "Web/CSS/Containing_block": { + "modified": "2020-09-13T07:51:15.383Z", "contributors": [ + "devscipline", + "alattalatta", "SphinxKnight", - "marie-ototoi", - "tregagnon" + "Frigory", + "loganblangenois" ] }, - "Web/HTML/Element/figcaption": { - "modified": "2020-10-15T21:20:53.877Z", + "Web/CSS/CSS_Animations/Tips": { + "modified": "2019-04-06T12:14:05.389Z", "contributors": [ - "SphinxKnight", - "Goofy", - "tregagnon", - "bertrandkeller" + "SphinxKnight" ] }, - "Web/HTML/Element/figure": { - "modified": "2020-10-15T21:23:12.610Z", + "Web/CSS/CSS_Animations/Detecting_CSS_animation_support": { + "modified": "2019-04-06T12:13:54.913Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon" + "wbamberg" ] }, - "Web/HTML/Element/font": { - "modified": "2020-10-15T21:23:56.298Z", + "Web/CSS/CSS_Animations": { + "modified": "2020-10-15T21:40:14.931Z", "contributors": [ "SphinxKnight", - "fscholz", - "tregagnon" + "teoli" ] }, - "Web/HTML/Element/footer": { - "modified": "2020-10-15T21:20:42.960Z", + "Web/CSS/CSS_Animations/Using_CSS_animations": { + "modified": "2019-09-12T15:12:07.417Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "ksad", - "tregagnon", - "ThePrisoner" + "Hytsar", + "Zgore14", + "magikmanu", + "Iwazaru", + "teoli", + "lapinter", + "FredB" ] }, - "Web/HTML/Element/frame": { - "modified": "2020-10-15T21:24:02.752Z", + "Web/CSS/CSS_Background_and_Borders/Border-image_generator": { + "modified": "2019-03-23T22:30:30.328Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/frameset": { - "modified": "2020-10-15T21:24:06.498Z", + "Web/CSS/CSS_Background_and_Borders/Border-radius_generator": { + "modified": "2019-03-23T22:30:26.745Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/head": { - "modified": "2020-10-15T21:20:23.173Z", + "Web/Guide/CSS/Block_formatting_context": { + "modified": "2019-05-18T12:20:40.602Z", "contributors": [ "SphinxKnight", - "louuis", - "tregagnon", - "ThePrisoner" + "teoli", + "tregagnon" ] }, - "Web/HTML/Element/header": { - "modified": "2020-10-15T21:20:52.453Z", + "Web/CSS/Column_combinator": { + "modified": "2020-10-15T22:10:06.707Z", "contributors": [ - "tristantheb", "SphinxKnight", - "marie-ototoi", - "msherefel", - "tregagnon", - "ThePrisoner" + "ExE-Boss" ] }, - "Web/HTML/Element/hgroup": { - "modified": "2020-10-15T21:23:14.998Z", + "Web/CSS/Adjacent_sibling_combinator": { + "modified": "2020-10-15T21:46:19.453Z", "contributors": [ "SphinxKnight", - "edspeedy", - "marie-ototoi", - "tregagnon", - "Goofy" + "builgui", + "ffoodd" ] }, - "Web/HTML/Element/hr": { - "modified": "2020-10-15T21:22:24.865Z", + "Web/CSS/CSS_Containment": { + "modified": "2019-11-04T14:25:26.741Z", "contributors": [ - "jakfils", - "SphinxKnight", - "PhilippeV", - "louuis", - "Fredchat", - "tregagnon", - "zizielmehdi" + "SphinxKnight" ] }, - "Web/HTML/Element/html": { - "modified": "2020-10-15T21:20:11.083Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Adding_z-index": { + "modified": "2020-05-31T18:36:38.468Z", "contributors": [ "SphinxKnight", - "kingseak", - "goofy_bz", - "Fredchat", + "christophe-petitjean", + "mo0z", + "Serrulien", + "teoli", "tregagnon", - "Shonda" + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/i": { - "modified": "2020-10-15T21:23:26.221Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context": { + "modified": "2020-05-31T18:36:40.196Z", "contributors": [ + "v-Stein", "SphinxKnight", - "marie-ototoi", - "louiscarrese", - "msherefel", - "tregagnon" + "teoli", + "tregagnon", + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/iframe": { - "modified": "2020-10-15T21:23:33.826Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_and_float": { + "modified": "2020-05-31T18:36:35.517Z", "contributors": [ - "quadristan", "SphinxKnight", - "ThCarrere", - "loella16", - "guillaumegarcia13", - "PxlCtzn", - "marie-ototoi", - "shinigami35", - "msherefel", - "tregagnon" + "edspeedy", + "teoli", + "tregagnon", + "BenoitL", + "Lapinkiller", + "Fredchat" ] }, - "Web/HTML/Element/image": { - "modified": "2020-10-15T21:27:06.857Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_without_z-index": { + "modified": "2020-05-31T18:36:35.932Z", "contributors": [ "SphinxKnight", "teoli", - "msherefel" + "invitetheweb", + "tregagnon", + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/ins": { - "modified": "2020-10-15T21:23:18.858Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_1": { + "modified": "2020-05-31T18:36:35.214Z", "contributors": [ + "maximesanmartin", "SphinxKnight", - "wakka27", - "tregagnon" + "teoli", + "tregagnon", + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/isindex": { - "modified": "2020-10-15T21:24:06.247Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_2": { + "modified": "2020-05-31T18:36:34.925Z", "contributors": [ "SphinxKnight", - "tregagnon" + "teoli", + "tregagnon", + "webskin", + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/kbd": { - "modified": "2020-10-15T21:23:28.702Z", + "Web/CSS/CSS_Positioning/Understanding_z_index/Stacking_context_example_3": { + "modified": "2020-05-31T18:36:35.162Z", "contributors": [ + "maximesanmartin", "SphinxKnight", - "duduindo", - "loversun5", - "edspeedy", - "marie-ototoi", - "wakka27", - "tregagnon" + "teoli", + "tregagnon", + "BenoitL", + "Fredchat" ] }, - "Web/HTML/Element/li": { - "modified": "2020-10-15T21:23:31.636Z", + "Web/CSS/CSS_Positioning/Understanding_z_index": { + "modified": "2020-05-31T18:36:39.203Z", "contributors": [ "SphinxKnight", - "edspeedy", - "NemoNobobyPersonne", - "tregagnon" + "mo0z", + "Serrulien", + "teoli", + "tregagnon", + "BenoitL", + "Lapinkiller", + "Fredchat" ] }, - "Web/HTML/Element/link": { - "modified": "2020-10-15T21:17:06.340Z", + "Web/CSS/Viewport_concepts": { + "modified": "2019-05-23T08:44:33.152Z", "contributors": [ - "devscipline", - "SphinxKnight", - "antlio", - "Fredchat", - "louuis", - "tregagnon", - "BenoitL", - "Mgjbot" + "SphinxKnight" ] }, - "Web/HTML/Element/listing": { - "modified": "2020-10-15T21:24:01.189Z", + "Web/CSS/Inline_formatting_context": { + "modified": "2019-11-05T09:02:18.660Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/main": { - "modified": "2020-10-15T21:24:00.758Z", + "Web/CSS/CSS_Colors/Color_picker_tool": { + "modified": "2019-03-23T23:09:13.209Z", "contributors": [ + "YannisDelmas", "SphinxKnight", - "NicolasGraph", - "tonybengue", - "edspeedy", - "marie-ototoi", - "louuis", - "tregagnon", - "Goofy", - "Delapouite", - "mistyrouge" + "Fabien_Hanquet" ] }, - "Web/HTML/Element/map": { - "modified": "2020-10-15T21:23:23.856Z", + "Web/CSS/CSS_Backgrounds_and_Borders/Resizing_background_images": { + "modified": "2019-06-18T19:28:42.872Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon" + "jcisio" ] }, - "Web/HTML/Element/mark": { - "modified": "2020-10-15T21:23:12.856Z", + "Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds": { + "modified": "2019-04-06T12:13:04.362Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "wakka27", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/marquee": { - "modified": "2020-10-15T21:24:09.275Z", + "Web/CSS/CSS_Basic_User_Interface/Using_URL_values_for_the_cursor_property": { + "modified": "2019-04-06T12:43:13.926Z", "contributors": [ "SphinxKnight", - "jilljenn", - "tregagnon", - "RaphaelGoetter", - "mistyrouge" + "ExE-Boss", + "teoli", + "Kyodev", + "Mgjbot", + "Sheppy", + "BenoitL", + "Fredchat", + "Learning", + "Chbok" ] }, - "Web/HTML/Element/menu": { - "modified": "2020-10-15T21:23:12.040Z", + "Web/CSS/CSS_Box_Alignment/Box_Alignment_In_Block_Abspos_Tables": { + "modified": "2019-04-06T12:43:22.538Z", "contributors": [ - "SphinxKnight", - "Dralyab", - "marie-ototoi", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/menuitem": { - "modified": "2020-10-15T21:24:26.748Z", + "Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Multi-column_Layout": { + "modified": "2019-04-06T12:43:28.533Z", "contributors": [ - "SphinxKnight", - "JNa0", - "tregagnon", - "Delapouite" + "SphinxKnight" ] }, - "Web/HTML/Element/meta": { - "modified": "2020-10-15T21:23:56.046Z", + "Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox": { + "modified": "2019-04-26T03:47:25.587Z", "contributors": [ - "SphinxKnight", - "jumperparis", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/multicol": { - "modified": "2020-10-15T21:27:07.686Z", + "Web/CSS/CSS_Box_Alignment/Box_Alignment_In_Grid_Layout": { + "modified": "2019-04-06T12:42:13.894Z", "contributors": [ - "SphinxKnight", - "msherefel" + "SphinxKnight" ] }, - "Web/HTML/Element/nav": { - "modified": "2020-10-15T21:23:13.672Z", + "Web/CSS/CSS_Columns/Basic_Concepts_of_Multicol": { + "modified": "2019-04-06T12:54:10.082Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "ZanyMonk", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/nextid": { - "modified": "2020-10-15T21:51:55.717Z", + "Web/CSS/CSS_Columns/Handling_content_breaks_in_multicol": { + "modified": "2019-04-06T12:53:51.858Z", "contributors": [ "SphinxKnight" ] }, - "Web/HTML/Element/nobr": { - "modified": "2020-10-15T21:23:31.399Z", + "Web/CSS/CSS_Columns/Handling_Overflow_in_Multicol": { + "modified": "2019-04-06T12:53:58.823Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/noembed": { - "modified": "2020-10-15T21:27:10.600Z", + "Web/CSS/CSS_Columns/Styling_Columns": { + "modified": "2019-07-12T07:43:39.985Z", "contributors": [ - "SphinxKnight", - "msherefel" + "SphinxKnight" ] }, - "Web/HTML/Element/noframes": { - "modified": "2020-10-15T21:24:04.283Z", + "Web/CSS/CSS_Columns/Spanning_Columns": { + "modified": "2019-04-06T12:53:13.456Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/noscript": { - "modified": "2020-10-15T21:21:52.581Z", + "Web/CSS/CSS_Columns/Using_multi-column_layouts": { + "modified": "2019-04-26T04:16:31.564Z", "contributors": [ "SphinxKnight", + "fscholz", + "teoli", + "louuis", + "Delapouite", + "FredB", "tregagnon", - "morgan37" + "Fredchat", + "BenoitL", + "Mgjbot", + "Jorolo", + "Chbok" ] }, - "Web/HTML/Element/object": { - "modified": "2020-10-15T21:23:58.336Z", + "Web/CSS/CSS_Conditional_Rules/Using_Feature_Queries": { + "modified": "2019-11-04T09:09:49.786Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/ol": { - "modified": "2020-10-15T21:23:26.938Z", + "Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container": { + "modified": "2020-05-15T19:19:41.021Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "wakka27", - "tregagnon" + "lhapaipai", + "SphinxKnight" ] }, - "Web/HTML/Element/output": { - "modified": "2020-10-15T21:13:39.223Z", + "Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox": { + "modified": "2019-04-06T12:35:25.205Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon", - "davidbourguignon", - "trevorh", - "ethertank", - "teoli" + "SphinxKnight" ] }, - "Web/HTML/Element/p": { - "modified": "2020-10-15T21:13:10.399Z", + "Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox": { + "modified": "2019-04-06T12:37:54.531Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon", - "ethertank", - "Shz" + "PolPasop", + "Goofy" ] }, - "Web/HTML/Element/param": { - "modified": "2020-10-15T21:23:29.882Z", + "Web/CSS/CSS_Flexible_Box_Layout/Controlling_Ratios_of_Flex_Items_Along_the_Main_Ax": { + "modified": "2019-04-06T12:38:05.161Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/picture": { - "modified": "2020-10-15T21:29:55.087Z", + "Web/CSS/CSS_Flexible_Box_Layout/Relationship_of_Flexbox_to_Other_Layout_Methods": { + "modified": "2019-04-01T10:49:49.132Z", "contributors": [ - "SphinxKnight", - "alegout", - "welcoMattic", - "watsab", - "YoruNoHikage", - "J.DMB", - "Goofy", - "nicoo" + "lhapaipai", + "SphinxKnight" ] }, - "Web/HTML/Element/plaintext": { - "modified": "2020-10-15T21:24:07.076Z", + "Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items": { + "modified": "2019-04-06T12:37:23.388Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/pre": { - "modified": "2020-10-15T21:23:59.375Z", + "Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox": { + "modified": "2019-04-06T12:37:32.698Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon" + "chrisdavidmills", + "pixoux" ] }, - "Web/HTML/Element/q": { - "modified": "2020-10-15T21:23:31.357Z", + "Web/CSS/CSS_Flexible_Box_Layout/Ordering_Flex_Items": { + "modified": "2019-04-06T12:35:46.732Z", "contributors": [ "SphinxKnight", - "marie-ototoi", - "tregagnon" + "dattaz" ] }, - "Web/HTML/Element/rb": { - "modified": "2020-10-15T22:11:33.941Z", + "conflicting/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox": { + "modified": "2019-04-06T12:38:31.267Z", "contributors": [ "SphinxKnight" ] }, - "Web/HTML/Element/rp": { - "modified": "2020-10-15T21:22:20.484Z", + "Web/CSS/CSS_Flow_Layout/In_Flow_and_Out_of_Flow": { + "modified": "2019-04-06T12:34:12.506Z", "contributors": [ - "SphinxKnight", - "tregagnon", - "fkhannouf" + "SphinxKnight" ] }, - "Web/HTML/Element/rt": { - "modified": "2020-10-15T21:22:24.227Z", + "Web/CSS/CSS_Flow_Layout/Block_and_Inline_Layout_in_Normal_Flow": { + "modified": "2019-08-05T13:45:58.006Z", "contributors": [ "SphinxKnight", - "wakka27", - "tregagnon", - "fkhannouf" + "edspeedy" ] }, - "Web/HTML/Element/rtc": { - "modified": "2020-10-15T21:43:35.076Z", + "Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Overflow": { + "modified": "2019-04-06T12:34:48.167Z", "contributors": [ "SphinxKnight" ] }, - "Web/HTML/Element/ruby": { - "modified": "2020-10-15T21:22:22.572Z", + "Web/CSS/CSS_Flow_Layout/Flow_Layout_and_Writing_Modes": { + "modified": "2019-04-06T12:34:40.772Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "tregagnon", - "fkhannouf" + "SphinxKnight" ] }, - "Web/HTML/Element/s": { - "modified": "2020-10-15T21:23:30.879Z", + "Web/CSS/CSS_Flow_Layout/Intro_to_formatting_contexts": { + "modified": "2019-06-19T08:53:49.103Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "louuis", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/samp": { - "modified": "2020-10-15T21:23:30.682Z", + "Web/CSS/CSS_Fonts/OpenType_fonts_guide": { + "modified": "2019-04-06T12:33:40.801Z", "contributors": [ - "SphinxKnight", - "louuis", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/script": { - "modified": "2020-10-15T21:23:07.650Z", + "Web/CSS/CSS_Fonts/Variable_Fonts_Guide": { + "modified": "2019-08-23T17:50:35.852Z", "contributors": [ - "SphinxKnight", - "madarche", - "opii93", - "tregagnon", - "Goofy" + "JNa0", + "SphinxKnight" ] }, - "Web/HTML/Element/section": { - "modified": "2020-10-15T21:20:52.155Z", + "Web/CSS/CSS_Grid_Layout/Box_Alignment_in_CSS_Grid_Layout": { + "modified": "2020-05-31T18:37:07.590Z", "contributors": [ + "fesaille", "SphinxKnight", - "marie-ototoi", - "maelito", - "tregagnon", - "nicolasrenon", - "teoli", - "SwordArMor" + "Kalwyn" ] }, - "Web/HTML/Element/select": { - "modified": "2020-10-15T21:13:44.147Z", + "Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout": { + "modified": "2020-05-31T18:37:07.771Z", "contributors": [ - "SphinxKnight", - "tolbon10", - "FanJiyong", - "jajm", - "tregagnon", - "Julien STUBY", - "teoli", - "Julien.stuby" + "SphinxKnight" ] }, - "Web/HTML/Element/slot": { - "modified": "2020-10-15T21:51:52.129Z", + "Web/CSS/CSS_Grid_Layout/Grid_Template_Areas": { + "modified": "2020-05-31T18:37:07.195Z", "contributors": [ "SphinxKnight", - "tidiview", - "JNa0" + "JivaHard" ] }, - "Web/HTML/Element/small": { - "modified": "2020-10-15T21:23:53.489Z", + "Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout": { + "modified": "2020-05-31T18:37:07.467Z", "contributors": [ "SphinxKnight", - "Tifloz", - "nicoo", - "thomas.g", - "tregagnon" + "Dev-Crea", + "Goofy", + "Halkeand", + "JeffD", + "marec", + "marie-ototoi" ] }, - "Web/HTML/Element/spacer": { - "modified": "2020-10-15T21:24:00.250Z", + "Web/CSS/CSS_Grid_Layout/CSS_Grid_Layout_and_Accessibility": { + "modified": "2020-05-31T18:37:07.017Z", "contributors": [ "SphinxKnight", - "tregagnon" + "ldvc", + "Terag" ] }, - "Web/HTML/Element/span": { - "modified": "2020-10-15T21:23:30.889Z", + "Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement": { + "modified": "2020-05-31T18:37:08.537Z", "contributors": [ "SphinxKnight", - "tregagnon" + "alexr" ] }, - "Web/HTML/Element/strike": { - "modified": "2020-10-15T21:24:10.841Z", + "Web/CSS/CSS_Grid_Layout/CSS_Grid_Logical_Values_and_Writing_Modes": { + "modified": "2020-05-31T18:37:09.641Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/strong": { - "modified": "2020-10-15T21:23:55.822Z", + "Web/CSS/CSS_Grid_Layout/Relationship_of_Grid_Layout": { + "modified": "2020-09-14T10:03:49.856Z", "contributors": [ - "SphinxKnight", - "emmanuelclement", - "tregagnon" + "devscipline", + "SphinxKnight" ] }, - "Web/HTML/Element/style": { - "modified": "2020-10-15T21:21:50.821Z", + "Web/CSS/CSS_Grid_Layout/Auto-placement_in_CSS_Grid_Layout": { + "modified": "2020-05-31T18:37:07.981Z", "contributors": [ + "lhapaipai", "SphinxKnight", - "mathisaillot", - "tregagnon", - "Goofy", - "Matouche" + "mathieuLacroix", + "alexr" ] }, - "Web/HTML/Element/sub": { - "modified": "2020-10-15T21:23:55.023Z", + "Web/CSS/CSS_Grid_Layout/Line-based_Placement_with_CSS_Grid": { + "modified": "2020-05-31T18:37:09.049Z", "contributors": [ "SphinxKnight", - "tregagnon" + "Alan_Braut" ] }, - "Web/HTML/Element/summary": { - "modified": "2020-10-15T21:20:21.472Z", + "Web/CSS/CSS_Grid_Layout/Layout_using_Named_Grid_Lines": { + "modified": "2020-05-31T18:37:08.613Z", "contributors": [ - "yannicka", - "SphinxKnight", - "Elanis", - "louuis", - "tregagnon", - "ThePrisoner" + "SphinxKnight" ] }, - "Web/HTML/Element/sup": { - "modified": "2020-10-15T21:23:23.579Z", + "Web/CSS/CSS_Images/Implementing_image_sprites_in_CSS": { + "modified": "2019-06-03T14:14:53.416Z", "contributors": [ "SphinxKnight", - "tregagnon" + "Horsell", + "JeffD", + "PifyZ" ] }, - "Web/HTML/Element/table": { - "modified": "2020-10-15T21:20:58.076Z", + "Web/CSS/CSS_Lists_and_Counters/Using_CSS_counters": { + "modified": "2019-07-27T03:11:03.371Z", "contributors": [ "SphinxKnight", - "Akyrish", - "Erwann", - "tregagnon", - "fkhannouf", - "fabien.canu@gmail.com" + "teoli", + "Delapouite", + "FredB", + "Kyodev", + "Fredchat" ] }, - "Web/HTML/Element/tbody": { - "modified": "2020-10-15T21:23:54.755Z", + "Web/CSS/CSS_Lists_and_Counters/Consistent_list_indentation": { + "modified": "2019-04-06T12:56:13.956Z", "contributors": [ "SphinxKnight", - "Brah0um", - "Twikito", - "Kerumen", - "Fredchat", - "ferncoder", - "tregagnon" + "tonybengue", + "Kyodev", + "BenoitL", + "Ferbenoit", + "Laurent Denis" ] }, - "Web/HTML/Element/td": { - "modified": "2020-10-15T21:23:58.861Z", + "Web/CSS/CSS_Lists_and_Counters": { + "modified": "2019-07-12T07:42:40.998Z", "contributors": [ "SphinxKnight", - "tregagnon", - "ethertank" + "xdelatour" ] }, - "Web/HTML/Element/template": { - "modified": "2020-10-15T21:26:28.663Z", + "Web/CSS/CSS_Logical_Properties/Basic_concepts": { + "modified": "2019-04-06T12:55:47.785Z", "contributors": [ - "SphinxKnight", - "Mr21", - "Yopadd", - "P45QU10U", - "Fredchat", - "ylerjen" + "SphinxKnight" ] }, - "Web/HTML/Element/tfoot": { - "modified": "2020-10-15T21:23:55.010Z", + "Web/CSS/CSS_Logical_Properties/Sizing": { + "modified": "2019-04-06T12:54:33.371Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/th": { - "modified": "2020-10-15T21:23:59.571Z", + "Web/CSS/CSS_Logical_Properties/Floating_and_positioning": { + "modified": "2019-06-03T14:16:43.059Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/thead": { - "modified": "2020-10-15T21:23:59.573Z", + "Web/CSS/CSS_Logical_Properties/Margins_borders_padding": { + "modified": "2019-04-06T12:55:25.631Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/time": { - "modified": "2020-10-15T21:23:13.248Z", + "Web/CSS/CSS_Masking": { + "modified": "2019-04-27T13:46:10.634Z", "contributors": [ "SphinxKnight", - "DylannCordel", - "Loliwe", - "Golmote", - "louuis", - "tregagnon" + "xdelatour" ] }, - "Web/HTML/Element/title": { - "modified": "2020-10-15T21:20:27.725Z", + "Learn/CSS/Howto/CSS_FAQ": { + "modified": "2020-07-16T22:25:44.957Z", "contributors": [ "SphinxKnight", - "ksad", - "tregagnon", - "ThePrisoner" + "PetiPandaRou", + "MatthieuHa", + "teoli", + "laurent-thuy" ] }, - "Web/HTML/Element/tr": { - "modified": "2020-10-15T21:23:58.043Z", + "Web/CSS/CSS_Scroll_Snap/Browser_compat": { + "modified": "2019-07-21T13:28:24.043Z", "contributors": [ - "SphinxKnight", - "RolandOnGitHub", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/track": { - "modified": "2020-10-15T21:23:11.969Z", + "Web/CSS/CSS_Scroll_Snap/Basic_concepts": { + "modified": "2019-06-18T19:40:17.355Z", "contributors": [ - "SphinxKnight", - "dashdashzako", - "tregagnon", - "Jeremie", - "Goofy" + "SphinxKnight" ] }, - "Web/HTML/Element/tt": { - "modified": "2020-10-15T21:24:09.875Z", + "Web/CSS/CSS_Shapes/Overview_of_CSS_Shapes": { + "modified": "2019-04-06T12:48:50.622Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/u": { - "modified": "2020-10-15T21:24:01.049Z", + "Web/CSS/CSS_Shapes/From_box_values": { + "modified": "2019-04-06T13:09:43.597Z", "contributors": [ - "SphinxKnight", - "marie-ototoi", - "ksad", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/ul": { - "modified": "2020-10-15T21:20:25.987Z", + "Web/CSS/CSS_Shapes/Basic_Shapes": { + "modified": "2019-04-06T12:49:01.114Z", "contributors": [ - "SphinxKnight", - "Bat", - "tregagnon", - "teoli", - "fabien.canu@gmail.com" + "SphinxKnight" ] }, - "Web/HTML/Element/var": { - "modified": "2020-10-15T21:23:33.057Z", + "Web/CSS/CSS_Shapes/Shapes_From_Images": { + "modified": "2019-04-06T12:48:32.877Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Element/video": { - "modified": "2020-10-15T21:14:19.475Z", + "Web/CSS/CSS_Transforms/Using_CSS_transforms": { + "modified": "2019-08-23T07:06:08.586Z", "contributors": [ + "Flaburgan", "SphinxKnight", - "supergonzales", - "Grivel-l", - "loella16", - "projer", - "Chbok", - "sami.boukortt", - "theotix", - "tregagnon", + "edspeedy", + "fscholz", "teoli", - "mekal", + "Delapouite", + "FredB", "BenoitL" ] }, - "Web/HTML/Element/wbr": { - "modified": "2020-10-15T21:23:56.480Z", + "Web/CSS/CSS_Transitions/Using_CSS_transitions": { + "modified": "2019-09-12T15:19:25.668Z", "contributors": [ "SphinxKnight", - "floustier", - "cdr", - "louuis", - "tregagnon", - "teoli", - "Omnilaika02" + "Nantosuelte", + "Louis-MarieMatthews", + "lotfire24", + "amdufour" ] }, - "Web/HTML/Element/xmp": { - "modified": "2020-10-15T21:24:08.638Z", + "Web/CSS/CSSOM_View/Coordinate_systems": { + "modified": "2019-04-06T13:17:41.411Z", "contributors": [ - "SphinxKnight", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Formats_date_heure_HTML": { - "modified": "2019-07-21T04:39:30.291Z", + "Web/CSS/Replaced_element": { + "modified": "2019-04-06T13:08:03.406Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Loliwe", + "teoli", + "Halfman", + "FredB" ] }, - "Web/HTML/Images_avec_le_contrôle_d_accès_HTTP": { - "modified": "2019-04-04T15:03:02.054Z", + "Web/CSS/Microsoft_Extensions": { + "modified": "2019-04-06T13:12:03.310Z", "contributors": [ - "SphinxKnight", - "Lotfire", - "tregagnon" + "SphinxKnight" ] }, - "Web/HTML/Index": { - "modified": "2019-01-16T18:47:13.379Z", + "Web/CSS/Mozilla_Extensions": { + "modified": "2019-04-06T13:09:25.625Z", "contributors": [ "SphinxKnight", - "tregagnon" + "Sebastianz", + "Prinz_Rana", + "Ilphrin", + "louuis", + "teoli", + "Fredchat", + "Goofy" ] }, - "Web/HTML/Introduction_to_HTML5": { - "modified": "2019-03-24T00:07:20.983Z", + "Web/CSS/Alternative_style_sheets": { + "modified": "2019-04-06T12:15:36.750Z", "contributors": [ - "Goofy", - "Bringdal", + "SphinxKnight", + "teoli", "tregagnon", - "xaky" + "BenoitL" ] }, - "Web/HTML/Microdonnées": { - "modified": "2019-07-30T02:49:00.444Z", + "Web/CSS/inheritance": { + "modified": "2019-04-06T13:06:49.569Z", "contributors": [ "SphinxKnight", - "Emmanuel.KWENE" + "teoli", + "FredB", + "Mgjbot", + "Fredchat", + "Kyodev" ] }, - "Web/HTML/Optimizing_your_pages_for_speculative_parsing": { - "modified": "2019-04-25T14:12:18.324Z", + "orphaned/Web/CSS/Index": { + "modified": "2019-04-06T13:12:11.177Z", "contributors": [ "SphinxKnight", - "loella16", - "langlchr" + "xdelatour" ] }, - "Web/HTML/Précharger_du_contenu": { - "modified": "2020-10-15T21:55:30.755Z", + "Web/CSS/CSS_Charsets": { + "modified": "2020-10-15T21:44:09.549Z", "contributors": [ - "nhoizey", "SphinxKnight", - "Goofy" + "xdelatour" ] }, - "Web/HTML/Quirks_Mode_and_Standards_Mode": { - "modified": "2019-05-21T08:04:30.230Z", + "Web/CSS/Layout_cookbook/Sticky_footers": { + "modified": "2020-10-15T22:10:28.813Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "ICBreakerLA", - "Jeremie", - "trevorh", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/HTML/Reference": { - "modified": "2019-09-09T07:17:11.858Z", + "Web/CSS/Layout_cookbook/Card": { + "modified": "2020-10-15T22:10:32.076Z", "contributors": [ - "SphinxKnight", - "wbamberg", - "ts-informatique_Grenoble" + "SphinxKnight" ] }, - "Web/HTML/Reglages_des_attributs_CORS": { - "modified": "2020-10-15T21:22:58.182Z", + "Web/CSS/Layout_cookbook/Center_an_element": { + "modified": "2020-10-15T22:10:07.676Z", "contributors": [ "SphinxKnight", - "benjaminclot", - "wakka27", - "tregagnon" + "jaouedjackson", + "mouffy" ] }, - "Web/HTML/Sections_and_Outlines_of_an_HTML5_document": { - "modified": "2020-04-07T04:00:20.055Z", + "Web/CSS/Layout_cookbook/Contribute_a_recipe/Cookbook_template": { + "modified": "2020-10-15T22:10:21.166Z", "contributors": [ - "n3wborn", - "mathildebuenerd", - "ledenis", - "JNa0", - "edspeedy", - "Pols12", - "efazenda", - "Phklrz", - "Mathieu_deLauniere", - "Havano", - "Fredchat", - "wakka27", - "jessmania", - "ferncoder", - "SphinxKnight", - "tregagnon", - "Blancdememoire", - "FredB" + "SphinxKnight" ] }, - "Web/HTML/Types_de_lien": { - "modified": "2020-10-15T21:26:15.592Z", + "Web/CSS/Layout_cookbook/Contribute_a_recipe": { + "modified": "2019-04-06T12:58:12.249Z", "contributors": [ "SphinxKnight", - "cdr", - "louuis", - "jcbita" + "chrisdavidmills" ] }, - "Web/HTML/Utilisation_d'audio_et_video_en_HTML5": { - "modified": "2019-03-24T00:01:44.822Z", + "Web/CSS/Layout_cookbook/Column_layouts": { + "modified": "2020-10-15T22:10:25.136Z", "contributors": [ - "nhoizey", - "SphinxKnight", - "emersion", - "tregagnon", - "Nigel_Sheldon", - "BenoitL", - "Nukeador" + "SphinxKnight" ] }, - "Web/HTML/Utiliser_Application_Cache": { - "modified": "2020-10-15T21:07:42.579Z", + "Web/CSS/Layout_cookbook/List_group_with_badges": { + "modified": "2020-10-15T22:10:18.617Z", "contributors": [ - "Qouagga", - "SphinxKnight", - "Surfoo", - "personnel", - "cdromain", - "Gillespie59", - "Tioneb", - "bvauchelle", - "teoli", - "michaelch", - "rd6137", - "whoshallsucceed" + "SphinxKnight" + ] + }, + "Web/CSS/Layout_cookbook/Breadcrumb_Navigation": { + "modified": "2020-10-15T22:10:26.639Z", + "contributors": [ + "SphinxKnight" ] }, - "Web/HTML/Utiliser_DASH_avec_les_vidéos_en_HTML": { - "modified": "2020-02-21T13:42:34.237Z", + "Web/CSS/Layout_cookbook/Split_Navigation": { + "modified": "2020-10-15T22:10:27.669Z", "contributors": [ - "Sroucheray", - "SphinxKnight", - "Spharian", - "nicoo" + "SphinxKnight" ] }, - "Web/HTML/microformats": { - "modified": "2019-07-21T06:21:36.960Z", + "Web/CSS/List_of_Proprietary_CSS_Features": { + "modified": "2019-04-06T13:18:27.677Z", "contributors": [ "SphinxKnight", - "marie-ototoi" + "xdelatour" ] }, - "Web/HTML/Éléments_en_bloc": { - "modified": "2019-06-18T12:22:20.386Z", + "Web/CSS/CSS_animated_properties": { + "modified": "2019-04-06T12:15:29.279Z", "contributors": [ "SphinxKnight", - "KhalilSnaake", - "Bat41", - "wakka27" + "Sebastianz", + "teoli", + "tregagnon" ] }, - "Web/HTML/Éléments_en_ligne": { - "modified": "2019-04-06T13:04:18.081Z", + "Web/CSS/Paged_Media": { + "modified": "2019-04-06T13:19:25.688Z", "contributors": [ "SphinxKnight", - "KhalilSnaake", - "numahell", - "wakka27" + "xdelatour" ] }, - "Web/HTTP": { - "modified": "2019-03-24T19:16:00.917Z", + "Web/CSS/Layout_mode": { + "modified": "2019-04-06T13:12:21.356Z", "contributors": [ - "louisgrasset", - "nolanrigo", "SphinxKnight", - "Alpha", - "amouillard", - "Hell_Carlito", - "eagleusb", - "dattaz", - "jswisher" + "teoli", + "FredB" ] }, - "Web/HTTP/Aperçu": { - "modified": "2020-12-01T09:26:27.617Z", + "Web/CSS/CSS_Box_Model/Mastering_margin_collapsing": { + "modified": "2019-07-21T06:30:38.788Z", "contributors": [ - "Louis-Aime", - "nolanrigo", "SphinxKnight", - "Alpha", - "marie-ototoi", - "Hell_Carlito", - "dattaz" + "gcyrillus", + "fscholz", + "teoli", + "FredB", + "Elethiomel", + "Worms", + "Fredchat", + "Kyodev" ] }, - "Web/HTTP/Authentication": { - "modified": "2019-03-18T21:33:04.626Z", + "Web/CSS/CSS_Background_and_Borders/Box-shadow_generator": { + "modified": "2019-03-18T20:43:43.479Z", "contributors": [ - "marcpicaud" + "BychekRU", + "SphinxKnight", + "kiux" ] }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2019-03-23T22:24:52.804Z", + "Web/CSS/CSS_Box_Model": { + "modified": "2019-04-06T12:12:44.675Z", "contributors": [ "SphinxKnight", - "Alpha", - "ftoulouse", - "cissoid" + "teoli" ] }, - "Web/HTTP/Basics_of_HTTP/Choisir_entre_les_URLs_www_sans_www": { - "modified": "2019-03-18T21:44:23.409Z", + "Web/CSS/Visual_formatting_model": { + "modified": "2020-09-14T06:31:27.412Z", "contributors": [ - "SphinxKnight", - "Alpha", - "unpeudetout" + "devscipline", + "echayotte", + "SphinxKnight" ] }, - "Web/HTTP/Basics_of_HTTP/Data_URIs": { - "modified": "2020-10-15T21:59:04.672Z", + "Web/CSS/CSS_Motion_Path": { + "modified": "2020-10-15T21:47:42.306Z", "contributors": [ - "SphinxKnight", - "Alpha", - "chanaysavoyen" + "SphinxKnight" ] }, - "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { - "modified": "2020-01-18T14:19:52.795Z", + "Web/CSS/Tools/Cubic_Bezier_Generator": { + "modified": "2019-04-06T13:46:55.571Z", "contributors": [ - "Yovach", - "AntoineJT", - "SphinxKnight", - "Alpha", - "interfacteur", - "Tiplouf" + "SphinxKnight" ] }, - "Web/HTTP/Basics_of_HTTP/Identifier_des_ressources_sur_le_Web": { - "modified": "2019-03-18T21:41:54.222Z", + "Web/CSS/Tools/Linear-gradient_Generator": { + "modified": "2019-04-06T13:48:01.466Z", "contributors": [ - "SphinxKnight", - "Alpha" + "SphinxKnight" ] }, - "Web/HTTP/Basics_of_HTTP/MIME_types": { - "modified": "2020-01-02T06:41:24.716Z", + "Web/CSS/Tools": { + "modified": "2019-04-06T13:47:45.843Z", "contributors": [ - "guillaumegarcia13", "SphinxKnight", - "Alpha", - "strattadb" + "velvel53" ] }, - "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": { - "modified": "2020-05-29T10:51:11.998Z", + "Web/CSS/overflow-anchor/Guide_to_scroll_anchoring": { + "modified": "2020-10-15T22:17:58.241Z", "contributors": [ - "khalyomede", - "chrisdavidmills", - "smalesys", - "ptbrowne", - "kabanon", - "SphinxKnight", - "Alpha", - "NathanB" + "SphinxKnight" ] }, - "Web/HTTP/Basics_of_HTTP/URLs_de_type_ressource": { - "modified": "2019-03-18T21:40:41.905Z", + "Web/CSS/Shorthand_properties": { + "modified": "2020-07-28T11:04:21.446Z", "contributors": [ + "Yevgeniy.Shumakov", "SphinxKnight", - "Alpha" + "Banban", + "teoli", + "FredB" ] }, - "Web/HTTP/CORS": { - "modified": "2020-10-15T21:24:42.448Z", + "Web/CSS/Pseudo-elements": { + "modified": "2019-11-12T05:40:37.053Z", "contributors": [ - "gpartenet", - "caro3801", - "robin850", - "gloucklegnou", - "p_amok", + "Totokoutonio", "SphinxKnight", - "correction2", - "parmentf", - "scips", - "damiencaselli", - "gierschv", - "ebear", - "Ltrlg", - "dattaz", - "nlaug", - "cguillemette", - "Zzortell", - "fmasy", - "patboens" + "teoli", + "wakka27", + "Delapouite", + "FredB", + "tregagnon" ] }, - "Web/HTTP/CORS/Errors": { - "modified": "2020-08-30T07:40:45.129Z", + "Web/CSS/Scaling_of_SVG_backgrounds": { + "modified": "2020-06-14T04:32:11.030Z", "contributors": [ - "Voulto", - "AdminXVII", - "Maxim10", - "nchevobbe" + "yanns1", + "SphinxKnight" ] }, - "Web/HTTP/CORS/Errors/CORSAllowOriginManquant": { - "modified": "2020-06-10T11:05:53.160Z", + "Web/CSS/At-rule": { + "modified": "2019-04-06T12:15:09.052Z", "contributors": [ - "jcletousey", - "efreja", - "TheWildHealer" + "SphinxKnight", + "LudoL", + "loella16", + "brikou", + "vvvaleee", + "Chealer", + "teoli", + "naar", + "FredB" ] }, - "Web/HTTP/CORS/Errors/CORSAllowOriginNeCorrespondPas": { - "modified": "2020-09-04T07:20:46.938Z", + "Web/CSS/Media_Queries": { + "modified": "2019-06-03T14:19:49.928Z", "contributors": [ - "sevarg" + "SphinxKnight", + "zakaila" ] }, - "Web/HTTP/CORS/Errors/CORSDesactive": { - "modified": "2019-03-18T21:23:02.654Z", + "Web/CSS/Media_Queries/Testing_media_queries": { + "modified": "2020-10-15T21:48:31.789Z", "contributors": [ - "SphinxKnight", - "ViveLesFrites" + "SphinxKnight" ] }, - "Web/HTTP/CORS/Errors/CORSNAPasRéussi": { - "modified": "2019-05-08T11:52:53.417Z", + "Web/CSS/Media_Queries/Using_Media_Queries_for_Accessibility": { + "modified": "2019-04-06T13:18:57.827Z", "contributors": [ - "audricschiltknecht", - "hellosct1", - "NicolasGraph", - "Triple_B" + "SphinxKnight" ] }, - "Web/HTTP/CORS/Errors/CORSRequestNotHttp": { - "modified": "2020-09-23T06:10:15.688Z", + "Web/CSS/Media_Queries/Using_media_queries": { + "modified": "2020-09-12T11:51:58.821Z", "contributors": [ - "ssgl", - "Maxim10" + "kgrandemange", + "tzilliox", + "SphinxKnight", + "JNa0", + "JeffD", + "Sebastianz", + "mrstork", + "malayaleecoder", + "adevoufera", + "teoli", + "wakka27", + "infogenious", + "tregagnon", + "FredB", + "BenoitL" ] }, - "Web/HTTP/CSP": { - "modified": "2020-10-15T21:53:12.526Z", + "Web/XPath/Comparison_with_CSS_selectors": { + "modified": "2019-03-18T21:23:27.990Z", "contributors": [ - "SphinxKnight", - "lhapaipai", - "valimero", - "AntoineGrandchamp", - "David-5-1" + "SphinxKnight" ] }, - "Web/HTTP/Cache": { - "modified": "2019-07-11T20:27:10.018Z", + "Web/CSS/CSS_Selectors": { + "modified": "2019-10-31T07:53:06.500Z", "contributors": [ - "ThCarrere", - "dragon38800", - "Watilin", + "bdrnglm", "SphinxKnight", - "blety" + "a-mt", + "cabscorp", + "edspeedy", + "TiWisti", + "daisyback", + "personnel", + "Sebastianz" ] }, - "Web/HTTP/Compression": { - "modified": "2020-10-29T12:16:50.940Z", + "Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors": { + "modified": "2019-04-06T13:14:05.671Z", "contributors": [ - "JNa0", - "lyrixx", "SphinxKnight", - "Alpha" + "ffoodd" ] }, - "Web/HTTP/Content_negotiation": { - "modified": "2019-08-20T15:39:14.536Z", + "Web/CSS/Attribute_selectors": { + "modified": "2020-10-15T21:04:28.909Z", "contributors": [ - "bbonnin" + "SphinxKnight", + "BenMorel", + "fuentesloic", + "teoli", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Cookies": { - "modified": "2020-02-26T11:00:52.742Z", + "Web/CSS/ID_selectors": { + "modified": "2020-10-15T21:04:23.373Z", "contributors": [ - "michivi", - "ThCarrere", - "guillaumebouhier", - "bodingar", - "gpartenet", - "antoineneff", - "a-mt", "SphinxKnight", - "antoineroux", - "tomcodes" + "teoli", + "louuis", + "FredB", + "tregagnon" ] }, - "Web/HTTP/Detection_du_navigateur_en_utilisant_le_user_agent": { - "modified": "2019-03-23T23:13:53.553Z", + "Web/CSS/Class_selectors": { + "modified": "2020-10-15T21:04:22.803Z", "contributors": [ "SphinxKnight", - "Alpha", - "macmorning", - "lmahistre", - "KevinLACIRE" + "teoli", + "goofy_bz", + "FredB" ] }, - "Web/HTTP/FAQ_sur_le_préchargement_des_liens": { - "modified": "2019-03-23T23:46:22.581Z", + "Web/CSS/Type_selectors": { + "modified": "2020-10-15T21:04:24.242Z", "contributors": [ "SphinxKnight", - "Goofy", - "cdromain", - "jigs12", - "wakka27", - "BenoitL", - "Fredchat", - "Kyodev", - "Bellerophon" + "teoli", + "FredB" ] }, - "Web/HTTP/Feature_Policy": { - "modified": "2020-11-02T18:21:06.120Z", + "Web/CSS/General_sibling_combinator": { + "modified": "2020-10-15T21:04:26.332Z", "contributors": [ - "JNa0" + "BrnvrlUoeey", + "SphinxKnight", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers": { - "modified": "2020-11-11T18:57:53.286Z", + "Web/CSS/Descendant_combinator": { + "modified": "2020-10-15T21:04:29.156Z", "contributors": [ - "JNa0", "SphinxKnight", - "Alpha", - "loella16", - "shadok", - "vbardales" + "eloi-duwer", + "yannicka", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers/Accept": { - "modified": "2020-10-15T21:56:10.549Z", + "Web/CSS/Child_combinator": { + "modified": "2020-10-15T21:04:28.522Z", "contributors": [ "SphinxKnight", - "ji-sser", - "gmebarthe" + "teoli", + "FredB", + "tregagnon" ] }, - "Web/HTTP/Headers/Accept-Charset": { - "modified": "2020-10-15T22:15:05.344Z", + "Web/CSS/Universal_selectors": { + "modified": "2020-10-15T21:04:25.083Z", "contributors": [ - "dragon38800" + "SphinxKnight", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers/Accept-Encoding": { - "modified": "2020-10-15T21:51:43.001Z", + "Web/CSS/Value_definition_syntax": { + "modified": "2019-04-06T13:47:19.541Z", "contributors": [ - "martinec", "SphinxKnight", - "guillaumefenollar", - "Athorcis", - "PlayeurZero" + "Sebastianz", + "Prinz_Rana", + "Guillaume-Heras", + "prayash", + "pixoux", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers/Accept-Language": { - "modified": "2020-10-15T21:55:18.930Z", + "Web/CSS/color_value": { + "modified": "2020-10-15T21:15:21.928Z", "contributors": [ "SphinxKnight", - "alexlur", - "NemoNobobyPersonne", - "tuili" + "benoitdubuc", + "cdoublev", + "Simplexible", + "fscholz", + "teoli", + "louuis", + "FredB", + "BenoitL" ] }, - "Web/HTTP/Headers/Access-Control-Allow-Methods": { - "modified": "2020-10-15T22:15:56.084Z", + "Web/CSS/position_value": { + "modified": "2020-10-15T21:46:27.417Z", "contributors": [ - "GabrielHautclocq" + "SphinxKnight" ] }, - "Web/HTTP/Headers/Access-Control-Allow-Origin": { - "modified": "2020-10-15T21:56:38.218Z", + "Web/CSS/CSS_Types": { + "modified": "2019-07-12T07:45:36.764Z", "contributors": [ - "superhoang", - "Derek", - "ekamil", - "SphinxKnight", - "loganblangenois" + "SphinxKnight" ] }, - "Web/HTTP/Headers/Access-Control-Request-Headers": { - "modified": "2020-10-15T21:53:12.034Z", + "Web/CSS/CSS_Images/Using_CSS_gradients": { + "modified": "2019-09-12T16:42:50.201Z", "contributors": [ "SphinxKnight", - "Yves_ASTIER" + "Darkilen", + "3dos", + "wizAmit", + "slayslot", + "teoli", + "wakka27", + "FredB", + "julienw", + "floEdelmann", + "BenoitL" ] }, - "Web/HTTP/Headers/Age": { - "modified": "2020-10-15T22:02:48.318Z", + "Web/CSS/computed_value": { + "modified": "2019-07-12T07:46:01.465Z", "contributors": [ "SphinxKnight", - "Gildwolf" + "NemoNobobyPersonne", + "teoli", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/HTTP/Headers/Allow": { - "modified": "2019-03-18T20:37:27.890Z", + "Web/CSS/initial_value": { + "modified": "2019-04-06T13:12:40.534Z", "contributors": [ - "GabrielHautclocq" + "SphinxKnight", + "teoli", + "louuis", + "FredB", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/HTTP/Headers/Authorization": { - "modified": "2020-04-21T21:30:05.105Z", + "Web/CSS/actual_value": { + "modified": "2019-04-06T12:16:17.195Z", "contributors": [ - "jalik", "SphinxKnight", - "aboufeta" + "louuis", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers/Cache-Control": { - "modified": "2020-10-15T21:53:16.283Z", + "Web/CSS/resolved_value": { + "modified": "2019-04-06T13:07:44.816Z", "contributors": [ - "darahak", - "hellosct1", "SphinxKnight", - "LeoColomb", - "arthurwhite", - "David-5-1" + "xdelatour" ] }, - "Web/HTTP/Headers/Connection": { - "modified": "2020-10-15T22:22:48.365Z", + "Web/CSS/specified_value": { + "modified": "2019-07-12T07:46:53.914Z", "contributors": [ "SphinxKnight", - "rm3121", - "jedepaepe" + "teoli", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Content-Disposition": { - "modified": "2020-10-15T21:53:43.308Z", + "Web/CSS/used_value": { + "modified": "2019-07-12T07:47:30.131Z", "contributors": [ - "xavieralt", - "A-312", - "ntoniazzi", - "PropreCity", "SphinxKnight", - "califat" + "Golga", + "vava", + "teoli", + "FredB" ] }, - "Web/HTTP/Headers/Content-Encoding": { - "modified": "2020-10-15T22:30:11.583Z", + "Web/CSS/CSS_Values_and_Units": { + "modified": "2019-04-06T13:14:19.030Z", "contributors": [ - "SphinxKnight", - "yohannlog" + "SphinxKnight" ] }, - "Web/HTTP/Headers/Content-Language": { - "modified": "2020-11-13T06:29:58.431Z", + "Web/Demos_of_open_web_technologies": { + "modified": "2019-03-18T20:44:11.081Z", "contributors": [ - "Rigaudie", - "PropreCity" + "goofy_mdn", + "xavierjs", + "qwincy_p" ] }, - "Web/HTTP/Headers/Content-Length": { - "modified": "2020-10-15T21:53:18.388Z", + "Web/API/XMLHttpRequest/abort_event": { + "modified": "2019-03-23T22:24:38.520Z", "contributors": [ - "SphinxKnight", - "David-5-1" + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy": { - "modified": "2020-10-29T21:03:19.803Z", + "Web/API/Window/afterprint_event": { + "modified": "2019-03-23T22:24:13.216Z", "contributors": [ - "JNa0", - "bershanskiy", - "Oliboy50", - "SphinxKnight", - "loella16" + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy-Report-Only": { - "modified": "2020-10-29T21:31:20.453Z", + "Web/API/HTMLElement/animationend_event": { + "modified": "2019-03-23T22:24:25.318Z", "contributors": [ - "JNa0" + "edspeedy", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/base-uri": { - "modified": "2020-10-29T13:38:32.493Z", + "Web/API/HTMLElement/animationiteration_event": { + "modified": "2019-03-23T22:24:12.393Z", "contributors": [ - "JNa0" + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/block-all-mixed-content": { - "modified": "2020-10-29T12:54:23.475Z", + "Web/API/HTMLElement/animationstart_event": { + "modified": "2019-03-23T22:24:27.835Z", "contributors": [ - "JNa0", - "borisschapira" + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/child-src": { - "modified": "2020-10-29T09:57:45.781Z", + "Web/API/ScriptProcessorNode/audioprocess_event": { + "modified": "2019-03-18T21:01:00.247Z", "contributors": [ - "JNa0" + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/connect-src": { - "modified": "2020-10-29T09:55:55.458Z", + "Web/API/Window/beforeprint_event": { + "modified": "2020-11-25T15:13:28.637Z", "contributors": [ - "JNa0" + "Wixonic", + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/default-src": { - "modified": "2020-10-29T16:25:12.176Z", + "Web/API/Window/beforeunload_event": { + "modified": "2020-01-22T07:04:02.410Z", + "contributors": [ + "julienc", + "wbamberg", + "Pierre.Fauconnier", + "Kalwyn" + ] + }, + "Web/API/OfflineAudioContext/complete_event": { + "modified": "2019-03-18T21:01:07.959Z", "contributors": [ - "JNa0" + "fscholz", + "David_B", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/font-src": { - "modified": "2020-10-29T09:55:38.668Z", + "Web/API/Element/compositionend_event": { + "modified": "2020-10-15T21:50:42.611Z", "contributors": [ - "JNa0" + "tbetous", + "wbamberg", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/form-action": { - "modified": "2020-10-29T20:27:48.387Z", + "Web/API/Element/compositionstart_event": { + "modified": "2019-04-30T13:48:11.171Z", "contributors": [ - "JNa0" + "wbamberg", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/frame-ancestors": { - "modified": "2020-10-29T16:35:08.171Z", + "Web/API/Element/compositionupdate_event": { + "modified": "2019-04-30T13:48:17.939Z", "contributors": [ - "JNa0" + "wbamberg", + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/frame-src": { - "modified": "2020-10-29T09:55:09.630Z", + "Web/API/Element/copy_event": { + "modified": "2019-03-23T22:22:48.922Z", "contributors": [ - "JNa0" + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/img-src": { - "modified": "2020-10-29T09:54:24.946Z", + "Web/API/Window/DOMContentLoaded_event": { + "modified": "2020-10-15T21:40:06.593Z", "contributors": [ - "JNa0" + "Watilin", + "fscholz", + "zede-master", + "Gastonite", + "Shinze", + "jmh" ] }, - "Web/HTTP/Headers/Content-Security-Policy/manifest-src": { - "modified": "2020-10-29T12:42:47.792Z", + "Web/API/Element/error_event": { + "modified": "2019-03-23T22:21:21.432Z", "contributors": [ - "JNa0" + "fscholz", + "loella16", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/media-src": { - "modified": "2020-10-29T09:53:30.177Z", + "Web/API/Element/focusin_event": { + "modified": "2019-03-23T22:20:35.765Z", "contributors": [ - "JNa0" + "fscholz", + "Kalwyn" ] }, - "Web/HTTP/Headers/Content-Security-Policy/navigate-to": { - "modified": "2020-11-05T08:46:21.988Z", + "Web/API/Element/focusout_event": { + "modified": "2019-03-23T22:22:45.276Z", "contributors": [ - "JNa0" + "fscholz", + "Kalwyn", + "Behrouze" ] }, - "Web/HTTP/Headers/Content-Security-Policy/object-src": { - "modified": "2020-10-29T12:50:10.529Z", + "Web/API/Window/load_event": { + "modified": "2019-03-18T20:54:13.374Z", "contributors": [ - "JNa0" + "fscholz", + "Watilin", + "SphinxKnight", + "SaShimy", + "ebear", + "jmh" ] }, - "Web/HTTP/Headers/Content-Security-Policy/plugin-types": { - "modified": "2020-10-29T15:18:48.722Z", + "Web/API/Window/pagehide_event": { + "modified": "2019-03-18T21:31:42.222Z", "contributors": [ - "JNa0" + "Watilin" ] }, - "Web/HTTP/Headers/Content-Security-Policy/prefetch-src": { - "modified": "2020-11-05T16:09:39.274Z", + "Web/API/Window/pageshow_event": { + "modified": "2019-03-23T22:44:21.347Z", "contributors": [ - "JNa0" + "Watilin", + "fscholz", + "jmh" ] }, - "Web/HTTP/Headers/Content-Security-Policy/referrer": { - "modified": "2020-10-29T16:54:20.565Z", + "Web/API/Document/readystatechange_event": { + "modified": "2019-03-23T22:44:19.958Z", "contributors": [ - "JNa0" + "fscholz", + "cedeber", + "jmh" ] }, - "Web/HTTP/Headers/Content-Security-Policy/report-to": { - "modified": "2020-10-29T20:39:05.871Z", + "Web/API/HTMLElement/transitionend_event": { + "modified": "2020-10-15T21:58:39.030Z", "contributors": [ - "JNa0" + "Voulto", + "fscholz", + "dominiquevilain" ] }, - "Web/HTTP/Headers/Content-Security-Policy/report-uri": { - "modified": "2020-10-29T20:45:38.126Z", + "Web/API/Window/unload_event": { + "modified": "2019-04-30T14:26:18.615Z", "contributors": [ - "JNa0" + "wbamberg", + "CptGerV", + "florent.vaucelle" ] }, - "Web/HTTP/Headers/Content-Security-Policy/require-sri-for": { - "modified": "2020-10-29T16:42:06.606Z", + "Web/Guide/AJAX/Community": { + "modified": "2019-01-16T16:10:44.992Z", "contributors": [ - "JNa0" + "chrisdavidmills", + "Fredchat", + "Mgjbot", + "VincentN", + "Chbok" ] }, - "Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for": { - "modified": "2020-10-29T16:19:21.052Z", + "Web/Guide/AJAX/Getting_Started": { + "modified": "2020-05-07T07:49:40.639Z", "contributors": [ - "JNa0" + "grandoc", + "VictorLequin", + "Watilin", + "GregMorel", + "CyrilKrylatov", + "chrisdavidmills", + "Jibec", + "P_MO", + "arena", + "Mgjbot", + "Fredchat", + "Rbories", + "BenoitL", + "Cbi1net", + "Rodolphe", + "Chbok", + "VincentN", + "Taken", + "Oumar", + "Diskostu" ] }, - "Web/HTTP/Headers/Content-Security-Policy/sandbox": { - "modified": "2020-10-29T20:06:19.233Z", + "Web/API/Gamepad_API/Using_the_Gamepad_API": { + "modified": "2019-03-23T23:08:49.794Z", "contributors": [ - "JNa0" + "matteodelabre", + "Goofy", + "jessmania" ] }, - "Web/HTTP/Headers/Content-Security-Policy/script-src": { - "modified": "2020-10-29T12:43:56.366Z", + "Web/API/WebRTC_API/Connectivity": { + "modified": "2019-03-23T23:07:50.082Z", "contributors": [ - "JNa0" + "Goofy", + "wordsbybird" ] }, - "Web/HTTP/Headers/Content-Security-Policy/script-src-attr": { - "modified": "2020-10-29T12:35:52.897Z", + "Web/Guide/Events/Creating_and_triggering_events": { + "modified": "2020-10-15T21:40:07.710Z", "contributors": [ - "JNa0" + "tristantheb", + "loella16", + "csblo", + "yasakura_", + "jmh" ] }, - "Web/HTTP/Headers/Content-Security-Policy/script-src-elem": { - "modified": "2020-10-29T12:34:59.878Z", + "Web/Guide/Events/Media_events": { + "modified": "2019-03-23T22:20:46.809Z", "contributors": [ - "JNa0" + "Hell_Carlito", + "jucrouzet" ] }, - "Web/HTTP/Headers/Content-Security-Policy/style-src": { - "modified": "2020-10-29T09:46:24.734Z", + "Web/Guide/Events": { + "modified": "2020-08-30T07:20:46.985Z", "contributors": [ - "JNa0" + "Voulto", + "Sheppy" ] }, - "Web/HTTP/Headers/Content-Security-Policy/style-src-attr": { - "modified": "2020-10-29T12:25:30.302Z", + "Web/Guide/Events/Orientation_and_motion_data_explained": { + "modified": "2019-03-18T21:41:00.371Z", "contributors": [ - "JNa0" + "loella16" ] }, - "Web/HTTP/Headers/Content-Security-Policy/style-src-elem": { - "modified": "2020-10-29T12:25:15.261Z", + "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": { + "modified": "2019-03-18T21:33:21.001Z", "contributors": [ - "JNa0" + "CharlotteW" ] }, - "Web/HTTP/Headers/Content-Security-Policy/trusted-types": { - "modified": "2020-10-29T16:00:54.309Z", + "Web/API/Touch_events": { + "modified": "2020-10-15T21:23:44.732Z", "contributors": [ - "JNa0" + "ebear", + "wbamberg", + "quentin.lamamy", + "nmonceyron", + "Goofy", + "SphinxKnight" ] }, - "Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests": { - "modified": "2020-10-29T13:15:02.277Z", + "Web/API/History_API/Example": { + "modified": "2019-03-23T23:32:28.258Z", "contributors": [ - "JNa0" + "tregagnon", + "matteodelabre" ] }, - "Web/HTTP/Headers/Content-Security-Policy/worker-src": { - "modified": "2020-10-29T09:42:30.203Z", + "Web/API/History_API": { + "modified": "2019-03-23T23:36:51.472Z", "contributors": [ - "JNa0" + "Watilin", + "Outlivier", + "loella16", + "JoJoMimosa", + "zessx", + "tregagnon", + "CapFlow", + "Beaver", + "pparidans" ] }, - "Web/HTTP/Headers/Content-Type": { - "modified": "2020-10-15T21:53:18.899Z", + "Web/API/Fullscreen_API": { + "modified": "2019-03-23T23:28:29.789Z", "contributors": [ - "SphinxKnight", - "Goofy" + "wbamberg", + "loella16", + "Gaelliss", + "kiux", + "warpdesign", + "Rudloff" ] }, - "Web/HTTP/Headers/DNT": { - "modified": "2020-10-15T22:00:03.018Z", + "Learn/HTML/Howto/Author_fast-loading_HTML_pages": { + "modified": "2020-07-16T22:22:32.522Z", "contributors": [ - "SphinxKnight", - "egavard" + "tbazin", + "rfc791", + "tregagnon", + "ethertank", + "rgkdev", + "shgz", + "Shz" ] }, - "Web/HTTP/Headers/Date": { - "modified": "2020-10-15T22:07:34.830Z", + "Web/Guide/HTML/Content_categories": { + "modified": "2020-03-31T11:01:50.986Z", "contributors": [ - "Machou" + "tristantheb", + "SphinxKnight", + "loella16", + "marie-ototoi", + "tregagnon", + "xaky" ] }, - "Web/HTTP/Headers/ETag": { - "modified": "2020-10-15T22:03:25.682Z", + "Learn/Forms/Advanced_form_styling": { + "modified": "2020-07-16T22:21:34.205Z", "contributors": [ - "SphinxKnight", - "NemoNobobyPersonne" + "Dralyab" ] }, - "Web/HTTP/Headers/Expires": { - "modified": "2020-10-15T21:57:22.458Z", + "Learn/Forms/Styling_web_forms": { + "modified": "2020-07-16T22:21:30.990Z", "contributors": [ - "l-vo", - "SphinxKnight", - "GuiBret" + "Dralyab", + "Goofy", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Feature-Policy": { - "modified": "2020-11-11T14:08:38.730Z", + "Learn/Forms/How_to_build_custom_form_controls/Example_3": { + "modified": "2020-07-16T22:21:59.707Z", "contributors": [ - "JNa0" + "Dralyab" ] }, - "Web/HTTP/Headers/Feature-Policy/accelerometer": { - "modified": "2020-11-16T09:05:43.541Z", + "Learn/Forms/How_to_build_custom_form_controls/Example_4": { + "modified": "2020-07-16T22:22:00.018Z", "contributors": [ - "JNa0" + "Dralyab" ] }, - "Web/HTTP/Headers/Host": { - "modified": "2020-10-15T21:58:12.642Z", + "Learn/Forms/How_to_build_custom_form_controls/Example_5": { + "modified": "2020-07-16T22:22:00.342Z", "contributors": [ - "SphinxKnight", - "ji-sser", - "alpyr" + "Dralyab" ] }, - "Web/HTTP/Headers/If-Modified-Since": { - "modified": "2020-10-15T21:59:18.518Z", + "Learn/Forms/How_to_build_custom_form_controls/Example_1": { + "modified": "2020-07-16T22:21:58.979Z", "contributors": [ - "SphinxKnight", - "ericlemerdy" + "Dralyab" ] }, - "Web/HTTP/Headers/If-None-Match": { - "modified": "2020-10-15T21:59:26.960Z", + "Learn/Forms/How_to_build_custom_form_controls/Example_2": { + "modified": "2020-07-16T22:21:59.361Z", "contributors": [ - "SphinxKnight", - "ekougs" + "Dralyab" ] }, - "Web/HTTP/Headers/Last-Modified": { - "modified": "2020-10-15T21:58:33.304Z", + "Learn/Forms/How_to_build_custom_form_controls": { + "modified": "2020-07-16T22:21:55.892Z", "contributors": [ - "lyrixx", - "SphinxKnight", - "NemoNobobyPersonne" + "Dralyab" ] }, - "Web/HTTP/Headers/Location": { - "modified": "2020-10-15T22:30:32.588Z", + "Learn/Forms/How_to_structure_a_web_form/Example": { + "modified": "2020-07-16T22:21:17.064Z", "contributors": [ - "romch007" + "Dralyab", + "elseydi", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Origin": { - "modified": "2020-10-15T22:04:41.950Z", + "Learn/Forms/How_to_structure_a_web_form": { + "modified": "2020-07-16T22:21:11.591Z", "contributors": [ - "Watilin" + "Dralyab", + "Lotfire", + "efazenda", + "Sheppy", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Referer": { - "modified": "2020-10-15T21:59:09.222Z", + "Learn/Forms/Sending_and_retrieving_form_data": { + "modified": "2020-07-16T22:21:26.847Z", "contributors": [ - "SphinxKnight", - "rmonnier" + "Dralyab", + "ChristianR25", + "Bam92", + "ben391", + "Thorium90", + "teoli", + "rebeccachaix" ] }, - "Web/HTTP/Headers/Referrer-Policy": { - "modified": "2020-11-03T04:53:54.794Z", + "Learn/Forms/HTML_forms_in_legacy_browsers": { + "modified": "2020-07-16T22:22:03.313Z", "contributors": [ - "JNa0" + "Dralyab", + "eli.g" ] }, - "Web/HTTP/Headers/Serveur": { - "modified": "2020-10-15T22:01:27.985Z", + "Learn/Forms": { + "modified": "2020-07-16T22:20:56.659Z", "contributors": [ + "BAHLOUL_Farouk", + "Dralyab", + "klenzo", + "Porkepix", + "Orkrum", + "diomabb", "SphinxKnight", - "codingk8", - "WanFoxOne" + "Goofy", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Set-Cookie": { - "modified": "2020-10-15T22:30:32.422Z", + "Learn/Forms/Basic_native_form_controls": { + "modified": "2020-12-12T09:57:29.663Z", "contributors": [ - "WolfVic", - "Voulto", - "Arzak656", - "claudepache" + "Idlus", + "Rififia", + "Dralyab", + "efazenda", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Set-Cookie/SameSite": { - "modified": "2020-10-15T22:30:31.847Z", + "Learn/Forms/Your_first_form/Example": { + "modified": "2020-07-16T22:21:08.230Z", "contributors": [ - "SphinxKnight", - "Pierstoval" + "Dralyab", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Headers/Tk": { - "modified": "2020-10-15T22:34:21.355Z", + "Learn/Forms/Your_first_form": { + "modified": "2020-11-20T03:07:01.051Z", "contributors": [ - "alexetgus" + "SphinxKnight", + "tiluc", + "BAHLOUL_Farouk", + "mikeleyeti", + "Dralyab", + "DineshMv", + "teoli", + "Sheppy", + "jean-pierre.gay", + "Goofy", + "ChaaSof", + "FredB", + "Mozinet", + "tregagnon" ] }, - "Web/HTTP/Headers/Trailer": { - "modified": "2020-10-15T21:51:11.752Z", + "Learn/Forms/Property_compatibility_table_for_form_controls": { + "modified": "2020-07-16T22:21:39.980Z", "contributors": [ - "SphinxKnight", - "PlayeurZero" + "Dralyab" ] }, - "Web/HTTP/Headers/Vary": { - "modified": "2020-10-15T22:00:47.806Z", + "Learn/Forms/Sending_forms_through_JavaScript": { + "modified": "2020-07-16T22:22:01.597Z", "contributors": [ - "Laurent_Lyaudet", - "gloucklegnou", - "SphinxKnight", - "mrudelle" + "Dralyab" ] }, - "Web/HTTP/Headers/WWW-Authenticate": { - "modified": "2019-03-18T20:52:28.323Z", + "Learn/Forms/Form_validation": { + "modified": "2020-07-16T22:21:50.526Z", "contributors": [ - "PamProg", - "Synkied", + "ariasuni", + "Dralyab", "SphinxKnight", - "yereby" + "HereComesJuju" ] }, - "Web/HTTP/Headers/X-Content-Type-Options": { - "modified": "2020-10-15T22:20:53.756Z", + "Web/HTML/Applying_color": { + "modified": "2019-05-09T08:27:28.339Z", "contributors": [ - "tchioubak", - "LaChips", - "ClementWebDesigner" + "SphinxKnight" ] }, - "Web/HTTP/Headers/X-Frame-Options": { - "modified": "2020-10-15T21:56:45.798Z", + "Web/HTML/Global_attributes/accesskey": { + "modified": "2020-10-15T21:33:33.820Z", "contributors": [ - "DeusExNihilo", "SphinxKnight", - "rdavaillaud", - "tran-simon", - "Selbahc", - "emassip", - "PropreCity", - "petitj", - "callmemagnus", - "aymericsorek", - "mmahouachi" + "Goofy", + "guillaumev" ] }, - "Web/HTTP/Index": { - "modified": "2019-03-23T22:26:53.499Z", + "Web/HTML/Global_attributes/autocapitalize": { + "modified": "2020-10-15T22:02:11.899Z", "contributors": [ - "tonybengue", - "SphinxKnight", - "xdelatour" + "SphinxKnight" ] }, - "Web/HTTP/Méthode": { - "modified": "2020-10-15T21:52:12.802Z", + "Web/HTML/Global_attributes/class": { + "modified": "2020-10-15T21:33:47.181Z", "contributors": [ - "tristantheb", "SphinxKnight", - "MandelV", - "mercuryseries", - "dattaz" + "vazyvite" ] }, - "Web/HTTP/Méthode/CONNECT": { - "modified": "2020-10-15T21:53:58.732Z", + "Web/HTML/Global_attributes/contenteditable": { + "modified": "2020-10-15T21:33:48.879Z", "contributors": [ - "SphinxKnight", - "Badacadabra", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/DELETE": { - "modified": "2019-03-23T22:13:09.265Z", + "Web/HTML/Global_attributes/contextmenu": { + "modified": "2020-10-15T21:33:49.445Z", "contributors": [ - "SphinxKnight", - "Badacadabra", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/GET": { - "modified": "2020-10-15T21:53:59.909Z", + "Web/HTML/Global_attributes/data-*": { + "modified": "2020-10-15T21:33:48.787Z", "contributors": [ - "a-mt", "SphinxKnight", - "Badacadabra", - "dattaz" + "ClementRocket", + "dashdashzako", + "olange" ] }, - "Web/HTTP/Méthode/HEAD": { - "modified": "2020-10-15T21:53:59.078Z", + "Web/HTML/Global_attributes/dir": { + "modified": "2020-10-15T21:33:54.030Z", "contributors": [ - "SphinxKnight", - "Badacadabra", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/OPTIONS": { - "modified": "2020-10-15T22:00:53.161Z", + "Web/HTML/Global_attributes/draggable": { + "modified": "2020-10-15T21:33:51.496Z", "contributors": [ - "Yukulele.", - "SphinxKnight", - "lucien.bill" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/PATCH": { - "modified": "2020-02-06T06:05:29.587Z", + "orphaned/Web/HTML/Global_attributes/dropzone": { + "modified": "2020-10-15T21:33:33.621Z", "contributors": [ - "humantool", - "PaulDuxblah", + "tristantheb", "SphinxKnight", - "ThreadElric", - "Hennek" + "Goofy", + "guillaumev" ] }, - "Web/HTTP/Méthode/POST": { - "modified": "2020-10-15T21:54:00.053Z", + "Web/HTML/Global_attributes/hidden": { + "modified": "2020-10-15T21:33:54.525Z", "contributors": [ - "FlorianHatat", - "slumbering", - "SphinxKnight", - "macmorning", - "placaist", - "Badacadabra", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/PUT": { - "modified": "2019-03-23T22:13:06.866Z", + "Web/HTML/Global_attributes/id": { + "modified": "2020-10-15T21:33:53.408Z", "contributors": [ - "SphinxKnight", - "Badacadabra", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Méthode/TRACE": { - "modified": "2020-10-15T22:29:59.662Z", + "Web/HTML/Global_attributes": { + "modified": "2020-10-15T21:07:20.352Z", "contributors": [ - "alexetgus", - "tristantheb" + "SphinxKnight", + "xxDukeMCxx", + "Loliwe", + "wakooka", + "claudepache", + "louuis", + "msherefel", + "tregagnon", + "mistyrouge", + "Shz", + "xaky" ] }, - "Web/HTTP/Redirections": { - "modified": "2020-03-17T12:32:04.893Z", + "Web/HTML/Global_attributes/inputmode": { + "modified": "2020-10-15T22:11:16.049Z", "contributors": [ - "n3wborn", - "bbonnin" + "regseb", + "SphinxKnight" ] }, - "Web/HTTP/Requêtes_conditionnelles": { - "modified": "2019-07-27T21:23:45.889Z", + "Web/HTML/Global_attributes/is": { + "modified": "2020-10-15T22:01:11.769Z", "contributors": [ - "ThCarrere" + "SphinxKnight" ] }, - "Web/HTTP/Resources_and_specifications": { - "modified": "2019-08-17T16:02:26.455Z", + "Web/HTML/Global_attributes/itemid": { + "modified": "2020-10-15T21:43:26.402Z", "contributors": [ - "bbonnin" + "SphinxKnight" ] }, - "Web/HTTP/Session": { - "modified": "2019-03-23T22:06:49.321Z", + "Web/HTML/Global_attributes/itemprop": { + "modified": "2020-10-15T21:43:28.895Z", "contributors": [ - "SphinxKnight", - "Alpha", - "klenzo" + "SphinxKnight" ] }, - "Web/HTTP/Status": { - "modified": "2020-08-30T05:52:57.122Z", + "Web/HTML/Global_attributes/itemref": { + "modified": "2020-10-15T21:43:27.145Z", "contributors": [ - "devweb157", - "SphinxKnight", - "Axnyff", - "Badacadabra", - "Bromind", - "fscholz" + "SphinxKnight" ] }, - "Web/HTTP/Status/100": { - "modified": "2020-10-15T21:51:44.583Z", + "Web/HTML/Global_attributes/itemscope": { + "modified": "2020-10-15T21:43:32.087Z", "contributors": [ "SphinxKnight", - "dattaz" + "dFegnoux" ] }, - "Web/HTTP/Status/101": { - "modified": "2019-03-23T22:16:44.467Z", + "Web/HTML/Global_attributes/itemtype": { + "modified": "2020-10-15T21:43:29.485Z", "contributors": [ "SphinxKnight", - "dattaz" + "ferdi_" ] }, - "Web/HTTP/Status/103": { - "modified": "2020-10-15T22:21:12.084Z", + "Web/HTML/Global_attributes/lang": { + "modified": "2020-10-15T21:33:54.262Z", "contributors": [ "SphinxKnight", - "neophnx" + "gfc" ] }, - "Web/HTTP/Status/200": { - "modified": "2020-10-15T21:51:47.097Z", + "Web/HTML/Global_attributes/slot": { + "modified": "2020-10-15T21:51:35.355Z", "contributors": [ - "SphinxKnight", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Status/201": { - "modified": "2020-10-15T21:51:48.335Z", + "Web/HTML/Global_attributes/spellcheck": { + "modified": "2020-10-15T21:33:50.764Z", "contributors": [ - "ylerjen", - "TimotheAlbouy", - "SphinxKnight", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Status/202": { - "modified": "2019-03-23T22:16:56.182Z", + "Web/HTML/Global_attributes/style": { + "modified": "2020-10-15T21:33:51.867Z", "contributors": [ "SphinxKnight", - "dattaz" + "Morgan-jarry" ] }, - "Web/HTTP/Status/203": { - "modified": "2019-03-23T22:16:33.634Z", + "Web/HTML/Global_attributes/tabindex": { + "modified": "2020-10-15T21:33:53.441Z", "contributors": [ "SphinxKnight", - "dattaz" + "ggrossetie", + "Le_suisse", + "Goofy" ] }, - "Web/HTTP/Status/204": { - "modified": "2020-10-15T21:51:50.995Z", + "Web/HTML/Global_attributes/title": { + "modified": "2020-10-15T21:33:33.266Z", "contributors": [ "SphinxKnight", - "dattaz" + "babsolune", + "Goofy", + "guillaumev" ] }, - "Web/HTTP/Status/205": { - "modified": "2019-03-23T22:16:50.696Z", + "Web/HTML/Global_attributes/translate": { + "modified": "2020-10-15T21:33:34.133Z", "contributors": [ "SphinxKnight", - "dattaz" + "Goofy", + "guillaumev" ] }, - "Web/HTTP/Status/206": { - "modified": "2020-10-15T21:51:55.335Z", + "Web/HTML/Global_attributes/x-ms-acceleratorkey": { + "modified": "2019-08-05T13:42:31.573Z", "contributors": [ - "AnthonySendra", - "SphinxKnight", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Status/300": { - "modified": "2019-06-01T05:27:25.381Z", + "Web/HTML/Global_attributes/x-ms-format-detection": { + "modified": "2019-08-05T13:38:52.259Z", "contributors": [ - "Rififia", - "SphinxKnight", - "dattaz" + "SphinxKnight" ] }, - "Web/HTTP/Status/301": { - "modified": "2020-10-15T21:52:13.453Z", + "Web/HTML/Attributes/autocomplete": { + "modified": "2020-10-30T09:19:41.790Z", "contributors": [ - "ledahulevogyre", + "xel1045", + "Thosquey", + "fx-kuntz-dw", "SphinxKnight", - "dattaz" + "klnjmm" ] }, - "Web/HTTP/Status/302": { - "modified": "2020-10-15T21:52:06.149Z", + "Web/HTML/Attributes": { + "modified": "2019-08-05T13:35:34.698Z", "contributors": [ - "vulcaryn", "SphinxKnight", - "louisfischer", - "dattaz" + "louuis", + "msherefel", + "tregagnon", + "FredB" ] }, - "Web/HTTP/Status/303": { - "modified": "2020-11-09T07:52:41.898Z", + "Web/HTML/Attributes/pattern": { + "modified": "2020-12-02T04:01:31.109Z", "contributors": [ - "martialseron", "SphinxKnight", - "ADTC", - "dattaz" + "roxaneprovost" ] }, - "Web/HTTP/Status/304": { - "modified": "2020-10-15T21:52:19.799Z", + "Web/Guide/HTML/Editable_content": { + "modified": "2019-04-20T23:42:36.501Z", "contributors": [ - "SphinxKnight", - "dattaz" + "tregagnon", + "SphinxKnight" ] }, - "Web/HTTP/Status/307": { - "modified": "2020-10-15T21:52:20.929Z", + "orphaned/Web/HTML/Element/command": { + "modified": "2020-10-15T21:20:20.685Z", "contributors": [ - "myobis", - "adrizein", "SphinxKnight", - "dattaz" + "JNa0", + "tregagnon", + "DirtyVader" ] }, - "Web/HTTP/Status/308": { - "modified": "2020-10-15T21:52:25.426Z", + "orphaned/Web/HTML/Element/element": { + "modified": "2020-10-15T21:26:29.511Z", "contributors": [ "SphinxKnight", - "dattaz" + "JNa0", + "teoli", + "louuis", + "ylerjen" ] }, - "Web/HTTP/Status/400": { - "modified": "2019-03-23T22:16:59.097Z", + "Web/HTML/Block-level_elements": { + "modified": "2019-06-18T12:22:20.386Z", "contributors": [ "SphinxKnight", - "dattaz" + "KhalilSnaake", + "Bat41", + "wakka27" ] }, - "Web/HTTP/Status/401": { - "modified": "2020-10-15T21:52:30.923Z", + "Web/HTML/Inline_elements": { + "modified": "2019-04-06T13:04:18.081Z", "contributors": [ "SphinxKnight", - "dattaz" + "KhalilSnaake", + "numahell", + "wakka27" ] }, - "Web/HTTP/Status/402": { - "modified": "2020-10-15T22:21:51.787Z", + "Web/HTML/Date_and_time_formats": { + "modified": "2019-07-21T04:39:30.291Z", "contributors": [ - "Rififia", - "rafipiccolo" + "SphinxKnight" ] }, - "Web/HTTP/Status/403": { - "modified": "2020-10-15T21:52:27.600Z", + "Web/HTML/CORS_enabled_image": { + "modified": "2019-04-04T15:03:02.054Z", "contributors": [ - "reivaxy", "SphinxKnight", - "dattaz" + "Lotfire", + "tregagnon" ] }, - "Web/HTTP/Status/404": { - "modified": "2020-10-15T21:52:28.956Z", + "Web/Guide/HTML/HTML5/Introduction_to_HTML5": { + "modified": "2019-03-24T00:07:20.983Z", "contributors": [ - "SphinxKnight", "Goofy", - "dattaz" - ] - }, - "Web/HTTP/Status/405": { - "modified": "2019-03-23T22:16:59.786Z", - "contributors": [ - "newick", - "lucien.bill", - "tititou36", - "SphinxKnight", - "arthurwhite", - "dattaz" + "Bringdal", + "tregagnon", + "xaky" ] }, - "Web/HTTP/Status/406": { - "modified": "2020-10-15T21:52:43.789Z", + "Web/HTML/Microdata": { + "modified": "2019-07-30T02:49:00.444Z", "contributors": [ "SphinxKnight", - "dattaz" + "Emmanuel.KWENE" ] }, - "Web/HTTP/Status/407": { - "modified": "2020-10-15T21:52:43.422Z", + "Glossary/speculative_parsing": { + "modified": "2019-04-25T14:12:18.324Z", "contributors": [ "SphinxKnight", - "dattaz" + "loella16", + "langlchr" ] }, - "Web/HTTP/Status/408": { - "modified": "2019-03-23T22:16:30.693Z", + "Web/HTML/Preloading_content": { + "modified": "2020-10-15T21:55:30.755Z", "contributors": [ + "nhoizey", "SphinxKnight", - "VictorGiroud", - "dattaz" + "Goofy" ] }, - "Web/HTTP/Status/409": { - "modified": "2019-03-23T22:16:31.226Z", + "Web/HTML/Attributes/crossorigin": { + "modified": "2020-10-15T21:22:58.182Z", "contributors": [ "SphinxKnight", - "dattaz" + "benjaminclot", + "wakka27", + "tregagnon" ] }, - "Web/HTTP/Status/410": { - "modified": "2020-10-15T21:52:43.256Z", + "Web/Guide/HTML/Using_HTML_sections_and_outlines": { + "modified": "2020-04-07T04:00:20.055Z", "contributors": [ + "n3wborn", + "mathildebuenerd", + "ledenis", + "JNa0", + "edspeedy", + "Pols12", + "efazenda", + "Phklrz", + "Mathieu_deLauniere", + "Havano", + "Fredchat", + "wakka27", + "jessmania", + "ferncoder", "SphinxKnight", - "Alpha", - "dattaz" + "tregagnon", + "Blancdememoire", + "FredB" ] }, - "Web/HTTP/Status/411": { - "modified": "2019-03-23T22:16:31.489Z", + "Web/HTML/Link_types": { + "modified": "2020-10-15T21:26:15.592Z", "contributors": [ "SphinxKnight", - "dattaz" + "cdr", + "louuis", + "jcbita" ] }, - "Web/HTTP/Status/412": { - "modified": "2020-10-15T21:52:44.154Z", + "Web/HTML/Using_the_application_cache": { + "modified": "2020-10-15T21:07:42.579Z", "contributors": [ + "Qouagga", "SphinxKnight", - "dattaz" + "Surfoo", + "personnel", + "cdromain", + "Gillespie59", + "Tioneb", + "bvauchelle", + "teoli", + "michaelch", + "rd6137", + "whoshallsucceed" ] }, - "Web/HTTP/Status/413": { - "modified": "2019-03-23T22:16:25.449Z", + "Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video": { + "modified": "2020-02-21T13:42:34.237Z", "contributors": [ + "Sroucheray", "SphinxKnight", - "dattaz" + "Spharian", + "nicoo" ] }, - "Web/HTTP/Status/414": { - "modified": "2019-03-23T22:16:30.303Z", + "Web/HTTP/Overview": { + "modified": "2020-12-01T09:26:27.617Z", "contributors": [ + "Louis-Aime", + "nolanrigo", "SphinxKnight", + "Alpha", + "marie-ototoi", + "Hell_Carlito", "dattaz" ] }, - "Web/HTTP/Status/415": { - "modified": "2019-03-23T22:16:17.725Z", + "Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs": { + "modified": "2019-03-18T21:44:23.409Z", "contributors": [ "SphinxKnight", - "dattaz" + "Alpha", + "unpeudetout" ] }, - "Web/HTTP/Status/416": { - "modified": "2020-10-15T21:52:44.490Z", + "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web": { + "modified": "2019-03-18T21:41:54.222Z", "contributors": [ "SphinxKnight", - "PGeffriaud", - "dattaz" + "Alpha" ] }, - "Web/HTTP/Status/417": { - "modified": "2019-03-23T22:16:23.253Z", + "Web/HTTP/Basics_of_HTTP/Resource_URLs": { + "modified": "2019-03-18T21:40:41.905Z", "contributors": [ "SphinxKnight", - "dattaz" + "Alpha" ] }, - "Web/HTTP/Status/418": { - "modified": "2020-10-15T22:01:58.002Z", + "Web/HTTP/Caching": { + "modified": "2019-07-11T20:27:10.018Z", "contributors": [ - "dzamlo", - "sblondon", + "ThCarrere", + "dragon38800", + "Watilin", "SphinxKnight", - "Alpha" + "blety" ] }, - "Web/HTTP/Status/422": { - "modified": "2019-03-18T21:33:59.059Z", + "Web/HTTP/CORS/Errors/CORSMissingAllowOrigin": { + "modified": "2020-06-10T11:05:53.160Z", "contributors": [ - "theophilechevalier" + "jcletousey", + "efreja", + "TheWildHealer" ] }, - "Web/HTTP/Status/425": { - "modified": "2020-10-15T22:11:22.211Z", + "Web/HTTP/CORS/Errors/CORSAllowOriginNotMatchingOrigin": { + "modified": "2020-09-04T07:20:46.938Z", "contributors": [ - "Akarys" + "sevarg" ] }, - "Web/HTTP/Status/426": { - "modified": "2019-03-23T22:16:23.564Z", + "Web/HTTP/CORS/Errors/CORSDisabled": { + "modified": "2019-03-18T21:23:02.654Z", "contributors": [ "SphinxKnight", - "dattaz" + "ViveLesFrites" ] }, - "Web/HTTP/Status/428": { - "modified": "2019-03-23T22:16:18.491Z", + "Web/HTTP/CORS/Errors/CORSDidNotSucceed": { + "modified": "2019-05-08T11:52:53.417Z", "contributors": [ - "SphinxKnight", - "dattaz" + "audricschiltknecht", + "hellosct1", + "NicolasGraph", + "Triple_B" ] }, - "Web/HTTP/Status/429": { - "modified": "2019-03-23T22:16:27.928Z", + "Web/HTTP/Browser_detection_using_the_user_agent": { + "modified": "2019-03-23T23:13:53.553Z", "contributors": [ "SphinxKnight", - "dattaz" + "Alpha", + "macmorning", + "lmahistre", + "KevinLACIRE" ] }, - "Web/HTTP/Status/431": { - "modified": "2019-03-23T22:16:18.973Z", + "Web/HTTP/Link_prefetching_FAQ": { + "modified": "2019-03-23T23:46:22.581Z", "contributors": [ "SphinxKnight", - "dattaz" + "Goofy", + "cdromain", + "jigs12", + "wakka27", + "BenoitL", + "Fredchat", + "Kyodev", + "Bellerophon" ] }, - "Web/HTTP/Status/451": { - "modified": "2020-10-15T21:52:49.692Z", + "Web/HTTP/Headers/Server": { + "modified": "2020-10-15T22:01:27.985Z", "contributors": [ "SphinxKnight", - "dattaz" + "codingk8", + "WanFoxOne" ] }, - "Web/HTTP/Status/500": { - "modified": "2020-10-15T21:52:49.526Z", + "Web/HTTP/Methods/CONNECT": { + "modified": "2020-10-15T21:53:58.732Z", "contributors": [ "SphinxKnight", - "Alpha", + "Badacadabra", "dattaz" ] }, - "Web/HTTP/Status/501": { - "modified": "2020-10-15T21:52:47.942Z", + "Web/HTTP/Methods/DELETE": { + "modified": "2019-03-23T22:13:09.265Z", "contributors": [ "SphinxKnight", + "Badacadabra", "dattaz" ] }, - "Web/HTTP/Status/502": { - "modified": "2020-10-15T21:52:48.291Z", + "Web/HTTP/Methods/GET": { + "modified": "2020-10-15T21:53:59.909Z", "contributors": [ + "a-mt", "SphinxKnight", - "pinnotjaque", + "Badacadabra", "dattaz" ] }, - "Web/HTTP/Status/503": { - "modified": "2020-10-15T21:52:49.235Z", + "Web/HTTP/Methods/HEAD": { + "modified": "2020-10-15T21:53:59.078Z", "contributors": [ "SphinxKnight", - "pinnotjaque", + "Badacadabra", "dattaz" ] }, - "Web/HTTP/Status/504": { - "modified": "2020-10-15T21:52:48.211Z", + "Web/HTTP/Methods": { + "modified": "2020-10-15T21:52:12.802Z", "contributors": [ + "tristantheb", "SphinxKnight", + "MandelV", + "mercuryseries", "dattaz" ] }, - "Web/HTTP/Status/505": { - "modified": "2019-03-23T22:16:21.878Z", + "Web/HTTP/Methods/OPTIONS": { + "modified": "2020-10-15T22:00:53.161Z", "contributors": [ + "Yukulele.", "SphinxKnight", - "dattaz" - ] - }, - "Web/HTTP/Status/506": { - "modified": "2020-09-15T14:40:07.564Z", - "contributors": [ - "ungarscool1" + "lucien.bill" ] }, - "Web/HTTP/Status/507": { - "modified": "2020-09-15T14:35:14.118Z", + "Web/HTTP/Methods/PATCH": { + "modified": "2020-02-06T06:05:29.587Z", "contributors": [ - "ungarscool1" + "humantool", + "PaulDuxblah", + "SphinxKnight", + "ThreadElric", + "Hennek" ] }, - "Web/HTTP/Status/508": { - "modified": "2020-11-10T12:22:56.051Z", + "Web/HTTP/Methods/POST": { + "modified": "2020-10-15T21:54:00.053Z", "contributors": [ - "endermctv", - "ungarscool1" + "FlorianHatat", + "slumbering", + "SphinxKnight", + "macmorning", + "placaist", + "Badacadabra", + "dattaz" ] }, - "Web/HTTP/Status/510": { - "modified": "2020-01-30T04:13:14.901Z", + "Web/HTTP/Methods/PUT": { + "modified": "2019-03-23T22:13:06.866Z", "contributors": [ "SphinxKnight", - "flippo007" + "Badacadabra", + "dattaz" ] }, - "Web/HTTP/Status/511": { - "modified": "2019-03-23T22:16:30.847Z", + "Web/HTTP/Methods/TRACE": { + "modified": "2020-10-15T22:29:59.662Z", "contributors": [ - "SphinxKnight", - "dattaz" + "alexetgus", + "tristantheb" ] }, - "Web/JavaScript": { - "modified": "2020-06-10T08:48:58.868Z", + "Web/HTTP/Conditional_requests": { + "modified": "2019-07-27T21:23:45.889Z", "contributors": [ - "SphinxKnight", - "tristantheb", - "a-mt", - "LCaba49", - "loella16", - "kdex", - "mapiki", - "teoli", - "ronasita22", - "jeromepasquelin", - "Avent", - "julia31", - "jsx", - "jalu78", - "DamienBertrand", - "tregagnon", - "ylerjen", - "senshu", - "DocMcBrown", - "tchevalier", - "Goofy", - "darnuria", - "Sroucheray", - "matteodelabre", - "fscholz", - "ILJR", - "cv075", - "Mgjbot", - "BenoitL", - "Fredchat", - "Verruckt", - "Chbok", - "Quarkcool", - "Jean-Yves Cronier", - "Anonymous", - "Mario" + "ThCarrere" ] }, - "Web/JavaScript/A_propos": { + "Web/JavaScript/About_JavaScript": { "modified": "2020-03-12T19:36:54.184Z", "contributors": [ "SphinxKnight", @@ -36287,32 +36798,14 @@ "VincentN" ] }, - "Web/JavaScript/Caractère_énumérable_des_propriétés_et_rattachement": { + "Web/JavaScript/Enumerability_and_ownership_of_properties": { "modified": "2020-03-12T19:39:48.844Z", "contributors": [ "SphinxKnight", "Ehstrali" ] }, - "Web/JavaScript/Closures": { - "modified": "2020-03-14T03:08:28.899Z", - "contributors": [ - "smeden-lod", - "PhilippePerret", - "SphinxKnight", - "Lamri", - "mbeaudru", - "Mongenet", - "opii93", - "bassam", - "DeepFriedSeagull", - "cosmith", - "teoli", - "Florentsuc", - "zanz" - ] - }, - "Web/JavaScript/Concurrence_et_boucle_des_événements": { + "Web/JavaScript/EventLoop": { "modified": "2020-07-16T10:21:17.789Z", "contributors": [ "robinsimonklein", @@ -36322,7 +36815,7 @@ "teoli" ] }, - "Web/JavaScript/Gestion_de_la_mémoire": { + "Web/JavaScript/Memory_Management": { "modified": "2020-03-12T19:38:42.822Z", "contributors": [ "SphinxKnight", @@ -36335,29 +36828,7 @@ "teoli" ] }, - "Web/JavaScript/Guide": { - "modified": "2020-03-12T19:36:21.976Z", - "contributors": [ - "SphinxKnight", - "teoli", - "delislejm", - "Ame_Nomade", - "BenoitL" - ] - }, - "Web/JavaScript/Guide/Apropos": { - "modified": "2020-03-12T19:38:04.895Z", - "contributors": [ - "wbamberg", - "SphinxKnight", - "teoli", - "P45QU10U", - "Goofy", - "tregagnon", - "favdb31" - ] - }, - "Web/JavaScript/Guide/Boucles_et_itération": { + "Web/JavaScript/Guide/Loops_and_iteration": { "modified": "2020-10-23T05:00:54.986Z", "contributors": [ "Monstercrunch", @@ -36372,14 +36843,14 @@ "tregagnon" ] }, - "Web/JavaScript/Guide/Collections_avec_clés": { + "Web/JavaScript/Guide/Keyed_collections": { "modified": "2020-03-12T19:40:57.260Z", "contributors": [ "deadikus", "SphinxKnight" ] }, - "Web/JavaScript/Guide/Collections_indexées": { + "Web/JavaScript/Guide/Indexed_collections": { "modified": "2020-07-03T13:43:37.770Z", "contributors": [ "GDFtj", @@ -36390,7 +36861,7 @@ "QuentinPerez" ] }, - "Web/JavaScript/Guide/Contrôle_du_flux_Gestion_des_erreurs": { + "Web/JavaScript/Guide/Control_flow_and_error_handling": { "modified": "2020-03-12T19:38:47.675Z", "contributors": [ "SphinxKnight", @@ -36402,7 +36873,7 @@ "teoli" ] }, - "Web/JavaScript/Guide/Expressions_et_Opérateurs": { + "Web/JavaScript/Guide/Expressions_and_Operators": { "modified": "2020-03-12T19:38:41.114Z", "contributors": [ "SphinxKnight", @@ -36415,57 +36886,51 @@ "s3dm" ] }, - "Web/JavaScript/Guide/Expressions_régulières": { - "modified": "2020-06-13T05:36:13.747Z", - "contributors": [ - "yanns1", - "SphinxKnight", - "fgeorges", - "pastr", - "pascallothar", - "VincentGuinaudeau", - "Gueusette", - "teoli", - "Goofy" - ] - }, - "Web/JavaScript/Guide/Expressions_régulières/Assertions": { + "Web/JavaScript/Guide/Regular_Expressions/Assertions": { "modified": "2020-03-12T19:49:10.031Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Expressions_régulières/Classes_de_caractères": { + "Web/JavaScript/Guide/Regular_Expressions/Character_Classes": { "modified": "2020-10-15T22:17:44.815Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Expressions_régulières/Groupes_et_intervalles": { - "modified": "2020-03-12T19:49:07.623Z", + "Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes": { + "modified": "2020-03-12T19:49:07.596Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Expressions_régulières/Limites": { - "modified": "2020-03-12T19:49:08.903Z", + "Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges": { + "modified": "2020-03-12T19:49:07.623Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Expressions_régulières/Quantificateurs": { - "modified": "2020-03-12T19:49:05.025Z", + "Web/JavaScript/Guide/Regular_Expressions": { + "modified": "2020-06-13T05:36:13.747Z", "contributors": [ - "SphinxKnight" + "yanns1", + "SphinxKnight", + "fgeorges", + "pastr", + "pascallothar", + "VincentGuinaudeau", + "Gueusette", + "teoli", + "Goofy" ] }, - "Web/JavaScript/Guide/Expressions_régulières/Échappement_propriétés_Unicode": { - "modified": "2020-03-12T19:49:07.596Z", + "Web/JavaScript/Guide/Regular_Expressions/Quantifiers": { + "modified": "2020-03-12T19:49:05.025Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Fonctions": { + "Web/JavaScript/Guide/Functions": { "modified": "2020-08-31T09:00:32.522Z", "contributors": [ "SphinxKnight", @@ -36482,7 +36947,7 @@ "Goofy" ] }, - "Web/JavaScript/Guide/Formatage_du_texte": { + "Web/JavaScript/Guide/Text_formatting": { "modified": "2020-03-12T19:40:53.485Z", "contributors": [ "tristantheb", @@ -36491,30 +36956,20 @@ "NemoNobobyPersonne" ] }, - "Web/JavaScript/Guide/Introduction": { - "modified": "2020-03-12T19:40:53.803Z", - "contributors": [ - "CmdCourgette", - "SphinxKnight", - "tonybengue", - "Nopias", - "Arnaudettes", - "tregagnon" - ] - }, - "Web/JavaScript/Guide/JavaScript_Overview": { - "modified": "2020-03-12T19:38:04.487Z", + "Web/JavaScript/Guide/Iterators_and_Generators": { + "modified": "2020-07-03T14:14:56.497Z", "contributors": [ "SphinxKnight", - "teoli", - "Jeremie", - "firdaws", + "ferjul17", + "Gabriel8819", + "bankair", "P45QU10U", - "Goofy", - "simokla" + "teoli", + "goofy_bz", + "n1k0" ] }, - "Web/JavaScript/Guide/Le_modèle_objet_JavaScript_en_détails": { + "Web/JavaScript/Guide/Details_of_the_Object_Model": { "modified": "2020-07-03T14:11:44.605Z", "contributors": [ "SphinxKnight", @@ -36534,25 +36989,19 @@ "e.begovic" ] }, - "Web/JavaScript/Guide/Le_protocole_itérateur_historique": { + "Web/JavaScript/Reference/Deprecated_and_obsolete_features/The_legacy_Iterator_protocol": { "modified": "2020-03-12T19:40:23.053Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Modules": { - "modified": "2020-10-15T22:20:28.070Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Guide/Métaprogrammation": { + "Web/JavaScript/Guide/Meta_programming": { "modified": "2020-07-03T14:15:24.280Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Guide/Nombres_et_dates": { + "Web/JavaScript/Guide/Numbers_and_dates": { "modified": "2020-03-12T19:40:56.844Z", "contributors": [ "SphinxKnight", @@ -36561,27 +37010,7 @@ "tregagnon" ] }, - "Web/JavaScript/Guide/Objets_élémentaires_JavaScript": { - "modified": "2020-03-12T19:39:12.743Z", - "contributors": [ - "JyTosTT", - "wbamberg", - "SphinxKnight", - "Goofy", - "teoli" - ] - }, - "Web/JavaScript/Guide/Retours_sur_héritage": { - "modified": "2019-05-16T15:02:53.512Z", - "contributors": [ - "wbamberg", - "Tloque", - "SphinxKnight", - "darul75", - "teoli" - ] - }, - "Web/JavaScript/Guide/Types_et_grammaire": { + "Web/JavaScript/Guide/Grammar_and_types": { "modified": "2020-03-12T19:38:45.258Z", "contributors": [ "SphinxKnight", @@ -36607,15 +37036,7 @@ "Goofy" ] }, - "Web/JavaScript/Guide/Utiliser_le_JSON_natif": { - "modified": "2020-03-12T19:39:16.956Z", - "contributors": [ - "fscholz", - "SphinxKnight", - "teoli" - ] - }, - "Web/JavaScript/Guide/Utiliser_les_objets": { + "Web/JavaScript/Guide/Working_with_Objects": { "modified": "2020-11-29T05:17:59.419Z", "contributors": [ "TCarrere", @@ -36634,7 +37055,7 @@ "e.begovic" ] }, - "Web/JavaScript/Guide/Utiliser_les_promesses": { + "Web/JavaScript/Guide/Using_promises": { "modified": "2020-07-03T14:12:15.848Z", "contributors": [ "nrdAio", @@ -36646,27 +37067,7 @@ "madarche" ] }, - "Web/JavaScript/Guide/iterateurs_et_generateurs": { - "modified": "2020-07-03T14:14:56.497Z", - "contributors": [ - "SphinxKnight", - "ferjul17", - "Gabriel8819", - "bankair", - "P45QU10U", - "teoli", - "goofy_bz", - "n1k0" - ] - }, - "Web/JavaScript/Guide/Égalité_en_JavaScript": { - "modified": "2020-03-12T19:39:10.978Z", - "contributors": [ - "SphinxKnight", - "teoli" - ] - }, - "Web/JavaScript/Héritage_et_chaîne_de_prototypes": { + "Web/JavaScript/Inheritance_and_the_prototype_chain": { "modified": "2020-03-12T19:38:39.687Z", "contributors": [ "SphinxKnight", @@ -36682,22 +37083,7 @@ "teoli" ] }, - "Web/JavaScript/Introduction_à_JavaScript_orienté_objet": { - "modified": "2020-03-12T19:39:16.946Z", - "contributors": [ - "GregMorel", - "F-Andre", - "SphinxKnight", - "kdex", - "LaurentBarbareau", - "vanz", - "Grimar29", - "Veltarn", - "kai23", - "Goofy" - ] - }, - "Web/JavaScript/Introduction_à_l_utilisation_de_XPath_avec_JavaScript": { + "Web/XPath/Introduction_to_using_XPath_in_JavaScript": { "modified": "2019-06-18T08:36:11.928Z", "contributors": [ "SphinxKnight", @@ -36714,33 +37100,7 @@ "Fredchat" ] }, - "Web/JavaScript/JavaScript_technologies_overview": { - "modified": "2020-03-12T19:39:28.831Z", - "contributors": [ - "SphinxKnight", - "Yopadd", - "Bpruneau", - "tregagnon", - "teoli", - "duthen", - "PanPan", - "DocMcBrown", - "delislejm", - "goofy_bz" - ] - }, - "Web/JavaScript/Language_Resources": { - "modified": "2020-03-12T19:37:01.767Z", - "contributors": [ - "SphinxKnight", - "zatamine", - "teoli", - "Delapouite", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Les_différents_tests_d_égalité": { + "Web/JavaScript/Equality_comparisons_and_sameness": { "modified": "2020-03-12T19:39:18.857Z", "contributors": [ "SphinxKnight", @@ -36752,7 +37112,7 @@ "teoli" ] }, - "Web/JavaScript/Performance_les_dangers_liés_à_la_modification_de_Prototype": { + "Web/JavaScript/The_performance_hazards_of_prototype_mutation": { "modified": "2019-04-08T13:06:24.098Z", "contributors": [ "SphinxKnight", @@ -36760,22 +37120,7 @@ "bbouvier" ] }, - "Web/JavaScript/Reference": { - "modified": "2020-03-12T19:35:39.919Z", - "contributors": [ - "SphinxKnight", - "BenoitL", - "teoli", - "Fredchat", - "tregagnon", - "fscholz", - "LaBoumerde", - "AbrahamT", - "Mortys", - "matteodelabre" - ] - }, - "Web/JavaScript/Reference/A_propos": { + "Web/JavaScript/Reference/About": { "modified": "2020-03-12T19:38:26.136Z", "contributors": [ "SphinxKnight", @@ -36784,19 +37129,7 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Classes": { - "modified": "2020-10-15T21:33:49.394Z", - "contributors": [ - "rachid.chihabi", - "SphinxKnight", - "GregMorel", - "unflores", - "rgranger", - "blackholegalaxy", - "Yukulele." - ] - }, - "Web/JavaScript/Reference/Classes/Class_fields": { + "Web/JavaScript/Reference/Classes/Public_class_fields": { "modified": "2020-10-15T22:22:47.138Z", "contributors": [ "NemoNobobyPersonne", @@ -36805,307 +37138,294 @@ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Classes/Private_class_fields": { - "modified": "2020-10-15T22:33:35.342Z", - "contributors": [ - "NemoNobobyPersonne", - "N0wan", - "yohannlog" - ] - }, - "Web/JavaScript/Reference/Classes/constructor": { - "modified": "2020-10-15T21:33:51.548Z", - "contributors": [ - "fbessou", - "SphinxKnight", - "MathieuDebit" - ] - }, - "Web/JavaScript/Reference/Classes/extends": { - "modified": "2020-10-15T21:33:51.793Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Classes/static": { - "modified": "2020-10-15T21:33:57.179Z", - "contributors": [ - "SphinxKnight", - "mohabigmeech", - "AnthonyMelique", - "ericallard0" - ] - }, - "Web/JavaScript/Reference/Erreurs": { - "modified": "2020-03-12T19:43:16.869Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Erreurs/Already_has_pragma": { + "Web/JavaScript/Reference/Errors/Already_has_pragma": { "modified": "2020-03-12T19:43:49.056Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Array_sort_argument": { + "Web/JavaScript/Reference/Errors/Array_sort_argument": { "modified": "2020-03-12T19:43:29.325Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Bad_octal": { + "Web/JavaScript/Reference/Errors/Bad_octal": { "modified": "2020-03-12T19:43:47.808Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Bad_radix": { + "Web/JavaScript/Reference/Errors/Bad_radix": { "modified": "2020-03-12T19:43:18.378Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Bad_regexp_flag": { + "Web/JavaScript/Reference/Errors/Bad_regexp_flag": { "modified": "2020-03-12T19:45:52.553Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Bad_return_or_yield": { + "Web/JavaScript/Reference/Errors/Bad_return_or_yield": { "modified": "2020-03-12T19:43:56.672Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Called_on_incompatible_type": { + "Web/JavaScript/Reference/Errors/Called_on_incompatible_type": { "modified": "2020-03-12T19:46:40.456Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_access_lexical_declaration_before_init": { + "Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init": { "modified": "2020-03-12T19:46:21.502Z", "contributors": [ "SphinxKnight", "ggrossetie" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_access_property": { + "Web/JavaScript/Reference/Errors/Cant_access_property": { "modified": "2020-03-12T19:48:15.165Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_assign_to_property": { + "Web/JavaScript/Reference/Errors/Cant_assign_to_property": { "modified": "2020-03-12T19:48:57.544Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_define_property_object_not_extensible": { + "Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible": { "modified": "2020-03-12T19:45:52.583Z", "contributors": [ "SphinxKnight", "litelite" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_delete": { + "Web/JavaScript/Reference/Errors/Cant_delete": { "modified": "2020-03-12T19:43:48.215Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Cant_redefine_property": { + "Web/JavaScript/Reference/Errors/Cant_redefine_property": { "modified": "2020-03-12T19:45:59.065Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Cyclic_object_value": { + "Web/JavaScript/Reference/Errors/Cyclic_object_value": { "modified": "2020-03-12T19:45:49.963Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Dead_object": { + "Web/JavaScript/Reference/Errors/Dead_object": { "modified": "2020-03-12T19:45:57.909Z", "contributors": [ "richie3366", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Delete_in_strict_mode": { + "Web/JavaScript/Reference/Errors/Delete_in_strict_mode": { "modified": "2020-03-12T19:45:50.173Z", "contributors": [ "beamop", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Deprecated_String_generics": { - "modified": "2020-03-12T19:45:39.563Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Erreurs/Deprecated_caller_or_arguments_usage": { + "Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage": { "modified": "2020-03-12T19:43:40.831Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Deprecated_expression_closures": { + "Web/JavaScript/Reference/Errors/Deprecated_expression_closures": { "modified": "2020-03-12T19:45:40.291Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Deprecated_octal": { + "Web/JavaScript/Reference/Errors/Deprecated_octal": { "modified": "2020-03-12T19:45:53.860Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Deprecated_source_map_pragma": { + "Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma": { "modified": "2020-03-12T19:43:43.631Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Deprecated_toLocaleFormat": { + "Web/JavaScript/Reference/Errors/Deprecated_String_generics": { + "modified": "2020-03-12T19:45:39.563Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat": { "modified": "2020-03-12T19:45:38.629Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Equal_as_assign": { + "Web/JavaScript/Reference/Errors/Equal_as_assign": { "modified": "2020-03-12T19:43:42.883Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/For-each-in_loops_are_deprecated": { + "Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated": { "modified": "2020-03-12T19:44:39.857Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Getter_only": { + "Web/JavaScript/Reference/Errors/Getter_only": { "modified": "2020-03-12T19:45:50.129Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Identifier_after_number": { + "Web/JavaScript/Reference/Errors/Identifier_after_number": { "modified": "2020-03-12T19:45:56.141Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Illegal_character": { + "Web/JavaScript/Reference/Errors/Illegal_character": { "modified": "2020-03-12T19:46:00.923Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_array_length": { + "Web/JavaScript/Reference/Errors/in_operator_no_object": { + "modified": "2020-03-12T19:46:02.738Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Errors": { + "modified": "2020-03-12T19:43:16.869Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Errors/Invalid_array_length": { "modified": "2020-03-12T19:43:20.852Z", "contributors": [ "SphinxKnight", "tonybengue" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_assignment_left-hand_side": { + "Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side": { "modified": "2020-03-12T19:43:59.619Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_const_assignment": { + "Web/JavaScript/Reference/Errors/Invalid_const_assignment": { "modified": "2020-03-12T19:45:37.434Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_date": { + "Web/JavaScript/Reference/Errors/Invalid_date": { "modified": "2020-03-12T19:45:38.265Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_for-in_initializer": { + "Web/JavaScript/Reference/Errors/Invalid_for-in_initializer": { "modified": "2020-03-12T19:45:50.514Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Invalid_for-of_initializer": { + "Web/JavaScript/Reference/Errors/Invalid_for-of_initializer": { "modified": "2020-03-12T19:45:51.256Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/JSON_bad_parse": { - "modified": "2020-03-12T19:43:46.835Z", + "Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand": { + "modified": "2020-03-12T19:47:32.144Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Malformed_URI": { - "modified": "2020-03-12T19:45:53.291Z", + "Web/JavaScript/Reference/Errors/is_not_iterable": { + "modified": "2020-03-12T19:47:59.033Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Errors/JSON_bad_parse": { + "modified": "2020-03-12T19:43:46.835Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Malformed_formal_parameter": { + "Web/JavaScript/Reference/Errors/Malformed_formal_parameter": { "modified": "2020-03-12T19:43:17.827Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_bracket_after_list": { + "Web/JavaScript/Reference/Errors/Malformed_URI": { + "modified": "2020-03-12T19:45:53.291Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Errors/Missing_bracket_after_list": { "modified": "2020-03-12T19:43:54.108Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_colon_after_property_id": { + "Web/JavaScript/Reference/Errors/Missing_colon_after_property_id": { "modified": "2020-03-12T19:46:02.035Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_curly_after_function_body": { + "Web/JavaScript/Reference/Errors/Missing_curly_after_function_body": { "modified": "2020-03-12T19:45:56.628Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_curly_after_property_list": { + "Web/JavaScript/Reference/Errors/Missing_curly_after_property_list": { "modified": "2020-03-12T19:43:58.429Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_formal_parameter": { + "Web/JavaScript/Reference/Errors/Missing_formal_parameter": { "modified": "2020-03-12T19:45:53.116Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_initializer_in_const": { + "Web/JavaScript/Reference/Errors/Missing_initializer_in_const": { "modified": "2020-03-12T19:45:37.106Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_name_after_dot_operator": { + "Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator": { "modified": "2020-03-12T19:45:54.386Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_parenthesis_after_argument_list": { + "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list": { "modified": "2020-03-12T19:43:59.290Z", "contributors": [ "SphinxKnight", @@ -37113,224 +37433,235 @@ "Gibus" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_parenthesis_after_condition": { + "Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition": { "modified": "2020-03-12T19:45:56.158Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Missing_semicolon_before_statement": { + "Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement": { "modified": "2020-03-12T19:43:58.142Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/More_arguments_needed": { + "Web/JavaScript/Reference/Errors/More_arguments_needed": { "modified": "2020-03-12T19:44:02.076Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Negative_repetition_count": { + "Web/JavaScript/Reference/Errors/Negative_repetition_count": { "modified": "2020-03-12T19:43:13.388Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/No_non-null_object": { + "Web/JavaScript/Reference/Errors/No_non-null_object": { "modified": "2020-03-12T19:45:58.566Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/No_properties": { + "Web/JavaScript/Reference/Errors/No_properties": { "modified": "2020-03-12T19:43:47.939Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/No_variable_name": { + "Web/JavaScript/Reference/Errors/No_variable_name": { "modified": "2020-03-12T19:45:49.859Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Non_configurable_array_element": { + "Web/JavaScript/Reference/Errors/Non_configurable_array_element": { "modified": "2020-03-12T19:46:18.632Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Not_a_codepoint": { + "Web/JavaScript/Reference/Errors/Not_a_codepoint": { "modified": "2020-03-12T19:43:19.797Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Not_a_constructor": { + "Web/JavaScript/Reference/Errors/Not_a_constructor": { "modified": "2020-03-12T19:44:02.243Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Not_a_function": { + "Web/JavaScript/Reference/Errors/Not_a_function": { "modified": "2020-03-12T19:43:45.379Z", "contributors": [ "SphinxKnight", "JNa0" ] }, - "Web/JavaScript/Reference/Erreurs/Not_defined": { + "Web/JavaScript/Reference/Errors/Not_defined": { "modified": "2020-03-12T19:43:40.640Z", "contributors": [ "SphinxKnight", "miraha" ] }, - "Web/JavaScript/Reference/Erreurs/Precision_range": { + "Web/JavaScript/Reference/Errors/Precision_range": { "modified": "2020-03-12T19:43:21.725Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Property_access_denied": { + "Web/JavaScript/Reference/Errors/Property_access_denied": { "modified": "2020-03-12T19:43:45.225Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Read-only": { + "Web/JavaScript/Reference/Errors/Read-only": { "modified": "2020-03-12T19:43:16.839Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Redeclared_parameter": { + "Web/JavaScript/Reference/Errors/Redeclared_parameter": { "modified": "2020-03-12T19:44:04.910Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Reduce_of_empty_array_with_no_initial_value": { + "Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value": { "modified": "2020-03-12T19:47:46.197Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Reserved_identifier": { + "Web/JavaScript/Reference/Errors/Reserved_identifier": { "modified": "2020-03-12T19:45:51.965Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Resulting_string_too_large": { + "Web/JavaScript/Reference/Errors/Resulting_string_too_large": { "modified": "2020-03-12T19:43:19.426Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Stmt_after_return": { + "Web/JavaScript/Reference/Errors/Stmt_after_return": { "modified": "2020-03-12T19:43:18.104Z", "contributors": [ "benoit75005", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Strict_Non_Simple_Params": { + "Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params": { "modified": "2020-03-12T19:44:51.680Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Too_much_recursion": { + "Web/JavaScript/Reference/Errors/Too_much_recursion": { "modified": "2020-03-12T19:43:56.896Z", "contributors": [ "SphinxKnight", "jcletousey" ] }, - "Web/JavaScript/Reference/Erreurs/Typed_array_invalid_arguments": { + "Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments": { "modified": "2020-03-12T19:45:50.257Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Undeclared_var": { + "Web/JavaScript/Reference/Errors/Undeclared_var": { "modified": "2020-03-12T19:43:41.533Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Undefined_prop": { + "Web/JavaScript/Reference/Errors/Undefined_prop": { "modified": "2020-03-12T19:43:44.123Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Unexpected_token": { + "Web/JavaScript/Reference/Errors/Unexpected_token": { "modified": "2020-03-12T19:43:47.541Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Unexpected_type": { + "Web/JavaScript/Reference/Errors/Unexpected_type": { "modified": "2020-03-12T19:43:40.812Z", "contributors": [ "SphinxKnight", "application2000" ] }, - "Web/JavaScript/Reference/Erreurs/Unnamed_function_statement": { + "Web/JavaScript/Reference/Errors/Unnamed_function_statement": { "modified": "2020-03-12T19:45:49.862Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Unterminated_string_literal": { + "Web/JavaScript/Reference/Errors/Unterminated_string_literal": { "modified": "2020-03-12T19:44:00.298Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/Var_hides_argument": { + "Web/JavaScript/Reference/Errors/Var_hides_argument": { "modified": "2020-03-12T19:43:42.245Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/in_operator_no_object": { - "modified": "2020-03-12T19:46:02.738Z", + "Web/JavaScript/Reference/Functions/arguments/@@iterator": { + "modified": "2020-10-15T21:42:30.383Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Erreurs/invalid_right_hand_side_instanceof_operand": { - "modified": "2020-03-12T19:47:32.144Z", + "Web/JavaScript/Reference/Functions/arguments/callee": { + "modified": "2020-10-15T21:15:56.913Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "fscholz", + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL", + "Bellerophon", + "Chbok" ] }, - "Web/JavaScript/Reference/Erreurs/is_not_iterable": { - "modified": "2020-03-12T19:47:59.033Z", + "Web/JavaScript/Reference/Functions/arguments": { + "modified": "2020-10-15T21:24:29.177Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "gpartenet", + "Vixys", + "Marco105", + "fscholz", + "teoli", + "Laurent_Lyaudet" ] }, - "Web/JavaScript/Reference/Fonctions": { - "modified": "2020-10-15T21:24:00.741Z", + "Web/JavaScript/Reference/Functions/arguments/length": { + "modified": "2020-10-15T21:16:01.164Z", "contributors": [ - "Voltariuss", "SphinxKnight", - "elWombator", - "Banban", - "BNedry", - "teoli", - "P45QU10U", "fscholz", - "Delapouite" + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL", + "Bellerophon" ] }, - "Web/JavaScript/Reference/Fonctions/Définition_de_méthode": { + "Web/JavaScript/Reference/Functions/Method_definitions": { "modified": "2020-10-15T21:30:50.358Z", "contributors": [ "SphinxKnight", @@ -37339,7 +37670,7 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Fonctions/Fonctions_fléchées": { + "Web/JavaScript/Reference/Functions/Arrow_functions": { "modified": "2020-10-15T21:29:13.123Z", "contributors": [ "SphinxKnight", @@ -37355,75 +37686,34 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Fonctions/Valeurs_par_défaut_des_arguments": { - "modified": "2020-10-15T21:28:33.576Z", - "contributors": [ - "SphinxKnight", - "theevann", - "hugohil", - "masseuro", - "Chealer", - "fscholz", - "Goofy" - ] - }, - "Web/JavaScript/Reference/Fonctions/arguments": { - "modified": "2020-10-15T21:24:29.177Z", - "contributors": [ - "SphinxKnight", - "gpartenet", - "Vixys", - "Marco105", - "fscholz", - "teoli", - "Laurent_Lyaudet" - ] - }, - "Web/JavaScript/Reference/Fonctions/arguments/@@iterator": { - "modified": "2020-10-15T21:42:30.383Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Fonctions/arguments/callee": { - "modified": "2020-10-15T21:15:56.913Z", + "Web/JavaScript/Reference/Functions/get": { + "modified": "2020-10-15T21:11:19.453Z", "contributors": [ "SphinxKnight", - "fscholz", - "teoli", - "Jeremie", - "Mgjbot", + "cavalor", "BenoitL", - "Bellerophon", - "Chbok" - ] - }, - "Web/JavaScript/Reference/Fonctions/arguments/length": { - "modified": "2020-10-15T21:16:01.164Z", - "contributors": [ - "SphinxKnight", + "titouandk", "fscholz", "teoli", "Jeremie", - "Mgjbot", - "BenoitL", - "Bellerophon" + "matteodelabre" ] }, - "Web/JavaScript/Reference/Fonctions/get": { - "modified": "2020-10-15T21:11:19.453Z", + "Web/JavaScript/Reference/Functions": { + "modified": "2020-10-15T21:24:00.741Z", "contributors": [ + "Voltariuss", "SphinxKnight", - "cavalor", - "BenoitL", - "titouandk", - "fscholz", + "elWombator", + "Banban", + "BNedry", "teoli", - "Jeremie", - "matteodelabre" + "P45QU10U", + "fscholz", + "Delapouite" ] }, - "Web/JavaScript/Reference/Fonctions/paramètres_du_reste": { + "Web/JavaScript/Reference/Functions/rest_parameters": { "modified": "2020-10-15T21:29:10.789Z", "contributors": [ "yasakura_", @@ -37433,7 +37723,7 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Fonctions/set": { + "Web/JavaScript/Reference/Functions/set": { "modified": "2020-10-15T21:11:19.798Z", "contributors": [ "SphinxKnight", @@ -37443,44 +37733,25 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames": { - "modified": "2020-10-15T22:33:06.475Z", - "contributors": [ - "JNa0", - "romulocintra" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames": { - "modified": "2020-10-15T22:33:04.699Z", - "contributors": [ - "JNa0" - ] - }, - "Web/JavaScript/Reference/Grammaire_lexicale": { - "modified": "2020-10-15T21:29:48.383Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Instructions": { - "modified": "2020-10-15T21:11:24.453Z", + "Web/JavaScript/Reference/Functions/Default_parameters": { + "modified": "2020-10-15T21:28:33.576Z", "contributors": [ - "chrisdavidmills", "SphinxKnight", - "juestzmichael", + "theevann", + "hugohil", + "masseuro", + "Chealer", "fscholz", - "teoli", - "matteodelabre" + "Goofy" ] }, - "Web/JavaScript/Reference/Instructions/Vide": { - "modified": "2020-10-15T21:30:54.634Z", + "Web/JavaScript/Reference/Lexical_grammar": { + "modified": "2020-10-15T21:29:48.383Z", "contributors": [ - "SphinxKnight", - "fscholz" + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Instructions/async_function": { + "Web/JavaScript/Reference/Statements/async_function": { "modified": "2020-10-15T21:50:22.490Z", "contributors": [ "SphinxKnight", @@ -37491,7 +37762,7 @@ "v-Stein" ] }, - "Web/JavaScript/Reference/Instructions/bloc": { + "Web/JavaScript/Reference/Statements/block": { "modified": "2020-10-15T21:11:18.992Z", "contributors": [ "SphinxKnight", @@ -37499,7 +37770,7 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/break": { + "Web/JavaScript/Reference/Statements/break": { "modified": "2020-10-15T21:11:19.977Z", "contributors": [ "SphinxKnight", @@ -37507,14 +37778,14 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/class": { + "Web/JavaScript/Reference/Statements/class": { "modified": "2020-10-15T21:33:59.371Z", "contributors": [ "SphinxKnight", "GabrielHautclocq" ] }, - "Web/JavaScript/Reference/Instructions/const": { + "Web/JavaScript/Reference/Statements/const": { "modified": "2020-10-15T21:11:19.395Z", "contributors": [ "SphinxKnight", @@ -37524,7 +37795,7 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/continue": { + "Web/JavaScript/Reference/Statements/continue": { "modified": "2020-10-15T21:11:18.752Z", "contributors": [ "SphinxKnight", @@ -37533,7 +37804,7 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/debugger": { + "Web/JavaScript/Reference/Statements/debugger": { "modified": "2020-10-15T21:11:18.196Z", "contributors": [ "SphinxKnight", @@ -37542,13 +37813,7 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/default": { - "modified": "2020-10-15T21:39:25.638Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Instructions/do...while": { + "Web/JavaScript/Reference/Statements/do...while": { "modified": "2020-10-15T21:11:18.026Z", "contributors": [ "jdvauguet", @@ -37557,7 +37822,7 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/export": { + "Web/JavaScript/Reference/Statements/export": { "modified": "2020-10-15T21:24:21.794Z", "contributors": [ "SphinxKnight", @@ -37569,20 +37834,13 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/for": { - "modified": "2020-10-15T21:24:26.742Z", - "contributors": [ - "SphinxKnight", - "teoli" - ] - }, - "Web/JavaScript/Reference/Instructions/for-await...of": { + "Web/JavaScript/Reference/Statements/for-await...of": { "modified": "2020-10-15T22:11:20.751Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Instructions/for...in": { + "Web/JavaScript/Reference/Statements/for...in": { "modified": "2020-10-15T21:24:25.858Z", "contributors": [ "SphinxKnight", @@ -37593,7 +37851,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/for...of": { + "Web/JavaScript/Reference/Statements/for...of": { "modified": "2020-10-15T21:24:26.881Z", "contributors": [ "SphinxKnight", @@ -37606,14 +37864,14 @@ "senshu" ] }, - "Web/JavaScript/Reference/Instructions/function": { - "modified": "2020-10-15T21:24:24.783Z", + "Web/JavaScript/Reference/Statements/for": { + "modified": "2020-10-15T21:24:26.742Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Instructions/function*": { + "Web/JavaScript/Reference/Statements/function*": { "modified": "2020-10-15T21:27:53.565Z", "contributors": [ "fscholz", @@ -37621,14 +37879,27 @@ "risq" ] }, - "Web/JavaScript/Reference/Instructions/if...else": { + "Web/JavaScript/Reference/Statements/function": { + "modified": "2020-10-15T21:24:24.783Z", + "contributors": [ + "SphinxKnight", + "teoli" + ] + }, + "Web/JavaScript/Reference/Statements/if...else": { "modified": "2020-10-15T21:24:26.186Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Instructions/import": { + "Web/JavaScript/Reference/Statements/import.meta": { + "modified": "2020-10-15T22:06:37.821Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Statements/import": { "modified": "2020-10-15T21:24:28.177Z", "contributors": [ "SphinxKnight", @@ -37643,13 +37914,18 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/import.meta": { - "modified": "2020-10-15T22:06:37.821Z", + "Web/JavaScript/Reference/Statements": { + "modified": "2020-10-15T21:11:24.453Z", "contributors": [ - "SphinxKnight" + "chrisdavidmills", + "SphinxKnight", + "juestzmichael", + "fscholz", + "teoli", + "matteodelabre" ] }, - "Web/JavaScript/Reference/Instructions/label": { + "Web/JavaScript/Reference/Statements/label": { "modified": "2020-10-15T21:24:24.295Z", "contributors": [ "SphinxKnight", @@ -37657,7 +37933,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/let": { + "Web/JavaScript/Reference/Statements/let": { "modified": "2020-10-15T21:25:01.187Z", "contributors": [ "javascriptdezero", @@ -37672,7 +37948,7 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Instructions/return": { + "Web/JavaScript/Reference/Statements/return": { "modified": "2020-10-15T21:16:56.693Z", "contributors": [ "SphinxKnight", @@ -37682,7 +37958,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Instructions/switch": { + "Web/JavaScript/Reference/Statements/switch": { "modified": "2020-10-15T21:25:06.411Z", "contributors": [ "SphinxKnight", @@ -37692,7 +37968,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/throw": { + "Web/JavaScript/Reference/Statements/throw": { "modified": "2020-10-15T21:05:28.313Z", "contributors": [ "SphinxKnight", @@ -37704,7 +37980,7 @@ "Findel" ] }, - "Web/JavaScript/Reference/Instructions/try...catch": { + "Web/JavaScript/Reference/Statements/try...catch": { "modified": "2020-10-15T21:25:04.331Z", "contributors": [ "SphinxKnight", @@ -37716,7 +37992,7 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Instructions/var": { + "Web/JavaScript/Reference/Statements/var": { "modified": "2020-10-15T21:25:05.879Z", "contributors": [ "javascriptdezero", @@ -37725,21 +38001,28 @@ "teoli" ] }, - "Web/JavaScript/Reference/Instructions/while": { + "Web/JavaScript/Reference/Statements/Empty": { + "modified": "2020-10-15T21:30:54.634Z", + "contributors": [ + "SphinxKnight", + "fscholz" + ] + }, + "Web/JavaScript/Reference/Statements/while": { "modified": "2020-10-15T21:25:04.095Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Instructions/with": { + "Web/JavaScript/Reference/Statements/with": { "modified": "2020-10-15T21:25:01.861Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Les_protocoles_iteration": { + "Web/JavaScript/Reference/Iteration_protocols": { "modified": "2020-03-12T19:39:18.697Z", "contributors": [ "SphinxKnight", @@ -37750,7 +38033,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Littéraux_gabarits": { + "Web/JavaScript/Reference/Template_literals": { "modified": "2020-10-15T21:31:15.226Z", "contributors": [ "AntoineJT", @@ -37768,83 +38051,37 @@ "Bat" ] }, - "Web/JavaScript/Reference/Mots_réservés": { - "modified": "2019-03-24T00:10:19.603Z", - "contributors": [ - "06Minazuki", - "teoli", - "SphinxKnight", - "matteodelabre" - ] - }, - "Web/JavaScript/Reference/Objets_globaux": { - "modified": "2020-03-12T19:36:17.945Z", - "contributors": [ - "SphinxKnight", - "tregagnon", - "ltearno", - "BenoitL", - "teoli", - "AbrahamT", - "matteodelabre" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/AggregateError": { + "Web/JavaScript/Reference/Global_Objects/AggregateError": { "modified": "2020-10-15T22:31:39.551Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array": { - "modified": "2020-10-15T21:06:55.877Z", - "contributors": [ - "jeremymouzin", - "SphinxKnight", - "gloucklegnou", - "a-mt", - "edspeedy", - "Johanny", - "Lotfire", - "maxdow", - "PulsarBlow", - "teoli", - "milouse", - "fscholz", - "tregagnon", - "fkhannouf", - "dwogsi", - "LaBoumerde", - "petitphp", - "AbrahamT", - "Manu1400", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Array/@@iterator": { + "Web/JavaScript/Reference/Global_Objects/Array/@@iterator": { "modified": "2020-10-15T21:32:00.777Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/@@species": { + "Web/JavaScript/Reference/Global_Objects/Array/@@species": { "modified": "2020-10-15T21:44:52.317Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/@@unscopables": { + "Web/JavaScript/Reference/Global_Objects/Array/@@unscopables": { "modified": "2020-10-15T21:44:45.304Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/Array": { + "Web/JavaScript/Reference/Global_Objects/Array/Array": { "modified": "2020-10-15T22:31:39.523Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/concat": { + "Web/JavaScript/Reference/Global_Objects/Array/concat": { "modified": "2020-10-15T21:17:19.754Z", "contributors": [ "mathildebuenerd", @@ -37856,7 +38093,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/copyWithin": { + "Web/JavaScript/Reference/Global_Objects/Array/copyWithin": { "modified": "2020-10-15T21:28:07.794Z", "contributors": [ "SphinxKnight", @@ -37865,7 +38102,7 @@ "ferncoder" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/entries": { + "Web/JavaScript/Reference/Global_Objects/Array/entries": { "modified": "2020-10-15T21:27:16.960Z", "contributors": [ "golngaz", @@ -37875,7 +38112,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/every": { + "Web/JavaScript/Reference/Global_Objects/Array/every": { "modified": "2020-10-15T21:16:43.603Z", "contributors": [ "SphinxKnight", @@ -37886,7 +38123,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/fill": { + "Web/JavaScript/Reference/Global_Objects/Array/fill": { "modified": "2020-10-15T21:28:08.106Z", "contributors": [ "SphinxKnight", @@ -37895,7 +38132,7 @@ "ferncoder" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/filter": { + "Web/JavaScript/Reference/Global_Objects/Array/filter": { "modified": "2020-10-15T21:26:02.980Z", "contributors": [ "SphinxKnight", @@ -37911,7 +38148,7 @@ "galymn" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/find": { + "Web/JavaScript/Reference/Global_Objects/Array/find": { "modified": "2020-10-15T21:28:09.268Z", "contributors": [ "SphinxKnight", @@ -37922,14 +38159,14 @@ "ferncoder" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/findIndex": { + "Web/JavaScript/Reference/Global_Objects/Array/findIndex": { "modified": "2020-10-15T21:27:45.311Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/flat": { + "Web/JavaScript/Reference/Global_Objects/Array/flat": { "modified": "2020-10-15T22:01:55.243Z", "contributors": [ "Baptistou", @@ -37938,14 +38175,14 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/flatMap": { + "Web/JavaScript/Reference/Global_Objects/Array/flatMap": { "modified": "2020-10-15T22:02:17.228Z", "contributors": [ "Baptistou", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/forEach": { + "Web/JavaScript/Reference/Global_Objects/Array/forEach": { "modified": "2020-10-15T21:25:32.887Z", "contributors": [ "SphinxKnight", @@ -37960,14 +38197,14 @@ "antham" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/from": { + "Web/JavaScript/Reference/Global_Objects/Array/from": { "modified": "2020-10-15T21:29:07.650Z", "contributors": [ "SphinxKnight", "Acen1991" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/includes": { + "Web/JavaScript/Reference/Global_Objects/Array/includes": { "modified": "2020-10-15T21:30:41.127Z", "contributors": [ "SphinxKnight", @@ -37980,7 +38217,32 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/indexOf": { + "Web/JavaScript/Reference/Global_Objects/Array": { + "modified": "2020-10-15T21:06:55.877Z", + "contributors": [ + "jeremymouzin", + "SphinxKnight", + "gloucklegnou", + "a-mt", + "edspeedy", + "Johanny", + "Lotfire", + "maxdow", + "PulsarBlow", + "teoli", + "milouse", + "fscholz", + "tregagnon", + "fkhannouf", + "dwogsi", + "LaBoumerde", + "petitphp", + "AbrahamT", + "Manu1400", + "daniel35310" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Array/indexOf": { "modified": "2020-10-15T21:21:07.609Z", "contributors": [ "SphinxKnight", @@ -37990,7 +38252,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/isArray": { + "Web/JavaScript/Reference/Global_Objects/Array/isArray": { "modified": "2020-10-15T21:27:06.801Z", "contributors": [ "SphinxKnight", @@ -38002,7 +38264,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/join": { + "Web/JavaScript/Reference/Global_Objects/Array/join": { "modified": "2020-10-15T21:26:44.950Z", "contributors": [ "SphinxKnight", @@ -38011,7 +38273,7 @@ "hellsingblack" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/keys": { + "Web/JavaScript/Reference/Global_Objects/Array/keys": { "modified": "2020-10-15T21:27:15.242Z", "contributors": [ "SphinxKnight", @@ -38019,7 +38281,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/lastIndexOf": { + "Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf": { "modified": "2020-10-15T21:21:14.899Z", "contributors": [ "lespacedunmatin", @@ -38028,7 +38290,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/length": { + "Web/JavaScript/Reference/Global_Objects/Array/length": { "modified": "2020-10-15T21:26:47.857Z", "contributors": [ "jeremymouzin", @@ -38039,7 +38301,7 @@ "greygjhart" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/map": { + "Web/JavaScript/Reference/Global_Objects/Array/map": { "modified": "2020-10-15T21:16:43.810Z", "contributors": [ "SphinxKnight", @@ -38055,7 +38317,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/of": { + "Web/JavaScript/Reference/Global_Objects/Array/of": { "modified": "2020-10-15T21:26:53.760Z", "contributors": [ "SphinxKnight", @@ -38064,7 +38326,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/pop": { + "Web/JavaScript/Reference/Global_Objects/Array/pop": { "modified": "2020-10-15T21:26:02.895Z", "contributors": [ "SphinxKnight", @@ -38074,7 +38336,7 @@ "PifyZ" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/prototype": { + "orphaned/Web/JavaScript/Reference/Global_Objects/Array/prototype": { "modified": "2020-10-15T21:26:50.016Z", "contributors": [ "SphinxKnight", @@ -38083,7 +38345,7 @@ "greygjhart" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/push": { + "Web/JavaScript/Reference/Global_Objects/Array/push": { "modified": "2020-10-15T21:26:49.987Z", "contributors": [ "mathildebuenerd", @@ -38094,7 +38356,7 @@ "gsanson" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/reduce": { + "Web/JavaScript/Reference/Global_Objects/Array/Reduce": { "modified": "2020-10-15T21:26:40.462Z", "contributors": [ "yorick-dumet", @@ -38120,7 +38382,7 @@ "Exirel" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/reduceRight": { + "Web/JavaScript/Reference/Global_Objects/Array/ReduceRight": { "modified": "2020-10-15T21:26:44.433Z", "contributors": [ "SphinxKnight", @@ -38128,7 +38390,7 @@ "Exirel" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/reverse": { + "Web/JavaScript/Reference/Global_Objects/Array/reverse": { "modified": "2020-10-15T21:17:28.453Z", "contributors": [ "SphinxKnight", @@ -38140,7 +38402,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/shift": { + "Web/JavaScript/Reference/Global_Objects/Array/shift": { "modified": "2020-10-15T21:26:14.469Z", "contributors": [ "SphinxKnight", @@ -38151,7 +38413,7 @@ "soyuka" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/slice": { + "Web/JavaScript/Reference/Global_Objects/Array/slice": { "modified": "2020-10-15T21:17:22.236Z", "contributors": [ "SphinxKnight", @@ -38163,7 +38425,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/some": { + "Web/JavaScript/Reference/Global_Objects/Array/some": { "modified": "2020-10-15T21:16:43.566Z", "contributors": [ "SphinxKnight", @@ -38176,7 +38438,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/sort": { + "Web/JavaScript/Reference/Global_Objects/Array/sort": { "modified": "2020-10-15T21:17:21.712Z", "contributors": [ "Giildo", @@ -38194,7 +38456,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/splice": { + "Web/JavaScript/Reference/Global_Objects/Array/splice": { "modified": "2020-10-15T21:20:43.177Z", "contributors": [ "Cirediallo", @@ -38216,7 +38478,7 @@ "goofy_bz" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/Array/toLocaleString": { "modified": "2020-10-15T21:27:22.000Z", "contributors": [ "SphinxKnight", @@ -38224,7 +38486,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/toSource": { + "Web/JavaScript/Reference/Global_Objects/Array/toSource": { "modified": "2020-10-15T21:17:29.057Z", "contributors": [ "SphinxKnight", @@ -38234,7 +38496,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/toString": { + "Web/JavaScript/Reference/Global_Objects/Array/toString": { "modified": "2020-10-15T21:17:20.067Z", "contributors": [ "SphinxKnight", @@ -38244,7 +38506,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/unshift": { + "Web/JavaScript/Reference/Global_Objects/Array/unshift": { "modified": "2020-10-15T21:17:22.122Z", "contributors": [ "SphinxKnight", @@ -38255,200 +38517,194 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Array/values": { + "Web/JavaScript/Reference/Global_Objects/Array/values": { "modified": "2020-10-15T21:30:42.817Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer": { - "modified": "2020-10-15T21:09:26.619Z", - "contributors": [ - "SphinxKnight", - "BenoitEsnard", - "Jeremie", - "warpdesign", - "teoli", - "tregagnon", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/@@species": { + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species": { "modified": "2020-10-15T21:44:52.685Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/byteLength": { + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength": { "modified": "2020-10-15T21:29:55.674Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/isView": { - "modified": "2020-10-15T21:29:54.795Z", + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer": { + "modified": "2020-10-15T21:09:26.619Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "BenoitEsnard", + "Jeremie", + "warpdesign", + "teoli", + "tregagnon", + "daniel35310" ] }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype": { - "modified": "2020-10-15T21:29:56.629Z", + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView": { + "modified": "2020-10-15T21:29:54.795Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/slice": { + "Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice": { "modified": "2020-10-15T21:29:55.560Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/AsyncFunction": { + "Web/JavaScript/Reference/Global_Objects/AsyncFunction": { "modified": "2020-10-15T21:50:19.728Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/AsyncFunction/prototype": { + "orphaned/Web/JavaScript/Reference/Global_Objects/AsyncFunction/prototype": { "modified": "2020-10-15T21:50:20.188Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics": { - "modified": "2020-10-15T21:43:02.596Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/add": { + "Web/JavaScript/Reference/Global_Objects/Atomics/add": { "modified": "2020-10-15T21:42:58.119Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/and": { + "Web/JavaScript/Reference/Global_Objects/Atomics/and": { "modified": "2020-10-15T21:42:58.821Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/compareExchange": { + "Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange": { "modified": "2020-10-15T21:42:58.503Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/exchange": { + "Web/JavaScript/Reference/Global_Objects/Atomics/exchange": { "modified": "2020-10-15T21:43:01.150Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/isLockFree": { + "Web/JavaScript/Reference/Global_Objects/Atomics": { + "modified": "2020-10-15T21:43:02.596Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Atomics/isLockFree": { "modified": "2020-10-15T21:43:02.726Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/load": { + "Web/JavaScript/Reference/Global_Objects/Atomics/load": { "modified": "2020-10-15T21:42:59.834Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/notify": { + "Web/JavaScript/Reference/Global_Objects/Atomics/notify": { "modified": "2020-10-15T21:42:59.331Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/or": { + "Web/JavaScript/Reference/Global_Objects/Atomics/or": { "modified": "2020-10-15T21:42:58.746Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/store": { + "Web/JavaScript/Reference/Global_Objects/Atomics/store": { "modified": "2020-10-15T21:42:59.524Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/sub": { + "Web/JavaScript/Reference/Global_Objects/Atomics/sub": { "modified": "2020-10-15T21:42:59.630Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/wait": { + "Web/JavaScript/Reference/Global_Objects/Atomics/wait": { "modified": "2020-10-15T21:42:59.013Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Atomics/xor": { + "Web/JavaScript/Reference/Global_Objects/Atomics/xor": { "modified": "2020-10-15T21:43:00.311Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt": { - "modified": "2020-10-15T22:12:28.729Z", - "contributors": [ - "SphinxKnight", - "sarahgp" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/asIntN": { + "Web/JavaScript/Reference/Global_Objects/BigInt/asIntN": { "modified": "2020-10-15T22:17:33.198Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/asUintN": { + "Web/JavaScript/Reference/Global_Objects/BigInt/asUintN": { "modified": "2020-10-15T22:17:30.722Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/prototype": { + "Web/JavaScript/Reference/Global_Objects/BigInt": { + "modified": "2020-10-15T22:12:28.729Z", + "contributors": [ + "SphinxKnight", + "sarahgp" + ] + }, + "orphaned/Web/JavaScript/Reference/Global_Objects/BigInt/prototype": { "modified": "2020-10-15T22:12:26.325Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/BigInt/toLocaleString": { "modified": "2020-10-15T22:20:26.529Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/toString": { + "Web/JavaScript/Reference/Global_Objects/BigInt/toString": { "modified": "2020-10-15T22:20:24.664Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt/valueOf": { + "Web/JavaScript/Reference/Global_Objects/BigInt/valueOf": { "modified": "2020-10-15T22:20:24.533Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigInt64Array": { + "Web/JavaScript/Reference/Global_Objects/BigInt64Array": { "modified": "2020-10-15T22:20:27.074Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/BigUint64Array": { + "Web/JavaScript/Reference/Global_Objects/BigUint64Array": { "modified": "2020-10-15T22:20:27.506Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Boolean": { + "Web/JavaScript/Reference/Global_Objects/Boolean": { "modified": "2020-10-15T21:10:16.073Z", "contributors": [ "QuentinR", @@ -38464,19 +38720,7 @@ "daniel35310" ] }, - "Web/JavaScript/Reference/Objets_globaux/Boolean/prototype": { - "modified": "2020-10-15T21:15:22.913Z", - "contributors": [ - "SphinxKnight", - "npichon", - "tregagnon", - "teoli", - "Jeremie", - "Delapouite", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Boolean/toSource": { + "Web/JavaScript/Reference/Global_Objects/Boolean/toSource": { "modified": "2020-10-15T21:27:16.458Z", "contributors": [ "SphinxKnight", @@ -38484,7 +38728,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Boolean/toString": { + "Web/JavaScript/Reference/Global_Objects/Boolean/toString": { "modified": "2020-10-15T21:26:54.585Z", "contributors": [ "SphinxKnight", @@ -38494,7 +38738,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Boolean/valueOf": { + "Web/JavaScript/Reference/Global_Objects/Boolean/valueOf": { "modified": "2020-10-15T21:27:17.527Z", "contributors": [ "SphinxKnight", @@ -38502,193 +38746,158 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView": { - "modified": "2020-10-15T21:29:58.170Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/DataView/buffer": { + "Web/JavaScript/Reference/Global_Objects/DataView/buffer": { "modified": "2020-10-15T21:29:57.315Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/byteLength": { + "Web/JavaScript/Reference/Global_Objects/DataView/byteLength": { "modified": "2020-10-15T21:29:57.009Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/byteOffset": { + "Web/JavaScript/Reference/Global_Objects/DataView/byteOffset": { "modified": "2020-10-15T21:29:53.882Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getBigInt64": { + "Web/JavaScript/Reference/Global_Objects/DataView/getBigInt64": { "modified": "2020-10-15T22:20:24.788Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getBigUint64": { + "Web/JavaScript/Reference/Global_Objects/DataView/getBigUint64": { "modified": "2020-10-15T22:20:26.008Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getFloat32": { + "Web/JavaScript/Reference/Global_Objects/DataView/getFloat32": { "modified": "2020-10-15T21:29:57.781Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getFloat64": { + "Web/JavaScript/Reference/Global_Objects/DataView/getFloat64": { "modified": "2020-10-15T21:30:01.113Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getInt16": { + "Web/JavaScript/Reference/Global_Objects/DataView/getInt16": { "modified": "2020-10-15T21:30:00.676Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getInt32": { + "Web/JavaScript/Reference/Global_Objects/DataView/getInt32": { "modified": "2020-10-15T21:30:00.745Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getInt8": { + "Web/JavaScript/Reference/Global_Objects/DataView/getInt8": { "modified": "2020-10-15T21:30:00.981Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getUint16": { + "Web/JavaScript/Reference/Global_Objects/DataView/getUint16": { "modified": "2020-10-15T21:30:01.014Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getUint32": { + "Web/JavaScript/Reference/Global_Objects/DataView/getUint32": { "modified": "2020-10-15T21:30:01.203Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/getUint8": { + "Web/JavaScript/Reference/Global_Objects/DataView/getUint8": { "modified": "2020-10-15T21:30:02.259Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/prototype": { - "modified": "2020-10-15T21:29:57.016Z", + "Web/JavaScript/Reference/Global_Objects/DataView": { + "modified": "2020-10-15T21:29:58.170Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setBigInt64": { + "Web/JavaScript/Reference/Global_Objects/DataView/setBigInt64": { "modified": "2020-10-15T22:20:26.386Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setBigUint64": { + "Web/JavaScript/Reference/Global_Objects/DataView/setBigUint64": { "modified": "2020-10-15T22:20:26.869Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setFloat32": { + "Web/JavaScript/Reference/Global_Objects/DataView/setFloat32": { "modified": "2020-10-15T21:30:01.968Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setFloat64": { + "Web/JavaScript/Reference/Global_Objects/DataView/setFloat64": { "modified": "2020-10-15T21:30:01.693Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setInt16": { + "Web/JavaScript/Reference/Global_Objects/DataView/setInt16": { "modified": "2020-10-15T21:30:01.886Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setInt32": { + "Web/JavaScript/Reference/Global_Objects/DataView/setInt32": { "modified": "2020-10-15T21:30:01.950Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setInt8": { + "Web/JavaScript/Reference/Global_Objects/DataView/setInt8": { "modified": "2020-10-15T21:30:02.761Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setUint16": { + "Web/JavaScript/Reference/Global_Objects/DataView/setUint16": { "modified": "2020-10-15T21:30:02.932Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setUint32": { + "Web/JavaScript/Reference/Global_Objects/DataView/setUint32": { "modified": "2020-10-15T21:30:03.206Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/DataView/setUint8": { + "Web/JavaScript/Reference/Global_Objects/DataView/setUint8": { "modified": "2020-10-15T21:30:03.029Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date": { - "modified": "2020-10-15T21:10:15.879Z", - "contributors": [ - "SphinxKnight", - "Rigaudie", - "necraidan", - "JulienBertacco", - "madarche", - "jyloup", - "noriam", - "sebastienserre", - "teoli", - "Goofy", - "tregagnon", - "LaBoumerde", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Date/@@toPrimitive": { + "Web/JavaScript/Reference/Global_Objects/Date/@@toPrimitive": { "modified": "2020-10-15T21:39:20.661Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/UTC": { - "modified": "2020-10-15T21:16:54.441Z", - "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Date/getDate": { + "Web/JavaScript/Reference/Global_Objects/Date/getDate": { "modified": "2020-10-15T21:17:24.897Z", "contributors": [ "SphinxKnight", @@ -38697,7 +38906,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getDay": { + "Web/JavaScript/Reference/Global_Objects/Date/getDay": { "modified": "2020-10-15T21:17:31.291Z", "contributors": [ "SphinxKnight", @@ -38706,7 +38915,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getFullYear": { + "Web/JavaScript/Reference/Global_Objects/Date/getFullYear": { "modified": "2020-10-15T21:17:23.917Z", "contributors": [ "edspeedy", @@ -38716,7 +38925,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getHours": { + "Web/JavaScript/Reference/Global_Objects/Date/getHours": { "modified": "2020-10-15T21:16:26.282Z", "contributors": [ "SphinxKnight", @@ -38726,7 +38935,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds": { + "Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds": { "modified": "2020-10-15T21:16:20.630Z", "contributors": [ "SphinxKnight", @@ -38736,7 +38945,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getMinutes": { + "Web/JavaScript/Reference/Global_Objects/Date/getMinutes": { "modified": "2020-10-15T21:17:24.950Z", "contributors": [ "SphinxKnight", @@ -38745,7 +38954,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getMonth": { + "Web/JavaScript/Reference/Global_Objects/Date/getMonth": { "modified": "2020-10-15T21:17:27.143Z", "contributors": [ "SphinxKnight", @@ -38754,7 +38963,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getSeconds": { + "Web/JavaScript/Reference/Global_Objects/Date/getSeconds": { "modified": "2020-10-15T21:17:23.294Z", "contributors": [ "SphinxKnight", @@ -38764,7 +38973,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getTime": { + "Web/JavaScript/Reference/Global_Objects/Date/getTime": { "modified": "2020-10-15T21:17:23.998Z", "contributors": [ "SphinxKnight", @@ -38773,7 +38982,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getTimezoneOffset": { + "Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset": { "modified": "2020-10-15T21:26:59.830Z", "contributors": [ "SphinxKnight", @@ -38781,7 +38990,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCDate": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCDate": { "modified": "2020-10-15T21:26:54.962Z", "contributors": [ "SphinxKnight", @@ -38789,7 +38998,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCDay": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCDay": { "modified": "2020-10-15T21:27:01.688Z", "contributors": [ "SphinxKnight", @@ -38797,7 +39006,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCFullYear": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear": { "modified": "2020-10-15T21:26:58.501Z", "contributors": [ "SphinxKnight", @@ -38805,7 +39014,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCHours": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCHours": { "modified": "2020-10-15T21:26:51.252Z", "contributors": [ "SphinxKnight", @@ -38813,7 +39022,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCMilliseconds": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds": { "modified": "2020-10-15T21:27:07.959Z", "contributors": [ "SphinxKnight", @@ -38821,7 +39030,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCMinutes": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes": { "modified": "2020-10-15T21:26:54.190Z", "contributors": [ "SphinxKnight", @@ -38829,7 +39038,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCMonth": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth": { "modified": "2020-10-15T21:26:53.924Z", "contributors": [ "SphinxKnight", @@ -38837,7 +39046,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getUTCSeconds": { + "Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds": { "modified": "2020-10-15T21:27:13.434Z", "contributors": [ "SphinxKnight", @@ -38845,7 +39054,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/getYear": { + "Web/JavaScript/Reference/Global_Objects/Date/getYear": { "modified": "2020-10-15T21:17:22.042Z", "contributors": [ "SphinxKnight", @@ -38855,7 +39064,25 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/now": { + "Web/JavaScript/Reference/Global_Objects/Date": { + "modified": "2020-10-15T21:10:15.879Z", + "contributors": [ + "SphinxKnight", + "Rigaudie", + "necraidan", + "JulienBertacco", + "madarche", + "jyloup", + "noriam", + "sebastienserre", + "teoli", + "Goofy", + "tregagnon", + "LaBoumerde", + "daniel35310" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/now": { "modified": "2020-10-15T21:24:17.054Z", "contributors": [ "SphinxKnight", @@ -38865,7 +39092,7 @@ "Delapouite" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/parse": { + "Web/JavaScript/Reference/Global_Objects/Date/parse": { "modified": "2020-10-15T21:16:58.585Z", "contributors": [ "JNa0", @@ -38881,18 +39108,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/prototype": { - "modified": "2020-10-15T21:15:25.178Z", - "contributors": [ - "SphinxKnight", - "Goofy", - "teoli", - "tregagnon", - "Jeremie", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Date/setDate": { + "Web/JavaScript/Reference/Global_Objects/Date/setDate": { "modified": "2020-10-15T21:27:13.007Z", "contributors": [ "SphinxKnight", @@ -38901,7 +39117,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setFullYear": { + "Web/JavaScript/Reference/Global_Objects/Date/setFullYear": { "modified": "2020-10-15T21:27:13.969Z", "contributors": [ "SphinxKnight", @@ -38909,7 +39125,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setHours": { + "Web/JavaScript/Reference/Global_Objects/Date/setHours": { "modified": "2020-10-15T21:27:13.599Z", "contributors": [ "SphinxKnight", @@ -38917,7 +39133,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setMilliseconds": { + "Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds": { "modified": "2020-10-15T21:27:13.229Z", "contributors": [ "SphinxKnight", @@ -38925,7 +39141,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setMinutes": { + "Web/JavaScript/Reference/Global_Objects/Date/setMinutes": { "modified": "2020-10-15T21:27:17.878Z", "contributors": [ "SphinxKnight", @@ -38933,7 +39149,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setMonth": { + "Web/JavaScript/Reference/Global_Objects/Date/setMonth": { "modified": "2020-10-15T21:27:13.435Z", "contributors": [ "SphinxKnight", @@ -38941,7 +39157,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setSeconds": { + "Web/JavaScript/Reference/Global_Objects/Date/setSeconds": { "modified": "2020-10-15T21:27:13.364Z", "contributors": [ "SphinxKnight", @@ -38949,7 +39165,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setTime": { + "Web/JavaScript/Reference/Global_Objects/Date/setTime": { "modified": "2020-10-15T21:27:14.067Z", "contributors": [ "SphinxKnight", @@ -38957,7 +39173,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCDate": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCDate": { "modified": "2020-10-15T21:27:14.050Z", "contributors": [ "SphinxKnight", @@ -38965,7 +39181,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCFullYear": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear": { "modified": "2020-10-15T21:27:14.373Z", "contributors": [ "SphinxKnight", @@ -38973,7 +39189,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCHours": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCHours": { "modified": "2020-10-15T21:27:14.117Z", "contributors": [ "SphinxKnight", @@ -38981,7 +39197,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCMilliseconds": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds": { "modified": "2020-10-15T21:27:15.319Z", "contributors": [ "SphinxKnight", @@ -38989,7 +39205,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCMinutes": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes": { "modified": "2020-10-15T21:27:15.201Z", "contributors": [ "SphinxKnight", @@ -38997,7 +39213,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCMonth": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth": { "modified": "2020-10-15T21:27:14.657Z", "contributors": [ "SphinxKnight", @@ -39005,7 +39221,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setUTCSeconds": { + "Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds": { "modified": "2020-10-15T21:27:15.585Z", "contributors": [ "SphinxKnight", @@ -39013,7 +39229,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/setYear": { + "Web/JavaScript/Reference/Global_Objects/Date/setYear": { "modified": "2020-10-15T21:27:18.964Z", "contributors": [ "SphinxKnight", @@ -39021,7 +39237,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toDateString": { + "Web/JavaScript/Reference/Global_Objects/Date/toDateString": { "modified": "2020-10-15T21:27:17.686Z", "contributors": [ "SphinxKnight", @@ -39030,7 +39246,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toGMTString": { + "Web/JavaScript/Reference/Global_Objects/Date/toGMTString": { "modified": "2020-10-15T21:27:18.821Z", "contributors": [ "SphinxKnight", @@ -39038,7 +39254,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toISOString": { + "Web/JavaScript/Reference/Global_Objects/Date/toISOString": { "modified": "2020-10-15T21:27:16.901Z", "contributors": [ "SphinxKnight", @@ -39046,7 +39262,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toJSON": { + "Web/JavaScript/Reference/Global_Objects/Date/toJSON": { "modified": "2020-10-15T21:27:15.987Z", "contributors": [ "SphinxKnight", @@ -39054,7 +39270,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString": { + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString": { "modified": "2020-10-15T21:27:19.231Z", "contributors": [ "SphinxKnight", @@ -39063,7 +39279,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleString": { "modified": "2020-10-15T21:27:19.378Z", "contributors": [ "SphinxKnight", @@ -39072,7 +39288,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toLocaleTimeString": { + "Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString": { "modified": "2020-10-15T21:27:19.075Z", "contributors": [ "SphinxKnight", @@ -39081,7 +39297,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toSource": { + "Web/JavaScript/Reference/Global_Objects/Date/toSource": { "modified": "2020-10-15T21:27:17.217Z", "contributors": [ "SphinxKnight", @@ -39089,7 +39305,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toString": { + "Web/JavaScript/Reference/Global_Objects/Date/toString": { "modified": "2020-10-15T21:27:18.466Z", "contributors": [ "SphinxKnight", @@ -39097,7 +39313,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toTimeString": { + "Web/JavaScript/Reference/Global_Objects/Date/toTimeString": { "modified": "2020-10-15T21:27:18.536Z", "contributors": [ "SphinxKnight", @@ -39106,7 +39322,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/toUTCString": { + "Web/JavaScript/Reference/Global_Objects/Date/toUTCString": { "modified": "2020-10-15T21:27:16.521Z", "contributors": [ "SphinxKnight", @@ -39114,7 +39330,18 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Date/valueOF": { + "Web/JavaScript/Reference/Global_Objects/Date/UTC": { + "modified": "2020-10-15T21:16:54.441Z", + "contributors": [ + "SphinxKnight", + "teoli", + "tregagnon", + "Jeremie", + "Mgjbot", + "BenoitL" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Date/valueOf": { "modified": "2020-10-15T21:24:17.644Z", "contributors": [ "SphinxKnight", @@ -39123,33 +39350,51 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error": { - "modified": "2020-11-11T07:34:32.605Z", + "Web/JavaScript/Reference/Global_Objects/decodeURI": { + "modified": "2020-10-15T21:11:18.823Z", "contributors": [ - "madarche", "SphinxKnight", - "PhilippePerret", - "edspeedy", - "HelloEdit", - "NemoNobobyPersonne", - "gouroujo", + "alepee", "teoli", - "Goofy", - "tregagnon", - "fscholz", - "rd6137" + "Jeremie", + "matteodelabre" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/Stack": { - "modified": "2020-10-15T21:27:18.706Z", + "Web/JavaScript/Reference/Global_Objects/decodeURIComponent": { + "modified": "2020-10-15T21:11:20.323Z", "contributors": [ "SphinxKnight", - "NemoNobobyPersonne", "teoli", - "tregagnon" + "Jeremie", + "matteodelabre" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/columnNumber": { + "Web/JavaScript/Reference/Global_Objects/encodeURI": { + "modified": "2020-10-15T21:11:19.121Z", + "contributors": [ + "SphinxKnight", + "Hartesic", + "arnaud.wixiweb", + "LorisG", + "teoli", + "Jeremie", + "Delapouite", + "matteodelabre" + ] + }, + "Web/JavaScript/Reference/Global_Objects/encodeURIComponent": { + "modified": "2020-10-15T21:17:24.673Z", + "contributors": [ + "SphinxKnight", + "tdraier", + "fscholz", + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/columnNumber": { "modified": "2020-10-15T21:27:17.412Z", "contributors": [ "SphinxKnight", @@ -39158,7 +39403,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/fileName": { + "Web/JavaScript/Reference/Global_Objects/Error/fileName": { "modified": "2020-10-15T21:27:27.112Z", "contributors": [ "SphinxKnight", @@ -39166,7 +39411,24 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/lineNumber": { + "Web/JavaScript/Reference/Global_Objects/Error": { + "modified": "2020-11-11T07:34:32.605Z", + "contributors": [ + "madarche", + "SphinxKnight", + "PhilippePerret", + "edspeedy", + "HelloEdit", + "NemoNobobyPersonne", + "gouroujo", + "teoli", + "Goofy", + "tregagnon", + "fscholz", + "rd6137" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Error/lineNumber": { "modified": "2020-10-15T21:27:20.066Z", "contributors": [ "SphinxKnight", @@ -39174,7 +39436,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/message": { + "Web/JavaScript/Reference/Global_Objects/Error/message": { "modified": "2020-10-15T21:27:20.134Z", "contributors": [ "SphinxKnight", @@ -39182,7 +39444,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/name": { + "Web/JavaScript/Reference/Global_Objects/Error/name": { "modified": "2020-10-15T21:27:18.722Z", "contributors": [ "SphinxKnight", @@ -39190,17 +39452,16 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/prototype": { - "modified": "2020-10-15T21:27:19.966Z", + "Web/JavaScript/Reference/Global_Objects/Error/Stack": { + "modified": "2020-10-15T21:27:18.706Z", "contributors": [ - "Thebarda", "SphinxKnight", + "NemoNobobyPersonne", "teoli", - "Goofy", "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/toSource": { + "Web/JavaScript/Reference/Global_Objects/Error/toSource": { "modified": "2020-10-15T21:27:20.298Z", "contributors": [ "SphinxKnight", @@ -39208,7 +39469,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Error/toString": { + "Web/JavaScript/Reference/Global_Objects/Error/toString": { "modified": "2020-10-15T21:27:18.952Z", "contributors": [ "SphinxKnight", @@ -39216,21 +39477,34 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/EvalError": { - "modified": "2020-10-15T21:27:25.607Z", + "Web/JavaScript/Reference/Global_Objects/escape": { + "modified": "2020-10-15T21:31:15.173Z", "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Global_Objects/eval": { + "modified": "2020-10-15T21:13:54.788Z", + "contributors": [ + "tristantheb", + "yohannroussel", "SphinxKnight", - "teoli" + "kiux", + "teoli", + "Jeremie", + "Tiller", + "Mgjbot", + "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/EvalError/prototype": { - "modified": "2020-10-15T21:27:20.266Z", + "Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2020-10-15T21:27:25.607Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Float32Array": { + "Web/JavaScript/Reference/Global_Objects/Float32Array": { "modified": "2020-10-15T21:07:00.034Z", "contributors": [ "SphinxKnight", @@ -39239,26 +39513,13 @@ "daniel35310" ] }, - "Web/JavaScript/Reference/Objets_globaux/Float64Array": { + "Web/JavaScript/Reference/Global_Objects/Float64Array": { "modified": "2020-10-15T21:30:11.484Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function": { - "modified": "2020-10-15T21:09:29.700Z", - "contributors": [ - "SphinxKnight", - "darul75", - "teoli", - "tregagnon", - "LaBoumerde", - "Sheppy", - "rat", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Function/apply": { + "Web/JavaScript/Reference/Global_Objects/Function/apply": { "modified": "2020-10-15T21:26:56.787Z", "contributors": [ "SphinxKnight", @@ -39274,7 +39535,7 @@ "jmpp" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/arguments": { + "Web/JavaScript/Reference/Global_Objects/Function/arguments": { "modified": "2020-10-15T21:27:20.892Z", "contributors": [ "SphinxKnight", @@ -39282,7 +39543,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/bind": { + "Web/JavaScript/Reference/Global_Objects/Function/bind": { "modified": "2020-10-15T21:27:41.401Z", "contributors": [ "tristantheb", @@ -39298,7 +39559,7 @@ "flo5589" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/call": { + "Web/JavaScript/Reference/Global_Objects/Function/call": { "modified": "2020-10-15T21:26:54.425Z", "contributors": [ "SphinxKnight", @@ -39311,7 +39572,7 @@ "peb85" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/caller": { + "Web/JavaScript/Reference/Global_Objects/Function/caller": { "modified": "2020-10-15T21:14:32.170Z", "contributors": [ "SphinxKnight", @@ -39321,14 +39582,27 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/displayName": { + "Web/JavaScript/Reference/Global_Objects/Function/displayName": { "modified": "2020-10-15T21:27:20.597Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/length": { + "Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2020-10-15T21:09:29.700Z", + "contributors": [ + "SphinxKnight", + "darul75", + "teoli", + "tregagnon", + "LaBoumerde", + "Sheppy", + "rat", + "daniel35310" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Function/length": { "modified": "2020-10-15T21:14:30.392Z", "contributors": [ "SphinxKnight", @@ -39340,25 +39614,14 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/name": { + "Web/JavaScript/Reference/Global_Objects/Function/name": { "modified": "2020-10-15T21:27:47.349Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/prototype": { - "modified": "2020-10-15T21:14:17.300Z", - "contributors": [ - "SphinxKnight", - "Francoois", - "teoli", - "Jeremie", - "fscholz", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Function/toSource": { + "Web/JavaScript/Reference/Global_Objects/Function/toSource": { "modified": "2020-10-15T21:15:30.131Z", "contributors": [ "fvignals", @@ -39368,7 +39631,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Function/toString": { + "Web/JavaScript/Reference/Global_Objects/Function/toString": { "modified": "2020-10-15T21:15:24.967Z", "contributors": [ "SphinxKnight", @@ -39378,7 +39641,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Generator": { + "Web/JavaScript/Reference/Global_Objects/Generator": { "modified": "2020-10-15T21:32:10.242Z", "contributors": [ "SphinxKnight", @@ -39386,37 +39649,49 @@ "Javascipt" ] }, - "Web/JavaScript/Reference/Objets_globaux/Generator/next": { + "Web/JavaScript/Reference/Global_Objects/Generator/next": { "modified": "2020-10-15T21:32:57.318Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Generator/return": { + "Web/JavaScript/Reference/Global_Objects/Generator/return": { "modified": "2020-10-15T21:32:57.673Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Generator/throw": { + "Web/JavaScript/Reference/Global_Objects/Generator/throw": { "modified": "2020-10-15T21:32:56.957Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/GeneratorFunction": { + "Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { "modified": "2020-10-15T21:32:15.217Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/GeneratorFunction/prototype": { - "modified": "2020-10-15T21:32:11.205Z", + "Web/JavaScript/Reference/Global_Objects/globalThis": { + "modified": "2020-10-15T22:14:26.077Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Infinity": { + "Web/JavaScript/Reference/Global_Objects": { + "modified": "2020-03-12T19:36:17.945Z", + "contributors": [ + "SphinxKnight", + "tregagnon", + "ltearno", + "BenoitL", + "teoli", + "AbrahamT", + "matteodelabre" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Infinity": { "modified": "2020-10-15T21:18:06.071Z", "contributors": [ "SphinxKnight", @@ -39430,25 +39705,25 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Int16Array": { + "Web/JavaScript/Reference/Global_Objects/Int16Array": { "modified": "2020-10-15T21:30:06.153Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Int32Array": { + "Web/JavaScript/Reference/Global_Objects/Int32Array": { "modified": "2020-10-15T21:30:11.336Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Int8Array": { + "Web/JavaScript/Reference/Global_Objects/Int8Array": { "modified": "2020-10-15T21:30:11.858Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/InternalError": { + "Web/JavaScript/Reference/Global_Objects/InternalError": { "modified": "2020-10-15T21:27:45.940Z", "contributors": [ "SphinxKnight", @@ -39456,54 +39731,28 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/InternalError/prototype": { - "modified": "2020-10-15T21:27:47.341Z", - "contributors": [ - "SphinxKnight", - "teoli" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl": { - "modified": "2020-10-15T21:27:56.279Z", - "contributors": [ - "JNa0", - "daformat", - "Louis-Aime", - "Utopiad", - "SphinxKnight", - "NemoNobobyPersonne", - "Goofy" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Collator": { - "modified": "2020-10-15T21:27:54.396Z", - "contributors": [ - "fscholz", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Collator/compare": { + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/compare": { "modified": "2020-10-15T21:28:03.770Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Collator/prototype": { - "modified": "2020-10-15T21:28:03.767Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Collator": { + "modified": "2020-10-15T21:27:54.396Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Collator/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/resolvedOptions": { "modified": "2020-10-15T21:28:03.707Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Collator/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/Collator/supportedLocalesOf": { "modified": "2020-10-15T21:28:03.803Z", "contributors": [ "fscholz", @@ -39511,52 +39760,45 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat": { - "modified": "2020-10-15T21:27:19.315Z", - "contributors": [ - "fscholz", - "SphinxKnight", - "Elendev", - "teoli", - "tregagnon" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/format": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format": { "modified": "2020-10-15T21:28:03.810Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRange": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange": { "modified": "2020-04-21T08:50:52.427Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatRangeToParts": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts": { "modified": "2020-10-15T22:24:17.987Z", "contributors": [ "fscholz", "codedotgs" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/formatToParts": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts": { "modified": "2020-10-15T21:44:45.585Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/prototype": { - "modified": "2020-10-15T21:28:04.014Z", + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { + "modified": "2020-10-15T21:27:19.315Z", "contributors": [ "fscholz", - "SphinxKnight" + "SphinxKnight", + "Elendev", + "teoli", + "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions": { "modified": "2020-10-15T21:28:04.802Z", "contributors": [ "fscholz", @@ -39564,7 +39806,7 @@ "lsda123453" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf": { "modified": "2020-10-15T21:28:04.662Z", "contributors": [ "fscholz", @@ -39572,63 +39814,67 @@ "Nickdouille" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat": { - "modified": "2020-10-15T22:13:54.548Z", + "Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales": { + "modified": "2020-10-15T21:45:48.918Z", "contributors": [ - "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/format": { + "Web/JavaScript/Reference/Global_Objects/Intl": { + "modified": "2020-10-15T21:27:56.279Z", + "contributors": [ + "JNa0", + "daformat", + "Louis-Aime", + "Utopiad", + "SphinxKnight", + "NemoNobobyPersonne", + "Goofy" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format": { "modified": "2020-10-15T22:20:40.935Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/formatToParts": { + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts": { "modified": "2020-10-15T22:21:14.181Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/prototype": { - "modified": "2020-10-15T22:13:56.011Z", + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat": { + "modified": "2020-10-15T22:13:54.548Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions": { "modified": "2020-10-15T22:21:15.989Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf": { "modified": "2020-10-15T22:14:23.938Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale": { - "modified": "2020-10-15T22:17:31.687Z", - "contributors": [ - "fscholz", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/baseName": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/baseName": { "modified": "2020-10-15T22:20:40.682Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/calendar": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar": { "modified": "2020-04-22T15:30:07.297Z", "contributors": [ "Louis-Aime", @@ -39636,197 +39882,176 @@ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/caseFirst": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/caseFirst": { "modified": "2020-10-15T22:20:42.350Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/collation": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/collation": { "modified": "2020-10-15T22:20:43.044Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/hourCycle": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle": { "modified": "2020-10-15T22:20:46.319Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/language": { - "modified": "2020-10-15T22:20:47.232Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale": { + "modified": "2020-10-15T22:17:31.687Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/maximize": { - "modified": "2020-10-15T22:20:47.820Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/language": { + "modified": "2020-10-15T22:20:47.232Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/minimize": { - "modified": "2020-10-15T22:20:48.165Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/maximize": { + "modified": "2020-10-15T22:20:47.820Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numberingSystem": { - "modified": "2020-10-15T22:20:49.432Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/minimize": { + "modified": "2020-10-15T22:20:48.165Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/numeric": { - "modified": "2020-10-15T22:20:50.054Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/numberingSystem": { + "modified": "2020-10-15T22:20:49.432Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/prototype": { - "modified": "2020-10-15T22:21:10.788Z", + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/numeric": { + "modified": "2020-10-15T22:20:50.054Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/region": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/region": { "modified": "2020-10-15T22:20:53.500Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/script": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/script": { "modified": "2020-10-15T22:20:55.739Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/Locale/toString": { + "Web/JavaScript/Reference/Global_Objects/Intl/Locale/toString": { "modified": "2020-10-15T22:20:51.989Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat": { - "modified": "2020-10-15T21:28:08.411Z", - "contributors": [ - "fscholz", - "SphinxKnight", - "polinux" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/format": { + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format": { "modified": "2020-10-15T21:28:08.238Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/formatToParts": { + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts": { "modified": "2020-10-15T21:59:08.586Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/prototype": { - "modified": "2020-10-15T21:28:09.446Z", + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": { + "modified": "2020-10-15T21:28:08.411Z", "contributors": [ "fscholz", - "SphinxKnight" + "SphinxKnight", + "polinux" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/resolvedOptions": { "modified": "2020-10-15T21:28:08.213Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/supportedLocalesOf": { "modified": "2020-10-15T21:28:08.002Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules": { + "Web/JavaScript/Reference/Global_Objects/Intl/PluralRules": { "modified": "2020-10-15T21:59:11.305Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/prototype": { - "modified": "2020-10-15T21:59:10.173Z", - "contributors": [ - "fscholz", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/resolvedOptions": { "modified": "2020-10-15T21:59:10.823Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/select": { + "Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/select": { "modified": "2020-10-15T21:59:10.578Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/supportedLocalesOf": { "modified": "2020-10-15T21:59:09.739Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat": { - "modified": "2020-10-15T22:12:26.525Z", - "contributors": [ - "fscholz", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/format": { + "Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format": { "modified": "2020-10-15T22:13:09.435Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/formatToParts": { + "Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts": { "modified": "2020-10-15T22:13:09.354Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype": { - "modified": "2020-10-15T22:13:09.144Z", + "Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat": { + "modified": "2020-10-15T22:12:26.525Z", "contributors": [ "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/resolvedOptions": { + "Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions": { "modified": "2020-10-15T22:14:27.937Z", "contributors": [ "fscholz", @@ -39834,7 +40059,7 @@ "goofy_mdn" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/supportedLocalesOf": { + "Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf": { "modified": "2020-10-15T22:13:14.833Z", "contributors": [ "fscholz", @@ -39842,13 +40067,29 @@ "goofy_mdn" ] }, - "Web/JavaScript/Reference/Objets_globaux/Intl/getCanonicalLocales": { - "modified": "2020-10-15T21:45:48.918Z", + "Web/JavaScript/Reference/Global_Objects/isFinite": { + "modified": "2020-10-15T21:16:54.332Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/JSON": { + "Web/JavaScript/Reference/Global_Objects/isNaN": { + "modified": "2020-10-15T21:14:14.296Z", + "contributors": [ + "SphinxKnight", + "edspeedy", + "teoli", + "Jeremie", + "Piopier", + "Mgjbot", + "BenoitL" + ] + }, + "Web/JavaScript/Reference/Global_Objects/JSON": { "modified": "2020-10-15T21:24:57.042Z", "contributors": [ "tristantheb", @@ -39861,7 +40102,7 @@ "Sheppy" ] }, - "Web/JavaScript/Reference/Objets_globaux/JSON/parse": { + "Web/JavaScript/Reference/Global_Objects/JSON/parse": { "modified": "2020-10-15T21:27:29.177Z", "contributors": [ "cyrilbois", @@ -39877,7 +40118,7 @@ "DCK" ] }, - "Web/JavaScript/Reference/Objets_globaux/JSON/stringify": { + "Web/JavaScript/Reference/Global_Objects/JSON/stringify": { "modified": "2020-10-15T21:24:56.231Z", "contributors": [ "SphinxKnight", @@ -39892,70 +40133,53 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map": { - "modified": "2020-10-15T21:27:51.341Z", - "contributors": [ - "innocenzi", - "SphinxKnight", - "ariasuni", - "HelloEdit", - "GodefroyClair", - "kdex", - "Pragmateek", - "lionel", - "Goofy", - "Ltrlg", - "Youle", - "teoli" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Map/@@iterator": { + "Web/JavaScript/Reference/Global_Objects/Map/@@iterator": { "modified": "2020-10-15T21:32:15.453Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/@@species": { + "Web/JavaScript/Reference/Global_Objects/Map/@@species": { "modified": "2020-10-15T21:36:32.002Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/@@toStringTag": { + "Web/JavaScript/Reference/Global_Objects/Map/@@toStringTag": { "modified": "2020-10-15T21:37:58.832Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/clear": { + "Web/JavaScript/Reference/Global_Objects/Map/clear": { "modified": "2020-10-15T21:27:50.323Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/delete": { + "Web/JavaScript/Reference/Global_Objects/Map/delete": { "modified": "2020-10-15T21:27:49.784Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/entries": { + "Web/JavaScript/Reference/Global_Objects/Map/entries": { "modified": "2020-10-15T21:27:49.172Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/forEach": { + "Web/JavaScript/Reference/Global_Objects/Map/forEach": { "modified": "2020-10-15T21:27:50.745Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/get": { + "Web/JavaScript/Reference/Global_Objects/Map/get": { "modified": "2020-10-15T21:27:49.108Z", "contributors": [ "tomderudder", @@ -39963,140 +40187,59 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/has": { + "Web/JavaScript/Reference/Global_Objects/Map/has": { "modified": "2020-10-15T21:27:49.912Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/keys": { - "modified": "2020-10-15T21:27:50.316Z", + "Web/JavaScript/Reference/Global_Objects/Map": { + "modified": "2020-10-15T21:27:51.341Z", "contributors": [ + "innocenzi", "SphinxKnight", + "ariasuni", + "HelloEdit", + "GodefroyClair", + "kdex", + "Pragmateek", + "lionel", + "Goofy", + "Ltrlg", + "Youle", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/prototype": { - "modified": "2020-10-15T21:27:50.561Z", + "Web/JavaScript/Reference/Global_Objects/Map/keys": { + "modified": "2020-10-15T21:27:50.316Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/set": { + "Web/JavaScript/Reference/Global_Objects/Map/set": { "modified": "2020-10-15T21:27:50.400Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/size": { + "Web/JavaScript/Reference/Global_Objects/Map/size": { "modified": "2020-10-15T21:27:52.803Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Map/values": { + "Web/JavaScript/Reference/Global_Objects/Map/values": { "modified": "2020-10-15T21:27:55.939Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math": { - "modified": "2020-10-15T21:20:01.725Z", - "contributors": [ - "SphinxKnight", - "teoli", - "tregagnon", - "fred.wang", - "guymage", - "rm1720" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/E": { - "modified": "2020-10-15T21:17:17.359Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/LN10": { - "modified": "2020-10-15T21:17:16.771Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/LN2": { - "modified": "2020-10-15T21:17:16.639Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/LOG10E": { - "modified": "2020-10-15T21:17:16.810Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/LOG2E": { - "modified": "2020-10-15T21:17:15.620Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/PI": { - "modified": "2020-10-15T21:17:15.595Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/SQRT1_2": { - "modified": "2020-10-15T21:17:15.785Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/SQRT2": { - "modified": "2020-10-15T21:17:17.666Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Math/abs": { + "Web/JavaScript/Reference/Global_Objects/Math/abs": { "modified": "2020-10-15T21:26:38.922Z", "contributors": [ "SphinxKnight", @@ -40104,7 +40247,7 @@ "fred.wang" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/acos": { + "Web/JavaScript/Reference/Global_Objects/Math/acos": { "modified": "2020-10-15T21:17:15.426Z", "contributors": [ "SphinxKnight", @@ -40115,14 +40258,14 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/acosh": { + "Web/JavaScript/Reference/Global_Objects/Math/acosh": { "modified": "2020-10-15T21:27:47.280Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/asin": { + "Web/JavaScript/Reference/Global_Objects/Math/asin": { "modified": "2020-10-15T21:17:15.077Z", "contributors": [ "SphinxKnight", @@ -40133,14 +40276,14 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/asinh": { + "Web/JavaScript/Reference/Global_Objects/Math/asinh": { "modified": "2020-10-15T21:27:49.550Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/atan": { + "Web/JavaScript/Reference/Global_Objects/Math/atan": { "modified": "2020-10-15T21:17:14.727Z", "contributors": [ "SphinxKnight", @@ -40150,7 +40293,7 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/atan2": { + "Web/JavaScript/Reference/Global_Objects/Math/atan2": { "modified": "2020-10-15T21:17:15.462Z", "contributors": [ "SphinxKnight", @@ -40161,21 +40304,21 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/atanh": { + "Web/JavaScript/Reference/Global_Objects/Math/atanh": { "modified": "2020-10-15T21:27:48.469Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/cbrt": { + "Web/JavaScript/Reference/Global_Objects/Math/cbrt": { "modified": "2020-10-15T21:27:47.085Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/ceil": { + "Web/JavaScript/Reference/Global_Objects/Math/ceil": { "modified": "2020-10-15T21:26:53.449Z", "contributors": [ "SphinxKnight", @@ -40185,7 +40328,7 @@ "Samuel.Rossille" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/clz32": { + "Web/JavaScript/Reference/Global_Objects/Math/clz32": { "modified": "2020-10-15T21:27:48.777Z", "contributors": [ "SphinxKnight", @@ -40193,7 +40336,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/cos": { + "Web/JavaScript/Reference/Global_Objects/Math/cos": { "modified": "2020-10-15T21:17:12.078Z", "contributors": [ "SphinxKnight", @@ -40204,14 +40347,24 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/cosh": { + "Web/JavaScript/Reference/Global_Objects/Math/cosh": { "modified": "2020-10-15T21:27:54.644Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/exp": { + "Web/JavaScript/Reference/Global_Objects/Math/E": { + "modified": "2020-10-15T21:17:17.359Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/exp": { "modified": "2020-10-15T21:17:13.550Z", "contributors": [ "SphinxKnight", @@ -40221,14 +40374,14 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/expm1": { + "Web/JavaScript/Reference/Global_Objects/Math/expm1": { "modified": "2020-10-15T21:27:52.818Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/floor": { + "Web/JavaScript/Reference/Global_Objects/Math/floor": { "modified": "2020-10-15T21:17:14.105Z", "contributors": [ "SphinxKnight", @@ -40239,26 +40392,57 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/fround": { + "Web/JavaScript/Reference/Global_Objects/Math/fround": { "modified": "2020-10-15T21:27:50.617Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/hypot": { + "Web/JavaScript/Reference/Global_Objects/Math/hypot": { "modified": "2020-10-15T21:28:10.732Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/imul": { + "Web/JavaScript/Reference/Global_Objects/Math/imul": { "modified": "2020-10-15T21:28:10.111Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/log": { + "Web/JavaScript/Reference/Global_Objects/Math": { + "modified": "2020-10-15T21:20:01.725Z", + "contributors": [ + "SphinxKnight", + "teoli", + "tregagnon", + "fred.wang", + "guymage", + "rm1720" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LN10": { + "modified": "2020-10-15T21:17:16.771Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/LN2": { + "modified": "2020-10-15T21:17:16.639Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log": { "modified": "2020-10-15T21:17:13.369Z", "contributors": [ "SphinxKnight", @@ -40268,26 +40452,46 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/log10": { + "Web/JavaScript/Reference/Global_Objects/Math/log10": { "modified": "2020-10-15T21:28:11.073Z", "contributors": [ "SphinxKnight", "tifosi" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/log1p": { + "Web/JavaScript/Reference/Global_Objects/Math/LOG10E": { + "modified": "2020-10-15T21:17:16.810Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/log1p": { "modified": "2020-10-15T21:28:09.901Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/log2": { + "Web/JavaScript/Reference/Global_Objects/Math/log2": { "modified": "2020-10-15T21:28:11.259Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/max": { + "Web/JavaScript/Reference/Global_Objects/Math/LOG2E": { + "modified": "2020-10-15T21:17:15.620Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/max": { "modified": "2020-10-15T21:17:13.571Z", "contributors": [ "SphinxKnight", @@ -40297,7 +40501,7 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/min": { + "Web/JavaScript/Reference/Global_Objects/Math/min": { "modified": "2020-10-15T21:17:14.589Z", "contributors": [ "SphinxKnight", @@ -40308,7 +40512,17 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/pow": { + "Web/JavaScript/Reference/Global_Objects/Math/PI": { + "modified": "2020-10-15T21:17:15.595Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/pow": { "modified": "2020-10-15T21:17:12.838Z", "contributors": [ "SphinxKnight", @@ -40319,7 +40533,7 @@ "Kyodev" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/random": { + "Web/JavaScript/Reference/Global_Objects/Math/random": { "modified": "2020-10-15T21:17:17.890Z", "contributors": [ "grandaolionel", @@ -40334,7 +40548,7 @@ "Gorrk" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/round": { + "Web/JavaScript/Reference/Global_Objects/Math/round": { "modified": "2020-10-15T21:26:39.977Z", "contributors": [ "SphinxKnight", @@ -40344,13 +40558,13 @@ "Zealot" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/sign": { + "Web/JavaScript/Reference/Global_Objects/Math/sign": { "modified": "2020-10-15T21:28:11.432Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/sin": { + "Web/JavaScript/Reference/Global_Objects/Math/sin": { "modified": "2020-10-15T21:17:10.279Z", "contributors": [ "SphinxKnight", @@ -40361,13 +40575,13 @@ "Gorrk" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/sinh": { + "Web/JavaScript/Reference/Global_Objects/Math/sinh": { "modified": "2020-10-15T21:28:13.308Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/sqrt": { + "Web/JavaScript/Reference/Global_Objects/Math/sqrt": { "modified": "2020-10-15T21:17:12.810Z", "contributors": [ "SphinxKnight", @@ -40379,7 +40593,27 @@ "Gorrk" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/tan": { + "Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2": { + "modified": "2020-10-15T21:17:15.785Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/SQRT2": { + "modified": "2020-10-15T21:17:17.666Z", + "contributors": [ + "SphinxKnight", + "teoli", + "Jeremie", + "Mgjbot", + "Kyodev" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Math/tan": { "modified": "2020-10-15T21:17:15.624Z", "contributors": [ "SphinxKnight", @@ -40390,7 +40624,7 @@ "Gorrk" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/tanh": { + "Web/JavaScript/Reference/Global_Objects/Math/tanh": { "modified": "2020-10-15T21:27:01.331Z", "contributors": [ "SphinxKnight", @@ -40398,7 +40632,7 @@ "quentin.lamamy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Math/trunc": { + "Web/JavaScript/Reference/Global_Objects/Math/trunc": { "modified": "2020-10-15T21:26:51.743Z", "contributors": [ "SphinxKnight", @@ -40407,7 +40641,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/NaN": { + "Web/JavaScript/Reference/Global_Objects/NaN": { "modified": "2020-10-15T21:18:03.362Z", "contributors": [ "SphinxKnight", @@ -40419,7 +40653,23 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number": { + "Web/JavaScript/Reference/Global_Objects/null": { + "modified": "2020-10-15T21:27:56.698Z", + "contributors": [ + "SphinxKnight", + "benjamin-chevillon", + "teoli" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/EPSILON": { + "modified": "2020-10-15T21:27:45.250Z", + "contributors": [ + "SphinxKnight", + "ea1000", + "teoli" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number": { "modified": "2020-10-15T21:10:12.909Z", "contributors": [ "jeremymouzin", @@ -40432,15 +40682,35 @@ "daniel35310" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/EPSILON": { - "modified": "2020-10-15T21:27:45.250Z", + "Web/JavaScript/Reference/Global_Objects/Number/isFinite": { + "modified": "2020-10-15T21:28:24.774Z", + "contributors": [ + "jeremymouzin", + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isInteger": { + "modified": "2020-10-15T21:28:30.032Z", "contributors": [ + "lespacedunmatin", "SphinxKnight", - "ea1000", - "teoli" + "Itee" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isNaN": { + "modified": "2020-10-15T21:28:26.451Z", + "contributors": [ + "SphinxKnight", + "Lcfvs" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger": { + "modified": "2020-10-15T21:28:26.210Z", + "contributors": [ + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/MAX_SAFE_INTEGER": { + "Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER": { "modified": "2020-10-15T21:28:11.126Z", "contributors": [ "SphinxKnight", @@ -40449,82 +40719,48 @@ "ferncoder" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/MAX_VALUE": { + "Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE": { "modified": "2020-10-15T21:27:44.825Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/MIN_SAFE_INTEGER": { + "Web/JavaScript/Reference/Global_Objects/Number/MIN_SAFE_INTEGER": { "modified": "2020-10-15T21:28:11.837Z", "contributors": [ "SphinxKnight", "fleurdeswift" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/MIN_VALUE": { + "Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE": { "modified": "2020-10-15T21:27:45.417Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/NEGATIVE_INFINITY": { - "modified": "2020-10-15T21:28:13.773Z", - "contributors": [ - "SphinxKnight", - "goofy_bz" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Number/NaN": { + "Web/JavaScript/Reference/Global_Objects/Number/NaN": { "modified": "2020-10-15T21:28:13.269Z", "contributors": [ "SphinxKnight", "Fredchat" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/POSITIVE_INFINITY": { - "modified": "2020-10-15T21:28:14.481Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Number/isFinite": { - "modified": "2020-10-15T21:28:24.774Z", - "contributors": [ - "jeremymouzin", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Number/isInteger": { - "modified": "2020-10-15T21:28:30.032Z", - "contributors": [ - "lespacedunmatin", - "SphinxKnight", - "Itee" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Number/isNaN": { - "modified": "2020-10-15T21:28:26.451Z", + "Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY": { + "modified": "2020-10-15T21:28:13.773Z", "contributors": [ "SphinxKnight", - "Lcfvs" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Number/isSafeInteger": { - "modified": "2020-10-15T21:28:26.210Z", - "contributors": [ - "SphinxKnight" + "goofy_bz" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/parseFloat": { + "Web/JavaScript/Reference/Global_Objects/Number/parseFloat": { "modified": "2020-10-15T21:28:31.717Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/parseInt": { + "Web/JavaScript/Reference/Global_Objects/Number/parseInt": { "modified": "2020-10-15T21:28:31.772Z", "contributors": [ "SphinxKnight", @@ -40532,26 +40768,26 @@ "tforgione" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/prototype": { - "modified": "2020-10-15T21:28:28.015Z", + "Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY": { + "modified": "2020-10-15T21:28:14.481Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toExponential": { + "Web/JavaScript/Reference/Global_Objects/Number/toExponential": { "modified": "2020-10-15T21:28:31.727Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toFixed": { + "Web/JavaScript/Reference/Global_Objects/Number/toFixed": { "modified": "2020-10-15T21:28:28.211Z", "contributors": [ "SphinxKnight", "forresst" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/Number/toLocaleString": { "modified": "2020-10-15T21:28:28.189Z", "contributors": [ "SphinxKnight", @@ -40559,48 +40795,33 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toPrecision": { + "Web/JavaScript/Reference/Global_Objects/Number/toPrecision": { "modified": "2020-10-15T21:28:31.119Z", "contributors": [ "SphinxKnight", "edspeedy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toSource": { + "Web/JavaScript/Reference/Global_Objects/Number/toSource": { "modified": "2020-10-15T21:28:29.727Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/toString": { + "Web/JavaScript/Reference/Global_Objects/Number/toString": { "modified": "2020-10-15T21:28:31.793Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Number/valueOf": { + "Web/JavaScript/Reference/Global_Objects/Number/valueOf": { "modified": "2020-10-15T21:28:28.952Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object": { - "modified": "2020-10-15T21:09:30.794Z", - "contributors": [ - "SphinxKnight", - "edspeedy", - "tlgman", - "daformat", - "NemoNobobyPersonne", - "teoli", - "LaBoumerde", - "Sheppy", - "rat", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Object/assign": { + "Web/JavaScript/Reference/Global_Objects/Object/assign": { "modified": "2020-10-15T21:30:06.373Z", "contributors": [ "SphinxKnight", @@ -40609,7 +40830,7 @@ "naholyr" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/constructor": { + "Web/JavaScript/Reference/Global_Objects/Object/constructor": { "modified": "2020-10-15T21:25:01.923Z", "contributors": [ "SphinxKnight", @@ -40618,7 +40839,7 @@ "junius_rendel" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/create": { + "Web/JavaScript/Reference/Global_Objects/Object/create": { "modified": "2020-10-15T21:25:01.782Z", "contributors": [ "SphinxKnight", @@ -40634,7 +40855,7 @@ "gplanchat" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/defineGetter": { + "Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__": { "modified": "2020-10-15T21:11:15.754Z", "contributors": [ "SphinxKnight", @@ -40644,13 +40865,13 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/defineProperties": { + "Web/JavaScript/Reference/Global_Objects/Object/defineProperties": { "modified": "2020-10-15T21:28:34.360Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/defineProperty": { + "Web/JavaScript/Reference/Global_Objects/Object/defineProperty": { "modified": "2020-10-15T21:28:49.804Z", "contributors": [ "SphinxKnight", @@ -40660,7 +40881,7 @@ "yboukhata" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/defineSetter": { + "Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__": { "modified": "2020-10-15T21:11:17.941Z", "contributors": [ "SphinxKnight", @@ -40670,13 +40891,13 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/entries": { + "Web/JavaScript/Reference/Global_Objects/Object/entries": { "modified": "2020-10-15T21:40:48.589Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/freeze": { + "Web/JavaScript/Reference/Global_Objects/Object/freeze": { "modified": "2020-10-15T21:28:59.876Z", "contributors": [ "issam-gharsallah", @@ -40684,13 +40905,13 @@ "ChristopheBoucaut" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/fromEntries": { + "Web/JavaScript/Reference/Global_Objects/Object/fromEntries": { "modified": "2020-10-15T22:09:50.512Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyDescriptor": { + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor": { "modified": "2020-10-15T21:29:00.454Z", "contributors": [ "SphinxKnight", @@ -40698,32 +40919,32 @@ "stephaniehobson" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyDescriptors": { + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors": { "modified": "2020-10-15T21:47:14.373Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertyNames": { + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames": { "modified": "2020-10-15T21:29:01.599Z", "contributors": [ "SphinxKnight", "edspeedy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/getOwnPropertySymbols": { + "Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols": { "modified": "2020-10-15T21:28:59.748Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/getPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": { "modified": "2020-10-15T21:28:59.819Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/hasOwnProperty": { + "Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty": { "modified": "2020-10-15T21:26:15.408Z", "contributors": [ "SphinxKnight", @@ -40736,25 +40957,40 @@ "N.greff" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/is": { + "Web/JavaScript/Reference/Global_Objects/Object": { + "modified": "2020-10-15T21:09:30.794Z", + "contributors": [ + "SphinxKnight", + "edspeedy", + "tlgman", + "daformat", + "NemoNobobyPersonne", + "teoli", + "LaBoumerde", + "Sheppy", + "rat", + "daniel35310" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Object/is": { "modified": "2020-10-15T21:29:02.138Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/isExtensible": { + "Web/JavaScript/Reference/Global_Objects/Object/isExtensible": { "modified": "2020-10-15T21:29:00.648Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/isFrozen": { + "Web/JavaScript/Reference/Global_Objects/Object/isFrozen": { "modified": "2020-10-15T21:29:01.255Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/isPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf": { "modified": "2020-10-15T21:15:22.017Z", "contributors": [ "SphinxKnight", @@ -40766,14 +41002,14 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/isSealed": { + "Web/JavaScript/Reference/Global_Objects/Object/isSealed": { "modified": "2020-10-15T21:27:54.879Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/keys": { + "Web/JavaScript/Reference/Global_Objects/Object/keys": { "modified": "2020-10-15T21:29:01.084Z", "contributors": [ "SphinxKnight", @@ -40785,7 +41021,7 @@ "Assitan" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/lookupGetter": { + "Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__": { "modified": "2020-10-15T21:11:19.878Z", "contributors": [ "SphinxKnight", @@ -40795,7 +41031,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/lookupSetter": { + "Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__": { "modified": "2020-10-15T21:11:18.331Z", "contributors": [ "SphinxKnight", @@ -40805,14 +41041,14 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/preventExtensions": { + "Web/JavaScript/Reference/Global_Objects/Object/preventExtensions": { "modified": "2020-10-15T21:29:02.624Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/propertyIsEnumerable": { + "Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable": { "modified": "2020-10-15T21:15:23.474Z", "contributors": [ "SphinxKnight", @@ -40822,7 +41058,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/proto": { + "Web/JavaScript/Reference/Global_Objects/Object/proto": { "modified": "2020-10-15T21:29:03.338Z", "contributors": [ "SphinxKnight", @@ -40831,19 +41067,7 @@ "Huntedpix" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/prototype": { - "modified": "2020-10-15T21:15:24.935Z", - "contributors": [ - "SphinxKnight", - "opii93", - "ctjhoa", - "WSH", - "teoli", - "Jeremie", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Object/seal": { + "Web/JavaScript/Reference/Global_Objects/Object/seal": { "modified": "2020-10-15T21:27:45.673Z", "contributors": [ "SphinxKnight", @@ -40851,7 +41075,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/setPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf": { "modified": "2020-10-15T21:27:41.346Z", "contributors": [ "SphinxKnight", @@ -40859,7 +41083,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/Object/toLocaleString": { "modified": "2020-10-15T21:27:27.140Z", "contributors": [ "SphinxKnight", @@ -40867,7 +41091,7 @@ "moust" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/toSource": { + "Web/JavaScript/Reference/Global_Objects/Object/toSource": { "modified": "2020-10-15T21:15:26.141Z", "contributors": [ "SphinxKnight", @@ -40877,7 +41101,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/toString": { + "Web/JavaScript/Reference/Global_Objects/Object/toString": { "modified": "2020-10-15T21:16:50.618Z", "contributors": [ "SphinxKnight", @@ -40887,7 +41111,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/valueOf": { + "Web/JavaScript/Reference/Global_Objects/Object/valueOf": { "modified": "2020-10-15T21:15:39.082Z", "contributors": [ "SphinxKnight", @@ -40898,32 +41122,41 @@ "MWeiss" ] }, - "Web/JavaScript/Reference/Objets_globaux/Object/values": { + "Web/JavaScript/Reference/Global_Objects/Object/values": { "modified": "2020-10-15T21:40:47.566Z", "contributors": [ "SphinxKnight", "antoineneff" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise": { - "modified": "2020-10-15T21:27:45.338Z", + "Web/JavaScript/Reference/Global_Objects/parseFloat": { + "modified": "2020-10-15T21:16:59.325Z", "contributors": [ "SphinxKnight", - "jbdebiasio", - "hellosct1", - "bbouvier", - "VivienZo", - "sammy44nts", - "Mr21", - "toons3000", + "VictorLequin", + "ben-barbier", + "forresst", "teoli", - "neveldo", - "nicodel", - "Goofy", - "P45QU10U" + "Jeremie", + "Mgjbot", + "BenoitL" + ] + }, + "Web/JavaScript/Reference/Global_Objects/parseInt": { + "modified": "2020-10-15T21:16:53.832Z", + "contributors": [ + "SphinxKnight", + "julienc", + "nop", + "Iwazaru", + "darul75", + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/all": { + "Web/JavaScript/Reference/Global_Objects/Promise/all": { "modified": "2020-10-15T21:30:06.254Z", "contributors": [ "SphinxKnight", @@ -40933,14 +41166,14 @@ "Kerumen" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/allSettled": { + "Web/JavaScript/Reference/Global_Objects/Promise/allSettled": { "modified": "2020-10-15T22:20:25.837Z", "contributors": [ "SphinxKnight", "lgiraudel" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/any": { + "Web/JavaScript/Reference/Global_Objects/Promise/any": { "modified": "2020-11-11T08:33:32.965Z", "contributors": [ "JNa0", @@ -40948,7 +41181,7 @@ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/catch": { + "Web/JavaScript/Reference/Global_Objects/Promise/catch": { "modified": "2020-10-15T21:30:06.196Z", "contributors": [ "SphinxKnight", @@ -40956,33 +41189,45 @@ "axel_chalon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/finally": { + "Web/JavaScript/Reference/Global_Objects/Promise/finally": { "modified": "2020-10-15T21:58:13.243Z", "contributors": [ "SphinxKnight", "aduh95" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/prototype": { - "modified": "2020-10-15T21:30:11.290Z", + "Web/JavaScript/Reference/Global_Objects/Promise": { + "modified": "2020-10-15T21:27:45.338Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "jbdebiasio", + "hellosct1", + "bbouvier", + "VivienZo", + "sammy44nts", + "Mr21", + "toons3000", + "teoli", + "neveldo", + "nicodel", + "Goofy", + "P45QU10U" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/race": { + "Web/JavaScript/Reference/Global_Objects/Promise/race": { "modified": "2020-10-15T21:30:12.013Z", "contributors": [ "SphinxKnight", "sylv1" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/reject": { + "Web/JavaScript/Reference/Global_Objects/Promise/reject": { "modified": "2020-10-15T21:30:07.069Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/resolve": { + "Web/JavaScript/Reference/Global_Objects/Promise/resolve": { "modified": "2020-10-15T21:30:07.463Z", "contributors": [ "SphinxKnight", @@ -40991,7 +41236,7 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/Promise/then": { + "Web/JavaScript/Reference/Global_Objects/Promise/then": { "modified": "2020-10-15T21:30:07.384Z", "contributors": [ "SphinxKnight", @@ -41003,298 +41248,257 @@ "gaelb" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy": { - "modified": "2020-10-15T21:31:12.209Z", - "contributors": [ - "SphinxKnight", - "Remy_Juanes", - "Watilin", - "lotfire24", - "noopole", - "sd65", - "jmpp", - "jessmania" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler": { - "modified": "2020-10-15T21:32:28.978Z", - "contributors": [ - "Mozinet", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/apply": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply": { "modified": "2020-10-15T21:32:28.635Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/construct": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct": { "modified": "2020-10-15T21:32:28.635Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/defineProperty": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty": { "modified": "2020-10-15T21:32:28.638Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/deleteProperty": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty": { "modified": "2020-10-15T21:32:28.682Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/get": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get": { "modified": "2020-10-15T21:32:31.736Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getOwnPropertyDescriptor": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor": { "modified": "2020-10-15T21:32:29.609Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getPrototypeOf": { "modified": "2020-10-15T21:32:30.602Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/has": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/has": { "modified": "2020-10-15T21:32:30.568Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/isExtensible": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/isExtensible": { "modified": "2020-10-15T21:32:31.408Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/ownKeys": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys": { "modified": "2020-10-15T21:32:31.494Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/preventExtensions": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/preventExtensions": { "modified": "2020-10-15T21:32:31.494Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/set": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set": { "modified": "2020-10-15T21:32:31.923Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/handler/setPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/setPrototypeOf": { "modified": "2020-10-15T21:32:31.782Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Proxy/revocable": { - "modified": "2020-10-15T21:32:31.831Z", + "Web/JavaScript/Reference/Global_Objects/Proxy": { + "modified": "2020-10-15T21:31:12.209Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Remy_Juanes", + "Watilin", + "lotfire24", + "noopole", + "sd65", + "jmpp", + "jessmania" ] }, - "Web/JavaScript/Reference/Objets_globaux/RangeError": { - "modified": "2020-10-15T21:29:07.869Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/revocable": { + "modified": "2020-10-15T21:32:31.831Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RangeError/prototype": { - "modified": "2020-10-15T21:29:08.374Z", + "Web/JavaScript/Reference/Global_Objects/RangeError": { + "modified": "2020-10-15T21:29:07.869Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ReferenceError": { + "Web/JavaScript/Reference/Global_Objects/ReferenceError": { "modified": "2020-10-15T21:29:30.643Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/ReferenceError/prototype": { - "modified": "2020-10-15T21:29:30.187Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Reflect": { - "modified": "2020-10-15T21:32:38.746Z", + "Web/JavaScript/Reference/Global_Objects/Reflect/apply": { + "modified": "2020-10-15T21:38:00.292Z", "contributors": [ "SphinxKnight", - "jlowcs" + "dcamilleri" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/Comparaison_entre_Reflect_et_les_méthodes_Object": { + "Web/JavaScript/Reference/Global_Objects/Reflect/Comparing_Reflect_and_Object_methods": { "modified": "2020-03-12T19:48:58.029Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/apply": { - "modified": "2020-10-15T21:38:00.292Z", - "contributors": [ - "SphinxKnight", - "dcamilleri" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/construct": { + "Web/JavaScript/Reference/Global_Objects/Reflect/construct": { "modified": "2020-10-15T21:37:57.573Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/defineProperty": { + "Web/JavaScript/Reference/Global_Objects/Reflect/defineProperty": { "modified": "2020-10-15T21:37:57.829Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/deleteProperty": { + "Web/JavaScript/Reference/Global_Objects/Reflect/deleteProperty": { "modified": "2020-10-15T21:37:56.892Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/get": { + "Web/JavaScript/Reference/Global_Objects/Reflect/get": { "modified": "2020-10-15T21:38:01.913Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/getOwnPropertyDescriptor": { + "Web/JavaScript/Reference/Global_Objects/Reflect/getOwnPropertyDescriptor": { "modified": "2020-10-15T21:38:01.346Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/getPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Reflect/getPrototypeOf": { "modified": "2020-10-15T21:37:58.755Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/has": { + "Web/JavaScript/Reference/Global_Objects/Reflect/has": { "modified": "2020-10-15T21:38:01.255Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/isExtensible": { + "Web/JavaScript/Reference/Global_Objects/Reflect": { + "modified": "2020-10-15T21:32:38.746Z", + "contributors": [ + "SphinxKnight", + "jlowcs" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Reflect/isExtensible": { "modified": "2020-10-15T21:38:01.286Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/ownKeys": { + "Web/JavaScript/Reference/Global_Objects/Reflect/ownKeys": { "modified": "2020-10-15T21:37:57.144Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/preventExtensions": { + "Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions": { "modified": "2020-10-15T21:38:08.070Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/set": { + "Web/JavaScript/Reference/Global_Objects/Reflect/set": { "modified": "2020-10-15T21:38:07.760Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Reflect/setPrototypeOf": { + "Web/JavaScript/Reference/Global_Objects/Reflect/setPrototypeOf": { "modified": "2020-10-15T21:38:10.277Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp": { - "modified": "2020-10-15T21:09:26.641Z", - "contributors": [ - "SphinxKnight", - "JNa0", - "jersou", - "vava", - "RedGuff", - "NemoNobobyPersonne", - "tregagnon", - "Djiit", - "polinux", - "FremyCompany", - "marcantoinebeaulieu", - "Mr21", - "lovasoa", - "psegalen", - "teoli", - "vvision", - "daniel35310" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@match": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@match": { "modified": "2020-10-15T21:44:52.805Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@matchAll": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@matchAll": { "modified": "2020-10-15T22:14:45.467Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@replace": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@replace": { "modified": "2020-10-15T21:44:48.066Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@search": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@search": { "modified": "2020-10-15T21:44:53.244Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@species": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@species": { "modified": "2020-10-15T21:44:51.787Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/@@split": { + "Web/JavaScript/Reference/Global_Objects/RegExp/@@split": { "modified": "2020-11-24T13:07:02.632Z", "contributors": [ "jeremymouzin", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/compile": { + "Web/JavaScript/Reference/Global_Objects/RegExp/compile": { "modified": "2020-10-15T21:32:56.057Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/dotAll": { + "Web/JavaScript/Reference/Global_Objects/RegExp/dotAll": { "modified": "2020-10-15T22:14:46.695Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/exec": { + "Web/JavaScript/Reference/Global_Objects/RegExp/exec": { "modified": "2020-10-15T21:14:40.464Z", "contributors": [ "SphinxKnight", @@ -41304,97 +41508,112 @@ "time132" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/flags": { + "Web/JavaScript/Reference/Global_Objects/RegExp/flags": { "modified": "2020-10-15T21:32:21.191Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/global": { + "Web/JavaScript/Reference/Global_Objects/RegExp/global": { "modified": "2020-10-15T21:30:44.320Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/ignoreCase": { + "Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase": { "modified": "2020-10-15T21:30:50.130Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/input": { + "Web/JavaScript/Reference/Global_Objects/RegExp": { + "modified": "2020-10-15T21:09:26.641Z", + "contributors": [ + "SphinxKnight", + "JNa0", + "jersou", + "vava", + "RedGuff", + "NemoNobobyPersonne", + "tregagnon", + "Djiit", + "polinux", + "FremyCompany", + "marcantoinebeaulieu", + "Mr21", + "lovasoa", + "psegalen", + "teoli", + "vvision", + "daniel35310" + ] + }, + "Web/JavaScript/Reference/Global_Objects/RegExp/input": { "modified": "2020-10-15T21:32:55.947Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/lastIndex": { + "Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex": { "modified": "2020-10-15T21:30:40.335Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/lastMatch": { + "Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch": { "modified": "2020-10-15T21:32:55.640Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/lastParen": { + "Web/JavaScript/Reference/Global_Objects/RegExp/lastParen": { "modified": "2020-10-15T21:32:56.131Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/leftContext": { + "Web/JavaScript/Reference/Global_Objects/RegExp/leftContext": { "modified": "2020-10-15T21:32:55.797Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/multiline": { + "Web/JavaScript/Reference/Global_Objects/RegExp/multiline": { "modified": "2020-10-15T21:30:51.204Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/n": { + "Web/JavaScript/Reference/Global_Objects/RegExp/n": { "modified": "2020-10-15T21:32:55.961Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/prototype": { - "modified": "2020-10-15T21:30:50.602Z", - "contributors": [ - "SphinxKnight", - "regseb" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/rightContext": { + "Web/JavaScript/Reference/Global_Objects/RegExp/rightContext": { "modified": "2020-10-15T21:32:57.561Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/source": { + "Web/JavaScript/Reference/Global_Objects/RegExp/source": { "modified": "2020-10-15T21:30:45.355Z", "contributors": [ "SphinxKnight", "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/sticky": { + "Web/JavaScript/Reference/Global_Objects/RegExp/sticky": { "modified": "2020-10-15T21:30:47.620Z", "contributors": [ "SphinxKnight", "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/test": { + "Web/JavaScript/Reference/Global_Objects/RegExp/test": { "modified": "2020-10-31T09:02:08.478Z", "contributors": [ "Simsimpicpic", @@ -41404,165 +41623,138 @@ "Tolokoban" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/toSource": { + "Web/JavaScript/Reference/Global_Objects/RegExp/toSource": { "modified": "2020-10-15T21:30:50.470Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/toString": { + "Web/JavaScript/Reference/Global_Objects/RegExp/toString": { "modified": "2020-10-15T21:30:46.894Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/RegExp/unicode": { + "Web/JavaScript/Reference/Global_Objects/RegExp/unicode": { "modified": "2020-10-15T21:32:57.125Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set": { - "modified": "2020-10-15T21:31:01.191Z", - "contributors": [ - "SphinxKnight", - "SpaVec", - "daformat", - "quentin-sommer", - "vava" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Set/@@iterator": { + "Web/JavaScript/Reference/Global_Objects/Set/@@iterator": { "modified": "2020-10-15T21:32:31.570Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/@@species": { + "Web/JavaScript/Reference/Global_Objects/Set/@@species": { "modified": "2020-10-15T21:36:31.934Z", "contributors": [ "SphinxKnight", "afidosstar" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/add": { + "Web/JavaScript/Reference/Global_Objects/Set/add": { "modified": "2020-10-15T21:30:47.600Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/clear": { + "Web/JavaScript/Reference/Global_Objects/Set/clear": { "modified": "2020-10-15T21:30:47.286Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/delete": { + "Web/JavaScript/Reference/Global_Objects/Set/delete": { "modified": "2020-10-15T21:30:45.003Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/entries": { + "Web/JavaScript/Reference/Global_Objects/Set/entries": { "modified": "2020-10-15T21:30:46.292Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/forEach": { + "Web/JavaScript/Reference/Global_Objects/Set/forEach": { "modified": "2020-10-15T21:30:55.712Z", "contributors": [ "SphinxKnight", "olange" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/has": { + "Web/JavaScript/Reference/Global_Objects/Set/has": { "modified": "2020-10-15T21:30:46.596Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/prototype": { - "modified": "2020-10-15T21:30:53.915Z", + "Web/JavaScript/Reference/Global_Objects/Set": { + "modified": "2020-10-15T21:31:01.191Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "SpaVec", + "daformat", + "quentin-sommer", + "vava" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/size": { + "Web/JavaScript/Reference/Global_Objects/Set/size": { "modified": "2020-10-15T21:30:48.070Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Set/values": { + "Web/JavaScript/Reference/Global_Objects/Set/values": { "modified": "2020-10-15T21:30:53.905Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer": { - "modified": "2020-10-15T21:43:05.674Z", - "contributors": [ - "SphinxKnight", - "Peyphour" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/byteLength": { + "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/byteLength": { "modified": "2020-10-15T21:43:03.666Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/prototype": { - "modified": "2020-10-15T21:43:01.477Z", + "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer": { + "modified": "2020-10-15T21:43:05.674Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "Peyphour" ] }, - "Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/slice": { + "Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice": { "modified": "2020-10-15T21:51:29.666Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String": { - "modified": "2020-10-15T21:09:29.467Z", - "contributors": [ - "SphinxKnight", - "Brack0", - "grandoc", - "LCaba49", - "gabrielvv", - "tregagnon", - "teoli", - "fscholz", - "daniel35310", - "rat" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/String/@@iterator": { + "Web/JavaScript/Reference/Global_Objects/String/@@iterator": { "modified": "2020-10-15T21:32:22.889Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/anchor": { + "Web/JavaScript/Reference/Global_Objects/String/anchor": { "modified": "2020-10-15T21:30:31.793Z", "contributors": [ "SphinxKnight", "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/big": { + "Web/JavaScript/Reference/Global_Objects/String/big": { "modified": "2020-10-15T21:30:35.733Z", "contributors": [ "SphinxKnight", "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/blink": { + "Web/JavaScript/Reference/Global_Objects/String/blink": { "modified": "2020-10-15T21:30:36.287Z", "contributors": [ "SphinxKnight", @@ -41570,7 +41762,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/bold": { + "Web/JavaScript/Reference/Global_Objects/String/bold": { "modified": "2020-10-15T21:30:34.170Z", "contributors": [ "SphinxKnight", @@ -41578,14 +41770,14 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/charAt": { + "Web/JavaScript/Reference/Global_Objects/String/charAt": { "modified": "2020-10-15T21:29:46.896Z", "contributors": [ "SphinxKnight", "josef" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/charCodeAt": { + "Web/JavaScript/Reference/Global_Objects/String/charCodeAt": { "modified": "2020-12-03T13:23:16.661Z", "contributors": [ "jbdemonte", @@ -41595,13 +41787,13 @@ "Yves_ASTIER" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/codePointAt": { + "Web/JavaScript/Reference/Global_Objects/String/codePointAt": { "modified": "2020-10-15T21:30:53.830Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/concat": { + "Web/JavaScript/Reference/Global_Objects/String/concat": { "modified": "2020-10-27T06:08:24.110Z", "contributors": [ "jeremymouzin", @@ -41612,7 +41804,7 @@ "ylerjen" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/endsWith": { + "Web/JavaScript/Reference/Global_Objects/String/endsWith": { "modified": "2020-10-15T21:30:33.041Z", "contributors": [ "SphinxKnight", @@ -41620,37 +41812,37 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/fixed": { + "Web/JavaScript/Reference/Global_Objects/String/fixed": { "modified": "2020-10-15T21:31:00.424Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/fontcolor": { + "Web/JavaScript/Reference/Global_Objects/String/fontcolor": { "modified": "2020-10-15T21:30:53.820Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/fontsize": { + "Web/JavaScript/Reference/Global_Objects/String/fontsize": { "modified": "2020-10-15T21:31:01.443Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/fromCharCode": { + "Web/JavaScript/Reference/Global_Objects/String/fromCharCode": { "modified": "2020-10-15T21:30:44.032Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/fromCodePoint": { + "Web/JavaScript/Reference/Global_Objects/String/fromCodePoint": { "modified": "2020-10-15T21:31:00.482Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/includes": { + "Web/JavaScript/Reference/Global_Objects/String/includes": { "modified": "2020-10-15T21:29:49.177Z", "contributors": [ "tristantheb", @@ -41660,7 +41852,22 @@ "ylerjen" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/indexOf": { + "Web/JavaScript/Reference/Global_Objects/String": { + "modified": "2020-10-15T21:09:29.467Z", + "contributors": [ + "SphinxKnight", + "Brack0", + "grandoc", + "LCaba49", + "gabrielvv", + "tregagnon", + "teoli", + "fscholz", + "daniel35310", + "rat" + ] + }, + "Web/JavaScript/Reference/Global_Objects/String/indexOf": { "modified": "2020-10-15T21:21:09.665Z", "contributors": [ "Steph", @@ -41669,13 +41876,13 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/italics": { + "Web/JavaScript/Reference/Global_Objects/String/italics": { "modified": "2020-10-15T21:31:01.549Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/lastIndexOf": { + "Web/JavaScript/Reference/Global_Objects/String/lastIndexOf": { "modified": "2020-10-30T07:15:23.208Z", "contributors": [ "jeremymouzin", @@ -41685,7 +41892,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/length": { + "Web/JavaScript/Reference/Global_Objects/String/length": { "modified": "2020-10-15T21:27:40.975Z", "contributors": [ "SphinxKnight", @@ -41695,19 +41902,19 @@ "Goofy" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/link": { + "Web/JavaScript/Reference/Global_Objects/String/link": { "modified": "2020-10-15T21:30:59.830Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/localeCompare": { + "Web/JavaScript/Reference/Global_Objects/String/localeCompare": { "modified": "2020-10-15T21:30:54.922Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/match": { + "Web/JavaScript/Reference/Global_Objects/String/match": { "modified": "2020-10-15T21:11:26.007Z", "contributors": [ "SphinxKnight", @@ -41719,7 +41926,7 @@ "Julien.stuby" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/matchAll": { + "Web/JavaScript/Reference/Global_Objects/String/matchAll": { "modified": "2020-10-15T22:15:52.865Z", "contributors": [ "javascriptdezero", @@ -41727,7 +41934,7 @@ "nkokla" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/normalize": { + "Web/JavaScript/Reference/Global_Objects/String/normalize": { "modified": "2020-10-15T21:30:50.829Z", "contributors": [ "SphinxKnight", @@ -41735,14 +41942,14 @@ "darul75" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/padEnd": { + "Web/JavaScript/Reference/Global_Objects/String/padEnd": { "modified": "2020-10-15T21:44:49.558Z", "contributors": [ "SphinxKnight", "javascriptdezero" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/padStart": { + "Web/JavaScript/Reference/Global_Objects/String/padStart": { "modified": "2020-10-15T21:44:49.740Z", "contributors": [ "SphinxKnight", @@ -41751,26 +41958,14 @@ "demougin2u" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/prototype": { - "modified": "2020-10-15T21:14:12.465Z", - "contributors": [ - "SphinxKnight", - "ylerjen", - "Pihemde", - "teoli", - "Jeremie", - "fscholz", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/String/raw": { + "Web/JavaScript/Reference/Global_Objects/String/raw": { "modified": "2020-10-15T21:31:01.889Z", "contributors": [ "edspeedy", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/repeat": { + "Web/JavaScript/Reference/Global_Objects/String/repeat": { "modified": "2020-10-15T21:30:33.221Z", "contributors": [ "SphinxKnight", @@ -41778,7 +41973,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/replace": { + "Web/JavaScript/Reference/Global_Objects/String/replace": { "modified": "2020-10-15T21:26:51.883Z", "contributors": [ "tristantheb", @@ -41797,7 +41992,7 @@ "XenonDeele" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/replaceAll": { + "Web/JavaScript/Reference/Global_Objects/String/replaceAll": { "modified": "2020-12-02T07:08:18.366Z", "contributors": [ "jeremymouzin", @@ -41805,7 +42000,7 @@ "jolan4589" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/search": { + "Web/JavaScript/Reference/Global_Objects/String/search": { "modified": "2020-10-15T21:30:33.106Z", "contributors": [ "SphinxKnight", @@ -41813,7 +42008,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/slice": { + "Web/JavaScript/Reference/Global_Objects/String/slice": { "modified": "2020-10-15T21:30:33.271Z", "contributors": [ "SphinxKnight", @@ -41822,13 +42017,13 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/small": { + "Web/JavaScript/Reference/Global_Objects/String/small": { "modified": "2020-10-15T21:30:54.174Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/split": { + "Web/JavaScript/Reference/Global_Objects/String/split": { "modified": "2020-12-06T08:42:17.058Z", "contributors": [ "cdoublev", @@ -41841,7 +42036,7 @@ "P45QU10U" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/startsWith": { + "Web/JavaScript/Reference/Global_Objects/String/startsWith": { "modified": "2020-10-15T21:30:32.482Z", "contributors": [ "SphinxKnight", @@ -41849,20 +42044,20 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/strike": { + "Web/JavaScript/Reference/Global_Objects/String/strike": { "modified": "2020-10-15T21:31:02.610Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/sub": { + "Web/JavaScript/Reference/Global_Objects/String/sub": { "modified": "2020-10-15T21:30:43.014Z", "contributors": [ "SphinxKnight", "scaillerie" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/substr": { + "Web/JavaScript/Reference/Global_Objects/String/substr": { "modified": "2020-10-15T21:14:46.254Z", "contributors": [ "SphinxKnight", @@ -41872,7 +42067,7 @@ "Julien.stuby" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/substring": { + "Web/JavaScript/Reference/Global_Objects/String/substring": { "modified": "2020-10-15T21:30:05.833Z", "contributors": [ "SphinxKnight", @@ -41881,26 +42076,26 @@ "ylerjen" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/sup": { + "Web/JavaScript/Reference/Global_Objects/String/sup": { "modified": "2020-10-15T21:30:41.357Z", "contributors": [ "SphinxKnight", "scaillerie" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toLocaleLowerCase": { + "Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase": { "modified": "2020-10-15T21:30:50.733Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toLocaleUpperCase": { + "Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase": { "modified": "2020-10-15T21:30:54.093Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toLowerCase": { + "Web/JavaScript/Reference/Global_Objects/String/toLowerCase": { "modified": "2020-10-15T21:27:42.074Z", "contributors": [ "SphinxKnight", @@ -41909,14 +42104,14 @@ "ilaborie" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toSource": { + "Web/JavaScript/Reference/Global_Objects/String/toSource": { "modified": "2020-10-15T21:31:02.897Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toString": { + "Web/JavaScript/Reference/Global_Objects/String/toString": { "modified": "2020-10-15T21:30:34.655Z", "contributors": [ "SphinxKnight", @@ -41924,7 +42119,7 @@ "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/toUpperCase": { + "Web/JavaScript/Reference/Global_Objects/String/toUpperCase": { "modified": "2020-10-15T21:28:31.678Z", "contributors": [ "SphinxKnight", @@ -41933,7 +42128,7 @@ "jrenouard" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/trim": { + "Web/JavaScript/Reference/Global_Objects/String/Trim": { "modified": "2020-10-15T21:24:45.220Z", "contributors": [ "SphinxKnight", @@ -41945,164 +42140,158 @@ "sylvain_floury" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/trimEnd": { + "Web/JavaScript/Reference/Global_Objects/String/trimEnd": { "modified": "2020-10-15T21:30:56.114Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/trimStart": { + "Web/JavaScript/Reference/Global_Objects/String/trimStart": { "modified": "2020-10-15T21:31:00.551Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/String/valueOf": { + "Web/JavaScript/Reference/Global_Objects/String/valueOf": { "modified": "2020-10-15T21:30:32.562Z", "contributors": [ "SphinxKnight", "tregagnon" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol": { - "modified": "2020-10-15T21:29:09.934Z", - "contributors": [ - "edspeedy", - "Oursin", - "SphinxKnight", - "fscholz", - "mo0z", - "kdex" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/@@toPrimitive": { + "Web/JavaScript/Reference/Global_Objects/Symbol/@@toPrimitive": { "modified": "2020-10-15T21:39:19.910Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/asyncIterator": { + "Web/JavaScript/Reference/Global_Objects/Symbol/asyncIterator": { "modified": "2020-10-15T22:15:01.539Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/description": { + "Web/JavaScript/Reference/Global_Objects/Symbol/description": { "modified": "2020-10-15T22:09:50.256Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/for": { + "Web/JavaScript/Reference/Global_Objects/Symbol/for": { "modified": "2020-10-15T21:29:09.806Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/hasInstance": { + "Web/JavaScript/Reference/Global_Objects/Symbol/hasInstance": { "modified": "2020-10-15T21:47:20.267Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/isConcatSpreadable": { + "Web/JavaScript/Reference/Global_Objects/Symbol": { + "modified": "2020-10-15T21:29:09.934Z", + "contributors": [ + "edspeedy", + "Oursin", + "SphinxKnight", + "fscholz", + "mo0z", + "kdex" + ] + }, + "Web/JavaScript/Reference/Global_Objects/Symbol/isConcatSpreadable": { "modified": "2020-10-15T21:45:47.711Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/iterator": { + "Web/JavaScript/Reference/Global_Objects/Symbol/iterator": { "modified": "2020-10-15T21:34:15.916Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/keyFor": { + "Web/JavaScript/Reference/Global_Objects/Symbol/keyFor": { "modified": "2020-10-15T21:29:09.872Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/match": { + "Web/JavaScript/Reference/Global_Objects/Symbol/match": { "modified": "2020-10-15T21:34:18.720Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/matchAll": { + "Web/JavaScript/Reference/Global_Objects/Symbol/matchAll": { "modified": "2020-10-15T22:17:43.902Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/prototype": { - "modified": "2020-10-15T21:29:11.196Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/replace": { + "Web/JavaScript/Reference/Global_Objects/Symbol/replace": { "modified": "2020-10-15T21:44:55.824Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/search": { + "Web/JavaScript/Reference/Global_Objects/Symbol/search": { "modified": "2020-10-15T21:44:55.602Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/species": { + "Web/JavaScript/Reference/Global_Objects/Symbol/species": { "modified": "2020-10-15T21:36:33.119Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/split": { + "Web/JavaScript/Reference/Global_Objects/Symbol/split": { "modified": "2020-10-15T21:44:56.230Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/toPrimitive": { + "Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive": { "modified": "2020-10-15T21:39:22.081Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/toSource": { + "Web/JavaScript/Reference/Global_Objects/Symbol/toSource": { "modified": "2020-10-15T21:29:09.350Z", "contributors": [ "SphinxKnight", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/toString": { + "Web/JavaScript/Reference/Global_Objects/Symbol/toString": { "modified": "2020-10-15T21:29:09.566Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/toStringTag": { + "Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag": { "modified": "2020-10-15T21:49:44.540Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/unscopables": { + "Web/JavaScript/Reference/Global_Objects/Symbol/unscopables": { "modified": "2020-10-15T21:44:45.309Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Symbol/valueOf": { + "Web/JavaScript/Reference/Global_Objects/Symbol/valueOf": { "modified": "2020-10-15T21:29:10.554Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/SyntaxError": { + "Web/JavaScript/Reference/Global_Objects/SyntaxError": { "modified": "2020-10-15T21:11:19.086Z", "contributors": [ "SphinxKnight", @@ -42112,389 +42301,380 @@ "matteodelabre" ] }, - "Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype": { - "modified": "2020-10-15T21:11:18.913Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "matteodelabre" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/TypeError": { - "modified": "2020-10-15T21:26:09.521Z", - "contributors": [ - "SphinxKnight", - "teoli", - "ylerjen" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/TypeError/prototype": { - "modified": "2020-10-15T21:30:50.829Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray": { - "modified": "2020-10-15T21:31:18.925Z", - "contributors": [ - "SphinxKnight", - "petitcoeur" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/@@iterator": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/@@iterator": { "modified": "2020-10-15T21:32:05.207Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/@@species": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/@@species": { "modified": "2020-10-15T21:44:51.861Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/BYTES_PER_ELEMENT": { - "modified": "2020-10-15T21:31:12.170Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/buffer": { + "modified": "2020-10-15T21:31:15.412Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/buffer": { - "modified": "2020-10-15T21:31:15.412Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/byteLength": { + "modified": "2020-10-15T21:31:13.833Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/byteLength": { - "modified": "2020-10-15T21:31:13.833Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/byteOffset": { + "modified": "2020-10-15T21:31:16.158Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/byteOffset": { - "modified": "2020-10-15T21:31:16.158Z", + "Web/JavaScript/Reference/Global_Objects/TypedArray/BYTES_PER_ELEMENT": { + "modified": "2020-10-15T21:31:12.170Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/copyWithin": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin": { "modified": "2020-10-15T21:31:16.765Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/entries": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/entries": { "modified": "2020-10-15T21:32:02.431Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/every": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/every": { "modified": "2020-10-15T21:32:07.464Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/fill": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/fill": { "modified": "2020-10-15T21:32:03.890Z", "contributors": [ "SphinxKnight", "Yukulele." ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/filter": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/filter": { "modified": "2020-10-15T21:33:31.610Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/find": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/find": { "modified": "2020-10-15T21:32:05.828Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/findIndex": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/findIndex": { "modified": "2020-10-15T21:32:03.803Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/forEach": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/forEach": { "modified": "2020-10-15T21:32:38.147Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/from": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/from": { "modified": "2020-10-15T21:32:21.675Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/includes": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/includes": { "modified": "2020-10-15T21:32:05.187Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/indexOf": { + "Web/JavaScript/Reference/Global_Objects/TypedArray": { + "modified": "2020-10-15T21:31:18.925Z", + "contributors": [ + "SphinxKnight", + "petitcoeur" + ] + }, + "Web/JavaScript/Reference/Global_Objects/TypedArray/indexOf": { "modified": "2020-10-15T21:32:07.987Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/join": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/join": { "modified": "2020-10-15T21:32:01.873Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/keys": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/keys": { "modified": "2020-10-15T21:32:05.619Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/lastIndexOf": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/lastIndexOf": { "modified": "2020-10-15T21:32:06.704Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/length": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/length": { "modified": "2020-10-15T21:31:14.753Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/map": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/map": { "modified": "2020-10-15T21:33:32.057Z", "contributors": [ "FloppyJunior", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/name": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/name": { "modified": "2020-10-15T21:31:15.709Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/of": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/of": { "modified": "2020-10-15T21:32:16.877Z", "contributors": [ "SphinxKnight", "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/prototype": { - "modified": "2020-10-15T21:31:18.776Z", - "contributors": [ - "SphinxKnight", - "cdr" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/reduce": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/reduce": { "modified": "2020-10-15T21:32:06.374Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/reduceRight": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/reduceRight": { "modified": "2020-10-15T21:32:05.774Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/reverse": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/reverse": { "modified": "2020-10-15T21:32:05.214Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/set": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/set": { "modified": "2020-10-15T21:31:14.730Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/slice": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/slice": { "modified": "2020-10-15T21:33:33.653Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/some": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/some": { "modified": "2020-10-15T21:32:05.983Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/sort": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/sort": { "modified": "2020-10-15T21:42:29.526Z", "contributors": [ "SphinxKnight", "Yomguithereal" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/subarray": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/subarray": { "modified": "2020-10-15T21:31:15.849Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/toLocaleString": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/toLocaleString": { "modified": "2020-10-15T21:49:44.979Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/toString": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/toString": { "modified": "2020-10-15T21:49:44.009Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/TypedArray/values": { + "Web/JavaScript/Reference/Global_Objects/TypedArray/values": { "modified": "2020-10-15T21:32:08.869Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/URIError": { - "modified": "2020-10-15T21:31:09.986Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/URIError/prototype": { - "modified": "2020-10-15T21:31:09.956Z", + "Web/JavaScript/Reference/Global_Objects/TypeError": { + "modified": "2020-10-15T21:26:09.521Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "teoli", + "ylerjen" ] }, - "Web/JavaScript/Reference/Objets_globaux/Uint16Array": { + "Web/JavaScript/Reference/Global_Objects/Uint16Array": { "modified": "2020-10-15T21:31:18.975Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Uint32Array": { + "Web/JavaScript/Reference/Global_Objects/Uint32Array": { "modified": "2020-10-15T21:31:18.901Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Uint8Array": { + "Web/JavaScript/Reference/Global_Objects/Uint8Array": { "modified": "2020-10-15T21:31:19.942Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/Uint8ClampedArray": { + "Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray": { "modified": "2020-10-15T21:31:19.160Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap": { - "modified": "2020-10-15T21:30:53.509Z", + "Web/JavaScript/Reference/Global_Objects/undefined": { + "modified": "2020-10-15T21:18:05.602Z", "contributors": [ "SphinxKnight", - "316k", - "Spotinux" + "begmans", + "tregagnon", + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/clear": { - "modified": "2020-10-15T21:30:46.863Z", + "Web/JavaScript/Reference/Global_Objects/unescape": { + "modified": "2020-10-15T21:31:14.074Z", + "contributors": [ + "SphinxKnight", + "ea1000" + ] + }, + "Web/JavaScript/Reference/Global_Objects/uneval": { + "modified": "2020-10-15T21:31:15.431Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/delete": { - "modified": "2020-10-15T21:31:00.196Z", + "Web/JavaScript/Reference/Global_Objects/URIError": { + "modified": "2020-10-15T21:31:09.986Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/get": { - "modified": "2020-10-15T21:31:00.520Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/clear": { + "modified": "2020-10-15T21:30:46.863Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/has": { - "modified": "2020-10-15T21:30:54.325Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/delete": { + "modified": "2020-10-15T21:31:00.196Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype": { - "modified": "2020-10-15T21:30:49.753Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/get": { + "modified": "2020-10-15T21:31:00.520Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakMap/set": { - "modified": "2020-10-15T21:30:51.262Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap/has": { + "modified": "2020-10-15T21:30:54.325Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet": { - "modified": "2020-10-15T21:31:01.850Z", + "Web/JavaScript/Reference/Global_Objects/WeakMap": { + "modified": "2020-10-15T21:30:53.509Z", "contributors": [ "SphinxKnight", - "edspeedy" + "316k", + "Spotinux" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WeakMap/set": { + "modified": "2020-10-15T21:30:51.262Z", + "contributors": [ + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet/add": { + "Web/JavaScript/Reference/Global_Objects/WeakSet/add": { "modified": "2020-10-15T21:31:00.397Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet/clear": { + "Web/JavaScript/Reference/Global_Objects/WeakSet/clear": { "modified": "2020-10-15T21:30:59.712Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet/delete": { + "Web/JavaScript/Reference/Global_Objects/WeakSet/delete": { "modified": "2020-10-15T21:31:01.743Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet/has": { + "Web/JavaScript/Reference/Global_Objects/WeakSet/has": { "modified": "2020-10-15T21:31:01.138Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WeakSet/prototype": { - "modified": "2020-10-15T21:31:01.804Z", + "Web/JavaScript/Reference/Global_Objects/WeakSet": { + "modified": "2020-10-15T21:31:01.850Z", "contributors": [ - "SphinxKnight" + "SphinxKnight", + "edspeedy" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly": { - "modified": "2020-10-15T21:51:49.502Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/compile": { + "modified": "2020-10-15T21:52:23.421Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/CompileError": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/CompileError": { "modified": "2020-10-15T21:52:19.327Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/compileStreaming": { + "modified": "2020-10-15T21:58:30.533Z", + "contributors": [ + "SphinxKnight" + ] + }, + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Global": { "modified": "2020-10-15T22:09:51.143Z", "contributors": [ "Voulto", @@ -42503,316 +42683,194 @@ "sideshowbarker" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global/prototype": { - "modified": "2020-10-15T22:09:50.879Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly": { + "modified": "2020-10-15T21:51:49.502Z", "contributors": [ - "fscholz", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance": { - "modified": "2020-10-15T21:52:19.575Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance/exports": { + "modified": "2020-10-15T21:52:20.506Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/exports": { - "modified": "2020-10-15T21:52:20.506Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance": { + "modified": "2020-10-15T21:52:19.575Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/prototype": { - "modified": "2020-10-15T21:52:20.376Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate": { + "modified": "2020-10-15T21:52:23.620Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/LinkError": { - "modified": "2020-10-15T21:52:20.645Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiateStreaming": { + "modified": "2020-10-15T21:58:30.104Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory": { - "modified": "2020-10-15T21:52:20.618Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/LinkError": { + "modified": "2020-10-15T21:52:20.645Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/buffer": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer": { "modified": "2020-10-15T21:52:20.680Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/grow": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow": { "modified": "2020-10-15T21:52:20.328Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/prototype": { - "modified": "2020-10-15T21:52:20.707Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module": { - "modified": "2020-10-15T21:51:45.857Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory": { + "modified": "2020-10-15T21:52:20.618Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/customSections": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/customSections": { "modified": "2020-10-15T21:52:20.338Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/exports": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/exports": { "modified": "2020-10-15T21:52:21.568Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/imports": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/imports": { "modified": "2020-10-15T21:52:21.616Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/prototype": { - "modified": "2020-10-15T21:52:24.010Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Module": { + "modified": "2020-10-15T21:51:45.857Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/RuntimeError": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/RuntimeError": { "modified": "2020-10-15T21:52:23.811Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table": { - "modified": "2020-10-15T21:52:22.381Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/get": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/get": { "modified": "2020-10-15T21:52:23.456Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/grow": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/grow": { "modified": "2020-10-15T21:52:21.173Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/length": { - "modified": "2020-10-15T21:52:22.116Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table": { + "modified": "2020-10-15T21:52:22.381Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/prototype": { - "modified": "2020-10-15T21:52:21.568Z", + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/length": { + "modified": "2020-10-15T21:52:22.116Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/set": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/set": { "modified": "2020-10-15T21:52:22.914Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/compile": { - "modified": "2020-10-15T21:52:23.421Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/compileStreaming": { - "modified": "2020-10-15T21:58:30.533Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/instantiate": { - "modified": "2020-10-15T21:52:23.620Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/instantiateStreaming": { - "modified": "2020-10-15T21:58:30.104Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/WebAssembly/validate": { + "Web/JavaScript/Reference/Global_Objects/WebAssembly/validate": { "modified": "2020-10-15T21:52:22.760Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/decodeURI": { - "modified": "2020-10-15T21:11:18.823Z", + "Web/JavaScript/Reference/Operators/Addition_assignment": { + "modified": "2020-11-25T15:41:30.595Z", "contributors": [ - "SphinxKnight", - "alepee", - "teoli", - "Jeremie", - "matteodelabre" + "Wixonic" ] }, - "Web/JavaScript/Reference/Objets_globaux/decodeURIComponent": { - "modified": "2020-10-15T21:11:20.323Z", + "Web/JavaScript/Reference/Operators/Addition": { + "modified": "2020-10-15T22:32:56.339Z", "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "matteodelabre" + "Voulto", + "ktherage" ] }, - "Web/JavaScript/Reference/Objets_globaux/encodeURI": { - "modified": "2020-10-15T21:11:19.121Z", + "Web/JavaScript/Reference/Operators/Destructuring_assignment": { + "modified": "2020-10-15T21:28:13.934Z", "contributors": [ + "Voltariuss", + "AntoineJT", + "mathildebuenerd", "SphinxKnight", - "Hartesic", - "arnaud.wixiweb", - "LorisG", - "teoli", - "Jeremie", - "Delapouite", - "matteodelabre" + "flawyte", + "db0sch", + "YugzLess", + "jMoulis", + "nicolas-zozol", + "blackfox", + "cdr" ] }, - "Web/JavaScript/Reference/Objets_globaux/encodeURIComponent": { - "modified": "2020-10-15T21:17:24.673Z", + "Web/JavaScript/Reference/Operators/Assignment": { + "modified": "2020-11-25T16:20:19.574Z", "contributors": [ - "SphinxKnight", - "tdraier", - "fscholz", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" + "Wixonic" ] }, - "Web/JavaScript/Reference/Objets_globaux/escape": { - "modified": "2020-10-15T21:31:15.173Z", + "Web/JavaScript/Reference/Operators/async_function": { + "modified": "2020-10-15T21:50:21.927Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/eval": { - "modified": "2020-10-15T21:13:54.788Z", - "contributors": [ - "tristantheb", - "yohannroussel", - "SphinxKnight", - "kiux", - "teoli", - "Jeremie", - "Tiller", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/globalThis": { - "modified": "2020-10-15T22:14:26.077Z", + "Web/JavaScript/Reference/Operators/await": { + "modified": "2020-10-15T21:50:26.961Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/isFinite": { - "modified": "2020-10-15T21:16:54.332Z", + "Web/JavaScript/Reference/Operators/class": { + "modified": "2020-10-15T21:33:48.722Z", "contributors": [ - "SphinxKnight", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/isNaN": { - "modified": "2020-10-15T21:14:14.296Z", + "Web/JavaScript/Reference/Operators/function*": { + "modified": "2020-10-15T21:31:58.380Z", "contributors": [ - "SphinxKnight", - "edspeedy", - "teoli", - "Jeremie", - "Piopier", - "Mgjbot", - "BenoitL" + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Objets_globaux/null": { - "modified": "2020-10-15T21:27:56.698Z", + "Web/JavaScript/Reference/Operators/Grouping": { + "modified": "2020-10-15T21:27:45.620Z", "contributors": [ "SphinxKnight", - "benjamin-chevillon", + "thomasgodart", "teoli" ] }, - "Web/JavaScript/Reference/Objets_globaux/parseFloat": { - "modified": "2020-10-15T21:16:59.325Z", - "contributors": [ - "SphinxKnight", - "VictorLequin", - "ben-barbier", - "forresst", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/parseInt": { - "modified": "2020-10-15T21:16:53.832Z", - "contributors": [ - "SphinxKnight", - "julienc", - "nop", - "Iwazaru", - "darul75", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/undefined": { - "modified": "2020-10-15T21:18:05.602Z", - "contributors": [ - "SphinxKnight", - "begmans", - "tregagnon", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/unescape": { - "modified": "2020-10-15T21:31:14.074Z", - "contributors": [ - "SphinxKnight", - "ea1000" - ] - }, - "Web/JavaScript/Reference/Objets_globaux/uneval": { - "modified": "2020-10-15T21:31:15.431Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs": { + "Web/JavaScript/Reference/Operators": { "modified": "2020-10-15T21:08:27.970Z", "contributors": [ "SphinxKnight", @@ -42825,50 +42883,7 @@ "Mortys" ] }, - "Web/JavaScript/Reference/Opérateurs/Addition": { - "modified": "2020-10-15T22:32:56.339Z", - "contributors": [ - "Voulto", - "ktherage" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Addition_avec_assignement": { - "modified": "2020-11-25T15:41:30.595Z", - "contributors": [ - "Wixonic" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Affecter_par_décomposition": { - "modified": "2020-10-15T21:28:13.934Z", - "contributors": [ - "Voltariuss", - "AntoineJT", - "mathildebuenerd", - "SphinxKnight", - "flawyte", - "db0sch", - "YugzLess", - "jMoulis", - "nicolas-zozol", - "blackfox", - "cdr" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Assignement": { - "modified": "2020-11-25T16:20:19.574Z", - "contributors": [ - "Wixonic" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Groupement": { - "modified": "2020-10-15T21:27:45.620Z", - "contributors": [ - "SphinxKnight", - "thomasgodart", - "teoli" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Initialisateur_objet": { + "Web/JavaScript/Reference/Operators/Object_initializer": { "modified": "2020-10-15T21:30:44.875Z", "contributors": [ "SphinxKnight", @@ -42877,7 +42892,19 @@ "Alain20100" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_conditionnel": { + "Web/JavaScript/Reference/Operators/instanceof": { + "modified": "2020-10-15T21:22:06.497Z", + "contributors": [ + "rjab.ghassen", + "musixone", + "SphinxKnight", + "teoli", + "a5er", + "Automatik", + "Slagt" + ] + }, + "Web/JavaScript/Reference/Operators/Conditional_Operator": { "modified": "2020-10-15T21:18:09.974Z", "contributors": [ "SphinxKnight", @@ -42887,7 +42914,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_delete": { + "Web/JavaScript/Reference/Operators/delete": { "modified": "2020-10-15T21:12:05.788Z", "contributors": [ "Protectator", @@ -42901,7 +42928,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_function": { + "Web/JavaScript/Reference/Operators/function": { "modified": "2020-10-15T21:16:53.494Z", "contributors": [ "SphinxKnight", @@ -42911,7 +42938,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_in": { + "Web/JavaScript/Reference/Operators/in": { "modified": "2020-10-15T21:18:03.771Z", "contributors": [ "SphinxKnight", @@ -42921,7 +42948,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_new": { + "Web/JavaScript/Reference/Operators/new": { "modified": "2020-10-15T21:15:46.170Z", "contributors": [ "SphinxKnight", @@ -42934,7 +42961,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_this": { + "Web/JavaScript/Reference/Operators/this": { "modified": "2020-10-15T21:27:58.257Z", "contributors": [ "naro-VIII", @@ -42947,7 +42974,7 @@ "teoli" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_typeof": { + "Web/JavaScript/Reference/Operators/typeof": { "modified": "2020-10-15T21:16:53.262Z", "contributors": [ "javascriptdezero", @@ -42959,7 +42986,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_virgule": { + "Web/JavaScript/Reference/Operators/Comma_Operator": { "modified": "2020-10-15T21:16:32.035Z", "contributors": [ "SphinxKnight", @@ -42970,7 +42997,7 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/L_opérateur_void": { + "Web/JavaScript/Reference/Operators/void": { "modified": "2020-10-15T21:16:56.249Z", "contributors": [ "SphinxKnight", @@ -42981,91 +43008,22 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/Nullish_coalescing_operator": { - "modified": "2020-11-11T08:53:19.207Z", + "Web/JavaScript/Reference/Operators/new.target": { + "modified": "2020-10-15T21:37:39.321Z", "contributors": [ - "JNa0", "SphinxKnight", - "nkokla" + "blackfox" ] }, - "Web/JavaScript/Reference/Opérateurs/Optional_chaining": { - "modified": "2020-11-11T08:53:02.571Z", + "Web/JavaScript/Reference/Operators/Nullish_coalescing_operator": { + "modified": "2020-11-11T08:53:19.207Z", "contributors": [ "JNa0", - "nkokla", - "joellord", - "forresst", - "necraidan", - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques": { - "modified": "2020-10-15T21:17:24.593Z", - "contributors": [ - "Valentin", - "SphinxKnight", - "PhilippePerret", - "alexisdelee", - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires": { - "modified": "2020-10-15T21:18:05.662Z", - "contributors": [ - "SphinxKnight", - "pastr", - "mizhac", - "id-ismail", - "Sroucheray", - "bsitruk", - "thePivottt", - "titouandk", - "teoli", - "Jeremie", - "Kyodev", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation": { - "modified": "2020-10-15T21:18:11.144Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "Anquez", - "Behrouze", - "Goofy", - "teoli", - "Jeremie", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes": { - "modified": "2019-03-23T23:48:45.315Z", - "contributors": [ - "teoli", - "Jeremie", - "Mgjbot", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison": { - "modified": "2020-10-15T21:18:03.910Z", - "contributors": [ - "Watilin", "SphinxKnight", - "pierreferry", - "lionel-kahan", - "teoli", - "Jeremie", - "Kyodev", - "BenoitL" + "nkokla" ] }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_de_membres": { + "Web/JavaScript/Reference/Operators/Property_Accessors": { "modified": "2020-10-15T21:16:58.418Z", "contributors": [ "SphinxKnight", @@ -43076,88 +43034,29 @@ "BenoitL" ] }, - "Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques": { - "modified": "2020-10-15T21:17:22.011Z", - "contributors": [ - "SphinxKnight", - "Darkilen", - "teoli", - "Jeremie", - "Mgjbot", - "Kyodev", - "BenoitL" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Précédence_des_opérateurs": { - "modified": "2020-03-12T19:38:23.841Z", - "contributors": [ - "SphinxKnight", - "edspeedy", - "vaidd4", - "kylekatarnls", - "teoli", - "Blackhole" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Syntaxe_décomposition": { - "modified": "2020-11-27T12:19:15.200Z", - "contributors": [ - "jmpp", - "mathildebuenerd", - "SphinxKnight", - "edspeedy" - ] - }, - "Web/JavaScript/Reference/Opérateurs/Tube": { - "modified": "2020-10-15T21:59:06.221Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs/async_function": { - "modified": "2020-10-15T21:50:21.927Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs/await": { - "modified": "2020-10-15T21:50:26.961Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs/class": { - "modified": "2020-10-15T21:33:48.722Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Opérateurs/function*": { - "modified": "2020-10-15T21:31:58.380Z", + "Web/JavaScript/Reference/Operators/Optional_chaining": { + "modified": "2020-11-11T08:53:02.571Z", "contributors": [ + "JNa0", + "nkokla", + "joellord", + "forresst", + "necraidan", "SphinxKnight" ] }, - "Web/JavaScript/Reference/Opérateurs/instanceof": { - "modified": "2020-10-15T21:22:06.497Z", + "Web/JavaScript/Reference/Operators/Operator_Precedence": { + "modified": "2020-03-12T19:38:23.841Z", "contributors": [ - "rjab.ghassen", - "musixone", "SphinxKnight", + "edspeedy", + "vaidd4", + "kylekatarnls", "teoli", - "a5er", - "Automatik", - "Slagt" - ] - }, - "Web/JavaScript/Reference/Opérateurs/new.target": { - "modified": "2020-10-15T21:37:39.321Z", - "contributors": [ - "SphinxKnight", - "blackfox" + "Blackhole" ] }, - "Web/JavaScript/Reference/Opérateurs/super": { + "Web/JavaScript/Reference/Operators/super": { "modified": "2020-10-15T21:33:56.214Z", "contributors": [ "SphinxKnight", @@ -43165,45 +43064,40 @@ "jcalixte" ] }, - "Web/JavaScript/Reference/Opérateurs/yield": { - "modified": "2020-10-15T21:29:38.167Z", + "Web/JavaScript/Reference/Operators/Spread_syntax": { + "modified": "2020-11-27T12:19:15.200Z", "contributors": [ - "WilliamDASILVA", + "jmpp", + "mathildebuenerd", "SphinxKnight", - "germinolegrand", - "NemoNobobyPersonne", - "lqpinoo", - "necraidan", - "Justkant" + "edspeedy" + ] + }, + "Web/JavaScript/Reference/Operators/Pipeline_operator": { + "modified": "2020-10-15T21:59:06.221Z", + "contributors": [ + "SphinxKnight" ] }, - "Web/JavaScript/Reference/Opérateurs/yield*": { + "Web/JavaScript/Reference/Operators/yield*": { "modified": "2020-10-15T21:32:04.935Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Reference/Strict_mode": { - "modified": "2020-03-12T19:38:43.336Z", + "Web/JavaScript/Reference/Operators/yield": { + "modified": "2020-10-15T21:29:38.167Z", "contributors": [ + "WilliamDASILVA", "SphinxKnight", - "pastr", - "Nothus", - "Laurent_Lyaudet", - "kdex", - "boessel", - "Bpruneau", - "WSH", - "krazygit", - "onra87", - "fscholz", - "teoli", - "jessmania", - "Automatik", - "Munto" + "germinolegrand", + "NemoNobobyPersonne", + "lqpinoo", + "necraidan", + "Justkant" ] }, - "Web/JavaScript/Reference/Strict_mode/Passer_au_mode_strict": { + "Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode": { "modified": "2020-03-12T19:39:22.597Z", "contributors": [ "SphinxKnight", @@ -43212,24 +43106,13 @@ "fscholz" ] }, - "Web/JavaScript/Reference/Virgules_finales": { + "Web/JavaScript/Reference/Trailing_commas": { "modified": "2020-10-15T21:51:41.115Z", "contributors": [ "SphinxKnight" ] }, - "Web/JavaScript/Shells": { - "modified": "2020-03-12T19:35:39.467Z", - "contributors": [ - "SphinxKnight", - "teoli", - "Goofy", - "wakka27", - "ziyunfei", - "julienw" - ] - }, - "Web/JavaScript/Structures_de_données": { + "Web/JavaScript/Data_structures": { "modified": "2020-07-03T14:40:14.994Z", "contributors": [ "GDFtj", @@ -43247,7 +43130,7 @@ "bfn" ] }, - "Web/JavaScript/Tableaux_typés": { + "Web/JavaScript/Typed_arrays": { "modified": "2020-10-15T21:27:32.382Z", "contributors": [ "SphinxKnight", @@ -43256,7 +43139,7 @@ "teoli" ] }, - "Web/JavaScript/Une_réintroduction_à_JavaScript": { + "Web/JavaScript/A_re-introduction_to_JavaScript": { "modified": "2020-07-28T02:45:40.027Z", "contributors": [ "Gcob", @@ -43288,2719 +43171,2836 @@ "Fredchat" ] }, - "Web/JavaScript/guide_de_demarrage": { - "modified": "2019-03-23T23:12:53.783Z", + "Web/MathML/Attribute/Values": { + "modified": "2019-03-23T22:41:04.847Z", "contributors": [ - "SphinxKnight", - "316k", - "laurentChin" + "xdelatour" ] }, - "Web/Manifest": { - "modified": "2020-07-07T17:00:42.988Z", + "Web/MathML/Examples/Deriving_the_Quadratic_Formula": { + "modified": "2019-03-23T22:30:54.520Z", "contributors": [ - "yannbertrand", - "chrisspb", - "Goofy", - "mlcdf", - "loella16", - "Luwangel", - "JeffD" + "SphinxKnight", + "Damiaou", + "Vestibule" ] }, - "Web/Manifest/theme_color": { - "modified": "2020-10-15T22:26:29.306Z", + "Web/MathML/Examples": { + "modified": "2019-03-23T23:13:37.199Z", "contributors": [ - "Arzak656" + "teoli", + "flexy4" ] }, - "Web/MathML": { - "modified": "2020-11-16T12:48:00.196Z", + "Web/MathML/Examples/MathML_Pythagorean_Theorem": { + "modified": "2020-11-16T13:48:58.713Z", "contributors": [ "JNa0", - "fred.wang", - "SphinxKnight" + "Vestibule", + "Powlow" ] }, - "Web/MathML/Attribute": { - "modified": "2020-11-16T12:58:45.165Z", + "Web/Media/Formats/Support_issues": { + "modified": "2020-02-08T13:23:17.232Z", "contributors": [ - "JNa0", - "Fredchat", - "Delapouite", - "SphinxKnight" + "tristantheb" ] }, - "Web/MathML/Attribute/Valeurs": { - "modified": "2019-03-23T22:41:04.847Z", + "Web/Media/Formats/Image_types": { + "modified": "2020-02-10T17:42:22.049Z", "contributors": [ - "xdelatour" + "tristantheb" ] }, - "Web/MathML/Authoring": { - "modified": "2020-11-16T13:43:13.167Z", + "Web/Performance/Performance_budgets": { + "modified": "2020-11-10T08:58:27.096Z", "contributors": [ - "JNa0", - "florimond.alemps", - "fred.wang", - "Goofy" + "Voulto" ] }, - "Web/MathML/Element": { - "modified": "2020-11-16T13:26:48.036Z", + "Web/Progressive_web_apps/Add_to_home_screen": { + "modified": "2019-03-18T20:32:38.719Z", "contributors": [ - "JNa0", - "tregagnon", - "SphinxKnight" + "SphinxKnight", + "brouillon", + "chrisdavidmills", + "LaNamandine" ] }, - "Web/MathML/Element/maction": { - "modified": "2019-03-23T23:29:11.950Z", + "Web/Progressive_web_apps/Loading": { + "modified": "2019-11-10T21:06:38.811Z", "contributors": [ - "SphinxKnight" + "poum" ] }, - "Web/MathML/Element/math": { - "modified": "2020-10-15T21:24:02.886Z", + "Web/Progressive_web_apps/Re-engageable_Notifications_Push": { + "modified": "2020-05-31T18:38:21.859Z", "contributors": [ - "tristantheb", - "tregagnon", - "SphinxKnight" + "poum" ] }, - "Web/MathML/Element/menclose": { - "modified": "2019-03-23T23:28:57.107Z", + "Web/HTTP/Public_Key_Pinning": { + "modified": "2019-03-18T21:11:18.056Z", "contributors": [ - "fred.wang", - "Delapouite", - "SphinxKnight" + "totopsy", + "Tom_D", + "Hell_Carlito" ] }, - "Web/MathML/Element/merror": { - "modified": "2019-03-23T23:29:00.856Z", + "Web/Security/Same-origin_policy": { + "modified": "2019-10-12T13:42:13.230Z", "contributors": [ - "Delapouite", - "SphinxKnight" + "GregMorel", + "SphinxKnight", + "Selbahc", + "sblondon", + "rle-mino", + "fabienheureux", + "teoli", + "dwogsi" ] }, - "Web/MathML/Element/mfenced": { - "modified": "2020-10-15T21:23:45.763Z", + "Web/SVG/Applying_SVG_effects_to_HTML_content": { + "modified": "2019-03-23T22:34:17.290Z", "contributors": [ - "tristantheb", - "fred.wang", - "Delapouite", - "SphinxKnight" + "vermotr" ] }, - "Web/MathML/Element/mfrac": { - "modified": "2019-03-23T23:29:03.213Z", + "Web/SVG/Compatibility_sources": { + "modified": "2019-03-23T23:05:05.046Z", "contributors": [ - "fred.wang", - "Delapouite", - "SphinxKnight" + "tonybengue", + "B_M", + "Barbrousse" ] }, - "Web/MathML/Element/mglyph": { - "modified": "2020-10-15T21:23:58.877Z", + "Web/SVG/SVG_as_an_Image": { + "modified": "2019-03-29T09:03:13.544Z", "contributors": [ "SphinxKnight", - "Delapouite", - "Goofy" + "a-mt", + "Barbrousse" ] }, - "Web/MathML/Element/mi": { - "modified": "2019-03-23T23:29:00.435Z", + "Web/SVG/Tutorial/Other_content_in_SVG": { + "modified": "2019-03-23T23:16:11.402Z", "contributors": [ - "Delapouite", - "SphinxKnight" + "a-mt", + "Jean-MariePETIT" ] }, - "Web/MathML/Element/mover": { - "modified": "2019-03-23T23:20:28.812Z", + "Web/SVG/Tutorial/Clipping_and_masking": { + "modified": "2019-03-24T00:14:44.808Z", "contributors": [ - "Goofy", - "fred.wang" + "a-mt", + "parmentf", + "teoli", + "PetiPandaRou" ] }, - "Web/MathML/Element/msub": { - "modified": "2020-10-15T22:21:32.420Z", + "Web/SVG/Tutorial/Fills_and_Strokes": { + "modified": "2019-03-18T21:23:38.637Z", "contributors": [ - "Arzak656" + "a-mt" ] }, - "Web/MathML/Element/munder": { - "modified": "2019-03-23T23:20:27.966Z", + "Web/SVG/Tutorial/Filter_effects": { + "modified": "2019-04-20T15:46:39.301Z", "contributors": [ - "fred.wang" + "tombosoadimitrie", + "a-mt" ] }, - "Web/MathML/Element/munderover": { - "modified": "2020-10-15T21:26:39.645Z", + "Web/SVG/Tutorial/Basic_Shapes": { + "modified": "2019-03-23T23:50:51.657Z", "contributors": [ - "tristantheb", - "fred.wang" + "a-mt", + "Watilin", + "parmentf", + "Jean-MariePETIT", + "teoli", + "tregagnon", + "PetiPandaRou" ] }, - "Web/MathML/Exemples": { - "modified": "2019-03-23T23:13:37.199Z", + "Web/SVG/Tutorial/Gradients": { + "modified": "2019-03-18T21:23:33.431Z", + "contributors": [ + "a-mt" + ] + }, + "Web/SVG/Tutorial": { + "modified": "2019-03-24T00:14:42.932Z", "contributors": [ + "a-mt", "teoli", - "flexy4" + "PetiPandaRou", + "Mgjbot", + "Fredchat", + "Duarna" ] }, - "Web/MathML/Exemples/Dériver_la_Formule_Quadratique": { - "modified": "2019-03-23T22:30:54.520Z", + "Web/SVG/Tutorial/SVG_In_HTML_Introduction": { + "modified": "2019-06-17T09:44:07.955Z", "contributors": [ - "SphinxKnight", - "Damiaou", - "Vestibule" + "AlainGourves", + "chrisdavidmills", + "benjaminabel", + "BenoitL", + "Chbok" ] }, - "Web/MathML/Exemples/MathML_Theoreme_de_Pythagore": { - "modified": "2020-11-16T13:48:58.713Z", + "Web/SVG/Tutorial/Introduction": { + "modified": "2019-03-24T00:14:10.761Z", "contributors": [ - "JNa0", - "Vestibule", - "Powlow" + "a-mt", + "marecord", + "parmentf", + "teoli", + "PetiPandaRou", + "Fredchat", + "Duarna", + "Mgjbot" ] }, - "Web/MathML/Index": { - "modified": "2019-01-16T22:05:50.107Z", + "Web/SVG/Tutorial/Patterns": { + "modified": "2019-03-18T21:17:06.419Z", "contributors": [ - "xdelatour" + "a-mt" ] }, - "Web/Media": { - "modified": "2019-03-18T21:32:54.694Z", + "Web/SVG/Tutorial/Paths": { + "modified": "2019-09-10T13:49:14.936Z", "contributors": [ - "tonybengue" + "blomki", + "lhapaipai", + "a-mt", + "Watilin" ] }, - "Web/Media/Formats": { - "modified": "2020-02-08T13:22:06.570Z", + "Web/SVG/Tutorial/SVG_fonts": { + "modified": "2019-03-23T22:39:39.513Z", "contributors": [ - "tristantheb" + "a-mt", + "jti77", + "enogael", + "Cyril-Levallois" ] }, - "Web/Media/Formats/Questions_sur_le_soutien": { - "modified": "2020-02-08T13:23:17.232Z", + "Web/SVG/Tutorial/Positions": { + "modified": "2019-03-24T00:14:10.641Z", "contributors": [ - "tristantheb" + "LennyObez", + "Jean-MariePETIT", + "teoli", + "PetiPandaRou", + "Goofy" ] }, - "Web/Media/Formats/Types_des_images": { - "modified": "2020-02-10T17:42:22.049Z", + "Web/SVG/Tutorial/Getting_Started": { + "modified": "2019-03-24T00:03:59.091Z", "contributors": [ - "tristantheb" + "sayabiws", + "Hell_Carlito", + "SphinxKnight", + "marie-ototoi", + "parmentf", + "benjaminabel", + "teoli", + "PetiPandaRou", + "Goofy", + "AlexisMetaireau", + "mulliezj", + "fscholz", + "Fredchat", + "Duarna", + "Mgjbot" ] }, - "Web/Performance": { - "modified": "2019-12-19T10:00:18.648Z", + "Web/SVG/Tutorial/SVG_Image_Tag": { + "modified": "2019-03-23T22:39:52.558Z", "contributors": [ - "chrisdavidmills" + "a-mt", + "jti77", + "MrIglou" ] }, - "Web/Performance/Budgets_de_performance": { - "modified": "2020-11-10T08:58:27.096Z", + "Web/SVG/Tutorial/Texts": { + "modified": "2019-03-18T21:23:21.700Z", "contributors": [ - "Voulto" + "a-mt" ] }, - "Web/Performance/How_browsers_work": { - "modified": "2019-12-19T10:00:31.657Z", + "Web/SVG/Tutorial/Tools_for_SVG": { + "modified": "2019-03-23T22:53:22.704Z", "contributors": [ - "chrisdavidmills", - "estelle" + "a-mt", + "Goofy", + "marie-ototoi" ] }, - "Web/Progressive_web_apps": { - "modified": "2020-04-26T14:49:45.824Z", + "Web/SVG/Tutorial/Basic_Transformations": { + "modified": "2019-03-24T00:14:43.788Z", "contributors": [ - "Mozinet", - "hellosct1", - "brandonlazarre", - "chrisdavidmills", - "tonybengue", - "enguerran", + "a-mt", "loella16", - "Hell_Carlito", - "JeffD" + "bastienmoulia", + "teoli", + "tregagnon", + "PetiPandaRou" ] }, - "Web/Progressive_web_apps/Adaptative": { - "modified": "2019-03-18T20:52:18.105Z", + "Web/Tutorials": { + "modified": "2020-09-04T03:10:42.961Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD" + "SphinxKnight", + "ppayet304", + "Maxi-MenuBestOfPlus", + "W1773ND", + "tmpbci", + "xvw", + "rjeannot", + "CarlosAvim", + "CarterMason4", + "marecord", + "JeffD", + "badgohan", + "teoli", + "dayenu", + "Oliviermoz", + "Bat", + "Wlad-Hawaii", + "nelsonkam", + "Antwan_Did", + "PageotD", + "Mutijima", + "hs0ucy", + "Shaker", + "Asaphus", + "tomsihap", + "anthonybt", + "laurent-thuy", + "Info", + "chris.bourdieu", + "AnthonyMaton", + "naar", + "Nesseria" ] }, - "Web/Progressive_web_apps/App_structure": { - "modified": "2020-08-05T10:07:41.167Z", + "Web/Web_Components/Using_templates_and_slots": { + "modified": "2019-07-27T04:45:38.358Z", "contributors": [ - "Khylias", - "tdufranne", - "poum" + "PSthely", + "wiredbug" ] }, - "Web/Progressive_web_apps/Chargement": { - "modified": "2019-11-10T21:06:38.811Z", + "Web/XML/XML_introduction": { + "modified": "2019-05-01T21:50:25.192Z", "contributors": [ - "poum" + "ExE-Boss", + "Elethiomel", + "Fredchat", + "BenoitL", + "Mgjbot", + "Lbergere" ] }, - "Web/Progressive_web_apps/Identifiable": { - "modified": "2019-03-18T20:52:18.657Z", + "Web/XPath/Functions/boolean": { + "modified": "2019-01-16T15:50:26.737Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Independante_du_reseau": { - "modified": "2019-03-18T20:52:17.306Z", + "Web/XPath/Functions/ceiling": { + "modified": "2019-01-16T15:50:21.623Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD", - "Goofy" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Installable": { - "modified": "2019-03-18T20:52:18.292Z", + "Web/XPath/Functions/concat": { + "modified": "2019-01-16T15:50:21.441Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Installable_PWAs": { - "modified": "2020-05-31T18:38:21.807Z", + "Web/XPath/Functions/contains": { + "modified": "2019-03-23T23:58:27.714Z", "contributors": [ - "poum" + "ExE-Boss", + "joseph2rs", + "eleg", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Introduction": { - "modified": "2019-09-19T07:57:58.235Z", + "Web/XPath/Functions/count": { + "modified": "2019-01-16T15:50:25.794Z", "contributors": [ - "Kuzcoo" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Offline_Service_workers": { - "modified": "2020-11-28T08:40:27.578Z", + "Web/XPath/Functions/current": { + "modified": "2019-01-16T16:10:44.044Z", "contributors": [ - "mandie33", - "floreengrad", - "kgrandemange", - "Lmzd", - "poum" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Partageable": { - "modified": "2019-03-18T20:52:18.465Z", + "Web/XPath/Functions/document": { + "modified": "2019-01-16T16:10:44.270Z", "contributors": [ - "chrisdavidmills", - "Gibus", - "JeffD" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Progressive": { - "modified": "2019-03-18T20:52:17.884Z", + "Web/XPath/Functions/element-available": { + "modified": "2019-01-16T16:10:46.100Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Re-engageable": { - "modified": "2019-03-18T20:52:17.700Z", + "Web/XPath/Functions/false": { + "modified": "2019-01-16T15:50:11.196Z", "contributors": [ - "chrisdavidmills", - "Hell_Carlito", - "JeffD" + "ExE-Boss", + "Mgjbot", + "Laymain", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Relancer_Via_Notifications_Push": { - "modified": "2020-05-31T18:38:21.859Z", + "Web/XPath/Functions/floor": { + "modified": "2019-03-23T23:49:20.491Z", "contributors": [ - "poum" + "ExE-Boss", + "Fredchat", + "stephaniehobson", + "Mgjbot", + "VincentN" + ] + }, + "Web/XPath/Functions/format-number": { + "modified": "2019-01-16T15:28:39.710Z", + "contributors": [ + "ExE-Boss", + "Curieux", + "VincentN", + "Fredchat" + ] + }, + "Web/XPath/Functions/function-available": { + "modified": "2019-01-16T16:11:01.243Z", + "contributors": [ + "ExE-Boss", + "VincentN", + "Fredchat" + ] + }, + "Web/XPath/Functions/generate-id": { + "modified": "2019-01-16T16:11:03.202Z", + "contributors": [ + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/Securisee": { - "modified": "2019-03-18T20:52:17.484Z", + "Web/XPath/Functions/id": { + "modified": "2019-01-16T15:50:07.997Z", "contributors": [ - "chrisdavidmills", - "Gibus", - "JeffD" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/Progressive_web_apps/ajouter_a_lecran_daccueil_a2hs": { - "modified": "2019-03-18T20:32:38.719Z", + "Web/XPath/Functions": { + "modified": "2019-03-23T23:54:16.270Z", "contributors": [ - "SphinxKnight", - "brouillon", - "chrisdavidmills", - "LaNamandine" + "ExE-Boss", + "Fredchat", + "Mgjbot", + "VincentN" ] }, - "Web/Reference": { - "modified": "2020-04-10T02:52:59.247Z", + "Web/XPath/Functions/key": { + "modified": "2019-01-16T16:11:09.419Z", "contributors": [ - "SphinxKnight", - "ScarabIG", - "smeden-lod", - "tonybengue", - "Nothus", - "mg1", - "PanPan", - "naar" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/Reference/API": { - "modified": "2019-03-23T23:15:29.222Z", + "Web/XPath/Functions/lang": { + "modified": "2019-01-16T15:50:16.941Z", "contributors": [ - "CoulibalyZieSidiki", - "SphinxKnight", - "teoli", - "yvesd", - "Goofy", - "hanyrold" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG": { - "modified": "2020-02-08T12:31:46.566Z", + "Web/XPath/Functions/last": { + "modified": "2019-01-16T15:50:10.531Z", "contributors": [ - "tristantheb", - "AbdelElMansari", - "Tresmollo", - "unpeudetout", - "marie-ototoi", - "nicodel", - "SphinxKnight", - "teoli", - "Delapouite", - "darnuria", - "Jeremie", - "MsTeshi", - "marc971", - "gemy_c", - "fscholz", - "BenoitL", - "Fredchat", - "Kyodev", - "Duarna", - "Verruckt", - "Chbok", + "ExE-Boss", "Mgjbot", - "Jorolo", - "Anonymous" + "VincentN", + "Fredchat" ] }, - "Web/SVG/Application_d_effets_SVG_a_du_contenu_HTML": { - "modified": "2019-03-23T22:34:17.290Z", + "Web/XPath/Functions/local-name": { + "modified": "2019-01-16T15:50:02.059Z", "contributors": [ - "vermotr" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute": { - "modified": "2019-03-18T20:39:37.299Z", + "Web/XPath/Functions/name": { + "modified": "2019-01-16T15:50:11.321Z", "contributors": [ - "a-mt", - "Frigory", - "marie-ototoi", - "teoli", - "Delapouite", - "Blackhole", - "ethertank" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/Conditional_Processing": { - "modified": "2020-10-15T22:11:03.231Z", + "Web/XPath/Functions/namespace-uri": { + "modified": "2019-01-16T15:50:06.369Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/Core": { - "modified": "2020-10-15T22:10:56.108Z", + "Web/XPath/Functions/normalize-space": { + "modified": "2020-08-05T06:06:47.724Z", "contributors": [ - "a-mt" + "ele-gall-ac-mineducation", + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/Events": { - "modified": "2020-10-15T22:10:52.662Z", + "Web/XPath/Functions/not": { + "modified": "2019-01-16T15:50:03.166Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/Presentation": { - "modified": "2020-10-15T22:11:15.381Z", + "Web/XPath/Functions/number": { + "modified": "2019-01-16T15:50:08.363Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/Styling": { - "modified": "2020-10-15T22:10:54.819Z", + "Web/XPath/Functions/position": { + "modified": "2019-03-18T20:55:34.370Z", "contributors": [ - "a-mt" + "GenjoMoz", + "ExE-Boss", + "Mgjbot", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Attribute/accent-height": { - "modified": "2019-03-23T22:21:03.889Z", + "Web/XPath/Functions/round": { + "modified": "2019-01-16T15:50:06.584Z", "contributors": [ - "SphinxKnight", - "daimebag" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/clip-path": { - "modified": "2020-10-15T22:11:30.678Z", + "Web/XPath/Functions/starts-with": { + "modified": "2019-01-16T14:54:33.055Z", "contributors": [ - "a-mt" + "ExE-Boss", + "eleg", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/color": { - "modified": "2020-10-15T22:11:30.261Z", + "Web/XPath/Functions/string-length": { + "modified": "2019-01-16T15:50:05.325Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/cx": { - "modified": "2019-03-23T23:31:20.118Z", + "Web/XPath/Functions/string": { + "modified": "2019-01-16T15:50:09.755Z", "contributors": [ - "a-mt", - "teoli", - "Blackhole" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/cy": { - "modified": "2019-03-23T23:31:21.093Z", + "Web/XPath/Functions/substring-after": { + "modified": "2019-01-16T15:50:03.541Z", "contributors": [ - "a-mt", - "teoli", - "Blackhole" + "ExE-Boss", + "Mgjbot", + "BenoitL", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Attribute/d": { - "modified": "2019-07-21T08:22:01.775Z", + "Web/XPath/Functions/substring-before": { + "modified": "2019-01-16T15:50:05.352Z", "contributors": [ - "JNa0", - "cdoublev", - "AntoineTohan", - "mknx", - "Tolokoban2" + "ExE-Boss", + "Mgjbot", + "BenoitL", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Attribute/dx": { - "modified": "2019-03-23T22:03:37.098Z", + "Web/XPath/Functions/substring": { + "modified": "2019-01-16T15:50:11.468Z", "contributors": [ - "a-mt", - "dattaz" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/dy": { - "modified": "2019-03-18T21:22:22.282Z", + "Web/XPath/Functions/sum": { + "modified": "2019-01-16T15:50:16.840Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/fill": { - "modified": "2020-10-15T22:11:05.869Z", + "Web/XPath/Functions/system-property": { + "modified": "2019-01-16T16:10:22.040Z", "contributors": [ - "a-mt" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/fill-opacity": { - "modified": "2020-10-15T22:11:05.147Z", + "Web/XPath/Functions/translate": { + "modified": "2019-01-16T15:28:29.401Z", "contributors": [ - "a-mt" + "ExE-Boss", + "Curieux", + "Mgjbot", + "ToGGy", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Attribute/fill-rule": { - "modified": "2020-10-15T22:11:05.485Z", + "Web/XPath/Functions/true": { + "modified": "2019-01-16T15:50:09.532Z", "contributors": [ - "davidwerbrouck", - "a-mt" + "ExE-Boss", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/height": { - "modified": "2019-03-23T22:07:31.508Z", + "Web/XPath/Functions/unparsed-entity-url": { + "modified": "2019-01-16T16:10:19.128Z", "contributors": [ - "AlexisColin" + "ExE-Boss", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/in": { - "modified": "2019-03-18T21:22:14.241Z", + "Web/XSLT/Element/apply-imports": { + "modified": "2019-01-16T16:10:20.927Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/mask": { - "modified": "2020-10-15T22:16:06.957Z", + "Web/XSLT/Element/apply-templates": { + "modified": "2019-01-16T16:10:22.148Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/points": { - "modified": "2020-02-04T12:32:34.025Z", + "Web/XSLT/Element/attribute-set": { + "modified": "2019-01-16T16:11:22.221Z", "contributors": [ - "Arzak656" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/preserveAspectRatio": { - "modified": "2019-03-18T21:22:57.126Z", + "Web/XSLT/Element/attribute": { + "modified": "2019-01-16T16:11:19.258Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/seed": { - "modified": "2019-03-23T22:07:14.284Z", + "Web/XSLT/Element/call-template": { + "modified": "2019-01-16T16:10:24.205Z", "contributors": [ - "AlexisColin" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke": { - "modified": "2020-10-15T21:56:30.225Z", + "Web/XSLT/Element/choose": { + "modified": "2019-01-16T16:11:13.317Z", "contributors": [ - "a-mt", - "AlexisColin" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-dasharray": { - "modified": "2020-10-15T21:56:31.583Z", + "Web/XSLT/Element/comment": { + "modified": "2019-01-16T16:11:15.059Z", "contributors": [ - "a-mt", - "AlexisColin" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-dashoffset": { - "modified": "2020-10-15T22:10:57.575Z", + "Web/XSLT/Element/copy-of": { + "modified": "2019-01-16T16:11:12.711Z", "contributors": [ - "Nicolapps", - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-linecap": { - "modified": "2020-10-15T22:11:04.507Z", + "Web/XSLT/Element/copy": { + "modified": "2019-01-16T16:11:11.226Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-linejoin": { - "modified": "2020-10-15T22:11:04.638Z", + "Web/XSLT/Element/decimal-format": { + "modified": "2019-01-16T16:11:14.248Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-miterlimit": { - "modified": "2020-10-15T22:11:03.140Z", + "Web/XSLT/Element/fallback": { + "modified": "2019-01-16T16:10:22.081Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-opacity": { - "modified": "2020-10-15T22:11:06.016Z", + "Web/XSLT/Element/for-each": { + "modified": "2019-01-16T16:10:14.121Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/stroke-width": { - "modified": "2020-10-15T22:11:05.550Z", + "Web/XSLT/Element/if": { + "modified": "2019-03-23T23:44:08.058Z", "contributors": [ - "AinaBeryl", - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/style": { - "modified": "2020-10-15T22:11:06.053Z", + "Web/XSLT/Element/import": { + "modified": "2019-05-12T02:01:24.974Z", "contributors": [ - "a-mt" + "SphinxKnight", + "T1p0un3t", + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/text-anchor": { - "modified": "2019-03-23T22:32:39.192Z", + "Web/XSLT/Element/include": { + "modified": "2019-05-10T04:30:49.369Z", "contributors": [ - "PierreGuyot", - "tonybengue", - "CLEm" + "T1p0un3t", + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Attribute/transform": { - "modified": "2019-12-04T16:27:51.754Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko/Setting_Parameters": { + "modified": "2019-03-23T23:43:55.284Z", "contributors": [ "SphinxKnight", - "Dimitri-web" + "chrisdavidmills", + "Sebastianz", + "Jeremie", + "Fredchat" ] }, - "Web/SVG/Attribute/viewBox": { - "modified": "2019-03-23T22:45:10.877Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko/Advanced_Example": { + "modified": "2019-03-23T23:43:56.095Z", "contributors": [ - "JosephMarinier", - "Frigory", - "Acen1991", - "ylerjen" + "SphinxKnight", + "chrisdavidmills", + "Sebastianz", + "Jeremie", + "Fredchat" ] }, - "Web/SVG/Attribute/width": { - "modified": "2019-03-23T22:07:27.903Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko/Basic_Example": { + "modified": "2020-04-03T12:42:05.763Z", "contributors": [ - "AlexisColin" + "olivierdupon", + "SphinxKnight", + "chrisdavidmills", + "Sebastianz", + "Jeremie", + "Fredchat" ] }, - "Web/SVG/Attribute/x": { - "modified": "2019-03-23T22:21:00.230Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko": { + "modified": "2019-03-23T23:47:47.682Z", "contributors": [ "SphinxKnight", - "daimebag" + "chrisdavidmills", + "Jeremie", + "Mgjbot", + "Kyodev", + "Fredchat" ] }, - "Web/SVG/Element": { - "modified": "2020-02-08T11:58:35.321Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko/JavaScript_XSLT_Bindings": { + "modified": "2019-03-23T23:49:14.126Z", "contributors": [ - "tristantheb", - "Arzak656", - "Dralyab", + "SphinxKnight", + "chrisdavidmills", "Sebastianz", - "teoli", - "gemy_c" + "Jeremie", + "Chichille", + "Fredchat" ] }, - "Web/SVG/Element/a": { - "modified": "2020-10-15T21:30:14.070Z", + "Web/XSLT/XSLT_JS_interface_in_Gecko/Resources": { + "modified": "2019-03-23T23:43:56.751Z", "contributors": [ - "a-mt", - "sblondon", - "Sebastianz", + "wbamberg", "SphinxKnight", - "teoli", - "Barbrousse" + "chrisdavidmills", + "Sebastianz", + "Jeremie", + "Fredchat" ] }, - "Web/SVG/Element/altGlyph": { - "modified": "2019-03-18T21:15:56.588Z", + "Web/XSLT/Element/key": { + "modified": "2019-01-16T16:10:13.896Z", "contributors": [ - "Sebastianz", - "SphinxKnight", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/altGlyphDef": { - "modified": "2019-03-23T23:04:57.212Z", + "Web/XSLT/Element/message": { + "modified": "2019-01-16T16:10:13.942Z", "contributors": [ - "Sebastianz", - "SphinxKnight", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/altGlyphItem": { - "modified": "2019-03-23T23:04:57.962Z", + "Web/XSLT/Element/namespace-alias": { + "modified": "2019-01-16T16:10:13.922Z", "contributors": [ - "Sebastianz", - "SphinxKnight", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/animate": { - "modified": "2020-10-15T21:31:45.459Z", + "Web/XSLT/Element/number": { + "modified": "2019-03-23T23:44:07.848Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "bperel", - "fscholz", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/animateColor": { - "modified": "2020-10-15T21:31:44.928Z", + "Web/XSLT/Element/otherwise": { + "modified": "2019-01-16T16:09:54.989Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/animateMotion": { - "modified": "2020-10-15T21:31:47.363Z", + "Web/XSLT/Element/output": { + "modified": "2019-01-16T16:09:52.885Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "Barbrousse" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/animateTransform": { - "modified": "2020-10-15T21:20:56.345Z", + "Web/XSLT/Element/param": { + "modified": "2019-01-16T16:09:53.847Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "teoli", - "TPXP" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/circle": { - "modified": "2020-10-15T21:09:33.643Z", + "Web/XSLT/PI_Parameters": { + "modified": "2019-03-23T23:44:06.266Z", "contributors": [ - "EloD10", - "Sebastianz", - "SphinxKnight", - "teoli", - "tregagnon", - "gemy_c" + "chrisdavidmills", + "fscholz", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/clipPath": { - "modified": "2020-10-15T22:11:31.108Z", + "Web/XSLT/Element/preserve-space": { + "modified": "2019-01-16T16:10:07.363Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/defs": { - "modified": "2019-03-23T22:26:29.285Z", + "Web/XSLT/Element/processing-instruction": { + "modified": "2019-01-16T16:09:56.661Z", "contributors": [ - "sansourcil", - "eloi-duwer", - "Sebastianz", - "Nothus" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/desc": { - "modified": "2020-10-15T21:34:39.299Z", + "Web/XSLT/Index": { + "modified": "2019-06-17T11:21:18.591Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "B_M", - "Goofy" + "Arzak656" ] }, - "Web/SVG/Element/ellipse": { - "modified": "2020-09-29T06:35:14.424Z", + "Web/XSLT/Element/sort": { + "modified": "2019-01-16T16:02:11.967Z", "contributors": [ - "cdoublev", - "wbamberg", - "Sebastianz", - "SphinxKnight", - "teoli", - "tregagnon", - "gemy_c" + "chrisdavidmills", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Element/feBlend": { - "modified": "2020-10-15T22:12:16.605Z", + "Web/XSLT/Element/strip-space": { + "modified": "2019-01-16T16:09:55.845Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feColorMatrix": { - "modified": "2020-10-15T22:12:13.564Z", + "Web/XSLT/Element/stylesheet": { + "modified": "2019-01-16T16:09:51.775Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feComponentTransfer": { - "modified": "2020-10-15T22:12:14.922Z", + "Web/XSLT/Element/template": { + "modified": "2019-01-16T16:07:47.679Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feComposite": { - "modified": "2020-10-15T22:12:16.930Z", + "Web/XSLT/Element/text": { + "modified": "2019-03-23T23:44:38.020Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feConvolveMatrix": { - "modified": "2020-10-15T22:12:18.458Z", + "Web/XSLT/Element/transform": { + "modified": "2019-01-16T16:11:22.367Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "Fredchat" ] }, - "Web/SVG/Element/feDiffuseLighting": { - "modified": "2020-10-15T22:12:15.916Z", + "Web/XSLT/Transforming_XML_with_XSLT/For_Further_Reading": { + "modified": "2019-03-23T23:51:33.836Z", "contributors": [ - "a-mt" + "SphinxKnight", + "chrisdavidmills", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Element/feDisplacementMap": { - "modified": "2020-10-15T22:12:17.332Z", + "Web/XSLT/Transforming_XML_with_XSLT": { + "modified": "2019-01-16T15:43:09.128Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "Fredchat", + "VincentN" ] }, - "Web/SVG/Element/feDistantLight": { - "modified": "2020-10-15T22:12:08.109Z", + "Web/XSLT/Transforming_XML_with_XSLT/The_Netscape_XSLT_XPath_Reference": { + "modified": "2019-01-16T16:11:27.172Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "Fredchat" ] }, - "Web/SVG/Element/feDropShadow": { - "modified": "2020-10-15T22:12:12.290Z", + "Web/XSLT/Transforming_XML_with_XSLT/An_Overview": { + "modified": "2019-03-23T23:45:10.616Z", "contributors": [ - "a-mt" + "SphinxKnight", + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feFlood": { - "modified": "2020-10-15T22:11:42.213Z", + "Web/XSLT/Using_the_Mozilla_JavaScript_interface_to_XSL_Transformations": { + "modified": "2019-11-21T00:57:28.537Z", "contributors": [ - "a-mt" + "wbamberg", + "chrisdavidmills", + "teoli", + "Mgjbot", + "BenoitL", + "Fredchat" ] }, - "Web/SVG/Element/feFuncA": { - "modified": "2020-10-15T22:12:15.038Z", + "Web/XSLT/Element/value-of": { + "modified": "2019-03-23T23:44:42.898Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feFuncB": { - "modified": "2020-10-15T22:12:15.581Z", + "Web/XSLT/Element/variable": { + "modified": "2019-01-16T16:09:06.502Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feFuncG": { - "modified": "2020-10-15T22:12:14.655Z", + "Web/XSLT/Element/when": { + "modified": "2019-01-16T16:09:01.761Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feFuncR": { - "modified": "2020-10-15T22:12:16.404Z", + "Web/XSLT/Element/with-param": { + "modified": "2019-01-16T16:07:34.980Z", "contributors": [ - "a-mt" + "chrisdavidmills", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/feGaussianBlur": { - "modified": "2020-10-15T22:12:13.052Z", + "Web/API/Detecting_device_orientation": { + "modified": "2019-03-23T23:28:22.437Z", "contributors": [ - "a-mt" + "mgagnon555", + "a-mt", + "tregagnon", + "Fredchat", + "FredB", + "achraf", + "darnuria" ] }, - "Web/SVG/Element/feImage": { - "modified": "2020-10-15T22:11:41.220Z", + "Web/API/Network_Information_API": { + "modified": "2020-10-15T21:24:14.258Z", "contributors": [ - "a-mt" + "Arzak656", + "SphinxKnight" ] }, - "Web/SVG/Element/feMerge": { - "modified": "2020-10-15T22:12:14.023Z", + "Web/API/Pointer_Lock_API": { + "modified": "2019-03-23T23:28:21.431Z", "contributors": [ - "a-mt" + "3xr", + "a-mt", + "fscholz", + "polpoy", + "aymericbeaumet", + "nathsou", + "kipcode66", + "Delapouite" ] }, - "Web/SVG/Element/feMergeNode": { - "modified": "2020-10-15T22:12:13.616Z", + "Web/API/Proximity_Events": { + "modified": "2019-03-23T23:28:24.540Z", "contributors": [ - "a-mt" + "SphinxKnight" ] }, - "Web/SVG/Element/feMorphology": { - "modified": "2020-10-15T22:12:09.662Z", + "Web/API/Ambient_Light_Events": { + "modified": "2019-03-23T23:28:29.463Z", "contributors": [ - "a-mt" + "Goofy", + "SphinxKnight" ] }, - "Web/SVG/Element/feOffset": { - "modified": "2020-10-15T22:12:04.038Z", + "Web/Guide/API/WebRTC/Peer-to-peer_communications_with_WebRTC": { + "modified": "2019-03-23T23:24:59.049Z", "contributors": [ - "a-mt" + "AbrahamT" ] }, - "Web/SVG/Element/fePointLight": { - "modified": "2020-10-15T22:12:16.781Z", + "Web/API/WebRTC_API/Session_lifetime": { + "modified": "2019-03-23T23:34:02.335Z", "contributors": [ - "a-mt" + "mmkmou", + "Hub" ] }, - "Web/SVG/Element/feSpecularLighting": { - "modified": "2020-10-15T22:12:15.374Z", + "Web/API/Media_Streams_API": { + "modified": "2020-10-15T21:25:08.658Z", "contributors": [ - "AlainGourves", - "a-mt" + "SphinxKnight", + "GenjoMoz", + "JonathanMM", + "AbrahamT" ] }, - "Web/SVG/Element/feSpotLight": { - "modified": "2020-10-15T22:12:13.699Z", + "Web/API/WebRTC_API/Taking_still_photos": { + "modified": "2019-03-23T23:34:23.933Z", "contributors": [ - "a-mt" + "teoli", + "yluom", + "peb85", + "Hub" ] }, - "Web/SVG/Element/feTile": { - "modified": "2020-10-15T22:12:06.142Z", + "Glossary/XHTML": { + "modified": "2019-03-23T23:46:04.645Z", "contributors": [ - "a-mt" + "loella16", + "Mgjbot", + "BenoitL", + "Takenbot", + "Bpruneau" ] }, - "Web/SVG/Element/feTurbulence": { - "modified": "2020-10-15T22:12:10.250Z", + "Web/API/XMLSerializer": { + "modified": "2019-03-23T23:46:38.004Z", "contributors": [ - "a-mt" + "Delapouite", + "Mgjbot", + "Fredchat", + "VincentN", + "Chbok" ] }, - "Web/SVG/Element/filter": { - "modified": "2020-10-15T22:12:14.867Z", + "orphaned/XPCOM/Liaisons_de_langage/Objet_Components": { + "modified": "2019-04-18T20:34:34.205Z", "contributors": [ - "a-mt" + "wbamberg", + "jmh" ] }, - "Web/SVG/Element/foreignObject": { - "modified": "2020-10-15T21:28:38.917Z", + "orphaned/XPCOM/Reference/Standard_XPCOM_components": { + "modified": "2019-04-18T20:35:41.986Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "marie-ototoi", - "J.DMB", - "Goofy", - "akira86" + "wbamberg", + "jmh" ] }, - "Web/SVG/Element/g": { - "modified": "2020-10-15T21:30:19.332Z", + "Web/API/XSLTProcessor/Browser_Differences": { + "modified": "2019-03-23T23:49:52.590Z", "contributors": [ - "a-mt", + "wbamberg", "Sebastianz", - "SphinxKnight", - "teoli", - "J.DMB", - "fscholz", - "ylerjen" + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/hkern": { - "modified": "2019-03-23T23:04:56.306Z", + "Web/API/XSLTProcessor/Basic_Example": { + "modified": "2019-03-23T23:49:47.376Z", "contributors": [ + "wbamberg", "Sebastianz", - "SphinxKnight", - "Barbrousse" + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/image": { - "modified": "2020-11-09T05:16:20.671Z", + "Web/API/XSLTProcessor/Generating_HTML": { + "modified": "2019-03-23T23:51:13.681Z", "contributors": [ - "Lucas-C", + "wbamberg", "Sebastianz", - "SphinxKnight", - "teoli", - "Nicronics", - "Goofy" + "Sheppy", + "Ultrafil", + "Mgjbot", + "VincentN", + "Fredchat" ] }, - "Web/SVG/Element/line": { - "modified": "2019-03-23T23:15:29.052Z", + "Mozilla/Firefox/Releases/3/Full_page_zoom": { + "modified": "2019-03-23T23:50:05.576Z", "contributors": [ "wbamberg", - "Sebastianz", - "SphinxKnight", - "Fredchat", - "iainm" + "Mgjbot", + "BenoitL", + "Sys" ] }, - "Web/SVG/Element/linearGradient": { - "modified": "2020-10-15T22:11:05.477Z", + "conflicting/Web/API/Document_Object_Model": { + "modified": "2019-03-23T23:53:23.967Z", "contributors": [ - "a-mt" + "Delapouite", + "Mgjbot", + "BenoitL", + "Jorolo" ] }, - "Web/SVG/Element/marker": { - "modified": "2020-10-15T22:11:33.513Z", + "conflicting/Web/Accessibility": { + "modified": "2019-03-23T23:16:51.023Z", "contributors": [ - "a-mt" + "Fredchat" ] }, - "Web/SVG/Element/mask": { - "modified": "2020-10-15T21:45:31.463Z", + "conflicting/Learn": { + "modified": "2020-07-16T22:22:13.196Z", "contributors": [ - "a-mt", - "ylerjen", - "Sebastianz", "SphinxKnight" ] }, - "Web/SVG/Element/metadata": { - "modified": "2020-10-15T22:12:14.200Z", + "conflicting/Learn/CSS/Styling_text/Fundamentals": { + "modified": "2020-07-16T22:25:49.005Z", "contributors": [ - "a-mt" + "SphinxKnight" ] }, - "Web/SVG/Element/mpath": { - "modified": "2020-10-15T22:12:17.500Z", + "conflicting/Learn/CSS/Styling_text/Styling_lists": { + "modified": "2020-07-16T22:25:49.686Z", "contributors": [ - "a-mt" + "xdelatour" ] }, - "Web/SVG/Element/path": { - "modified": "2020-10-15T21:09:41.993Z", + "conflicting/Learn/CSS/Styling_text/Fundamentals_9e7ba587262abbb02304cbc099c1f0d8": { + "modified": "2020-07-16T22:25:39.378Z", "contributors": [ - "ventilateur.ventilateur", - "Gauths", - "Sebastianz", - "SphinxKnight", "teoli", - "tregagnon", - "gemy_c" + "SphinxKnight", + "Mozinet", + "Oliviermoz" ] }, - "Web/SVG/Element/pattern": { - "modified": "2020-11-04T12:50:59.879Z", + "conflicting/Learn/CSS/CSS_layout/Introduction": { + "modified": "2020-07-16T22:25:40.392Z", "contributors": [ - "cdoublev", - "wbamberg", - "Sebastianz", - "SphinxKnight", - "thomas-huguenin" + "SphinxKnight" ] }, - "Web/SVG/Element/polygon": { - "modified": "2020-10-15T21:56:31.856Z", + "conflicting/Learn/CSS/Building_blocks/Selectors": { + "modified": "2020-07-16T22:25:39.574Z", "contributors": [ - "Arzak656", - "AlexisColin" + "SphinxKnight", + "Oliviermoz" ] }, - "Web/SVG/Element/polyline": { - "modified": "2019-03-23T22:39:44.292Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works": { + "modified": "2020-07-16T22:25:39.949Z", "contributors": [ + "Loliwe", "SphinxKnight", - "Sebastianz", - "Crocmagnon" + "Oliviermoz" ] }, - "Web/SVG/Element/radialGradient": { - "modified": "2019-03-23T22:07:50.374Z", + "conflicting/Learn/HTML/Introduction_to_HTML": { + "modified": "2020-07-16T22:22:27.345Z", "contributors": [ - "AlexisColin", - "Gauths" + "gudemare", + "Loliwe", + "SphinxKnight" ] }, - "Web/SVG/Element/rect": { - "modified": "2020-10-15T21:09:37.460Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting": { + "modified": "2020-07-16T22:22:41.102Z", + "contributors": [ + "SphinxKnight" + ] + }, + "conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682": { + "modified": "2020-07-16T22:22:41.315Z", "contributors": [ - "EloD10", - "Sebastianz", - "SphinxKnight", - "Nfroidure", "teoli", - "tregagnon", - "gemy_c" + "SphinxKnight" ] }, - "Web/SVG/Element/stop": { - "modified": "2020-10-15T22:17:23.569Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content": { + "modified": "2020-07-16T22:22:40.861Z", "contributors": [ - "cdoublev" + "SphinxKnight" ] }, - "Web/SVG/Element/style": { - "modified": "2019-03-23T22:40:42.582Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies": { + "modified": "2020-07-16T22:22:42.572Z", "contributors": [ - "Sebastianz", - "teoli", - "GrosMocassin" + "SphinxKnight" ] }, - "Web/SVG/Element/svg": { - "modified": "2019-03-23T22:23:41.325Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML": { + "modified": "2020-07-16T22:22:38.961Z", "contributors": [ - "ferdi_", - "khalyomede" + "chrisdavidmills", + "SphinxKnight" ] }, - "Web/SVG/Element/switch": { - "modified": "2020-10-15T21:28:19.111Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML_2c0377f7605f693cad465c2b4839addc": { + "modified": "2020-07-16T22:22:41.471Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "J.DMB", - "loic" + "SphinxKnight" ] }, - "Web/SVG/Element/symbol": { - "modified": "2020-10-15T22:12:40.814Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_cf31463f874ecd8e10e648dacde4a995": { + "modified": "2020-07-16T22:22:39.866Z", "contributors": [ - "a-mt" + "SphinxKnight" ] }, - "Web/SVG/Element/text": { - "modified": "2019-03-23T22:57:14.491Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Getting_started": { + "modified": "2020-07-16T22:22:38.260Z", "contributors": [ - "Sebastianz", - "GrandSchtroumpf", - "SphinxKnight", - "ylerjen", - "B_M" + "G4cklez", + "SphinxKnight" ] }, - "Web/SVG/Element/title": { - "modified": "2020-10-15T21:34:41.922Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks": { + "modified": "2020-07-16T22:22:39.664Z", "contributors": [ - "a-mt", - "Sebastianz", - "SphinxKnight", - "Goofy", - "B_M" + "SphinxKnight" ] }, - "Web/SVG/Element/tspan": { - "modified": "2019-03-23T22:28:46.810Z", + "conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals": { + "modified": "2020-07-16T22:22:40.566Z", "contributors": [ - "wbamberg", - "Sebastianz", - "GrandSchtroumpf" + "SphinxKnight" ] }, - "Web/SVG/Element/use": { - "modified": "2019-03-23T22:26:29.130Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Document_and_website_structure": { + "modified": "2020-07-16T22:22:39.225Z", "contributors": [ - "yank7", - "Wismill", - "Nothus" + "SphinxKnight" ] }, - "Web/SVG/Index": { - "modified": "2019-01-16T21:57:35.980Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446": { + "modified": "2020-07-16T22:22:37.801Z", "contributors": [ - "xdelatour" + "SphinxKnight" ] }, - "Web/SVG/SVG_animation_with_SMIL": { - "modified": "2019-08-24T09:55:45.297Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d": { + "modified": "2020-07-16T22:22:42.317Z", "contributors": [ - "JNa0", - "a-mt", - "fscholz", - "tonybengue" + "SphinxKnight" ] }, - "Web/SVG/SVG_en_tant_qu_image": { - "modified": "2019-03-29T09:03:13.544Z", + "conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc": { + "modified": "2020-07-16T22:22:39.419Z", "contributors": [ - "SphinxKnight", - "a-mt", - "Barbrousse" + "SphinxKnight" ] }, - "Web/SVG/Sources_compatibilite": { - "modified": "2019-03-23T23:05:05.046Z", + "conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6": { + "modified": "2020-07-16T22:22:38.547Z", "contributors": [ - "tonybengue", - "B_M", - "Barbrousse" + "SphinxKnight" ] }, - "Web/SVG/Tutoriel": { - "modified": "2019-03-24T00:14:42.932Z", + "conflicting/Learn/Getting_started_with_the_web": { + "modified": "2020-07-16T22:22:26.616Z", "contributors": [ - "a-mt", - "teoli", - "PetiPandaRou", - "Mgjbot", - "Fredchat", - "Duarna" + "wbamberg", + "SphinxKnight" ] }, - "Web/SVG/Tutoriel/Contenu_embarque_SVG": { - "modified": "2019-03-23T23:16:11.402Z", + "conflicting/Learn/Common_questions/set_up_a_local_testing_server": { + "modified": "2020-07-16T22:35:46.563Z", "contributors": [ - "a-mt", - "Jean-MariePETIT" + "SphinxKnight" ] }, - "Web/SVG/Tutoriel/Découpages_et_masquages": { - "modified": "2019-03-24T00:14:44.808Z", + "conflicting/Learn/Getting_started_with_the_web/Dealing_with_files": { + "modified": "2020-07-16T22:35:20.536Z", "contributors": [ - "a-mt", - "parmentf", - "teoli", - "PetiPandaRou" + "ILIKECOOKIE", + "SphinxKnight" + ] + }, + "conflicting/Learn_370bfb0fa23e42f4384f010341852c43": { + "modified": "2020-07-16T22:33:41.155Z", + "contributors": [ + "SphinxKnight", + "Thegennok" + ] + }, + "conflicting/Learn_6767a192c90d2c9c5179cf004fce2ee8": { + "modified": "2020-08-30T08:21:58.955Z", + "contributors": [ + "Voulto", + "SphinxKnight", + "Andrew_Pfeiffer" + ] + }, + "conflicting/Web/CSS/color_value": { + "modified": "2019-01-16T15:51:34.856Z", + "contributors": [ + "Fredchat", + "Kyodev", + "DirtyF", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Fills_and_Strokes": { - "modified": "2019-03-18T21:23:38.637Z", + "conflicting/Web/CSS": { + "modified": "2019-01-16T16:09:55.868Z", "contributors": [ - "a-mt" + "BenoitL" ] }, - "Web/SVG/Tutoriel/Formes_de_base": { - "modified": "2019-03-23T23:50:51.657Z", + "conflicting/Web/CSS/Pseudo-classes": { + "modified": "2019-01-16T15:51:16.166Z", "contributors": [ - "a-mt", - "Watilin", - "parmentf", - "Jean-MariePETIT", - "teoli", - "tregagnon", - "PetiPandaRou" + "Fredchat", + "Kyodev" ] }, - "Web/SVG/Tutoriel/Gradients": { - "modified": "2019-03-18T21:23:33.431Z", + "conflicting/Web/CSS/border-collapse": { + "modified": "2019-03-23T23:49:00.263Z", "contributors": [ - "a-mt" + "ethertank", + "Fredchat", + "Kyodev", + "Chbok", + "Mgjbot" ] }, - "Web/SVG/Tutoriel/Introduction": { - "modified": "2019-03-24T00:14:10.761Z", + "conflicting/Glossary/Chrome": { + "modified": "2019-03-23T23:48:48.795Z", "contributors": [ - "a-mt", - "marecord", - "parmentf", - "teoli", - "PetiPandaRou", - "Fredchat", - "Duarna", - "Mgjbot" + "Delapouite", + "BenoitL", + "Mgjbot", + "VincentN", + "Chbok", + "Fredchat" ] }, - "Web/SVG/Tutoriel/Introduction_à_SVG_dans_HTML": { - "modified": "2019-06-17T09:44:07.955Z", + "Mozilla/Developer_guide/Build_Instructions": { + "modified": "2019-03-23T23:48:28.119Z", "contributors": [ - "AlainGourves", - "chrisdavidmills", - "benjaminabel", + "fscholz", + "capgemini-ocs", + "teoli", + "The RedBurn", "BenoitL", - "Chbok" + "Mgjbot" ] }, - "Web/SVG/Tutoriel/Motifs": { - "modified": "2019-03-18T21:17:06.419Z", + "conflicting/Learn/CSS/Building_blocks": { + "modified": "2019-03-24T00:11:28.445Z", "contributors": [ - "a-mt" + "grandoc", + "Fredchat", + "Altinfo", + "Verruckt", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Paths": { - "modified": "2019-09-10T13:49:14.936Z", + "conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance": { + "modified": "2019-03-23T23:43:29.860Z", "contributors": [ - "blomki", - "lhapaipai", - "a-mt", - "Watilin" + "teoli", + "Verruckt", + "Mgjbot", + "Mozinet", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Positionnement": { - "modified": "2019-03-24T00:14:10.641Z", + "conflicting/Learn/CSS/Building_blocks/Values_and_units": { + "modified": "2019-03-23T23:48:37.546Z", "contributors": [ - "LennyObez", - "Jean-MariePETIT", "teoli", - "PetiPandaRou", - "Goofy" + "Mgjbot", + "Verruckt", + "Indigo", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Premiers_pas": { - "modified": "2019-03-24T00:03:59.091Z", + "conflicting/Learn/CSS/First_steps/How_CSS_is_structured": { + "modified": "2019-03-24T00:11:21.223Z", "contributors": [ - "sayabiws", - "Hell_Carlito", - "SphinxKnight", - "marie-ototoi", - "parmentf", - "benjaminabel", "teoli", - "PetiPandaRou", - "Goofy", - "AlexisMetaireau", - "mulliezj", - "fscholz", - "Fredchat", - "Duarna", - "Mgjbot" + "grandoc", + "R greg", + "Mgjbot", + "Verruckt", + "Indigo", + "BenoitL" ] }, - "Web/SVG/Tutoriel/SVG_Image_Tag": { - "modified": "2019-03-23T22:39:52.558Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_cdccf923f6bd040e8d243ee03d223ddc": { + "modified": "2019-03-23T23:43:30.663Z", "contributors": [ - "a-mt", - "jti77", - "MrIglou" + "teoli", + "Verruckt", + "Mgjbot", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Texts": { - "modified": "2019-03-18T21:23:21.700Z", + "conflicting/Learn/CSS/First_steps": { + "modified": "2019-03-23T23:43:26.964Z", "contributors": [ - "a-mt" + "Avent", + "wakka27", + "jparker", + "Delapouite", + "Verruckt", + "VincentN", + "Mgjbot", + "Indigo", + "BenoitL", + "Gorrk", + "Anonymous", + "Nickolay", + "TestUser" ] }, - "Web/SVG/Tutoriel/Tools_for_SVG": { - "modified": "2019-03-23T22:53:22.704Z", + "conflicting/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents": { + "modified": "2019-03-23T23:43:36.441Z", "contributors": [ - "a-mt", - "Goofy", - "marie-ototoi" + "teoli", + "Verruckt", + "Sheppy", + "BenoitL" ] }, - "Web/SVG/Tutoriel/Transformations_de_base": { - "modified": "2019-03-24T00:14:43.788Z", + "conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9": { + "modified": "2019-03-24T00:11:21.423Z", "contributors": [ - "a-mt", - "loella16", - "bastienmoulia", + "xseignard", "teoli", - "tregagnon", - "PetiPandaRou" + "grandoc", + "R greg", + "Mgjbot", + "Verruckt", + "BenoitL", + "Mozinet", + "Christian13" ] }, - "Web/SVG/Tutoriel/filtres": { - "modified": "2019-04-20T15:46:39.301Z", + "conflicting/Learn/CSS/Styling_text/Styling_lists_06e9538892250c13976a84639f0dadd2": { + "modified": "2019-03-23T23:43:24.796Z", "contributors": [ - "tombosoadimitrie", - "a-mt" + "teoli", + "Verruckt", + "BenoitL" ] }, - "Web/SVG/Tutoriel/polices_SVG": { - "modified": "2019-03-23T22:39:39.513Z", + "conflicting/Learn/CSS/CSS_layout": { + "modified": "2019-03-23T23:43:29.436Z", "contributors": [ - "a-mt", - "jti77", - "enogael", - "Cyril-Levallois" + "teoli", + "Verruckt", + "BenoitL" ] }, - "Web/Security": { - "modified": "2019-09-10T16:34:32.729Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_ecbda2160290b96c02dcfa8276c0333a": { + "modified": "2019-03-23T23:47:29.274Z", "contributors": [ - "SphinxKnight", - "bldesign.ch", - "CarlosAvim", - "Tom_D", - "goofy_bz", - "marumari" + "teoli", + "Fredchat", + "Verruckt", + "Mgjbot", + "Indigo", + "BenoitL", + "Gorrk" ] }, - "Web/Security/Public_Key_Pinning": { - "modified": "2019-03-18T21:11:18.056Z", + "conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c": { + "modified": "2019-03-23T23:47:23.927Z", "contributors": [ - "totopsy", - "Tom_D", - "Hell_Carlito" + "wakka27", + "teoli", + "Fredchat", + "Verruckt", + "Mgjbot", + "BenoitL", + "Gorrk", + "Anonymous" ] }, - "Web/Security/Referer_header:_privacy_and_security_concerns": { - "modified": "2020-11-02T18:51:04.362Z", + "conflicting/Learn/CSS/Styling_text/Fundamentals_8249b1bf53d09b06ed51f43697880b5b": { + "modified": "2019-03-24T00:11:21.618Z", "contributors": [ - "JNa0", - "applicodeur", - "arnaud.wixiweb", - "duduindo", - "Elaxis_" + "grandoc", + "Mgjbot", + "Verruckt", + "BenoitL", + "Loveuzz59", + "Indigo" ] }, - "Web/Security/Same_origin_policy_for_JavaScript": { - "modified": "2019-10-12T13:42:13.230Z", + "conflicting/Learn/CSS/Building_blocks/Styling_tables": { + "modified": "2019-03-24T00:11:25.378Z", "contributors": [ - "GregMorel", - "SphinxKnight", - "Selbahc", - "sblondon", - "rle-mino", - "fabienheureux", "teoli", - "dwogsi" + "grandoc", + "Verruckt", + "Pitchum", + "BenoitL" ] }, - "Web/Security/Secure_Contexts": { - "modified": "2019-03-23T22:17:00.806Z", + "conflicting/Web/Guide": { + "modified": "2019-03-24T00:13:07.123Z", "contributors": [ - "nobe4" + "bilali", + "pixelastic", + "traan", + "Owidd", + "BenoitL", + "Mgjbot", + "Takenbot", + "Mozinet", + "Mrueegg", + "Chbok" ] }, - "Web/Security/Subresource_Integrity": { - "modified": "2019-03-23T22:27:34.272Z", + "conflicting/Web/Guide/Events/Creating_and_triggering_events": { + "modified": "2019-03-23T23:50:28.205Z", "contributors": [ - "SphinxKnight", - "nico3333fr" + "xuancanh", + "Mgjbot", + "BenoitL", + "Elethiomel", + "Fredchat" ] }, - "Web/Tutoriels": { - "modified": "2020-09-04T03:10:42.961Z", + "conflicting/Web/API/Web_Storage_API": { + "modified": "2019-03-23T23:53:02.039Z", "contributors": [ - "SphinxKnight", - "ppayet304", - "Maxi-MenuBestOfPlus", - "W1773ND", - "tmpbci", - "xvw", - "rjeannot", - "CarlosAvim", - "CarterMason4", - "marecord", - "JeffD", - "badgohan", + "AshfaqHossain", "teoli", - "dayenu", - "Oliviermoz", - "Bat", - "Wlad-Hawaii", - "nelsonkam", - "Antwan_Did", - "PageotD", - "Mutijima", - "hs0ucy", - "Shaker", - "Asaphus", - "tomsihap", - "anthonybt", - "laurent-thuy", - "Info", - "chris.bourdieu", - "AnthonyMaton", - "naar", - "Nesseria" + "Nigel_Sheldon", + "BenoitL", + "Mgjbot", + "CedricP", + "Sum2807" ] }, - "Web/Web_Components": { - "modified": "2020-10-09T12:10:17.619Z", + "conflicting/Web/HTML/Global_attributes": { + "modified": "2019-03-23T22:41:06.193Z", "contributors": [ - "GuillaumeCz", - "jeanremy", - "coldPen", - "Voltariuss", - "ylerjen", - "JNa0", - "wulfy", - "SphinxKnight", - "oritlewski", - "linsolas", - "GtAntoine", - "mknx", - "oussama-jlassi", - "Zecat" + "loella16", + "xdelatour" ] }, - "Web/Web_Components/HTML_Imports": { - "modified": "2020-10-15T22:12:01.555Z", + "conflicting/Glossary/Doctype": { + "modified": "2019-01-16T21:53:56.898Z", "contributors": [ - "ledenis", - "ylerjen" + "loella16", + "xdelatour" ] }, - "Web/Web_Components/Using_custom_elements": { - "modified": "2019-03-18T21:38:08.858Z", + "Mozilla/Developer_guide/Introduction": { + "modified": "2019-03-23T23:40:01.462Z", "contributors": [ - "NemoNobobyPersonne" + "m-r-r", + "FredB" ] }, - "Web/Web_Components/Using_shadow_DOM": { - "modified": "2020-03-15T20:54:04.062Z", + "conflicting/MDN/Tools": { + "modified": "2019-01-16T20:49:48.849Z", "contributors": [ - "JNa0" + "wbamberg", + "Jacqboel", + "Hell_Carlito", + "Sheppy" ] }, - "Web/Web_Components/Utilisation_des_templates_et_des_slots": { - "modified": "2019-07-27T04:45:38.358Z", + "Plugins/Guide/Constants": { + "modified": "2019-03-24T00:03:23.228Z", "contributors": [ - "PSthely", - "wiredbug" + "Delapouite", + "Demos" ] }, - "Web/XML": { - "modified": "2020-08-30T07:03:09.579Z", + "conflicting/Tools/Debugger/How_to/Set_Watch_Expressions": { + "modified": "2020-07-16T22:35:12.981Z", "contributors": [ - "Voulto", - "tristantheb", - "ExE-Boss" + "wbamberg", + "maximelore", + "EIJDOLL", + "teoli", + "Goofy" ] }, - "Web/XML/Introduction_à_XML": { - "modified": "2019-05-01T21:50:25.192Z", + "Tools/Debugger/Break_on_DOM_mutation": { + "modified": "2020-07-16T22:35:11.566Z", "contributors": [ - "ExE-Boss", - "Elethiomel", - "Fredchat", - "BenoitL", - "Mgjbot", - "Lbergere" + "maximelore", + "wbamberg", + "teoli" ] }, - "Web/XML/xml:base": { - "modified": "2019-05-01T21:49:37.439Z", + "conflicting/Tools/Performance/Waterfall": { + "modified": "2020-07-16T22:36:22.616Z", "contributors": [ - "ExE-Boss", - "loella16" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/XPath": { - "modified": "2020-06-19T03:44:39.700Z", + "conflicting/Tools/Page_Inspector/UI_Tour": { + "modified": "2020-07-16T22:34:30.496Z", "contributors": [ - "Jemmy4s", - "ExE-Boss", - "Fredchat", - "Delapouite", - "fscholz", - "Mgjbot", - "Celelibi", - "Chbok", - "BenoitL" + "wbamberg", + "teoli", + "maximelore" ] }, - "Web/XPath/Axes": { - "modified": "2019-03-23T23:54:15.946Z", + "conflicting/Tools/Memory/Basic_operations": { + "modified": "2020-07-16T22:36:28.898Z", "contributors": [ - "ExE-Boss", - "Delapouite", - "Fredchat", - "Mgjbot", - "VincentN" + "wbamberg", + "maximelore" ] }, - "Web/XPath/Axes/ancestor": { - "modified": "2019-01-16T16:12:07.983Z", + "conflicting/Tools/Memory/Basic_operations_9264f1c8b3be17d004821ca45ca04d3a": { + "modified": "2020-07-16T22:36:27.674Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "wbamberg", + "maximelore" ] }, - "Web/XPath/Axes/ancestor-or-self": { - "modified": "2019-01-16T16:12:08.969Z", + "conflicting/Tools/Memory/Basic_operations_f2c86b478396e7a233344f64c4d4f1da": { + "modified": "2020-07-16T22:36:27.834Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "wbamberg", + "maximelore" ] }, - "Web/XPath/Axes/attribute": { - "modified": "2019-01-16T16:11:52.452Z", + "conflicting/Tools/Responsive_Design_Mode": { + "modified": "2020-07-16T22:36:36.829Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "wbamberg", + "maximelore" ] }, - "Web/XPath/Axes/child": { - "modified": "2019-01-16T16:11:53.728Z", + "conflicting/Glossary/DOM": { + "modified": "2019-03-24T00:11:57.509Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "Goofy", + "teoli", + "bou22" ] }, - "Web/XPath/Axes/descendant": { - "modified": "2019-01-16T16:11:48.389Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Object/toSource": { + "modified": "2019-03-24T00:05:25.191Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "wbamberg", + "Potappo", + "BenoitL" ] }, - "Web/XPath/Axes/descendant-or-self": { - "modified": "2019-01-16T16:12:14.349Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Date/toString": { + "modified": "2019-03-23T23:46:06.612Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "wbamberg", + "teoli", + "BenoitL" ] }, - "Web/XPath/Axes/following": { - "modified": "2019-01-16T16:11:54.323Z", + "conflicting/Web/HTTP/Basics_of_HTTP/MIME_types": { + "modified": "2020-04-19T02:52:23.292Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "vvvaleee", + "BenoitL" ] }, - "Web/XPath/Axes/following-sibling": { - "modified": "2019-01-16T16:11:48.257Z", + "conflicting/Web/XPath/Introduction_to_using_XPath_in_JavaScript": { + "modified": "2019-01-16T14:19:09.912Z", "contributors": [ - "ExE-Boss", + "kmaglione", + "Mgjbot", + "Elethiomel", "Fredchat" ] }, - "Web/XPath/Axes/namespace": { - "modified": "2019-01-16T16:11:53.220Z", + "Web/API/DOMMatrix": { + "modified": "2019-03-23T22:45:55.560Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "SphinxKnight", + "morganPolitano" ] }, - "Web/XPath/Axes/parent": { - "modified": "2019-01-16T16:11:45.464Z", + "Web/API/DeviceMotionEventRotationRate/alpha": { + "modified": "2019-03-18T21:40:56.610Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "loella16" ] }, - "Web/XPath/Axes/preceding": { - "modified": "2019-01-16T16:11:48.527Z", + "Web/API/DeviceMotionEventRotationRate/beta": { + "modified": "2019-03-18T21:41:13.475Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "loella16" ] }, - "Web/XPath/Axes/preceding-sibling": { - "modified": "2019-01-16T16:11:01.463Z", + "Web/API/DeviceMotionEventRotationRate/gamma": { + "modified": "2019-03-18T21:41:11.230Z", "contributors": [ - "ExE-Boss", - "Fredchat" + "loella16" ] }, - "Web/XPath/Axes/self": { - "modified": "2019-01-16T16:11:01.388Z", + "Web/API/DeviceMotionEventRotationRate": { + "modified": "2019-03-18T21:41:14.051Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "Fredchat" + "loella16" ] }, - "Web/XPath/Fonctions": { - "modified": "2019-03-23T23:54:16.270Z", + "conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3": { + "modified": "2019-03-23T23:46:29.146Z", "contributors": [ - "ExE-Boss", - "Fredchat", + "SphinxKnight", + "teoli", + "khalid32", + "Sheppy", + "Ame Nomade", "Mgjbot", - "VincentN" + "BenoitL" ] }, - "Web/XPath/Fonctions/boolean": { - "modified": "2019-01-16T15:50:26.737Z", + "Web/API/DocumentOrShadowRoot/activeElement": { + "modified": "2019-03-23T23:12:53.004Z", "contributors": [ - "ExE-Boss", + "fscholz", + "teoli", + "AshfaqHossain", "Mgjbot", - "VincentN", - "Fredchat" + "BenoitL" ] }, - "Web/XPath/Fonctions/ceiling": { - "modified": "2019-01-16T15:50:21.623Z", + "Web/API/DocumentOrShadowRoot/elementFromPoint": { + "modified": "2019-03-23T23:50:28.633Z", "contributors": [ - "ExE-Boss", + "fscholz", + "teoli", + "jsx", "Mgjbot", - "VincentN", - "Fredchat" + "BenoitL" + ] + }, + "Web/API/DocumentOrShadowRoot/getSelection": { + "modified": "2019-09-25T07:21:02.389Z", + "contributors": [ + "julienc", + "sudwebdesign", + "loella16", + "fscholz", + "FredPl" ] }, - "Web/XPath/Fonctions/concat": { - "modified": "2019-01-16T15:50:21.441Z", + "Web/API/DocumentOrShadowRoot/styleSheets": { + "modified": "2019-03-23T23:06:00.949Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "a5er", + "fscholz", + "J.DMB", + "Nothus" ] }, - "Web/XPath/Fonctions/contains": { - "modified": "2019-03-23T23:58:27.714Z", + "Web/API/HTMLElement/accessKey": { + "modified": "2019-03-23T22:24:43.588Z", "contributors": [ - "ExE-Boss", - "joseph2rs", - "eleg", - "Mgjbot", - "VincentN", - "Fredchat" + "loella16", + "alexandre-le-borgne" ] }, - "Web/XPath/Fonctions/count": { - "modified": "2019-01-16T15:50:25.794Z", + "conflicting/Web/API": { + "modified": "2019-03-24T00:13:05.858Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "loella16", + "fscholz", + "teoli", + "khalid32", + "dextra", + "BenoitL" ] }, - "Web/XPath/Fonctions/current": { - "modified": "2019-01-16T16:10:44.044Z", + "conflicting/Web/API/Document/createEvent": { + "modified": "2020-10-15T21:37:47.725Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "loella16", + "Alexgruissan" ] }, - "Web/XPath/Fonctions/document": { - "modified": "2019-01-16T16:10:44.270Z", + "conflicting/Web/API/Node": { + "modified": "2020-10-15T22:02:08.284Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "loella16" ] }, - "Web/XPath/Fonctions/element-available": { - "modified": "2019-01-16T16:10:46.100Z", + "conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556": { + "modified": "2020-10-15T22:02:08.674Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "loella16" ] }, - "Web/XPath/Fonctions/false": { - "modified": "2019-01-16T15:50:11.196Z", + "conflicting/Web/API/Node/getRootNode": { + "modified": "2020-10-15T22:02:08.977Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "Laymain", - "VincentN", - "Fredchat" + "wbamberg", + "loella16" ] }, - "Web/XPath/Fonctions/floor": { - "modified": "2019-03-23T23:49:20.491Z", + "conflicting/Web/API/Window/localStorage": { + "modified": "2019-03-18T20:41:23.924Z", "contributors": [ - "ExE-Boss", - "Fredchat", - "stephaniehobson", - "Mgjbot", - "VincentN" + "Watilin", + "cedeber", + "lulu5239", + "Fredloub", + "CoolSnow04" ] }, - "Web/XPath/Fonctions/format-number": { - "modified": "2019-01-16T15:28:39.710Z", + "conflicting/Web/API/Web_Workers_API/Using_web_workers": { + "modified": "2019-03-23T23:02:10.788Z", "contributors": [ - "ExE-Boss", - "Curieux", - "VincentN", - "Fredchat" + "jean-pierre.gay" ] }, - "Web/XPath/Fonctions/function-available": { - "modified": "2019-01-16T16:11:01.243Z", + "conflicting/Web/API/URL": { + "modified": "2019-03-23T22:29:28.869Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "branciat" ] }, - "Web/XPath/Fonctions/generate-id": { - "modified": "2019-01-16T16:11:03.202Z", + "conflicting/Web/CSS/:placeholder-shown": { + "modified": "2019-05-28T09:44:44.784Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "brunostasse", + "teoli", + "SphinxKnight" ] }, - "Web/XPath/Fonctions/id": { - "modified": "2019-01-16T15:50:07.997Z", + "conflicting/Web/CSS/:is": { + "modified": "2020-10-15T21:28:06.961Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight", + "tregagnon", + "teoli", + "louuis" ] }, - "Web/XPath/Fonctions/key": { - "modified": "2019-01-16T16:11:09.419Z", + "conflicting/Web/CSS/::placeholder": { + "modified": "2019-03-18T21:41:58.383Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "teoli", + "SphinxKnight" ] }, - "Web/XPath/Fonctions/lang": { - "modified": "2019-01-16T15:50:16.941Z", + "conflicting/Web/CSS/box-ordinal-group": { + "modified": "2019-04-05T07:25:19.546Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli", + "quentin.lamamy" ] }, - "Web/XPath/Fonctions/last": { - "modified": "2019-01-16T15:50:10.531Z", + "conflicting/Web/CSS/cursor": { + "modified": "2019-04-05T07:25:43.783Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", + "SphinxKnight", + "teoli", + "FredB", + "Kyodev", "Fredchat" ] }, - "Web/XPath/Fonctions/local-name": { - "modified": "2019-01-16T15:50:02.059Z", + "conflicting/Web/CSS/scroll-snap-type": { + "modified": "2019-03-18T21:33:34.445Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/name": { - "modified": "2019-01-16T15:50:11.321Z", + "conflicting/Web/CSS/user-select": { + "modified": "2019-03-18T21:33:21.174Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/namespace-uri": { - "modified": "2019-01-16T15:50:06.369Z", + "conflicting/Web/CSS/mask-image": { + "modified": "2019-03-23T22:58:08.427Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "mrstork", + "ZorGleH" ] }, - "Web/XPath/Fonctions/normalize-space": { - "modified": "2020-08-05T06:06:47.724Z", + "conflicting/Web/CSS/@viewport": { + "modified": "2020-10-15T21:47:32.203Z", "contributors": [ - "ele-gall-ac-mineducation", - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/not": { - "modified": "2019-01-16T15:50:03.166Z", + "conflicting/Web/CSS/@viewport_516ab4b0283b5b2231fb657505e22440": { + "modified": "2020-10-15T21:47:31.282Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/number": { - "modified": "2019-01-16T15:50:08.363Z", + "conflicting/Web/CSS/@viewport_ff9d4f4f351256d9fdb3d21397eb3880": { + "modified": "2020-10-15T21:47:34.574Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/position": { - "modified": "2019-03-18T20:55:34.370Z", + "conflicting/Web/CSS/@viewport_d03ebc763769680c55d1a4258592d3ed": { + "modified": "2020-10-15T21:46:46.765Z", "contributors": [ - "GenjoMoz", - "ExE-Boss", - "Mgjbot", - "Fredchat", - "VincentN" + "SphinxKnight", + "HerveRenault", + "Akitoshi" ] }, - "Web/XPath/Fonctions/round": { - "modified": "2019-01-16T15:50:06.584Z", + "conflicting/Web/CSS/@viewport_a47f799d4189f98a73bc55899628d6d7": { + "modified": "2020-10-15T21:47:36.736Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/starts-with": { - "modified": "2019-01-16T14:54:33.055Z", + "conflicting/Web/CSS/@viewport_c5f2dc316e069e8c32ab24f9117600a7": { + "modified": "2020-10-15T21:47:32.971Z", "contributors": [ - "ExE-Boss", - "eleg", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/string": { - "modified": "2019-01-16T15:50:09.755Z", + "conflicting/Web/CSS/@viewport_6e9c91ec34cdb0393d301240d0d50d84": { + "modified": "2020-10-15T21:47:33.735Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/string-length": { - "modified": "2019-01-16T15:50:05.325Z", + "conflicting/Web/CSS/@viewport_7861ca3461a359b150d44f2c8d74e53a": { + "modified": "2020-10-15T21:47:32.251Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/substring": { - "modified": "2019-01-16T15:50:11.468Z", + "conflicting/Web/CSS/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce": { + "modified": "2020-10-15T21:47:36.683Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/substring-after": { - "modified": "2019-01-16T15:50:03.541Z", + "conflicting/Web/CSS/@viewport_a33ee59ffd8336ffb3336900dea02e9f": { + "modified": "2020-10-15T22:10:03.823Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "BenoitL", - "Fredchat", - "VincentN" + "duduindo", + "SphinxKnight" ] }, - "Web/XPath/Fonctions/substring-before": { - "modified": "2019-01-16T15:50:05.352Z", + "conflicting/Web/CSS/@viewport_c925ec0506b352ea1185248b874f7848": { + "modified": "2020-10-15T21:47:33.307Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "BenoitL", - "Fredchat", - "VincentN" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/sum": { - "modified": "2019-01-16T15:50:16.840Z", + "conflicting/Web/CSS/@viewport_e065ce90bde08c9679692adbe64f6518": { + "modified": "2020-10-15T21:47:36.061Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XPath/Fonctions/system-property": { - "modified": "2019-01-16T16:10:22.040Z", + "conflicting/Web/CSS/CSS_Backgrounds_and_Borders": { + "modified": "2019-04-19T04:03:57.429Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli" ] }, - "Web/XPath/Fonctions/translate": { - "modified": "2019-01-16T15:28:29.401Z", + "conflicting/Web/CSS/width": { + "modified": "2019-03-24T00:14:22.694Z", "contributors": [ - "ExE-Boss", - "Curieux", - "Mgjbot", - "ToGGy", - "Fredchat", - "VincentN" + "goofy_bz", + "louuis", + "teoli", + "FredB", + "tregagnon", + "ThePrisoner" ] }, - "Web/XPath/Fonctions/true": { - "modified": "2019-01-16T15:50:09.532Z", + "conflicting/Web/CSS/CSS_Color": { + "modified": "2019-03-23T22:48:09.885Z", "contributors": [ - "ExE-Boss", - "Mgjbot", - "VincentN", - "Fredchat" + "SphinxKnight", + "Sebastianz", + "teoli" ] }, - "Web/XPath/Fonctions/unparsed-entity-url": { - "modified": "2019-01-16T16:10:19.128Z", + "conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox": { + "modified": "2019-03-23T22:29:57.804Z", "contributors": [ - "ExE-Boss", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT": { - "modified": "2019-03-24T00:02:50.333Z", + "conflicting/Web/CSS/url()": { + "modified": "2019-04-06T11:57:29.213Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "fscholz", - "Fredchat", - "Verruckt", - "BenoitL", - "Mgjbot", - "Takenbot", - "Chbok" + "SphinxKnight" ] }, - "Web/XSLT/Element": { - "modified": "2019-03-23T23:45:04.079Z", + "conflicting/Web/CSS/Filter_Effects": { + "modified": "2019-03-23T22:35:55.917Z", "contributors": [ - "ExE-Boss", - "chrisdavidmills", - "Fredchat", - "VincentN" + "SphinxKnight", + "xdelatour" ] }, - "Web/XSLT/Element/element": { - "modified": "2019-01-16T16:02:01.198Z", + "conflicting/Web/CSS/column-gap": { + "modified": "2020-10-15T21:43:57.480Z", "contributors": [ - "ExE-Boss", - "chrisdavidmills", - "Fredchat", - "VincentN" + "SphinxKnight" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko": { - "modified": "2019-03-23T23:47:47.682Z", + "conflicting/Web/CSS/Mozilla_Extensions": { + "modified": "2019-04-06T13:16:07.903Z", "contributors": [ "SphinxKnight", - "chrisdavidmills", - "Jeremie", - "Mgjbot", - "Kyodev", - "Fredchat" + "xdelatour" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko/Définition_de_paramètres": { - "modified": "2019-03-23T23:43:55.284Z", + "conflicting/Web/CSS/float": { + "modified": "2019-03-18T21:17:42.214Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "Sebastianz", - "Jeremie", - "Fredchat" + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_avancé": { - "modified": "2019-03-23T23:43:56.095Z", + "conflicting/Web/CSS/font-variant": { + "modified": "2019-03-24T00:11:40.284Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "Sebastianz", - "Jeremie", - "Fredchat" + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko/Exemple_basique": { - "modified": "2020-04-03T12:42:05.763Z", + "conflicting/Web/CSS/shape-outside": { + "modified": "2019-03-23T22:32:55.011Z", "contributors": [ - "olivierdupon", - "SphinxKnight", - "chrisdavidmills", - "Sebastianz", - "Jeremie", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko/Les_liaisons_JavaScript_XSLT": { - "modified": "2019-03-23T23:49:14.126Z", + "Web/CSS/easing-function": { + "modified": "2020-10-15T21:46:31.385Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "Sebastianz", - "Jeremie", - "Chichille", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/Interface_XSLT_JS_dans_Gecko/Ressources": { - "modified": "2019-03-23T23:43:56.751Z", + "conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f": { + "modified": "2020-10-15T21:10:36.777Z", "contributors": [ - "wbamberg", "SphinxKnight", - "chrisdavidmills", - "Sebastianz", - "Jeremie", - "Fredchat" + "fscholz", + "teoli", + "FredB", + "ThePrisoner" ] }, - "Web/XSLT/Paramètres_des_instructions_de_traitement": { - "modified": "2019-03-23T23:44:06.266Z", + "conflicting/Web/API/HTMLMediaElement/abort_event": { + "modified": "2019-04-30T14:03:20.605Z", "contributors": [ - "chrisdavidmills", + "wbamberg", "fscholz", - "VincentN", - "Fredchat" + "Kalwyn" ] }, - "Web/XSLT/Sommaire": { - "modified": "2019-06-17T11:21:18.591Z", + "conflicting/Web/API/HTMLMediaElement/ended_event": { + "modified": "2019-03-18T21:16:53.303Z", "contributors": [ - "Arzak656" + "fscholz", + "Kalwyn" ] }, - "Web/XSLT/Transformations_XML_avec_XSLT": { - "modified": "2019-01-16T15:43:09.128Z", + "conflicting/Web/API/WebRTC_API": { + "modified": "2019-03-23T23:07:44.484Z", "contributors": [ - "chrisdavidmills", - "Fredchat", - "VincentN" + "wordsbybird" ] }, - "Web/XSLT/Transformations_XML_avec_XSLT/Autres_ressources": { - "modified": "2019-03-23T23:51:33.836Z", + "Web/API/WebRTC_API/Signaling_and_video_calling": { + "modified": "2020-11-22T05:39:33.506Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "Fredchat", - "VincentN" + "tonybengue", + "amineSsa", + "wordsbybird" ] }, - "Web/XSLT/Transformations_XML_avec_XSLT/La_référence_XSLT_XPath_de_Netscape": { - "modified": "2019-01-16T16:11:27.172Z", + "conflicting/Web/API/Document_Object_Model_656f0e51418b39c498011268be9b3a10": { + "modified": "2020-08-30T07:19:22.993Z", "contributors": [ - "chrisdavidmills", - "Fredchat" + "Voulto", + "tregagnon", + "Sheppy" ] }, - "Web/XSLT/Transformations_XML_avec_XSLT/Présentation": { - "modified": "2019-03-23T23:45:10.616Z", + "conflicting/Web/API/Canvas_API/Tutorial": { + "modified": "2019-03-23T23:59:59.422Z", "contributors": [ - "SphinxKnight", - "chrisdavidmills", - "VincentN", - "Fredchat" + "emersion", + "Laurent_Lyaudet", + "Delapouite", + "tregagnon", + "Nairod", + "BenoitL", + "Chbok", + "Mgjbot", + "Pitux" ] }, - "Web/XSLT/Utilisation_de_l'interface_JavaScript_de_Mozilla_pour_les_transformations_XSL": { - "modified": "2019-11-21T00:57:28.537Z", + "conflicting/Web/HTML/Element": { + "modified": "2019-03-23T23:39:45.493Z", "contributors": [ - "wbamberg", - "chrisdavidmills", + "LiliTha", + "tregagnon", "teoli", - "Mgjbot", - "BenoitL", - "Fredchat" + "regisg27", + "Fredchat", + "MatthieuMaler" ] }, - "Web/XSLT/apply-imports": { - "modified": "2019-01-16T16:10:20.927Z", + "conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85": { + "modified": "2020-10-27T03:22:58.763Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "cristianxhaca199", + "OhNiice" ] }, - "Web/XSLT/apply-templates": { - "modified": "2019-01-16T16:10:22.148Z", + "conflicting/Web/API/FormData/Using_FormData_Objects": { + "modified": "2019-03-23T23:02:24.025Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "pierreadrienbuisson", + "jean-pierre.gay" ] }, - "Web/XSLT/attribute": { - "modified": "2019-01-16T16:11:19.258Z", + "conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf": { + "modified": "2019-03-24T00:01:44.822Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "nhoizey", + "SphinxKnight", + "emersion", + "tregagnon", + "Nigel_Sheldon", + "BenoitL", + "Nukeador" ] }, - "Web/XSLT/attribute-set": { - "modified": "2019-01-16T16:11:22.221Z", + "conflicting/Learn/Getting_started_with_the_web/JavaScript_basics": { + "modified": "2019-03-23T23:12:53.783Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "316k", + "laurentChin" ] }, - "Web/XSLT/call-template": { - "modified": "2019-01-16T16:10:24.205Z", + "conflicting/Web/JavaScript/Guide/Introduction": { + "modified": "2020-03-12T19:38:04.895Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "wbamberg", + "SphinxKnight", + "teoli", + "P45QU10U", + "Goofy", + "tregagnon", + "favdb31" ] }, - "Web/XSLT/choose": { - "modified": "2019-01-16T16:11:13.317Z", + "conflicting/Web/JavaScript/Equality_comparisons_and_sameness": { + "modified": "2020-03-12T19:39:10.978Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli" ] }, - "Web/XSLT/comment": { - "modified": "2019-01-16T16:11:15.059Z", + "conflicting/Web/JavaScript/Guide/Regular_Expressions/Assertions": { + "modified": "2020-03-12T19:49:08.903Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/copy": { - "modified": "2019-01-16T16:11:11.226Z", + "conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b": { + "modified": "2020-03-12T19:38:04.487Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli", + "Jeremie", + "firdaws", + "P45QU10U", + "Goofy", + "simokla" ] }, - "Web/XSLT/copy-of": { - "modified": "2019-01-16T16:11:12.711Z", + "conflicting/Web/JavaScript/Guide": { + "modified": "2020-03-12T19:39:12.743Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "JyTosTT", + "wbamberg", + "SphinxKnight", + "Goofy", + "teoli" ] }, - "Web/XSLT/decimal-format": { - "modified": "2019-01-16T16:11:14.248Z", + "conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain": { + "modified": "2019-05-16T15:02:53.512Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "wbamberg", + "Tloque", + "SphinxKnight", + "darul75", + "teoli" ] }, - "Web/XSLT/fallback": { - "modified": "2019-01-16T16:10:22.081Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/JSON": { + "modified": "2020-03-12T19:39:16.956Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight", + "teoli" ] }, - "Web/XSLT/for-each": { - "modified": "2019-01-16T16:10:14.121Z", + "conflicting/Learn/JavaScript/Objects": { + "modified": "2020-03-12T19:39:16.946Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "GregMorel", + "F-Andre", + "SphinxKnight", + "kdex", + "LaurentBarbareau", + "vanz", + "Grimar29", + "Veltarn", + "kai23", + "Goofy" ] }, - "Web/XSLT/if": { - "modified": "2019-03-23T23:44:08.058Z", + "conflicting/Web/JavaScript/Reference/Statements/switch": { + "modified": "2020-10-15T21:39:25.638Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/import": { - "modified": "2019-05-12T02:01:24.974Z", + "conflicting/Web/JavaScript/Reference/Lexical_grammar": { + "modified": "2019-03-24T00:10:19.603Z", "contributors": [ + "06Minazuki", + "teoli", "SphinxKnight", - "T1p0un3t", - "chrisdavidmills", - "VincentN", - "Fredchat" + "matteodelabre" ] }, - "Web/XSLT/include": { - "modified": "2019-05-10T04:30:49.369Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/ArrayBuffer": { + "modified": "2020-10-15T21:29:56.629Z", "contributors": [ - "T1p0un3t", - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/key": { - "modified": "2019-01-16T16:10:13.896Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Boolean": { + "modified": "2020-10-15T21:15:22.913Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "npichon", + "tregagnon", + "teoli", + "Jeremie", + "Delapouite", + "BenoitL" ] }, - "Web/XSLT/message": { - "modified": "2019-01-16T16:10:13.942Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/DataView": { + "modified": "2020-10-15T21:29:57.016Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/namespace-alias": { - "modified": "2019-01-16T16:10:13.922Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Date": { + "modified": "2020-10-15T21:15:25.178Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "Goofy", + "teoli", + "tregagnon", + "Jeremie", + "BenoitL" ] }, - "Web/XSLT/number": { - "modified": "2019-03-23T23:44:07.848Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Error": { + "modified": "2020-10-15T21:27:19.966Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "Thebarda", + "SphinxKnight", + "teoli", + "Goofy", + "tregagnon" ] }, - "Web/XSLT/otherwise": { - "modified": "2019-01-16T16:09:54.989Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/EvalError": { + "modified": "2020-10-15T21:27:20.266Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli" ] }, - "Web/XSLT/output": { - "modified": "2019-01-16T16:09:52.885Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Function": { + "modified": "2020-10-15T21:14:17.300Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "Francoois", + "teoli", + "Jeremie", + "fscholz", + "BenoitL" ] }, - "Web/XSLT/param": { - "modified": "2019-01-16T16:09:53.847Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction": { + "modified": "2020-10-15T21:32:11.205Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/preserve-space": { - "modified": "2019-01-16T16:10:07.363Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/InternalError": { + "modified": "2020-10-15T21:27:47.341Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli" ] }, - "Web/XSLT/processing-instruction": { - "modified": "2019-01-16T16:09:56.661Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator": { + "modified": "2020-10-15T21:28:03.767Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/sort": { - "modified": "2019-01-16T16:02:11.967Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat": { + "modified": "2020-10-15T21:28:04.014Z", "contributors": [ - "chrisdavidmills", - "Fredchat", - "VincentN" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/strip-space": { - "modified": "2019-01-16T16:09:55.845Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat": { + "modified": "2020-10-15T22:13:56.011Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/stylesheet": { - "modified": "2019-01-16T16:09:51.775Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Locale": { + "modified": "2020-10-15T22:21:10.788Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/template": { - "modified": "2019-01-16T16:07:47.679Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat": { + "modified": "2020-10-15T21:28:09.446Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/text": { - "modified": "2019-03-23T23:44:38.020Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules": { + "modified": "2020-10-15T21:59:10.173Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/transform": { - "modified": "2019-01-16T16:11:22.367Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat": { + "modified": "2020-10-15T22:13:09.144Z", "contributors": [ - "chrisdavidmills", - "Fredchat" + "fscholz", + "SphinxKnight" ] }, - "Web/XSLT/value-of": { - "modified": "2019-03-23T23:44:42.898Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Map": { + "modified": "2020-10-15T21:27:50.561Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "teoli" ] }, - "Web/XSLT/variable": { - "modified": "2019-01-16T16:09:06.502Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Number": { + "modified": "2020-10-15T21:28:28.015Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "Web/XSLT/when": { - "modified": "2019-01-16T16:09:01.761Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Object": { + "modified": "2020-10-15T21:15:24.935Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight", + "opii93", + "ctjhoa", + "WSH", + "teoli", + "Jeremie", + "BenoitL" ] }, - "Web/XSLT/with-param": { - "modified": "2019-01-16T16:07:34.980Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Promise": { + "modified": "2020-10-15T21:30:11.290Z", "contributors": [ - "chrisdavidmills", - "VincentN", - "Fredchat" + "SphinxKnight" ] }, - "WebAPI": { - "modified": "2019-03-23T23:28:30.598Z", + "Web/JavaScript/Reference/Global_Objects/Proxy/Proxy": { + "modified": "2020-10-15T21:32:28.978Z", "contributors": [ - "wbamberg", - "fscholz", + "Mozinet", "SphinxKnight" ] }, - "WebAPI/Detecting_device_orientation": { - "modified": "2019-03-23T23:28:22.437Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/RangeError": { + "modified": "2020-10-15T21:29:08.374Z", "contributors": [ - "mgagnon555", - "a-mt", - "tregagnon", - "Fredchat", - "FredB", - "achraf", - "darnuria" + "SphinxKnight" ] }, - "WebAPI/Network_Information": { - "modified": "2020-10-15T21:24:14.258Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError": { + "modified": "2020-10-15T21:29:30.187Z", "contributors": [ - "Arzak656", "SphinxKnight" ] }, - "WebAPI/Pointer_Lock": { - "modified": "2019-03-23T23:28:21.431Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/RegExp": { + "modified": "2020-10-15T21:30:50.602Z", "contributors": [ - "3xr", - "a-mt", - "fscholz", - "polpoy", - "aymericbeaumet", - "nathsou", - "kipcode66", - "Delapouite" + "SphinxKnight", + "regseb" ] }, - "WebAPI/Proximity": { - "modified": "2019-03-23T23:28:24.540Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Set": { + "modified": "2020-10-15T21:30:53.915Z", "contributors": [ "SphinxKnight" ] }, - "WebAPI/Utiliser_les_événéments_de_luminosité": { - "modified": "2019-03-23T23:28:29.463Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer": { + "modified": "2020-10-15T21:43:01.477Z", "contributors": [ - "Goofy", "SphinxKnight" ] }, - "WebAssembly": { - "modified": "2019-03-23T22:14:12.769Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/String": { + "modified": "2020-10-15T21:14:12.465Z", "contributors": [ - "sylv1", - "dattaz", - "SphinxKnight" + "SphinxKnight", + "ylerjen", + "Pihemde", + "teoli", + "Jeremie", + "fscholz", + "BenoitL" ] }, - "WebAssembly/C_to_wasm": { - "modified": "2019-10-28T10:12:05.168Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/Symbol": { + "modified": "2020-10-15T21:29:11.196Z", "contributors": [ - "WhiteMoll", - "benerone", - "NerOcrO", - "baviereteam", - "ClementNerma" + "SphinxKnight" ] }, - "WebAssembly/Concepts": { - "modified": "2020-01-14T03:35:30.904Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError": { + "modified": "2020-10-15T21:11:18.913Z", "contributors": [ "SphinxKnight", - "lionelquellery", - "NerOcrO", - "mael-jarnole", - "benerone", - "Keuklar", - "Mo-la-machette", - "arthurwhite" + "teoli", + "Jeremie", + "matteodelabre" ] }, - "WebAssembly/Exported_functions": { - "modified": "2019-06-18T16:22:08.093Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray": { + "modified": "2020-10-15T21:31:18.776Z", "contributors": [ - "BenoitDel" + "SphinxKnight", + "cdr" ] }, - "WebAssembly/Loading_and_running": { - "modified": "2019-06-18T08:32:36.065Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/TypeError": { + "modified": "2020-10-15T21:30:50.829Z", "contributors": [ - "BenoitDel" + "SphinxKnight" ] }, - "WebAssembly/Understanding_the_text_format": { - "modified": "2020-11-08T19:45:23.458Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/URIError": { + "modified": "2020-10-15T21:31:09.956Z", "contributors": [ - "duduindo", - "lassana.drame.avenir", - "SphinxKnight", - "neilbryson", - "afauroux", - "marcpicaud" + "SphinxKnight" ] }, - "WebAssembly/Using_the_JavaScript_API": { - "modified": "2020-02-29T07:32:23.744Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap": { + "modified": "2020-10-15T21:30:49.753Z", "contributors": [ - "Sibian2019", - "BenoitDel", - "SphinxKnight", - "nvana", - "si0ls", - "dattaz" + "SphinxKnight" ] }, - "WebRTC": { - "modified": "2019-03-23T23:34:26.249Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet": { + "modified": "2020-10-15T21:31:01.804Z", "contributors": [ - "J.DMB", - "Goofy", - "AbrahamT", - "Hub", - "Blancdememoire" + "SphinxKnight" ] }, - "WebRTC/Introduction": { - "modified": "2019-03-23T23:34:02.335Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global": { + "modified": "2020-10-15T22:09:50.879Z", "contributors": [ - "mmkmou", - "Hub" + "fscholz", + "SphinxKnight" ] }, - "WebRTC/MediaStream_API": { - "modified": "2020-10-15T21:25:08.658Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance": { + "modified": "2020-10-15T21:52:20.376Z", "contributors": [ - "SphinxKnight", - "GenjoMoz", - "JonathanMM", - "AbrahamT" + "SphinxKnight" ] }, - "WebRTC/Prendre_des_photos_avec_la_webcam": { - "modified": "2019-03-23T23:34:23.933Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory": { + "modified": "2020-10-15T21:52:20.707Z", "contributors": [ - "teoli", - "yluom", - "peb85", - "Hub" + "SphinxKnight" ] }, - "WebRTC/communication-de-pair-a-pair-avec-WebRTC": { - "modified": "2019-03-23T23:24:59.049Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module": { + "modified": "2020-10-15T21:52:24.010Z", "contributors": [ - "AbrahamT" + "SphinxKnight" ] }, - "XHTML": { - "modified": "2019-03-23T23:46:04.645Z", + "conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table": { + "modified": "2020-10-15T21:52:21.568Z", "contributors": [ - "loella16", - "Mgjbot", - "BenoitL", - "Takenbot", - "Bpruneau" + "SphinxKnight" ] }, - "XMLSerializer": { - "modified": "2019-03-23T23:46:38.004Z", + "conflicting/Web/JavaScript/Reference/Operators": { + "modified": "2020-10-15T21:17:24.593Z", "contributors": [ - "Delapouite", + "Valentin", + "SphinxKnight", + "PhilippePerret", + "alexisdelee", + "teoli", + "Jeremie", "Mgjbot", - "Fredchat", - "VincentN", - "Chbok" + "BenoitL" ] }, - "XPCOM/Liaisons_de_langage/Objet_Components": { - "modified": "2019-04-18T20:34:34.205Z", + "conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3": { + "modified": "2020-10-15T21:18:05.662Z", "contributors": [ - "wbamberg", - "jmh" + "SphinxKnight", + "pastr", + "mizhac", + "id-ismail", + "Sroucheray", + "bsitruk", + "thePivottt", + "titouandk", + "teoli", + "Jeremie", + "Kyodev", + "BenoitL" ] }, - "XPCOM/Reference/Standard_XPCOM_components": { - "modified": "2019-04-18T20:35:41.986Z", + "conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b": { + "modified": "2020-10-15T21:18:11.144Z", "contributors": [ + "SphinxKnight", "wbamberg", - "jmh" + "Anquez", + "Behrouze", + "Goofy", + "teoli", + "Jeremie", + "BenoitL" ] }, - "XSLTProcessor": { - "modified": "2019-01-16T16:07:52.523Z", + "conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9": { + "modified": "2019-03-23T23:48:45.315Z", "contributors": [ - "VincentN", - "Fredchat" + "teoli", + "Jeremie", + "Mgjbot", + "BenoitL" ] }, - "XSLT_dans_Gecko": { - "modified": "2019-03-23T23:44:00.502Z", + "conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55": { + "modified": "2020-10-15T21:18:03.910Z", "contributors": [ + "Watilin", "SphinxKnight", - "wbamberg", - "VincentN", - "Fredchat" + "pierreferry", + "lionel-kahan", + "teoli", + "Jeremie", + "Kyodev", + "BenoitL" ] }, - "XSLT_dans_Gecko/Différences_entre_les_navigateurs": { - "modified": "2019-03-23T23:49:52.590Z", + "conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f": { + "modified": "2020-10-15T21:17:22.011Z", "contributors": [ - "wbamberg", - "Sebastianz", + "SphinxKnight", + "Darkilen", + "teoli", + "Jeremie", "Mgjbot", - "VincentN", - "Fredchat" + "Kyodev", + "BenoitL" ] }, - "XSLT_dans_Gecko/Exemple_basique": { - "modified": "2019-03-23T23:49:47.376Z", + "Web/Progressive_web_apps/Responsive/responsive_design_building_blocks": { + "modified": "2019-03-18T20:52:18.105Z", "contributors": [ - "wbamberg", - "Sebastianz", - "Mgjbot", - "VincentN", - "Fredchat" + "chrisdavidmills", + "Hell_Carlito", + "JeffD" ] }, - "XSLT_dans_Gecko/Génération_de_HTML": { - "modified": "2019-03-23T23:51:13.681Z", + "conflicting/Web/Progressive_web_apps": { + "modified": "2019-03-18T20:52:18.657Z", "contributors": [ - "wbamberg", - "Sebastianz", - "Sheppy", - "Ultrafil", - "Mgjbot", - "VincentN", - "Fredchat" + "chrisdavidmills", + "Hell_Carlito", + "JeffD" ] }, - "Zoom_pleine_page": { - "modified": "2019-03-23T23:50:05.576Z", + "conflicting/Web/Progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31": { + "modified": "2019-03-18T20:52:17.306Z", "contributors": [ - "wbamberg", - "Mgjbot", - "BenoitL", - "Sys" + "chrisdavidmills", + "Hell_Carlito", + "JeffD", + "Goofy" ] }, - "inset-block-end": { - "modified": "2020-10-15T21:43:23.981Z", + "conflicting/Web/Progressive_web_apps_7b3e1886320599eacfee6834ead473f1": { + "modified": "2019-03-18T20:52:18.292Z", "contributors": [ - "SphinxKnight", - "rachelandrew" + "chrisdavidmills", + "Hell_Carlito", + "JeffD" ] }, - "inset-block-start": { - "modified": "2020-10-15T21:43:23.193Z", + "conflicting/Web/Progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc": { + "modified": "2019-03-18T20:52:18.465Z", "contributors": [ - "SphinxKnight", - "rachelandrew" + "chrisdavidmills", + "Gibus", + "JeffD" ] }, - "inset-inline-end": { - "modified": "2020-10-15T21:43:21.489Z", + "conflicting/Web/Progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf": { + "modified": "2019-03-18T20:52:17.884Z", "contributors": [ - "SphinxKnight", - "rachelandrew" + "chrisdavidmills", + "Hell_Carlito", + "JeffD" ] }, - "inset-inline-start": { - "modified": "2020-10-15T21:43:20.633Z", + "conflicting/Web/Progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67": { + "modified": "2019-03-18T20:52:17.700Z", "contributors": [ - "SphinxKnight", - "rachelandrew" + "chrisdavidmills", + "Hell_Carlito", + "JeffD" ] }, - "toSource": { - "modified": "2019-03-24T00:05:25.191Z", + "conflicting/Web/Progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b": { + "modified": "2019-03-18T20:52:17.484Z", + "contributors": [ + "chrisdavidmills", + "Gibus", + "JeffD" + ] + }, + "conflicting/Web/API_dd04ca1265cb79b990b8120e5f5070d3": { + "modified": "2019-03-23T23:28:30.598Z", "contributors": [ "wbamberg", - "Potappo", - "BenoitL" + "fscholz", + "SphinxKnight" ] }, - "toString": { - "modified": "2019-03-23T23:46:06.612Z", + "conflicting/Web/API/WebRTC_API_d8621144cbc61520339c3b10c61731f0": { + "modified": "2019-03-23T23:34:26.249Z", + "contributors": [ + "J.DMB", + "Goofy", + "AbrahamT", + "Hub", + "Blancdememoire" + ] + }, + "conflicting/Web/API/XSLTProcessor": { + "modified": "2019-03-23T23:44:00.502Z", "contributors": [ + "SphinxKnight", "wbamberg", - "teoli", - "BenoitL" + "VincentN", + "Fredchat" ] }, - "À_propos_du_Document_Object_Model": { - "modified": "2019-03-23T23:53:23.967Z", + "conflicting/Web/API/XSLTProcessor_197eea6e529b0a946d29ce7cc292e7ef": { + "modified": "2019-01-16T16:07:52.523Z", "contributors": [ - "Delapouite", - "Mgjbot", - "BenoitL", - "Jorolo" + "VincentN", + "Fredchat" ] } } \ No newline at end of file diff --git a/files/fr/conflicting/glossary/chrome/index.html b/files/fr/conflicting/glossary/chrome/index.html index 4c11e52a8c..e6892c6a24 100644 --- a/files/fr/conflicting/glossary/chrome/index.html +++ b/files/fr/conflicting/glossary/chrome/index.html @@ -1,10 +1,11 @@ --- title: Chrome -slug: Chrome +slug: conflicting/Glossary/Chrome tags: - API_du_toolkit translation_of: Glossary/Chrome translation_of_original: Chrome +original_slug: Chrome ---

Le terme Chrome a historiquement plusieurs significations dans le cadre de Mozilla.

diff --git a/files/fr/conflicting/glossary/doctype/index.html b/files/fr/conflicting/glossary/doctype/index.html index 803f8cc228..bb96b29d9f 100644 --- a/files/fr/conflicting/glossary/doctype/index.html +++ b/files/fr/conflicting/glossary/doctype/index.html @@ -1,10 +1,11 @@ --- title: DTD -slug: Glossaire/DTD +slug: conflicting/Glossary/Doctype tags: - Encodage - Glossaire translation_of: Glossary/Doctype translation_of_original: Glossary/DTD +original_slug: Glossaire/DTD ---

{{page("/fr/docs/Glossaire/Doctype")}}

diff --git a/files/fr/conflicting/glossary/dom/index.html b/files/fr/conflicting/glossary/dom/index.html index 196eda1157..b621b29c81 100644 --- a/files/fr/conflicting/glossary/dom/index.html +++ b/files/fr/conflicting/glossary/dom/index.html @@ -1,8 +1,9 @@ --- title: Référence DOM Gecko -slug: Référence_DOM_Gecko +slug: conflicting/Glossary/DOM translation_of: Glossary/DOM translation_of_original: Document_Object_Model_(DOM) +original_slug: Référence_DOM_Gecko ---
Table des matières du DOM Gecko
diff --git a/files/fr/conflicting/learn/common_questions/set_up_a_local_testing_server/index.html b/files/fr/conflicting/learn/common_questions/set_up_a_local_testing_server/index.html index d688fcce92..c3430f5eab 100644 --- a/files/fr/conflicting/learn/common_questions/set_up_a_local_testing_server/index.html +++ b/files/fr/conflicting/learn/common_questions/set_up_a_local_testing_server/index.html @@ -1,6 +1,6 @@ --- title: Mettre en place un environnement de travail -slug: Apprendre/Mettre_en_place_un_environnement_de_travail +slug: conflicting/Learn/Common_questions/set_up_a_local_testing_server tags: - Beginner - CodingScripting @@ -8,6 +8,7 @@ tags: - Learn translation_of: Learn/Common_questions/set_up_a_local_testing_server translation_of_original: Learn/Common_questions/Set_up_a_basic_working_environment +original_slug: Apprendre/Mettre_en_place_un_environnement_de_travail ---

Cet article indique comment mettre en place un environnement de travail et de test afin d'organiser vos pages web.

diff --git a/files/fr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html b/files/fr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html index d5c4ea0ea9..2dd53fcb87 100644 --- a/files/fr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/cascade_and_inheritance/index.html @@ -1,11 +1,12 @@ --- title: Cascade et héritage -slug: CSS/Premiers_pas/Cascade_et_héritage +slug: conflicting/Learn/CSS/Building_blocks/Cascade_and_inheritance tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance translation_of_original: Web/Guide/CSS/Getting_started/Cascading_and_inheritance +original_slug: CSS/Premiers_pas/Cascade_et_héritage ---

 

Cette page met en évidence la façon dont les feuilles de style interagissent dans une cascade et comment les éléments héritent leur style de leurs parents.

diff --git a/files/fr/conflicting/learn/css/building_blocks/index.html b/files/fr/conflicting/learn/css/building_blocks/index.html index fd147c876d..399af012a1 100644 --- a/files/fr/conflicting/learn/css/building_blocks/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/index.html @@ -1,11 +1,12 @@ --- title: Boîtes -slug: CSS/Premiers_pas/Boîtes +slug: conflicting/Learn/CSS/Building_blocks tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Building_blocks translation_of_original: Web/Guide/CSS/Getting_started/Boxes +original_slug: CSS/Premiers_pas/Boîtes ---

 

Cette page explique comment utiliser CSS pour contrôler l'espace occupé par un élément lorsqu'il est affiché.

diff --git a/files/fr/conflicting/learn/css/building_blocks/selectors/index.html b/files/fr/conflicting/learn/css/building_blocks/selectors/index.html index d3ab8e9794..6f8167820f 100644 --- a/files/fr/conflicting/learn/css/building_blocks/selectors/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/selectors/index.html @@ -1,6 +1,6 @@ --- title: Les propriétés CSS et comment s'en servir -slug: Apprendre/CSS/Les_propriétés_CSS +slug: conflicting/Learn/CSS/Building_blocks/Selectors tags: - Beginner - CSS @@ -8,6 +8,7 @@ tags: - NeedsActiveLearning translation_of: Learn/CSS/Building_blocks/Selectors translation_of_original: Learn/CSS/CSS_properties +original_slug: Apprendre/CSS/Les_propriétés_CSS ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/conflicting/learn/css/building_blocks/selectors_9bc80fea302c91cd60fb72c4e83c83e9/index.html b/files/fr/conflicting/learn/css/building_blocks/selectors_9bc80fea302c91cd60fb72c4e83c83e9/index.html index 9371d826b3..0a415b7af8 100644 --- a/files/fr/conflicting/learn/css/building_blocks/selectors_9bc80fea302c91cd60fb72c4e83c83e9/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/selectors_9bc80fea302c91cd60fb72c4e83c83e9/index.html @@ -1,11 +1,13 @@ --- title: Les sélecteurs -slug: CSS/Premiers_pas/Les_sélecteurs +slug: >- + conflicting/Learn/CSS/Building_blocks/Selectors_9bc80fea302c91cd60fb72c4e83c83e9 tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Building_blocks/Selectors translation_of_original: Web/Guide/CSS/Getting_started/Selectors +original_slug: CSS/Premiers_pas/Les_sélecteurs ---

 

diff --git a/files/fr/conflicting/learn/css/building_blocks/styling_tables/index.html b/files/fr/conflicting/learn/css/building_blocks/styling_tables/index.html index 9fcc9dbd2d..a080656067 100644 --- a/files/fr/conflicting/learn/css/building_blocks/styling_tables/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/styling_tables/index.html @@ -1,11 +1,12 @@ --- title: Tableaux -slug: CSS/Premiers_pas/Tableaux +slug: conflicting/Learn/CSS/Building_blocks/Styling_tables tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Building_blocks/Styling_tables translation_of_original: Web/Guide/CSS/Getting_started/Tables +original_slug: CSS/Premiers_pas/Tableaux ---

 

Cette page présente des sélecteurs plus avancés, et certaines manières spécifiques de styler les tableaux.

diff --git a/files/fr/conflicting/learn/css/building_blocks/values_and_units/index.html b/files/fr/conflicting/learn/css/building_blocks/values_and_units/index.html index 24952f7505..920a96636a 100644 --- a/files/fr/conflicting/learn/css/building_blocks/values_and_units/index.html +++ b/files/fr/conflicting/learn/css/building_blocks/values_and_units/index.html @@ -1,11 +1,12 @@ --- title: Couleurs -slug: CSS/Premiers_pas/Couleurs +slug: conflicting/Learn/CSS/Building_blocks/Values_and_units tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Introduction_to_CSS/Values_and_units#Colors translation_of_original: Web/Guide/CSS/Getting_started/Color +original_slug: CSS/Premiers_pas/Couleurs ---

 

Cette page donne plus de détails sur la manière de spécifier les couleurs en CSS.

diff --git a/files/fr/conflicting/learn/css/css_layout/index.html b/files/fr/conflicting/learn/css/css_layout/index.html index f8d9872975..d4ac54d74a 100644 --- a/files/fr/conflicting/learn/css/css_layout/index.html +++ b/files/fr/conflicting/learn/css/css_layout/index.html @@ -1,11 +1,12 @@ --- title: Mise en page -slug: CSS/Premiers_pas/Mise_en_page +slug: conflicting/Learn/CSS/CSS_layout tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/CSS_layout translation_of_original: Web/Guide/CSS/Getting_started/Layout +original_slug: CSS/Premiers_pas/Mise_en_page ---

 

Cette page présente plusieurs manières d'ajuster la mise en page de votre document.

diff --git a/files/fr/conflicting/learn/css/css_layout/introduction/index.html b/files/fr/conflicting/learn/css/css_layout/introduction/index.html index 526af5a0b0..4c66ddf62d 100644 --- a/files/fr/conflicting/learn/css/css_layout/introduction/index.html +++ b/files/fr/conflicting/learn/css/css_layout/introduction/index.html @@ -1,11 +1,12 @@ --- title: La disposition en CSS -slug: Apprendre/CSS/Introduction_à_CSS/La_disposition +slug: conflicting/Learn/CSS/CSS_layout/Introduction tags: - Apprendre - CSS translation_of: Learn/CSS/CSS_layout/Introduction translation_of_original: Learn/CSS/Basics/Layout +original_slug: Apprendre/CSS/Introduction_à_CSS/La_disposition ---

{{PreviousNext("Apprendre/CSS/Les_bases/Le_modèle_de_boîte","Apprendre/CSS/Comment/Mettre_en_forme_du_texte")}}

diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_is_structured/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_is_structured/index.html index 57da469f28..a163bef2d6 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_is_structured/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_is_structured/index.html @@ -1,11 +1,12 @@ --- title: Des CSS lisibles -slug: CSS/Premiers_pas/Des_CSS_lisibles +slug: conflicting/Learn/CSS/First_steps/How_CSS_is_structured tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Introduction_to_CSS/Syntax#Beyond_syntax_make_CSS_readable translation_of_original: Web/Guide/CSS/Getting_started/Readable_CSS +original_slug: CSS/Premiers_pas/Des_CSS_lisibles ---

 

Cette page aborde le style et la grammaire du langage CSS lui-même.

diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_works/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_works/index.html index ace461991e..4930b3a550 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_works/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_works/index.html @@ -1,6 +1,6 @@ --- title: Utiliser le CSS dans une page web -slug: Apprendre/CSS/Utiliser_CSS_dans_une_page_web +slug: conflicting/Learn/CSS/First_steps/How_CSS_works tags: - Beginner - CSS @@ -9,6 +9,7 @@ tags: - NeedsActiveLearning translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Learn/CSS/Using_CSS_in_a_web_page +original_slug: Apprendre/CSS/Utiliser_CSS_dans_une_page_web ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_works_cdccf923f6bd040e8d243ee03d223ddc/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_works_cdccf923f6bd040e8d243ee03d223ddc/index.html index aa08f6ffea..62388feb0a 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_works_cdccf923f6bd040e8d243ee03d223ddc/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_works_cdccf923f6bd040e8d243ee03d223ddc/index.html @@ -1,11 +1,13 @@ --- title: Fonctionnement de CSS -slug: CSS/Premiers_pas/Fonctionnement_de_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_cdccf923f6bd040e8d243ee03d223ddc tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/How_CSS_works +original_slug: CSS/Premiers_pas/Fonctionnement_de_CSS ---

 

diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_works_cf31463f874ecd8e10e648dacde4a995/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_works_cf31463f874ecd8e10e648dacde4a995/index.html index e0b9c64a2e..1e34cbcce2 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_works_cf31463f874ecd8e10e648dacde4a995/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_works_cf31463f874ecd8e10e648dacde4a995/index.html @@ -1,6 +1,7 @@ --- title: Appliquer du CSS à une page web -slug: Apprendre/HTML/Comment/Appliquer_du_CSS_à_une_page_web +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_cf31463f874ecd8e10e648dacde4a995 tags: - Beginner - CSS @@ -8,6 +9,7 @@ tags: - HTML translation_of: Learn/CSS/Introduction_to_CSS/How_CSS_works#How_to_apply_your_CSS_to_your_HTML translation_of_original: Learn/HTML/Howto/Use_CSS_within_a_webpage +original_slug: Apprendre/HTML/Comment/Appliquer_du_CSS_à_une_page_web ---

Le code HTML d'une page web définit sa signification et sa structure. Le code CSS, quant à lui, permet de définir la mise en forme d'une page. Dans cet article, nous verrons comment appliquer du code CSS à un document HTML.

diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_works_dba75d8c56ccc773f03d946ce2dbb25c/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_works_dba75d8c56ccc773f03d946ce2dbb25c/index.html index 1782164624..c499669d9c 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_works_dba75d8c56ccc773f03d946ce2dbb25c/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_works_dba75d8c56ccc773f03d946ce2dbb25c/index.html @@ -1,11 +1,13 @@ --- title: Présentation des CSS -slug: CSS/Premiers_pas/Présentation_des_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_dba75d8c56ccc773f03d946ce2dbb25c tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/What_is_CSS +original_slug: CSS/Premiers_pas/Présentation_des_CSS ---

{{previousPage("/fr/docs/CSS/Premiers_pas", "Premiers pas")}} diff --git a/files/fr/conflicting/learn/css/first_steps/how_css_works_ecbda2160290b96c02dcfa8276c0333a/index.html b/files/fr/conflicting/learn/css/first_steps/how_css_works_ecbda2160290b96c02dcfa8276c0333a/index.html index 682482eefb..5e37520d12 100644 --- a/files/fr/conflicting/learn/css/first_steps/how_css_works_ecbda2160290b96c02dcfa8276c0333a/index.html +++ b/files/fr/conflicting/learn/css/first_steps/how_css_works_ecbda2160290b96c02dcfa8276c0333a/index.html @@ -1,11 +1,13 @@ --- title: Pourquoi utiliser CSS -slug: CSS/Premiers_pas/Pourquoi_utiliser_CSS +slug: >- + conflicting/Learn/CSS/First_steps/How_CSS_works_ecbda2160290b96c02dcfa8276c0333a tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/First_steps/How_CSS_works translation_of_original: Web/Guide/CSS/Getting_started/Why_use_CSS +original_slug: CSS/Premiers_pas/Pourquoi_utiliser_CSS ---

 

Cette page explique pourquoi les documents utilisent CSS. Vous utiliserez CSS pour ajouter une feuille de style à votre document de démonstration.

diff --git a/files/fr/conflicting/learn/css/first_steps/index.html b/files/fr/conflicting/learn/css/first_steps/index.html index 5a802a6899..43e8c6ed9c 100644 --- a/files/fr/conflicting/learn/css/first_steps/index.html +++ b/files/fr/conflicting/learn/css/first_steps/index.html @@ -1,11 +1,12 @@ --- title: Premiers pas -slug: CSS/Premiers_pas +slug: conflicting/Learn/CSS/First_steps tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/First_steps translation_of_original: Web/Guide/CSS/Getting_started +original_slug: CSS/Premiers_pas ---

Introduction

diff --git a/files/fr/conflicting/learn/css/styling_text/fundamentals/index.html b/files/fr/conflicting/learn/css/styling_text/fundamentals/index.html index 67864f3b97..8506c0ab74 100644 --- a/files/fr/conflicting/learn/css/styling_text/fundamentals/index.html +++ b/files/fr/conflicting/learn/css/styling_text/fundamentals/index.html @@ -1,12 +1,13 @@ --- title: Mettre en forme du texte -slug: Apprendre/CSS/Comment/Mettre_en_forme_du_texte +slug: conflicting/Learn/CSS/Styling_text/Fundamentals tags: - Apprendre - CSS - Débutant translation_of: Learn/CSS/Styling_text/Fundamentals translation_of_original: Learn/CSS/Howto/style_text +original_slug: Apprendre/CSS/Comment/Mettre_en_forme_du_texte ---

La mise en forme du texte est au cœur de CSS. Celui-ci fournit de nombreuses propriétés permettant de modifier l'apparence du texte. En quelque sorte, CSS est le prolongement, sur le Web, de la typographie qui existe depuis plusieurs siècles.

diff --git a/files/fr/conflicting/learn/css/styling_text/fundamentals_8249b1bf53d09b06ed51f43697880b5b/index.html b/files/fr/conflicting/learn/css/styling_text/fundamentals_8249b1bf53d09b06ed51f43697880b5b/index.html index 61bccf32f1..490b201953 100644 --- a/files/fr/conflicting/learn/css/styling_text/fundamentals_8249b1bf53d09b06ed51f43697880b5b/index.html +++ b/files/fr/conflicting/learn/css/styling_text/fundamentals_8249b1bf53d09b06ed51f43697880b5b/index.html @@ -1,11 +1,13 @@ --- title: Styles de texte -slug: CSS/Premiers_pas/Styles_de_texte +slug: >- + conflicting/Learn/CSS/Styling_text/Fundamentals_8249b1bf53d09b06ed51f43697880b5b tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Styling_text/Fundamentals translation_of_original: Web/Guide/CSS/Getting_started/Text_styles +original_slug: CSS/Premiers_pas/Styles_de_texte ---

 

Cette page vous donne plus d'exemples de styles de texte.

diff --git a/files/fr/conflicting/learn/css/styling_text/fundamentals_9e7ba587262abbb02304cbc099c1f0d8/index.html b/files/fr/conflicting/learn/css/styling_text/fundamentals_9e7ba587262abbb02304cbc099c1f0d8/index.html index 5a9fcb6c63..0f6b1b435d 100644 --- a/files/fr/conflicting/learn/css/styling_text/fundamentals_9e7ba587262abbb02304cbc099c1f0d8/index.html +++ b/files/fr/conflicting/learn/css/styling_text/fundamentals_9e7ba587262abbb02304cbc099c1f0d8/index.html @@ -1,6 +1,7 @@ --- title: Mise en forme basique du texte avec CSS -slug: Apprendre/CSS/formatage_texte_CSS +slug: >- + conflicting/Learn/CSS/Styling_text/Fundamentals_9e7ba587262abbb02304cbc099c1f0d8 tags: - Beginner - CSS @@ -11,6 +12,7 @@ tags: - NeedsActiveLearning translation_of: Learn/CSS/Styling_text/Fundamentals translation_of_original: Learn/CSS/Basic_text_styling_in_CSS +original_slug: Apprendre/CSS/formatage_texte_CSS ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/conflicting/learn/css/styling_text/styling_lists/index.html b/files/fr/conflicting/learn/css/styling_text/styling_lists/index.html index 3b25f0218c..8e94b73728 100644 --- a/files/fr/conflicting/learn/css/styling_text/styling_lists/index.html +++ b/files/fr/conflicting/learn/css/styling_text/styling_lists/index.html @@ -1,8 +1,9 @@ --- title: personnaliser une liste -slug: Apprendre/CSS/Comment/personnaliser_une_liste +slug: conflicting/Learn/CSS/Styling_text/Styling_lists translation_of: Learn/CSS/Styling_text/Styling_lists translation_of_original: Learn/CSS/Howto/customize_a_list +original_slug: Apprendre/CSS/Comment/personnaliser_une_liste ---

{{draft}}

diff --git a/files/fr/conflicting/learn/css/styling_text/styling_lists_06e9538892250c13976a84639f0dadd2/index.html b/files/fr/conflicting/learn/css/styling_text/styling_lists_06e9538892250c13976a84639f0dadd2/index.html index fd091907fe..d601fabd1d 100644 --- a/files/fr/conflicting/learn/css/styling_text/styling_lists_06e9538892250c13976a84639f0dadd2/index.html +++ b/files/fr/conflicting/learn/css/styling_text/styling_lists_06e9538892250c13976a84639f0dadd2/index.html @@ -1,11 +1,13 @@ --- title: Listes -slug: CSS/Premiers_pas/Listes +slug: >- + conflicting/Learn/CSS/Styling_text/Styling_lists_06e9538892250c13976a84639f0dadd2 tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Styling_text/Styling_lists translation_of_original: Web/Guide/CSS/Getting_started/Lists +original_slug: CSS/Premiers_pas/Listes ---

 

Cette page explique comment utiliser CSS pour spécifier l'apparence des listes.

diff --git a/files/fr/conflicting/learn/getting_started_with_the_web/dealing_with_files/index.html b/files/fr/conflicting/learn/getting_started_with_the_web/dealing_with_files/index.html index 48f1d4cd14..fb5caab933 100644 --- a/files/fr/conflicting/learn/getting_started_with_the_web/dealing_with_files/index.html +++ b/files/fr/conflicting/learn/getting_started_with_the_web/dealing_with_files/index.html @@ -1,6 +1,6 @@ --- title: Ouvrir un fichier dans un navigateur web -slug: Apprendre/Ouvrir_un_fichier_dans_un_navigateur_web +slug: conflicting/Learn/Getting_started_with_the_web/Dealing_with_files tags: - Beginner - CodingScripting @@ -8,6 +8,7 @@ tags: - WebMechanics translation_of: Learn/Getting_started_with_the_web/Dealing_with_files translation_of_original: Learn/Open_a_file_in_a_browser +original_slug: Apprendre/Ouvrir_un_fichier_dans_un_navigateur_web ---

Dans article, nous verrons comment ouvrir un fichier avec un navigateur web.

diff --git a/files/fr/conflicting/learn/getting_started_with_the_web/index.html b/files/fr/conflicting/learn/getting_started_with_the_web/index.html index 978bfc7c17..65417dac9a 100644 --- a/files/fr/conflicting/learn/getting_started_with_the_web/index.html +++ b/files/fr/conflicting/learn/getting_started_with_the_web/index.html @@ -1,6 +1,6 @@ --- title: Écrire une simple page HTML -slug: Apprendre/HTML/Écrire_une_simple_page_HTML +slug: conflicting/Learn/Getting_started_with_the_web tags: - Beginner - CodingScripting @@ -10,6 +10,7 @@ tags: - Web Development translation_of: Learn/Getting_started_with_the_web translation_of_original: Learn/HTML/Write_a_simple_page_in_HTML +original_slug: Apprendre/HTML/Écrire_une_simple_page_HTML ---

Dans ceta rticle, vous apprendrez à créer une page web simple grâce à {{Glossary("HTML")}}.

diff --git a/files/fr/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html b/files/fr/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html index c95ba3d3a2..ca7bece7b7 100644 --- a/files/fr/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html +++ b/files/fr/conflicting/learn/getting_started_with_the_web/javascript_basics/index.html @@ -1,6 +1,6 @@ --- title: Tutoriel pour débuter en JavaScript -slug: Web/JavaScript/guide_de_demarrage +slug: conflicting/Learn/Getting_started_with_the_web/JavaScript_basics tags: - Beginner - JavaScript @@ -8,6 +8,7 @@ tags: - Tutorial translation_of: Learn/Getting_started_with_the_web/JavaScript_basics translation_of_original: Web/JavaScript/Getting_Started +original_slug: Web/JavaScript/guide_de_demarrage ---

Pourquoi JavaScript ?

JavaScript est un langage de programmation puissant, complexe et trop souvent mal compris. Il permet le développement rapide d'applications avec lesquelles l'utilisateur va pouvoir intéragir pour saisir des données et observer le résultat de leur traitement.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting/index.html b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting/index.html index db22bdd6f4..739db143be 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting/index.html @@ -1,6 +1,6 @@ --- title: Afficher du code informatique avec HTML -slug: Apprendre/HTML/Comment/Afficher_du_code_informatique_avec_HTML +slug: conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting tags: - Beginner - Guide @@ -9,6 +9,7 @@ tags: translation_of: >- Learn/HTML/Introduction_to_HTML/Advanced_text_formatting#Representing_computer_code translation_of_original: Learn/HTML/Howto/Display_computer_code_with_HTML +original_slug: Apprendre/HTML/Comment/Afficher_du_code_informatique_avec_HTML ---

HTML offre différents éléments pour écrire de la documentation technique. Dans cet article, nous aborderons les éléments HTML qui portent sur la représentation de code informatique.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446/index.html b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446/index.html index 99ad7a8733..2b074bec26 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446/index.html @@ -1,6 +1,7 @@ --- title: Identifier et expliquer des abréviations avec HTML -slug: Apprendre/HTML/Comment/Identifier_et_expliquer_des_abréviations +slug: >- + conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_b235e00aa38ee1d4b535fc921395f446 tags: - Beginner - HTML @@ -8,6 +9,7 @@ tags: - OpenPractices translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting#Abbreviations translation_of_original: Learn/HTML/Howto/Mark_abbreviations_and_make_them_understandable +original_slug: Apprendre/HTML/Comment/Identifier_et_expliquer_des_abréviations ---

HTML fournit une méthode simple et rapide pour indiquer la présence d'abrévations et pour fournir leur signification au lecteur.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682/index.html b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682/index.html index 99e17662ab..391243f3a8 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682/index.html @@ -1,12 +1,14 @@ --- title: Ajouter des citations sur une page web -slug: Apprendre/HTML/Comment/Ajouter_citations_sur_page_web +slug: >- + conflicting/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting_c8b0b9eb353375fb9a4679f68164e682 tags: - Beginner - Guide - HTML translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting#Quotations translation_of_original: Learn/HTML/Howto/Add_citations_to_webpages +original_slug: Apprendre/HTML/Comment/Ajouter_citations_sur_page_web ---

Cet article illustre comment citer quelqu'un de façon précise et en fournissant la source de la citation.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks/index.html b/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks/index.html index 3f2f001f9c..6c3d33a2f2 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks/index.html @@ -1,6 +1,6 @@ --- title: Créer un hyperlien -slug: Apprendre/HTML/Comment/Créer_un_hyperlien +slug: conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks tags: - Beginner - HTML @@ -8,6 +8,7 @@ tags: - Navigation translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks translation_of_original: Learn/HTML/Howto/Create_a_hyperlink +original_slug: Apprendre/HTML/Comment/Créer_un_hyperlien ---

Dans cet article, nous verrons comment créer des liens {{glossary('accessibilité','accessibles')}} et utiles  au {{glossary("référencement")}}.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85/index.html b/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85/index.html index 77e52eafb4..703b2cbadf 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85/index.html @@ -1,6 +1,7 @@ --- title: Liens email -slug: Web/Guide/HTML/Liens_email +slug: >- + conflicting/Learn/HTML/Introduction_to_HTML/Creating_hyperlinks_10fd94f15ce1a469a3483e0478cb5d85 tags: - Beginner - Exemple @@ -9,6 +10,7 @@ tags: - Web translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks#E-mail_links translation_of_original: Web/Guide/HTML/Email_links +original_slug: Web/Guide/HTML/Liens_email ---

Il est parfois utile de créer des liens ou des boutons qui nous permettent d'écrire un nouvel e-mail. Par exemple, on peut les utiliser pour créer un bouton « contactez-nous ». Ceci est possible grâce à l'élement HTML {{HTMLElement("a")}} et au format d'URL mailto.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/document_and_website_structure/index.html b/files/fr/conflicting/learn/html/introduction_to_html/document_and_website_structure/index.html index 170ad81290..5f4bb71eac 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/document_and_website_structure/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/document_and_website_structure/index.html @@ -1,6 +1,6 @@ --- title: Découper une page web en sections logiques -slug: Apprendre/HTML/Comment/Découper_une_page_web_en_sections_logiques +slug: conflicting/Learn/HTML/Introduction_to_HTML/Document_and_website_structure tags: - Beginner - DesignAccessibility @@ -8,6 +8,7 @@ tags: - Learn translation_of: Learn/HTML/Introduction_to_HTML/Document_and_website_structure translation_of_original: Learn/HTML/Howto/Divide_a_webpage_into_logical_sections +original_slug: Apprendre/HTML/Comment/Découper_une_page_web_en_sections_logiques ---

Dans cet article, nous verrons comment structurer un document afin que son plan soit logique pour vous, vos visiteurs dont ceux qui utilisent des technologies d'aide à la navigation.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/getting_started/index.html b/files/fr/conflicting/learn/html/introduction_to_html/getting_started/index.html index 3e911e92c8..4e93313eb4 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/getting_started/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/getting_started/index.html @@ -1,6 +1,6 @@ --- title: Créer un document HTML simple -slug: Apprendre/HTML/Comment/Créer_un_document_HTML_simple +slug: conflicting/Learn/HTML/Introduction_to_HTML/Getting_started tags: - Beginner - Guide @@ -8,6 +8,7 @@ tags: - Learn translation_of: Learn/HTML/Introduction_to_HTML/Getting_started translation_of_original: Learn/HTML/Howto/Create_a_basic_HTML_document +original_slug: Apprendre/HTML/Comment/Créer_un_document_HTML_simple ---

Pour créer un site web, on commence par rédiger un document HTML. Les navigateurs actuels sont plutôt tolérants mais pour éviter quelques maux de tête, mieux vaut l'assembler correctement dès le début.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals/index.html b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals/index.html index e7c828c348..a7a0dc27a6 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals/index.html @@ -1,12 +1,13 @@ --- title: Créer une liste d'éléments avec HTML -slug: Apprendre/HTML/Comment/Créer_une_liste_d_éléments_avec_HTML +slug: conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals tags: - Beginner - Guide - HTML translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#Lists translation_of_original: Learn/HTML/Howto/Create_list_of_items_with_HTML +original_slug: Apprendre/HTML/Comment/Créer_une_liste_d_éléments_avec_HTML ---

Vous souhaitez ajouter une liste numérotée ou une liste à puces. Quel que soit son type, HTML permet de dresser une liste très rapidement.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6/index.html b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6/index.html index 668ad5c084..87ab98ed98 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6/index.html @@ -1,7 +1,7 @@ --- title: Mettre l'accent sur un contenu ou indiquer qu'un texte est important slug: >- - Apprendre/HTML/Comment/Mettre_l_accent_sur_un_contenu_ou_indiquer_qu_un_texte_est_important + conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_42ad0dcdd765b60d8adda1f6293954b6 tags: - Beginner - Composing @@ -11,6 +11,8 @@ tags: - OpenPractices translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#Emphasis_and_importance translation_of_original: Learn/HTML/Howto/Emphasize_content_or_indicate_that_text_is_important +original_slug: >- + Apprendre/HTML/Comment/Mettre_l_accent_sur_un_contenu_ou_indiquer_qu_un_texte_est_important ---

Dans cet article, nous verrons comment baliser des passages caractéristiques, selon leur importance, leur pertinence ou un changement de ton.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc/index.html b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc/index.html index 788bcc2a44..51b33e4874 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/html_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc/index.html @@ -1,12 +1,14 @@ --- title: Mettre en place une hiérarchie de titres -slug: Apprendre/HTML/Comment/Mettre_en_place_une_hiérarchie_de_titres +slug: >- + conflicting/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals_e22cde852fd55bbd8b014a4eac49a3bc tags: - Beginner - HTML - Learn translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals translation_of_original: Learn/HTML/Howto/Set_up_a_proper_title_hierarchy +original_slug: Apprendre/HTML/Comment/Mettre_en_place_une_hiérarchie_de_titres ---

Dans cet article, nous verrons comment ajouter des titres de différents niveaux à un document web afin que les lecteurs puissent identifier le contenu et trouver les réponses à leurs questions plus efficacement.

diff --git a/files/fr/conflicting/learn/html/introduction_to_html/index.html b/files/fr/conflicting/learn/html/introduction_to_html/index.html index 7e449e92e0..15dba45e73 100644 --- a/files/fr/conflicting/learn/html/introduction_to_html/index.html +++ b/files/fr/conflicting/learn/html/introduction_to_html/index.html @@ -1,12 +1,13 @@ --- title: Les balises HTML et leur rôle -slug: Apprendre/HTML/Balises_HTML +slug: conflicting/Learn/HTML/Introduction_to_HTML tags: - Beginner - CodingScripting - HTML translation_of: Learn/HTML/Introduction_to_HTML translation_of_original: Learn/HTML/HTML_tags +original_slug: Apprendre/HTML/Balises_HTML ---

Cet article aborde les bases de {{Glossary("HTML")}} : les balises et comment les utiliser.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html/index.html index 36c8d1cfbb..a6db58f092 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html/index.html @@ -1,6 +1,6 @@ --- title: Ajouter des images à une page web -slug: Apprendre/HTML/Comment/Ajouter_des_images_à_une_page_web +slug: conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML tags: - Beginner - Composing @@ -10,6 +10,7 @@ tags: translation_of: >- Learn/HTML/Multimedia_and_embedding/Images_in_HTML#How_do_we_put_an_image_on_a_webpage translation_of_original: Learn/HTML/Howto/Add_images_to_a_webpage +original_slug: Apprendre/HTML/Comment/Ajouter_des_images_à_une_page_web ---

Les images permettent de faire passer des messages plus simplement et plus directement. Elles attirent l'œil du visiteur lorsqu'il consulte le site. Dans cet articles, nous allons voir comment ajouter, simplement, des images à une page web.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html_2c0377f7605f693cad465c2b4839addc/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html_2c0377f7605f693cad465c2b4839addc/index.html index ad32d4ea26..e9f4484c14 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html_2c0377f7605f693cad465c2b4839addc/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/images_in_html_2c0377f7605f693cad465c2b4839addc/index.html @@ -1,6 +1,7 @@ --- title: Annoter des images et graphiques -slug: Apprendre/HTML/Comment/Annoter_des_images_et_graphiques +slug: >- + conflicting/Learn/HTML/Multimedia_and_embedding/Images_in_HTML_2c0377f7605f693cad465c2b4839addc tags: - Accessibility - Beginner @@ -10,6 +11,7 @@ tags: translation_of: >- Learn/HTML/Multimedia_and_embedding/Images_in_HTML#Annotating_images_with_figures_and_figure_captions translation_of_original: Learn/HTML/Howto/Annotate_images_and_graphics +original_slug: Apprendre/HTML/Comment/Annoter_des_images_et_graphiques ---

HTML fournit une méthode simple pour ajouter des figures et leurs légendes.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html index fcbe0b40c9..c5377f1f09 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html @@ -1,6 +1,6 @@ --- title: Ajouter du contenu Flash dans une page web -slug: Apprendre/HTML/Comment/Ajouter_contenu_Flash_dans_page_web +slug: conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies tags: - Accessibility - Advanced @@ -10,6 +10,7 @@ tags: translation_of: >- Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies#The_%3Cembed%3E_and_%3Cobject%3E_elements translation_of_original: Learn/HTML/Howto/Add_Flash_content_within_a_webpage +original_slug: Apprendre/HTML/Comment/Ajouter_contenu_Flash_dans_page_web ---

Cet article illustre pourquoi il est nécessaire que le contenu d'une page web soit accessible sans plugin. Si vous avez besoin de tels plugins (pour un cas bien spécifique ou pour des raisons historiques), nous illustrerons également un cas expliquant comment intégrer du contenu de cette façon.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d/index.html index b5d0db7caa..d371efff45 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d/index.html @@ -1,6 +1,7 @@ --- title: Intégrer une page web au sein d'une autre page web -slug: Apprendre/HTML/Comment/Intégrer_une_page_web_dans_une_autre_page_web +slug: >- + conflicting/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies_fbe06d127f73df4dd2f56a31b7c2bd2d tags: - Beginner - Guide @@ -9,6 +10,7 @@ tags: - Security translation_of: Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies translation_of_original: Learn/HTML/Howto/Embed_a_webpage_within_another_webpage +original_slug: Apprendre/HTML/Comment/Intégrer_une_page_web_dans_une_autre_page_web ---

Dans cet article, nous verrons comment intégrer une page web dans une autre, tout en minimisant les risques encourus par une telle manipulation.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content/index.html index 8d3caf06b2..58d7af5213 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content/index.html @@ -1,6 +1,6 @@ --- title: Ajouter du contenu audio ou vidéo à une page web -slug: Apprendre/HTML/Comment/Ajouter_contenu_audio_vidéo_page_web +slug: conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content tags: - Audio - Beginner @@ -9,6 +9,7 @@ tags: - Video translation_of: Learn/HTML/Multimedia_and_embedding/Video_and_audio_content translation_of_original: Learn/HTML/Howto/Add_audio_or_video_content_to_a_webpage +original_slug: Apprendre/HTML/Comment/Ajouter_contenu_audio_vidéo_page_web ---

Dans cet article, nous verrons comment intégrer des éléments vidéo et audio de premier rang, accessibles à chacun, quelle que soit la méthode utilisée.

diff --git a/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf/index.html b/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf/index.html index efa30853e6..b481eece73 100644 --- a/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf/index.html +++ b/files/fr/conflicting/learn/html/multimedia_and_embedding/video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf/index.html @@ -1,6 +1,7 @@ --- title: Utilisation d'audio et video en HTML5 -slug: Web/HTML/Utilisation_d'audio_et_video_en_HTML5 +slug: >- + conflicting/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content_040b1c36f4218ba488ffb0284dfe52bf tags: - Aperçu - Featured @@ -11,6 +12,7 @@ tags: - Web translation_of: Learn/HTML/Multimedia_and_embedding/Video_and_audio_content translation_of_original: Web/Guide/HTML/Using_HTML5_audio_and_video +original_slug: Web/HTML/Utilisation_d'audio_et_video_en_HTML5 ---

{{ gecko_minversion_header("1.9.1") }}

diff --git a/files/fr/conflicting/learn/index.html b/files/fr/conflicting/learn/index.html index b1aee4ae00..6e7ed35b78 100644 --- a/files/fr/conflicting/learn/index.html +++ b/files/fr/conflicting/learn/index.html @@ -1,10 +1,11 @@ --- title: Compétences -slug: Apprendre/Compétences +slug: conflicting/Learn tags: - Index translation_of: Learn translation_of_original: Learn/Skills +original_slug: Apprendre/Compétences ---

Lorsqu'il s'agit d'apprendre le développement Web, il existe plusieurs compétences, listées par WebMaker dans la littéracie web : une carte destinée aux débutants pour apprendre les bases. Sur MDN, les articles de cette section sont consacrés au développement de sites web et sont destinés à tous publics :

diff --git a/files/fr/conflicting/learn/javascript/client-side_web_apis/manipulating_documents/index.html b/files/fr/conflicting/learn/javascript/client-side_web_apis/manipulating_documents/index.html index 6e9414972d..749411d2b2 100644 --- a/files/fr/conflicting/learn/javascript/client-side_web_apis/manipulating_documents/index.html +++ b/files/fr/conflicting/learn/javascript/client-side_web_apis/manipulating_documents/index.html @@ -1,11 +1,12 @@ --- title: JavaScript -slug: CSS/Premiers_pas/JavaScript +slug: conflicting/Learn/JavaScript/Client-side_web_APIs/Manipulating_documents tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/JavaScript/Client-side_web_APIs/Manipulating_documents translation_of_original: Web/Guide/CSS/Getting_started/JavaScript +original_slug: CSS/Premiers_pas/JavaScript ---

 

Vous entrez dans la partie II du tutoriel. Cette partie contient des exemples montrant toute la portée de CSS dans Mozilla.

diff --git a/files/fr/conflicting/learn/javascript/objects/index.html b/files/fr/conflicting/learn/javascript/objects/index.html index c778187586..1ef0e8d990 100644 --- a/files/fr/conflicting/learn/javascript/objects/index.html +++ b/files/fr/conflicting/learn/javascript/objects/index.html @@ -1,6 +1,6 @@ --- title: Introduction à JavaScript orienté objet -slug: Web/JavaScript/Introduction_à_JavaScript_orienté_objet +slug: conflicting/Learn/JavaScript/Objects tags: - Encapsulation - Intermédiaire @@ -10,6 +10,7 @@ tags: - Orienté objet translation_of: Learn/JavaScript/Objects translation_of_original: Web/JavaScript/Introduction_to_Object-Oriented_JavaScript +original_slug: Web/JavaScript/Introduction_à_JavaScript_orienté_objet ---
{{jsSidebar("Introductory")}}
diff --git a/files/fr/conflicting/learn_370bfb0fa23e42f4384f010341852c43/index.html b/files/fr/conflicting/learn_370bfb0fa23e42f4384f010341852c43/index.html index c60efcffac..087dd96c87 100644 --- a/files/fr/conflicting/learn_370bfb0fa23e42f4384f010341852c43/index.html +++ b/files/fr/conflicting/learn_370bfb0fa23e42f4384f010341852c43/index.html @@ -1,12 +1,13 @@ --- title: Comment construire un site web -slug: Apprendre/Tutoriels/Comment_construire_un_site_web +slug: conflicting/Learn_370bfb0fa23e42f4384f010341852c43 tags: - Beginner - Index - NeedsContent translation_of: Learn translation_of_original: Learn/tutorial/How_to_build_a_web_site +original_slug: Apprendre/Tutoriels/Comment_construire_un_site_web ---

Lorsqu'il s'agit d'apprendre la conception et le développement web, beaucoup souhaitent construire leur site web le plus rapidement possible. Pour faciliter votre progression, nous avons organisé et listé ici les connaissances minimales à acquérir.

diff --git a/files/fr/conflicting/learn_6767a192c90d2c9c5179cf004fce2ee8/index.html b/files/fr/conflicting/learn_6767a192c90d2c9c5179cf004fce2ee8/index.html index 407a95704e..e7e9667bc1 100644 --- a/files/fr/conflicting/learn_6767a192c90d2c9c5179cf004fce2ee8/index.html +++ b/files/fr/conflicting/learn_6767a192c90d2c9c5179cf004fce2ee8/index.html @@ -1,11 +1,12 @@ --- title: Tutoriels -slug: Apprendre/Tutoriels +slug: conflicting/Learn_6767a192c90d2c9c5179cf004fce2ee8 tags: - Index - TopicStub translation_of: Learn translation_of_original: Learn/tutorial +original_slug: Apprendre/Tutoriels ---

Connaître les technologies Web et leurs concepts est un premier pas important. Mais il arrrive un moment où la mise en pratique est nécessaire. Pour cela, nous avons dressé quelques « chemins » qui vous aideront à parcourir les technologies web et à mettre en œuvre ce que vous pouvez apprendre !

diff --git a/files/fr/conflicting/mdn/contribute/index.html b/files/fr/conflicting/mdn/contribute/index.html index a4cd040a80..1e5662fde0 100644 --- a/files/fr/conflicting/mdn/contribute/index.html +++ b/files/fr/conflicting/mdn/contribute/index.html @@ -1,9 +1,10 @@ --- title: Contribuer à MDN -slug: MDN_a_dix_ans/Contribuer_à_MDN +slug: conflicting/MDN/Contribute tags: - MDN translation_of: MDN_at_ten/Contributing_to_MDN +original_slug: MDN_a_dix_ans/Contribuer_à_MDN ---
diff --git a/files/fr/conflicting/mdn/tools/index.html b/files/fr/conflicting/mdn/tools/index.html index bf1a518498..fcae68e971 100644 --- a/files/fr/conflicting/mdn/tools/index.html +++ b/files/fr/conflicting/mdn/tools/index.html @@ -1,6 +1,6 @@ --- title: Guide de l'utilisateur MDN -slug: MDN/User_guide +slug: conflicting/MDN/Tools tags: - Documentation - Démarrer @@ -8,6 +8,7 @@ tags: - Projet MDC translation_of: MDN/Tools translation_of_original: MDN/User_guide +original_slug: MDN/User_guide ---
{{MDNSidebar}}

Le site Mozilla Developper Network est un système avancé pour trouver, lire et contribuer à la documentation ainsi qu'au code pour les développeurs Web (mais aussi pour les développeurs Firefox et Firefox OS). Le guide de l'utilisateur MDS regorge d'articles détaillant comment utiliser le site MDS pour trouver la documentation dont vous avez besoin et si vous le désirez, comment aider à rendre les outils encore meilleurs et complets.

diff --git a/files/fr/conflicting/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html b/files/fr/conflicting/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html index 8d8463f069..6f4104c216 100644 --- a/files/fr/conflicting/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html +++ b/files/fr/conflicting/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html @@ -1,6 +1,6 @@ --- title: menus.overrideContext() -slug: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() +slug: conflicting/Mozilla/Add-ons/WebExtensions/API/menus/overrideContext tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - contextMenus translation_of: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() +original_slug: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() ---
{{AddonSidebar()}}
diff --git a/files/fr/conflicting/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/unregister/index.html b/files/fr/conflicting/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/unregister/index.html index 0a71ce921b..fc431fc09a 100644 --- a/files/fr/conflicting/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/unregister/index.html +++ b/files/fr/conflicting/mozilla/add-ons/webextensions/api/userscripts/registereduserscript/unregister/index.html @@ -1,7 +1,7 @@ --- title: unregister slug: >- - Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() + conflicting/Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/unregister tags: - API - Extensions @@ -12,6 +12,8 @@ tags: - userScripts translation_of: >- Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/userScripts/RegisteredUserScript/RegisteredUserScript.unregister() ---

{{AddonSidebar}}

diff --git a/files/fr/conflicting/tools/debugger/how_to/set_watch_expressions/index.html b/files/fr/conflicting/tools/debugger/how_to/set_watch_expressions/index.html index ff534ba3ae..3aad49ff3b 100644 --- a/files/fr/conflicting/tools/debugger/how_to/set_watch_expressions/index.html +++ b/files/fr/conflicting/tools/debugger/how_to/set_watch_expressions/index.html @@ -1,8 +1,9 @@ --- -title: 'Examiner, modifier, et espionner des variables' -slug: 'Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables' +title: Examiner, modifier, et espionner des variables +slug: conflicting/Tools/Debugger/How_to/Set_Watch_Expressions translation_of: Tools/Debugger/How_to/Set_Watch_Expressions -translation_of_original: 'Tools/Debugger/How_to/Examine,_modify,_and_watch_variables' +translation_of_original: Tools/Debugger/How_to/Examine,_modify,_and_watch_variables +original_slug: Outils/Débogueur/Comment/Examiner,_modifier,_et_espionner_des_variables ---
{{ToolsSidebar}}

Cette fonctionnalité n'est pas encore supportée par le nouveau Débogueur. Si vous avez besoin de l'utiliser, il faut changer la préférence "devtools.debugger.new-debugger-frontend" dans about:config (page interne du navigateur)

diff --git a/files/fr/conflicting/tools/memory/basic_operations/index.html b/files/fr/conflicting/tools/memory/basic_operations/index.html index 2524339f8d..ce779acc7d 100644 --- a/files/fr/conflicting/tools/memory/basic_operations/index.html +++ b/files/fr/conflicting/tools/memory/basic_operations/index.html @@ -1,8 +1,9 @@ --- title: Comparer deux captures de la heap -slug: Outils/Memory/Comparing_heap_snapshots +slug: conflicting/Tools/Memory/Basic_operations translation_of: Tools/Memory/Basic_operations translation_of_original: Tools/Memory/Comparing_heap_snapshots +original_slug: Outils/Memory/Comparing_heap_snapshots ---
{{ToolsSidebar}}

Cette fonctionnalité est une des nouveautés de Firefox 45.

diff --git a/files/fr/conflicting/tools/memory/basic_operations_9264f1c8b3be17d004821ca45ca04d3a/index.html b/files/fr/conflicting/tools/memory/basic_operations_9264f1c8b3be17d004821ca45ca04d3a/index.html index 2c851f8ce6..049eb24a7d 100644 --- a/files/fr/conflicting/tools/memory/basic_operations_9264f1c8b3be17d004821ca45ca04d3a/index.html +++ b/files/fr/conflicting/tools/memory/basic_operations_9264f1c8b3be17d004821ca45ca04d3a/index.html @@ -1,8 +1,9 @@ --- title: Ouvrir l'outil Mémoire -slug: Outils/Memory/Open_the_Memory_tool +slug: conflicting/Tools/Memory/Basic_operations_9264f1c8b3be17d004821ca45ca04d3a translation_of: Tools/Memory/Basic_operations translation_of_original: Tools/Memory/Open_the_Memory_tool +original_slug: Outils/Memory/Open_the_Memory_tool ---
{{ToolsSidebar}}

Actuellement, l'outil Mémoire n'est pas activé par défaut, pour l'activer, il faut ouvrir les options des outils des développements (F12 puis cliquer sur l'icône en forme d'engrenage en haut à droite) et cocher l'option "Mémoire" dans la catégorie "Outils de développement par défaut" :

diff --git a/files/fr/conflicting/tools/memory/basic_operations_f2c86b478396e7a233344f64c4d4f1da/index.html b/files/fr/conflicting/tools/memory/basic_operations_f2c86b478396e7a233344f64c4d4f1da/index.html index ac0d2d630f..ac6e5e0b04 100644 --- a/files/fr/conflicting/tools/memory/basic_operations_f2c86b478396e7a233344f64c4d4f1da/index.html +++ b/files/fr/conflicting/tools/memory/basic_operations_f2c86b478396e7a233344f64c4d4f1da/index.html @@ -1,8 +1,9 @@ --- title: Capturer un instantané -slug: Outils/Memory/Take_a_heap_snapshot +slug: conflicting/Tools/Memory/Basic_operations_f2c86b478396e7a233344f64c4d4f1da translation_of: Tools/Memory/Basic_operations translation_of_original: Tools/Memory/Take_a_heap_snapshot +original_slug: Outils/Memory/Take_a_heap_snapshot ---
{{ToolsSidebar}}

Pour prendre une capture de la heap, il faut cliquer sur le bouton "Capturer un instantané" ou cliquer sur l'icône en forme d'appareil photo en haut à gauche :

diff --git a/files/fr/conflicting/tools/page_inspector/ui_tour/index.html b/files/fr/conflicting/tools/page_inspector/ui_tour/index.html index 26a4192b00..2fa8a8587d 100644 --- a/files/fr/conflicting/tools/page_inspector/ui_tour/index.html +++ b/files/fr/conflicting/tools/page_inspector/ui_tour/index.html @@ -1,12 +1,13 @@ --- title: Panneau HTML -slug: Outils/Inspecteur/Panneau_HTML +slug: conflicting/Tools/Page_Inspector/UI_Tour tags: - HTML - Tools - Web Development - - 'Web Development:Tools' + - Web Development:Tools translation_of: Tools/Page_Inspector/UI_Tour translation_of_original: Tools/Page_Inspector/HTML_panel +original_slug: Outils/Inspecteur/Panneau_HTML ---
{{ToolsSidebar}}

Le contenu de cette page à été transféré dans la section "Panneau HTML" de la visite guidée de l'Inspecteur.

diff --git a/files/fr/conflicting/tools/performance/waterfall/index.html b/files/fr/conflicting/tools/performance/waterfall/index.html index 215ce97ad5..7ad39fce90 100644 --- a/files/fr/conflicting/tools/performance/waterfall/index.html +++ b/files/fr/conflicting/tools/performance/waterfall/index.html @@ -1,12 +1,13 @@ --- title: Frise chronologique -slug: Outils/Frise_chronologique +slug: conflicting/Tools/Performance/Waterfall tags: - Gecko - Guide - Tools translation_of: Tools/Performance/Waterfall translation_of_original: Tools/Timeline +original_slug: Outils/Frise_chronologique ---
{{ToolsSidebar}}

La frise chronologique suit à la trace les opérations réalisées par Gecko, le moteur du navigateur.Il faut aller dans les the devtools options des outils de developemment pour activer la frise chronologique.

diff --git a/files/fr/conflicting/tools/responsive_design_mode/index.html b/files/fr/conflicting/tools/responsive_design_mode/index.html index 086a531ea3..17b8d86fa0 100644 --- a/files/fr/conflicting/tools/responsive_design_mode/index.html +++ b/files/fr/conflicting/tools/responsive_design_mode/index.html @@ -1,8 +1,9 @@ --- title: Vue Adaptative (avant Firefox 52) -slug: Outils/Responsive_Design_Mode_(before_Firefox_52) +slug: conflicting/Tools/Responsive_Design_Mode translation_of: Tools/Responsive_Design_Mode translation_of_original: Tools/Responsive_Design_Mode_(before_Firefox_52) +original_slug: Outils/Responsive_Design_Mode_(before_Firefox_52) ---
{{ToolsSidebar}}

Cette page décrit la Vue Adaptative telle qu'elle apparait avant Firefox 52.  Il est également possible d'avoir cette version de l'outil si le  support multiprocessus (e10s) est désactivé. Pour l'article décrivant la version ultérieure à Firefox 52, voir Vue Adaptative.

diff --git a/files/fr/conflicting/web/accessibility/index.html b/files/fr/conflicting/web/accessibility/index.html index d87406d368..df7b37fd57 100644 --- a/files/fr/conflicting/web/accessibility/index.html +++ b/files/fr/conflicting/web/accessibility/index.html @@ -1,6 +1,6 @@ --- title: Développement Web -slug: Accessibilité/Développement_Web +slug: conflicting/Web/Accessibility tags: - ARIA - Accessibilité @@ -9,6 +9,7 @@ tags: - À relire translation_of: Web/Accessibility translation_of_original: Web/Accessibility/Web_Development +original_slug: Accessibilité/Développement_Web ---

 

diff --git a/files/fr/conflicting/web/api/canvas_api/tutorial/index.html b/files/fr/conflicting/web/api/canvas_api/tutorial/index.html index 0b0a96257e..a717d76113 100644 --- a/files/fr/conflicting/web/api/canvas_api/tutorial/index.html +++ b/files/fr/conflicting/web/api/canvas_api/tutorial/index.html @@ -1,11 +1,12 @@ --- title: Dessiner avec Canvas -slug: Web/Guide/Graphics/Dessiner_avec_canvas +slug: conflicting/Web/API/Canvas_API/Tutorial tags: - Canvas - HTML translation_of: Web/API/Canvas_API/Tutorial translation_of_original: Web/API/Canvas_API/Drawing_graphics_with_canvas +original_slug: Web/Guide/Graphics/Dessiner_avec_canvas ---

 

Introduction

diff --git a/files/fr/conflicting/web/api/document/createevent/index.html b/files/fr/conflicting/web/api/document/createevent/index.html index 5cfbb7f05f..b8ff184d41 100644 --- a/files/fr/conflicting/web/api/document/createevent/index.html +++ b/files/fr/conflicting/web/api/document/createevent/index.html @@ -1,6 +1,6 @@ --- title: Event.createEvent() -slug: Web/API/Event/createEvent +slug: conflicting/Web/API/Document/createEvent tags: - API - DOM @@ -8,6 +8,7 @@ tags: - Méthodes translation_of: Web/API/Document/createEvent translation_of_original: Web/API/Event/createEvent +original_slug: Web/API/Event/createEvent ---

{{APIRef("DOM")}}

diff --git a/files/fr/conflicting/web/api/document_object_model/index.html b/files/fr/conflicting/web/api/document_object_model/index.html index 518da7e3d8..d9480aca59 100644 --- a/files/fr/conflicting/web/api/document_object_model/index.html +++ b/files/fr/conflicting/web/api/document_object_model/index.html @@ -1,10 +1,11 @@ --- title: À propos du Document Object Model -slug: À_propos_du_Document_Object_Model +slug: conflicting/Web/API/Document_Object_Model tags: - DOM translation_of: Web/API/Document_Object_Model translation_of_original: DOM/About_the_Document_Object_Model +original_slug: À_propos_du_Document_Object_Model ---

Présentation du DOM

Le Document Object Model, ou modèle objet de document, est une API pour les documents HTML et XML. Le DOM fournit une représentation structurelle du document, permettant de modifier son contenu et sa présentation visuelle. Fondamentalement, il relie les pages Web aux scripts et langages de programmation.

diff --git a/files/fr/conflicting/web/api/document_object_model_03f6e13c52ad7c539d9b4c33c51ac4a3/index.html b/files/fr/conflicting/web/api/document_object_model_03f6e13c52ad7c539d9b4c33c51ac4a3/index.html index 77c272f5b2..d97eb27eed 100644 --- a/files/fr/conflicting/web/api/document_object_model_03f6e13c52ad7c539d9b4c33c51ac4a3/index.html +++ b/files/fr/conflicting/web/api/document_object_model_03f6e13c52ad7c539d9b4c33c51ac4a3/index.html @@ -1,10 +1,11 @@ --- title: Préface -slug: Web/API/Document_Object_Model/Préface +slug: conflicting/Web/API/Document_Object_Model_03f6e13c52ad7c539d9b4c33c51ac4a3 tags: - Référence_du_DOM_Gecko translation_of: Web/API/Document_Object_Model translation_of_original: Web/API/Document_Object_Model/Preface +original_slug: Web/API/Document_Object_Model/Préface ---

{{ ApiRef() }}

À propos de cette référence

diff --git a/files/fr/conflicting/web/api/document_object_model_656f0e51418b39c498011268be9b3a10/index.html b/files/fr/conflicting/web/api/document_object_model_656f0e51418b39c498011268be9b3a10/index.html index ad672dee28..40c9cc7859 100644 --- a/files/fr/conflicting/web/api/document_object_model_656f0e51418b39c498011268be9b3a10/index.html +++ b/files/fr/conflicting/web/api/document_object_model_656f0e51418b39c498011268be9b3a10/index.html @@ -1,6 +1,6 @@ --- title: Guides DOM pour développeurs -slug: Web/Guide/DOM +slug: conflicting/Web/API/Document_Object_Model_656f0e51418b39c498011268be9b3a10 tags: - API - DOM @@ -8,6 +8,7 @@ tags: - TopicStub translation_of: Web/API/Document_Object_Model translation_of_original: Web/Guide/API/DOM +original_slug: Web/Guide/DOM ---

{{draft}}

diff --git a/files/fr/conflicting/web/api/formdata/using_formdata_objects/index.html b/files/fr/conflicting/web/api/formdata/using_formdata_objects/index.html index 3d07259319..a8df539f4f 100644 --- a/files/fr/conflicting/web/api/formdata/using_formdata_objects/index.html +++ b/files/fr/conflicting/web/api/formdata/using_formdata_objects/index.html @@ -1,8 +1,9 @@ --- title: Utiliser les objets FormData -slug: Web/Guide/Using_FormData_Objects +slug: conflicting/Web/API/FormData/Using_FormData_Objects translation_of: Web/API/FormData/Using_FormData_Objects translation_of_original: Web/Guide/Using_FormData_Objects +original_slug: Web/Guide/Using_FormData_Objects ---

L'objet FormData vous permet de créer un ensemble de paires clef-valeur pour un envoi via XMLHttpRequest. Cet objet est destiné avant tout à l'envoi de données de formulaire, mais il peut être utilisé indépendamment des formulaires afin de transmettre des données associées à une clef. Les données transmises sont dans le même format qu'utiliserait la méthode submit() pour envoyer des données si le type d'encodage du formulaire correspondait à "multipart/form-data".

diff --git a/files/fr/conflicting/web/api/globaleventhandlers/onresize/index.html b/files/fr/conflicting/web/api/globaleventhandlers/onresize/index.html index d2c0d6304f..b49b3e524a 100644 --- a/files/fr/conflicting/web/api/globaleventhandlers/onresize/index.html +++ b/files/fr/conflicting/web/api/globaleventhandlers/onresize/index.html @@ -1,6 +1,6 @@ --- title: window.onresize -slug: Web/API/Window/onresize +slug: conflicting/Web/API/GlobalEventHandlers/onresize tags: - API - DOM @@ -8,6 +8,7 @@ tags: - Propriété - évènements translation_of: Web/API/GlobalEventHandlers/onresize +original_slug: Web/API/Window/onresize ---

{{ ApiRef() }}

diff --git a/files/fr/conflicting/web/api/htmlmediaelement/abort_event/index.html b/files/fr/conflicting/web/api/htmlmediaelement/abort_event/index.html index 68e28e9626..f8d70358fe 100644 --- a/files/fr/conflicting/web/api/htmlmediaelement/abort_event/index.html +++ b/files/fr/conflicting/web/api/htmlmediaelement/abort_event/index.html @@ -1,8 +1,9 @@ --- title: abort -slug: Web/Events/abort +slug: conflicting/Web/API/HTMLMediaElement/abort_event translation_of: Web/API/HTMLMediaElement/abort_event translation_of_original: Web/Events/abort +original_slug: Web/Events/abort ---
L'événement abort est déclenché lorsque le chargement d'une resource a été interrompu.
diff --git a/files/fr/conflicting/web/api/htmlmediaelement/ended_event/index.html b/files/fr/conflicting/web/api/htmlmediaelement/ended_event/index.html index 950e8ef545..f4da2370bf 100644 --- a/files/fr/conflicting/web/api/htmlmediaelement/ended_event/index.html +++ b/files/fr/conflicting/web/api/htmlmediaelement/ended_event/index.html @@ -1,8 +1,9 @@ --- title: ended (Web Audio) -slug: Web/Events/ended_(Web_Audio) +slug: conflicting/Web/API/HTMLMediaElement/ended_event translation_of: Web/API/HTMLMediaElement/ended_event translation_of_original: Web/Events/ended_(Web_Audio) +original_slug: Web/Events/ended_(Web_Audio) ---

L'événement ended est déclenché lorsque la lecture s'est arrêté parce que la fin du média a été atteinte.

diff --git a/files/fr/conflicting/web/api/index.html b/files/fr/conflicting/web/api/index.html index a4f8a6ba0a..636324d19f 100644 --- a/files/fr/conflicting/web/api/index.html +++ b/files/fr/conflicting/web/api/index.html @@ -1,6 +1,6 @@ --- title: element.name -slug: Web/API/Element/name +slug: conflicting/Web/API tags: - API - DOM @@ -9,6 +9,7 @@ tags: - Propriétés translation_of: Web/API translation_of_original: Web/API/Element/name +original_slug: Web/API/Element/name ---

{{ APIRef("DOM") }}

diff --git a/files/fr/conflicting/web/api/node/getrootnode/index.html b/files/fr/conflicting/web/api/node/getrootnode/index.html index 7ee512dd8f..ac35922132 100644 --- a/files/fr/conflicting/web/api/node/getrootnode/index.html +++ b/files/fr/conflicting/web/api/node/getrootnode/index.html @@ -1,6 +1,6 @@ --- title: Node.rootNode -slug: Web/API/Node/rootNode +slug: conflicting/Web/API/Node/getRootNode tags: - API - Arborescence @@ -10,6 +10,7 @@ tags: - Racine translation_of: Web/API/Node/getRootNode translation_of_original: Web/API/Node/rootNode +original_slug: Web/API/Node/rootNode ---

{{deprecated_header}}{{APIRef("DOM")}}{{SeeCompatTable}}

diff --git a/files/fr/conflicting/web/api/node/index.html b/files/fr/conflicting/web/api/node/index.html index 617ed79d8e..3f0b54a386 100644 --- a/files/fr/conflicting/web/api/node/index.html +++ b/files/fr/conflicting/web/api/node/index.html @@ -1,6 +1,6 @@ --- title: Node.baseURIObject -slug: Web/API/Node/baseURIObject +slug: conflicting/Web/API/Node tags: - API - DOM @@ -10,6 +10,7 @@ tags: - URL translation_of: Web/API/Node translation_of_original: Web/API/Node/baseURIObject +original_slug: Web/API/Node/baseURIObject ---
{{APIRef("DOM")}} {{Non-standard_header}}
diff --git a/files/fr/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html b/files/fr/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html index 33144eae42..50f42907e0 100644 --- a/files/fr/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html +++ b/files/fr/conflicting/web/api/node_378aed5ed6869e50853edbc988cf9556/index.html @@ -1,6 +1,6 @@ --- title: Node.nodePrincipal -slug: Web/API/Node/nodePrincipal +slug: conflicting/Web/API/Node_378aed5ed6869e50853edbc988cf9556 tags: - API - DOM @@ -9,6 +9,7 @@ tags: - Propriétés translation_of: Web/API/Node translation_of_original: Web/API/Node/nodePrincipal +original_slug: Web/API/Node/nodePrincipal ---
{{APIRef("DOM")}} {{Non-standard_header}}
diff --git a/files/fr/conflicting/web/api/selection/index.html b/files/fr/conflicting/web/api/selection/index.html index bca8077699..29024a1140 100644 --- a/files/fr/conflicting/web/api/selection/index.html +++ b/files/fr/conflicting/web/api/selection/index.html @@ -1,7 +1,8 @@ --- title: Selection API -slug: Web/API/Selection_API +slug: conflicting/Web/API/Selection translation_of: Web/API/Selection_API +original_slug: Web/API/Selection_API ---

{{APIRef}}

diff --git a/files/fr/conflicting/web/api/url/index.html b/files/fr/conflicting/web/api/url/index.html index 223701977c..a0ecb87540 100644 --- a/files/fr/conflicting/web/api/url/index.html +++ b/files/fr/conflicting/web/api/url/index.html @@ -1,8 +1,9 @@ --- title: Window.URL -slug: Web/API/Window/URL +slug: conflicting/Web/API/URL translation_of: Web/API/URL translation_of_original: Web/API/Window/URL +original_slug: Web/API/Window/URL ---

{{ApiRef("Window")}}{{SeeCompatTable}}

diff --git a/files/fr/conflicting/web/api/web_storage_api/index.html b/files/fr/conflicting/web/api/web_storage_api/index.html index 2b52e93ad8..916bd25334 100644 --- a/files/fr/conflicting/web/api/web_storage_api/index.html +++ b/files/fr/conflicting/web/api/web_storage_api/index.html @@ -1,6 +1,6 @@ --- title: Storage -slug: DOM/Storage +slug: conflicting/Web/API/Web_Storage_API tags: - Applications_web_hors_ligne - DOM @@ -8,6 +8,7 @@ tags: - Référence_du_DOM_Gecko translation_of: Web/API/Web_Storage_API translation_of_original: Web/Guide/API/DOM/Storage +original_slug: DOM/Storage ---

{{ ApiRef() }} {{ Fx_minversion_header(2) }}

diff --git a/files/fr/conflicting/web/api/web_workers_api/using_web_workers/index.html b/files/fr/conflicting/web/api/web_workers_api/using_web_workers/index.html index b925ca7f4b..1c1b91774d 100644 --- a/files/fr/conflicting/web/api/web_workers_api/using_web_workers/index.html +++ b/files/fr/conflicting/web/api/web_workers_api/using_web_workers/index.html @@ -1,8 +1,9 @@ --- title: Concepts avancés et exemples -slug: Web/API/Web_Workers_API/Advanced_concepts_and_examples +slug: conflicting/Web/API/Web_Workers_API/Using_web_workers translation_of: Web/API/Web_Workers_API/Using_web_workers translation_of_original: Web/API/Web_Workers_API/Advanced_concepts_and_examples +original_slug: Web/API/Web_Workers_API/Advanced_concepts_and_examples ---

Cet article fournit de nombreux détails et maints exemples pour illustrer les concepts avancés des web workers.

diff --git a/files/fr/conflicting/web/api/webrtc_api/index.html b/files/fr/conflicting/web/api/webrtc_api/index.html index 2d516d62d5..24932d8d34 100644 --- a/files/fr/conflicting/web/api/webrtc_api/index.html +++ b/files/fr/conflicting/web/api/webrtc_api/index.html @@ -1,11 +1,12 @@ --- title: WebRTC -slug: Web/Guide/API/WebRTC +slug: conflicting/Web/API/WebRTC_API tags: - Intro - WebRTC translation_of: Web/API/WebRTC_API translation_of_original: Web/Guide/API/WebRTC +original_slug: Web/Guide/API/WebRTC ---

WebRTC (où RTC signifie Real-Time Communications -Communications en temps réel-) est une technologie qui permet la transmission en continue (streaming) de l'audio/vidéo et le partage de données entre les navigateurs clients (peers). Comme un ensemble de normes (standards), le WebRTC fournit à n'importe quel navigateur la capacité de partager des données d'application et d'effectuer des téléconférences d’égal à égal, sans avoir à installer quelques plug-ins ou logiciels tiers.

Les composants WebRTC sont accessibles grâce aux APIs JavaScript : l'API de flux réseau (Network Stream), qui représente un flux de données audio ou vidéo ; l'API de Connexion (PeerConnection), qui permet à plusieurs utilisateurs de communiquer via leurs navigateurs ; et l'API DataChannel qui permet la communication d'autres types de données pour le jeu en temps réel, dialogue en ligne, transfert de fichiers, etc.

diff --git a/files/fr/conflicting/web/api/webrtc_api_d8621144cbc61520339c3b10c61731f0/index.html b/files/fr/conflicting/web/api/webrtc_api_d8621144cbc61520339c3b10c61731f0/index.html index 7bff67c30f..9b19e7c9b7 100644 --- a/files/fr/conflicting/web/api/webrtc_api_d8621144cbc61520339c3b10c61731f0/index.html +++ b/files/fr/conflicting/web/api/webrtc_api_d8621144cbc61520339c3b10c61731f0/index.html @@ -1,10 +1,11 @@ --- title: WebRTC -slug: WebRTC +slug: conflicting/Web/API/WebRTC_API_d8621144cbc61520339c3b10c61731f0 tags: - WebRTC translation_of: Web/API/WebRTC_API translation_of_original: WebRTC +original_slug: WebRTC ---

Le RTC de WebRTC est synonyme de communications en temps réel, la technologie qui permet streaming audio / vidéo et le partage de données entre les clients de navigateur (pairs). Comme ensemble de normes, WebRTC permet à n'importe quel navigateur d'avoir la possibilité de partager les données d'application et d'effectuer des téléconférences entre pairs, sans la nécessité d'installer des plug-ins ou logiciels tiers.

diff --git a/files/fr/conflicting/web/api/window/localstorage/index.html b/files/fr/conflicting/web/api/window/localstorage/index.html index 9f6c400f86..f6b80c6de0 100644 --- a/files/fr/conflicting/web/api/window/localstorage/index.html +++ b/files/fr/conflicting/web/api/window/localstorage/index.html @@ -1,8 +1,9 @@ --- title: LocalStorage -slug: Web/API/Storage/LocalStorage +slug: conflicting/Web/API/Window/localStorage translation_of: Web/API/Window/localStorage translation_of_original: Web/API/Web_Storage_API/Local_storage +original_slug: Web/API/Storage/LocalStorage ---

{{APIRef()}}

diff --git a/files/fr/conflicting/web/api/xsltprocessor/index.html b/files/fr/conflicting/web/api/xsltprocessor/index.html index 0b42bdbde9..03a9d6203d 100644 --- a/files/fr/conflicting/web/api/xsltprocessor/index.html +++ b/files/fr/conflicting/web/api/xsltprocessor/index.html @@ -1,10 +1,11 @@ --- title: XSLT dans Gecko -slug: XSLT_dans_Gecko +slug: conflicting/Web/API/XSLTProcessor tags: - XSLT translation_of: Web/API/XSLTProcessor translation_of_original: XSLT_in_Gecko +original_slug: XSLT_dans_Gecko ---

 

diff --git a/files/fr/conflicting/web/api/xsltprocessor_197eea6e529b0a946d29ce7cc292e7ef/index.html b/files/fr/conflicting/web/api/xsltprocessor_197eea6e529b0a946d29ce7cc292e7ef/index.html index 940157af5f..70124f4d01 100644 --- a/files/fr/conflicting/web/api/xsltprocessor_197eea6e529b0a946d29ce7cc292e7ef/index.html +++ b/files/fr/conflicting/web/api/xsltprocessor_197eea6e529b0a946d29ce7cc292e7ef/index.html @@ -1,8 +1,9 @@ --- title: XSLTProcessor -slug: XSLTProcessor +slug: conflicting/Web/API/XSLTProcessor_197eea6e529b0a946d29ce7cc292e7ef translation_of: Web/API/XSLTProcessor translation_of_original: XSLTProcessor +original_slug: XSLTProcessor ---

XSLTProcesor est un objet fournissant une interface avec le moteur XSLT de Mozilla. Il est utilisable par du code JavaScript sans privilèges. diff --git a/files/fr/conflicting/web/api_dd04ca1265cb79b990b8120e5f5070d3/index.html b/files/fr/conflicting/web/api_dd04ca1265cb79b990b8120e5f5070d3/index.html index 17459c2dfd..6085578ec9 100644 --- a/files/fr/conflicting/web/api_dd04ca1265cb79b990b8120e5f5070d3/index.html +++ b/files/fr/conflicting/web/api_dd04ca1265cb79b990b8120e5f5070d3/index.html @@ -1,10 +1,11 @@ --- title: WebAPI -slug: WebAPI +slug: conflicting/Web/API_dd04ca1265cb79b990b8120e5f5070d3 tags: - Portail translation_of: Web/API translation_of_original: WebAPI +original_slug: WebAPI ---

Le terme WebAPI permet de regrouper différentes API permettant d'accéder aux composants ou aux caractéristiques des appareil (comme la batterie, les vibrations...). Elles permettent aussi d'accéder aux informations enregistrées sur l'appareil (liste de contacts, agenda...). En créant ces API, nous espérons offrir de nouvelles possibilités au Web, jusqu'a présent réservées aux plates-formes propriétaires.

diff --git a/files/fr/conflicting/web/css/@viewport/index.html b/files/fr/conflicting/web/css/@viewport/index.html index bd7b0871c9..38e9ba9a6c 100644 --- a/files/fr/conflicting/web/css/@viewport/index.html +++ b/files/fr/conflicting/web/css/@viewport/index.html @@ -1,6 +1,6 @@ --- title: height -slug: Web/CSS/@viewport/height +slug: conflicting/Web/CSS/@viewport tags: - '@viewport' - CSS @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/height +original_slug: Web/CSS/@viewport/height ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce/index.html b/files/fr/conflicting/web/css/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce/index.html index 45f9b90ef5..dbbb78795b 100644 --- a/files/fr/conflicting/web/css/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce/index.html +++ b/files/fr/conflicting/web/css/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce/index.html @@ -1,12 +1,13 @@ --- title: user-zoom -slug: Web/CSS/@viewport/user-zoom +slug: conflicting/Web/CSS/@viewport_3ecbd2877baedebcfaffc13eaa7d61ce tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/user-zoom +original_slug: Web/CSS/@viewport/user-zoom ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_516ab4b0283b5b2231fb657505e22440/index.html b/files/fr/conflicting/web/css/@viewport_516ab4b0283b5b2231fb657505e22440/index.html index fd3499f24c..fa8238ea67 100644 --- a/files/fr/conflicting/web/css/@viewport_516ab4b0283b5b2231fb657505e22440/index.html +++ b/files/fr/conflicting/web/css/@viewport_516ab4b0283b5b2231fb657505e22440/index.html @@ -1,6 +1,6 @@ --- title: max-height -slug: Web/CSS/@viewport/max-height +slug: conflicting/Web/CSS/@viewport_516ab4b0283b5b2231fb657505e22440 tags: - '@viewport' - CSS @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/max-height +original_slug: Web/CSS/@viewport/max-height ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_6e9c91ec34cdb0393d301240d0d50d84/index.html b/files/fr/conflicting/web/css/@viewport_6e9c91ec34cdb0393d301240d0d50d84/index.html index 295e87ce7a..9a1aa098dc 100644 --- a/files/fr/conflicting/web/css/@viewport_6e9c91ec34cdb0393d301240d0d50d84/index.html +++ b/files/fr/conflicting/web/css/@viewport_6e9c91ec34cdb0393d301240d0d50d84/index.html @@ -1,12 +1,13 @@ --- title: min-zoom -slug: Web/CSS/@viewport/min-zoom +slug: conflicting/Web/CSS/@viewport_6e9c91ec34cdb0393d301240d0d50d84 tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/min-zoom +original_slug: Web/CSS/@viewport/min-zoom ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_7861ca3461a359b150d44f2c8d74e53a/index.html b/files/fr/conflicting/web/css/@viewport_7861ca3461a359b150d44f2c8d74e53a/index.html index 42e89f24e5..09560d1c95 100644 --- a/files/fr/conflicting/web/css/@viewport_7861ca3461a359b150d44f2c8d74e53a/index.html +++ b/files/fr/conflicting/web/css/@viewport_7861ca3461a359b150d44f2c8d74e53a/index.html @@ -1,12 +1,13 @@ --- title: orientation -slug: Web/CSS/@viewport/orientation +slug: conflicting/Web/CSS/@viewport_7861ca3461a359b150d44f2c8d74e53a tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/orientation +original_slug: Web/CSS/@viewport/orientation ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_a33ee59ffd8336ffb3336900dea02e9f/index.html b/files/fr/conflicting/web/css/@viewport_a33ee59ffd8336ffb3336900dea02e9f/index.html index 5532ed2191..69ab7cae5b 100644 --- a/files/fr/conflicting/web/css/@viewport_a33ee59ffd8336ffb3336900dea02e9f/index.html +++ b/files/fr/conflicting/web/css/@viewport_a33ee59ffd8336ffb3336900dea02e9f/index.html @@ -1,6 +1,6 @@ --- title: viewport-fit -slug: Web/CSS/@viewport/viewport-fit +slug: conflicting/Web/CSS/@viewport_a33ee59ffd8336ffb3336900dea02e9f tags: - '@viewport' - CSS @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/viewport-fit +original_slug: Web/CSS/@viewport/viewport-fit ---
{{CSSRef}}{{Draft}}{{SeeCompatTable}}
diff --git a/files/fr/conflicting/web/css/@viewport_a47f799d4189f98a73bc55899628d6d7/index.html b/files/fr/conflicting/web/css/@viewport_a47f799d4189f98a73bc55899628d6d7/index.html index 83a55c3c66..6d31386abd 100644 --- a/files/fr/conflicting/web/css/@viewport_a47f799d4189f98a73bc55899628d6d7/index.html +++ b/files/fr/conflicting/web/css/@viewport_a47f799d4189f98a73bc55899628d6d7/index.html @@ -1,6 +1,6 @@ --- title: min-height -slug: Web/CSS/@viewport/min-height +slug: conflicting/Web/CSS/@viewport_a47f799d4189f98a73bc55899628d6d7 tags: - '@viewport' - CSS @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/min-height +original_slug: Web/CSS/@viewport/min-height ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_c5f2dc316e069e8c32ab24f9117600a7/index.html b/files/fr/conflicting/web/css/@viewport_c5f2dc316e069e8c32ab24f9117600a7/index.html index aa345f6c1e..3cb1b93005 100644 --- a/files/fr/conflicting/web/css/@viewport_c5f2dc316e069e8c32ab24f9117600a7/index.html +++ b/files/fr/conflicting/web/css/@viewport_c5f2dc316e069e8c32ab24f9117600a7/index.html @@ -1,12 +1,13 @@ --- title: min-width -slug: Web/CSS/@viewport/min-width +slug: conflicting/Web/CSS/@viewport_c5f2dc316e069e8c32ab24f9117600a7 tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/min-width +original_slug: Web/CSS/@viewport/min-width ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_c925ec0506b352ea1185248b874f7848/index.html b/files/fr/conflicting/web/css/@viewport_c925ec0506b352ea1185248b874f7848/index.html index 26e657d76a..3ea88bc7b9 100644 --- a/files/fr/conflicting/web/css/@viewport_c925ec0506b352ea1185248b874f7848/index.html +++ b/files/fr/conflicting/web/css/@viewport_c925ec0506b352ea1185248b874f7848/index.html @@ -1,12 +1,13 @@ --- title: width -slug: Web/CSS/@viewport/width +slug: conflicting/Web/CSS/@viewport_c925ec0506b352ea1185248b874f7848 tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/width +original_slug: Web/CSS/@viewport/width ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_d03ebc763769680c55d1a4258592d3ed/index.html b/files/fr/conflicting/web/css/@viewport_d03ebc763769680c55d1a4258592d3ed/index.html index a5021d48f3..3a4080663c 100644 --- a/files/fr/conflicting/web/css/@viewport_d03ebc763769680c55d1a4258592d3ed/index.html +++ b/files/fr/conflicting/web/css/@viewport_d03ebc763769680c55d1a4258592d3ed/index.html @@ -1,12 +1,13 @@ --- title: max-zoom -slug: Web/CSS/@viewport/max-zoom +slug: conflicting/Web/CSS/@viewport_d03ebc763769680c55d1a4258592d3ed tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/max-zoom +original_slug: Web/CSS/@viewport/max-zoom ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_e065ce90bde08c9679692adbe64f6518/index.html b/files/fr/conflicting/web/css/@viewport_e065ce90bde08c9679692adbe64f6518/index.html index c995febbea..2cf4ac2ea8 100644 --- a/files/fr/conflicting/web/css/@viewport_e065ce90bde08c9679692adbe64f6518/index.html +++ b/files/fr/conflicting/web/css/@viewport_e065ce90bde08c9679692adbe64f6518/index.html @@ -1,12 +1,13 @@ --- title: zoom -slug: Web/CSS/@viewport/zoom +slug: conflicting/Web/CSS/@viewport_e065ce90bde08c9679692adbe64f6518 tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/zoom +original_slug: Web/CSS/@viewport/zoom ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/@viewport_ff9d4f4f351256d9fdb3d21397eb3880/index.html b/files/fr/conflicting/web/css/@viewport_ff9d4f4f351256d9fdb3d21397eb3880/index.html index f131a09f7d..cd53d9ba32 100644 --- a/files/fr/conflicting/web/css/@viewport_ff9d4f4f351256d9fdb3d21397eb3880/index.html +++ b/files/fr/conflicting/web/css/@viewport_ff9d4f4f351256d9fdb3d21397eb3880/index.html @@ -1,12 +1,13 @@ --- title: max-width -slug: Web/CSS/@viewport/max-width +slug: conflicting/Web/CSS/@viewport_ff9d4f4f351256d9fdb3d21397eb3880 tags: - CSS - Descripteur - Reference translation_of: Web/CSS/@viewport translation_of_original: Web/CSS/@viewport/max-width +original_slug: Web/CSS/@viewport/max-width ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/_colon_is/index.html b/files/fr/conflicting/web/css/_colon_is/index.html index f3036e1ee9..9c45ec21a4 100644 --- a/files/fr/conflicting/web/css/_colon_is/index.html +++ b/files/fr/conflicting/web/css/_colon_is/index.html @@ -1,13 +1,14 @@ --- title: ':any()' -slug: 'Web/CSS/:any' +slug: conflicting/Web/CSS/:is tags: - CSS - Experimental - Pseudo-classe - Reference -translation_of: 'Web/CSS/:is' -translation_of_original: 'Web/CSS/:any' +translation_of: Web/CSS/:is +translation_of_original: Web/CSS/:any +original_slug: Web/CSS/:any ---
{{CSSRef}}{{SeeCompatTable}}
diff --git a/files/fr/conflicting/web/css/_colon_placeholder-shown/index.html b/files/fr/conflicting/web/css/_colon_placeholder-shown/index.html index 8b1111134c..5d96fb7af4 100644 --- a/files/fr/conflicting/web/css/_colon_placeholder-shown/index.html +++ b/files/fr/conflicting/web/css/_colon_placeholder-shown/index.html @@ -1,13 +1,14 @@ --- title: ':-ms-input-placeholder' -slug: 'Web/CSS/:-ms-input-placeholder' +slug: conflicting/Web/CSS/:placeholder-shown tags: - CSS - Non-standard - Pseudo-classe - Référence(2) -translation_of: 'Web/CSS/:placeholder-shown' -translation_of_original: 'Web/CSS/:-ms-input-placeholder' +translation_of: Web/CSS/:placeholder-shown +translation_of_original: Web/CSS/:-ms-input-placeholder +original_slug: Web/CSS/:-ms-input-placeholder ---
{{Non-standard_header}}{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/_doublecolon_placeholder/index.html b/files/fr/conflicting/web/css/_doublecolon_placeholder/index.html index 4be89a52e0..30b93b1970 100644 --- a/files/fr/conflicting/web/css/_doublecolon_placeholder/index.html +++ b/files/fr/conflicting/web/css/_doublecolon_placeholder/index.html @@ -1,13 +1,14 @@ --- title: '::-webkit-input-placeholder' -slug: 'Web/CSS/::-webkit-input-placeholder' +slug: conflicting/Web/CSS/::placeholder tags: - CSS - Non-standard - Pseudo-element - Reference -translation_of: 'Web/CSS/::placeholder' -translation_of_original: 'Web/CSS/::-webkit-input-placeholder' +translation_of: Web/CSS/::placeholder +translation_of_original: Web/CSS/::-webkit-input-placeholder +original_slug: Web/CSS/::-webkit-input-placeholder ---
{{Non-standard_header}}{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/border-collapse/index.html b/files/fr/conflicting/web/css/border-collapse/index.html index 3a1430f65e..69a227630d 100644 --- a/files/fr/conflicting/web/css/border-collapse/index.html +++ b/files/fr/conflicting/web/css/border-collapse/index.html @@ -1,10 +1,11 @@ --- title: Tableaux -slug: Astuces_CSS/Tableaux +slug: conflicting/Web/CSS/border-collapse tags: - CSS translation_of: Web/CSS/border-collapse translation_of_original: Useful_CSS_tips/Tables +original_slug: Astuces_CSS/Tableaux ---

Centrage

Si vous voulez centrer un tableau, il n'est pas correct d'utiliser

diff --git a/files/fr/conflicting/web/css/box-ordinal-group/index.html b/files/fr/conflicting/web/css/box-ordinal-group/index.html index 4215966858..0383bcd501 100644 --- a/files/fr/conflicting/web/css/box-ordinal-group/index.html +++ b/files/fr/conflicting/web/css/box-ordinal-group/index.html @@ -1,6 +1,6 @@ --- title: '-moz-box-ordinal-group' -slug: Web/CSS/-moz-box-ordinal-group +slug: conflicting/Web/CSS/box-ordinal-group tags: - CSS - Non-standard @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/box-ordinal-group translation_of_original: Web/CSS/-moz-box-ordinal-group +original_slug: Web/CSS/-moz-box-ordinal-group ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/color_value/index.html b/files/fr/conflicting/web/css/color_value/index.html index 3880593692..8b36e3e59d 100644 --- a/files/fr/conflicting/web/css/color_value/index.html +++ b/files/fr/conflicting/web/css/color_value/index.html @@ -1,10 +1,11 @@ --- title: Couleurs et fonds -slug: Astuces_CSS/Couleurs_et_fonds +slug: conflicting/Web/CSS/color_value tags: - CSS translation_of: Web/CSS/color_value translation_of_original: Useful_CSS_tips/Color_and_Background +original_slug: Astuces_CSS/Couleurs_et_fonds ---

diff --git a/files/fr/conflicting/web/css/column-gap/index.html b/files/fr/conflicting/web/css/column-gap/index.html index 05b3e559d2..75e47d95a9 100644 --- a/files/fr/conflicting/web/css/column-gap/index.html +++ b/files/fr/conflicting/web/css/column-gap/index.html @@ -1,12 +1,13 @@ --- title: grid-column-gap -slug: Web/CSS/grid-column-gap +slug: conflicting/Web/CSS/column-gap tags: - CSS - Propriété - Reference translation_of: Web/CSS/column-gap translation_of_original: Web/CSS/grid-column-gap +original_slug: Web/CSS/grid-column-gap ---
{{CSSRef}}{{Deprecated_Header}}
diff --git a/files/fr/conflicting/web/css/css_backgrounds_and_borders/index.html b/files/fr/conflicting/web/css/css_backgrounds_and_borders/index.html index 8873196702..43168c248f 100644 --- a/files/fr/conflicting/web/css/css_backgrounds_and_borders/index.html +++ b/files/fr/conflicting/web/css/css_backgrounds_and_borders/index.html @@ -1,11 +1,12 @@ --- title: Arrière-plans et bordures CSS -slug: Web/CSS/Arrière-plans_et_bordures_CSS +slug: conflicting/Web/CSS/CSS_Backgrounds_and_Borders tags: - CSS - Référence(2) translation_of: Web/CSS/CSS_Backgrounds_and_Borders translation_of_original: Web/CSS/CSS_Background_and_Borders +original_slug: Web/CSS/Arrière-plans_et_bordures_CSS ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/css_color/index.html b/files/fr/conflicting/web/css/css_color/index.html index fb589fa689..efbefc74a2 100644 --- a/files/fr/conflicting/web/css/css_color/index.html +++ b/files/fr/conflicting/web/css/css_color/index.html @@ -1,6 +1,6 @@ --- title: Couleurs CSS -slug: Web/CSS/Couleurs_CSS +slug: conflicting/Web/CSS/CSS_Color tags: - Aperçu - CSS @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/CSS_Color translation_of_original: Web/CSS/CSS_Colors +original_slug: Web/CSS/Couleurs_CSS ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html b/files/fr/conflicting/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html index b36e1eb0f4..2c4fe59e6e 100644 --- a/files/fr/conflicting/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html +++ b/files/fr/conflicting/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html @@ -1,6 +1,6 @@ --- title: Rétrocompatibilité de flexbox -slug: Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox +slug: conflicting/Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox tags: - '@supports' - Boîtes flexibles @@ -9,6 +9,7 @@ tags: - Intermediate - flexbox translation_of: Web/CSS/CSS_Flexible_Box_Layout/Backwards_Compatibility_of_Flexbox +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Rétrocompatibilite_de_flexbox ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html b/files/fr/conflicting/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html index f91090e0dc..0cb39985fe 100644 --- a/files/fr/conflicting/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html +++ b/files/fr/conflicting/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html @@ -1,12 +1,13 @@ --- title: Utiliser les boîtes flexibles pour les applications web -slug: Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web +slug: conflicting/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox tags: - Avancé - CSS - Guide translation_of: Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox translation_of_original: Web/CSS/CSS_Flexible_Box_Layout/Using_flexbox_to_lay_out_web_applications +original_slug: Web/CSS/CSS_Flexible_Box_Layout/Boîtes_flexibles_pour_applications_web ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/cursor/index.html b/files/fr/conflicting/web/css/cursor/index.html index a7121bf02e..263b6695dd 100644 --- a/files/fr/conflicting/web/css/cursor/index.html +++ b/files/fr/conflicting/web/css/cursor/index.html @@ -1,6 +1,6 @@ --- title: '-moz-cell' -slug: Web/CSS/-moz-cell +slug: conflicting/Web/CSS/cursor tags: - CSS - Obsolete @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/cursor translation_of_original: Web/CSS/-moz-cell +original_slug: Web/CSS/-moz-cell ---
{{CSSRef}}{{deprecated_header}}
diff --git a/files/fr/conflicting/web/css/filter_effects/index.html b/files/fr/conflicting/web/css/filter_effects/index.html index 6976999a5f..6169a47ce3 100644 --- a/files/fr/conflicting/web/css/filter_effects/index.html +++ b/files/fr/conflicting/web/css/filter_effects/index.html @@ -1,11 +1,12 @@ --- title: Filters Effects -slug: Web/CSS/Filters_Effects +slug: conflicting/Web/CSS/Filter_Effects tags: - CSS - Reference translation_of: Web/CSS/Filter_Effects translation_of_original: Web/CSS/Filters_Effects +original_slug: Web/CSS/Filters_Effects ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/float/index.html b/files/fr/conflicting/web/css/float/index.html index 471bfdc5af..6e8b3aef86 100644 --- a/files/fr/conflicting/web/css/float/index.html +++ b/files/fr/conflicting/web/css/float/index.html @@ -1,11 +1,12 @@ --- title: none -slug: Web/CSS/none +slug: conflicting/Web/CSS/float tags: - CSS - Référence CSS translation_of: Web/CSS/float translation_of_original: Web/CSS/none +original_slug: Web/CSS/none ---

{{ CSSRef() }}

Résumé

diff --git a/files/fr/conflicting/web/css/font-variant/index.html b/files/fr/conflicting/web/css/font-variant/index.html index 5b611f0369..7b4e177c8f 100644 --- a/files/fr/conflicting/web/css/font-variant/index.html +++ b/files/fr/conflicting/web/css/font-variant/index.html @@ -1,11 +1,12 @@ --- title: normal -slug: Web/CSS/normal +slug: conflicting/Web/CSS/font-variant tags: - CSS - Référence CSS translation_of: Web/CSS/font-variant translation_of_original: Web/CSS/normal +original_slug: Web/CSS/normal ---

{{ CSSRef() }}

Résumé

diff --git a/files/fr/conflicting/web/css/index.html b/files/fr/conflicting/web/css/index.html index 213bc187b5..fe99a6d344 100644 --- a/files/fr/conflicting/web/css/index.html +++ b/files/fr/conflicting/web/css/index.html @@ -1,10 +1,11 @@ --- title: Astuces CSS -slug: Astuces_CSS +slug: conflicting/Web/CSS tags: - CSS translation_of: Web/CSS translation_of_original: Useful_CSS_tips +original_slug: Astuces_CSS ---

Cette page présente quelques astuces concernant l'utilisation de CSS. Chaque astuce est prévue pour être aussi courte que possible et fournir les informations nécessaires sur les propriétés et caractéristiques les plus recherchées mais peu connues ou sujettes à des erreurs fréquentes. diff --git a/files/fr/conflicting/web/css/mask-image/index.html b/files/fr/conflicting/web/css/mask-image/index.html index 2303f48997..a88b476043 100644 --- a/files/fr/conflicting/web/css/mask-image/index.html +++ b/files/fr/conflicting/web/css/mask-image/index.html @@ -1,10 +1,11 @@ --- title: '-webkit-mask-image' -slug: Web/CSS/-webkit-mask-image +slug: conflicting/Web/CSS/mask-image tags: - CSS translation_of: Web/CSS/mask-image translation_of_original: Web/CSS/-webkit-mask-image +original_slug: Web/CSS/-webkit-mask-image ---

{{ CSSRef() }}

diff --git a/files/fr/conflicting/web/css/mozilla_extensions/index.html b/files/fr/conflicting/web/css/mozilla_extensions/index.html index 98f3c88b72..8f1fc80549 100644 --- a/files/fr/conflicting/web/css/mozilla_extensions/index.html +++ b/files/fr/conflicting/web/css/mozilla_extensions/index.html @@ -1,12 +1,13 @@ --- title: Implémentation des fonctionnalités CSS à l'état de brouillon -slug: Web/CSS/Implémentation_des_Brouillons_CSS +slug: conflicting/Web/CSS/Mozilla_Extensions tags: - CSS - Draft - NeedsContent translation_of: Web/CSS/Mozilla_Extensions translation_of_original: Web/CSS/Draft_Implementations_of_CSS_Features +original_slug: Web/CSS/Implémentation_des_Brouillons_CSS ---
{{CSSRef}}{{Draft}}
diff --git a/files/fr/conflicting/web/css/pseudo-classes/index.html b/files/fr/conflicting/web/css/pseudo-classes/index.html index c6c631c6c0..14ca90be5c 100644 --- a/files/fr/conflicting/web/css/pseudo-classes/index.html +++ b/files/fr/conflicting/web/css/pseudo-classes/index.html @@ -1,10 +1,11 @@ --- title: Liens -slug: Astuces_CSS/Liens +slug: conflicting/Web/CSS/Pseudo-classes tags: - CSS translation_of: Web/CSS/Pseudo-classes translation_of_original: Useful_CSS_tips/Links +original_slug: Astuces_CSS/Liens ---

diff --git a/files/fr/conflicting/web/css/scroll-snap-type/index.html b/files/fr/conflicting/web/css/scroll-snap-type/index.html index fff872ad27..43e3de46d8 100644 --- a/files/fr/conflicting/web/css/scroll-snap-type/index.html +++ b/files/fr/conflicting/web/css/scroll-snap-type/index.html @@ -1,12 +1,13 @@ --- title: '-ms-scroll-snap-type' -slug: Web/CSS/-ms-scroll-snap-type +slug: conflicting/Web/CSS/scroll-snap-type tags: - CSS - Non-standard - Reference translation_of: Web/CSS/scroll-snap-type translation_of_original: Web/CSS/-ms-scroll-snap-type +original_slug: Web/CSS/-ms-scroll-snap-type ---
{{CSSRef}}{{non-standard_header}}
diff --git a/files/fr/conflicting/web/css/shape-outside/index.html b/files/fr/conflicting/web/css/shape-outside/index.html index de7ad2607a..cb5324dda5 100644 --- a/files/fr/conflicting/web/css/shape-outside/index.html +++ b/files/fr/conflicting/web/css/shape-outside/index.html @@ -1,12 +1,13 @@ --- title: -slug: Web/CSS/shape-box +slug: conflicting/Web/CSS/shape-outside tags: - CSS - Reference - Type translation_of: Web/CSS/shape-outside translation_of_original: Web/CSS/shape-box +original_slug: Web/CSS/shape-box ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/url()/index.html b/files/fr/conflicting/web/css/url()/index.html index a31d8c3342..c5e0d6c01a 100644 --- a/files/fr/conflicting/web/css/url()/index.html +++ b/files/fr/conflicting/web/css/url()/index.html @@ -1,12 +1,13 @@ --- title: url() -slug: Web/CSS/filter-function/url +slug: conflicting/Web/CSS/url() tags: - CSS - Junk - Reference translation_of: Web/CSS/url() translation_of_original: Web/CSS/filter-function/url +original_slug: Web/CSS/filter-function/url ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html b/files/fr/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html index d68db30cfe..1d16140856 100644 --- a/files/fr/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html +++ b/files/fr/conflicting/web/css/url()_168028c4e5edd9e19c061adb4b604d4f/index.html @@ -1,12 +1,13 @@ --- title: -slug: Web/CSS/url +slug: conflicting/Web/CSS/url()_168028c4e5edd9e19c061adb4b604d4f tags: - CSS - Reference - Type translation_of: Web/CSS/url() translation_of_original: Web/CSS/url +original_slug: Web/CSS/url ---
{{CSSRef}}
diff --git a/files/fr/conflicting/web/css/user-select/index.html b/files/fr/conflicting/web/css/user-select/index.html index 047c721acc..f8035c96b4 100644 --- a/files/fr/conflicting/web/css/user-select/index.html +++ b/files/fr/conflicting/web/css/user-select/index.html @@ -1,6 +1,6 @@ --- title: '-ms-user-select' -slug: Web/CSS/-ms-user-select +slug: conflicting/Web/CSS/user-select tags: - CSS - Non-standard @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/CSS/user-select translation_of_original: Web/CSS/-ms-user-select +original_slug: Web/CSS/-ms-user-select ---
{{CSSRef}}{{non-standard_header}}
diff --git a/files/fr/conflicting/web/css/width/index.html b/files/fr/conflicting/web/css/width/index.html index 92535f6d82..d8143e66f4 100644 --- a/files/fr/conflicting/web/css/width/index.html +++ b/files/fr/conflicting/web/css/width/index.html @@ -1,11 +1,12 @@ --- title: auto -slug: Web/CSS/auto +slug: conflicting/Web/CSS/width tags: - CSS - Référence CSS translation_of: Web/CSS/width translation_of_original: Web/CSS/auto +original_slug: Web/CSS/auto ---

{{ CSSRef() }}

Résumé

diff --git a/files/fr/conflicting/web/guide/events/creating_and_triggering_events/index.html b/files/fr/conflicting/web/guide/events/creating_and_triggering_events/index.html index c075a3eec7..ab0f513ec3 100644 --- a/files/fr/conflicting/web/guide/events/creating_and_triggering_events/index.html +++ b/files/fr/conflicting/web/guide/events/creating_and_triggering_events/index.html @@ -1,10 +1,11 @@ --- title: dispatchEvent exemple -slug: DOM/dispatchEvent_exemple +slug: conflicting/Web/Guide/Events/Creating_and_triggering_events tags: - Référence_du_DOM_Gecko translation_of: Web/Guide/Events/Creating_and_triggering_events translation_of_original: Web/Guide/Events/Event_dispatching_example +original_slug: DOM/dispatchEvent_exemple ---
{{ ApiRef() }}
diff --git a/files/fr/conflicting/web/guide/index.html b/files/fr/conflicting/web/guide/index.html index 303018ea82..29c85ccbdc 100644 --- a/files/fr/conflicting/web/guide/index.html +++ b/files/fr/conflicting/web/guide/index.html @@ -1,10 +1,11 @@ --- title: Développement Web -slug: Développement_Web +slug: conflicting/Web/Guide tags: - Développement_Web translation_of: Web/Guide translation_of_original: Web_Development +original_slug: Développement_Web ---

Le développement Web comprend tous les aspects du développement d'un site ou d'une application Web.

Découvrez comment créer d'un simple site web à des applications complexes et interactives utilisant les dernières technologies du web en parcourant les articles que vous trouverez ici.

diff --git a/files/fr/conflicting/web/html/element/index.html b/files/fr/conflicting/web/html/element/index.html index 42f2df0c51..28c186a9a7 100644 --- a/files/fr/conflicting/web/html/element/index.html +++ b/files/fr/conflicting/web/html/element/index.html @@ -1,6 +1,6 @@ --- title: Liste des éléments HTML5 -slug: Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5 +slug: conflicting/Web/HTML/Element tags: - Débutant - Guide @@ -9,6 +9,7 @@ tags: - Web translation_of: Web/HTML/Element translation_of_original: Web/Guide/HTML/HTML5/HTML5_element_list +original_slug: Web/Guide/HTML/HTML5/Liste_des_éléments_HTML5 ---

Cette Page n'est pas encore complète.

diff --git a/files/fr/conflicting/web/html/global_attributes/index.html b/files/fr/conflicting/web/html/global_attributes/index.html index 3ff9306fa4..7949b21a40 100644 --- a/files/fr/conflicting/web/html/global_attributes/index.html +++ b/files/fr/conflicting/web/html/global_attributes/index.html @@ -1,12 +1,13 @@ --- title: Attribut universel -slug: Glossaire/Attribut_global +slug: conflicting/Web/HTML/Global_attributes tags: - Attribut - Glossaire - HTML translation_of: Web/HTML/Global_attributes translation_of_original: Glossary/Global_attribute +original_slug: Glossaire/Attribut_global ---

Les attributs universels sont des {{glossary("attribute","attributs")}} qui peuvent être utilisés avec tous les {{glossary("element","éléments")}} (bien que parfois sans effet sur certains d'entre-eux).

diff --git a/files/fr/conflicting/web/http/basics_of_http/mime_types/index.html b/files/fr/conflicting/web/http/basics_of_http/mime_types/index.html index 8b529a4399..30b88c017e 100644 --- a/files/fr/conflicting/web/http/basics_of_http/mime_types/index.html +++ b/files/fr/conflicting/web/http/basics_of_http/mime_types/index.html @@ -1,10 +1,11 @@ --- title: Type MIME incorrect pour les fichiers CSS -slug: Type_MIME_incorrect_pour_les_fichiers_CSS +slug: conflicting/Web/HTTP/Basics_of_HTTP/MIME_types tags: - CSS translation_of: Web/HTTP/Basics_of_HTTP/MIME_types translation_of_original: Incorrect_MIME_Type_for_CSS_Files +original_slug: Type_MIME_incorrect_pour_les_fichiers_CSS ---

Description du problème

diff --git a/files/fr/conflicting/web/javascript/equality_comparisons_and_sameness/index.html b/files/fr/conflicting/web/javascript/equality_comparisons_and_sameness/index.html index 7a6c3c3ac8..2b91ab94f8 100644 --- a/files/fr/conflicting/web/javascript/equality_comparisons_and_sameness/index.html +++ b/files/fr/conflicting/web/javascript/equality_comparisons_and_sameness/index.html @@ -1,6 +1,6 @@ --- title: L'égalité en JavaScript -slug: Web/JavaScript/Guide/Égalité_en_JavaScript +slug: conflicting/Web/JavaScript/Equality_comparisons_and_sameness tags: - Advanced - Guide @@ -8,6 +8,7 @@ tags: - Operators translation_of: Web/JavaScript/Equality_comparisons_and_sameness translation_of_original: Web/JavaScript/Guide/Sameness +original_slug: Web/JavaScript/Guide/Égalité_en_JavaScript ---

{{jsSidebar("JavaScript Guide")}}

EcmaScript6 possède trois outils pour déterminer si deux valeurs x et y sont « égales ».  Il y a l'égalité simple (deux signes égal) (==), l'égalité stricte (trois signes égal) (===), et la méthode Object.is. (Cette méthode a été ajoutée avec ES6. Les opérateurs d'égalité simple et stricte étaient présents en JavaScript avant ES6 et ont conservé leur comportement.)

diff --git a/files/fr/conflicting/web/javascript/guide/index.html b/files/fr/conflicting/web/javascript/guide/index.html index a251b58105..1e2aa0e6c6 100644 --- a/files/fr/conflicting/web/javascript/guide/index.html +++ b/files/fr/conflicting/web/javascript/guide/index.html @@ -1,12 +1,13 @@ --- title: Objets élémentaires JavaScript -slug: Web/JavaScript/Guide/Objets_élémentaires_JavaScript +slug: conflicting/Web/JavaScript/Guide tags: - Guide - JavaScript - Objets JavaScript translation_of: Web/JavaScript/Guide translation_of_original: Web/JavaScript/Guide/Predefined_Core_Objects +original_slug: Web/JavaScript/Guide/Objets_élémentaires_JavaScript ---

{{jsSidebar("JavaScript Guide")}}

diff --git a/files/fr/conflicting/web/javascript/guide/introduction/index.html b/files/fr/conflicting/web/javascript/guide/introduction/index.html index d9e7239070..a32d7f7daf 100644 --- a/files/fr/conflicting/web/javascript/guide/introduction/index.html +++ b/files/fr/conflicting/web/javascript/guide/introduction/index.html @@ -1,11 +1,12 @@ --- title: A propos de ce guide -slug: Web/JavaScript/Guide/Apropos +slug: conflicting/Web/JavaScript/Guide/Introduction tags: - Guide - JavaScript translation_of: Web/JavaScript/Guide/Introduction translation_of_original: Web/JavaScript/Guide/About +original_slug: Web/JavaScript/Guide/Apropos ---

{{jsSidebar("JavaScript Guide")}}

diff --git a/files/fr/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html b/files/fr/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html index a5ec22c993..8fe1c8115f 100644 --- a/files/fr/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html +++ b/files/fr/conflicting/web/javascript/guide/introduction_6f341ba6db4b060ccbd8dce4a0d5214b/index.html @@ -1,12 +1,13 @@ --- title: Aperçu de JavaScript -slug: Web/JavaScript/Guide/JavaScript_Overview +slug: conflicting/Web/JavaScript/Guide/Introduction_6f341ba6db4b060ccbd8dce4a0d5214b tags: - Guide - Intermediate - JavaScript translation_of: Web/JavaScript/Guide/Introduction translation_of_original: Web/JavaScript/Guide/JavaScript_Overview +original_slug: Web/JavaScript/Guide/JavaScript_Overview ---

{{jsSidebar("JavaScript Guide")}}

Ce chapitre est une introduction à JavaScript et détaille quelques-uns des concepts fondamentaux de ce langage.

diff --git a/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html b/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html index f56d56a399..67fd87e655 100644 --- a/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html +++ b/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html @@ -1,6 +1,6 @@ --- title: Limites -slug: Web/JavaScript/Guide/Expressions_régulières/Limites +slug: conflicting/Web/JavaScript/Guide/Regular_Expressions/Assertions tags: - Guide - JavaScript @@ -8,6 +8,7 @@ tags: - RegExp translation_of: Web/JavaScript/Guide/Regular_Expressions/Assertions translation_of_original: Web/JavaScript/Guide/Regular_Expressions/Boundaries +original_slug: Web/JavaScript/Guide/Expressions_régulières/Limites ---

{{jsSidebar("JavaScript Guide")}}{{draft}}

diff --git a/files/fr/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/fr/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html index 1397899d63..514def39ea 100644 --- a/files/fr/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html +++ b/files/fr/conflicting/web/javascript/inheritance_and_the_prototype_chain/index.html @@ -1,12 +1,13 @@ --- title: Retours sur l'héritage -slug: Web/JavaScript/Guide/Retours_sur_héritage +slug: conflicting/Web/JavaScript/Inheritance_and_the_prototype_chain tags: - Guide - JavaScript - Prototype translation_of: Web/JavaScript/Inheritance_and_the_prototype_chain translation_of_original: Web/JavaScript/Guide/Inheritance_Revisited +original_slug: Web/JavaScript/Guide/Retours_sur_héritage ---

Pour des informations plus générales sur l'héritage et les prototypes dans JavaScript, il est conseillé de lire la page Héritage et chaîne de prototypes.

diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/arraybuffer/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/arraybuffer/index.html index a0c018f6ed..c166afdc6e 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/arraybuffer/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/arraybuffer/index.html @@ -1,6 +1,6 @@ --- title: ArrayBuffer.prototype -slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/ArrayBuffer tags: - ArrayBuffer - JavaScript @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer translation_of_original: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/boolean/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/boolean/index.html index 8aebedeab9..29d9824975 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/boolean/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/boolean/index.html @@ -1,6 +1,6 @@ --- title: Boolean.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Boolean/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Boolean tags: - Boolean - JavaScript @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Boolean translation_of_original: Web/JavaScript/Reference/Global_Objects/Boolean/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Boolean/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/dataview/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/dataview/index.html index fd20057af1..eeb3dcbd40 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/dataview/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/dataview/index.html @@ -1,6 +1,6 @@ --- title: DataView.prototype -slug: Web/JavaScript/Reference/Objets_globaux/DataView/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/DataView tags: - DataView - JavaScript @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/DataView translation_of_original: Web/JavaScript/Reference/Global_Objects/DataView/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/DataView/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/date/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/date/index.html index 5d65e47b12..d251063077 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/date/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/date/index.html @@ -1,6 +1,6 @@ --- title: Date.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Date/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Date tags: - Date - JavaScript @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Date translation_of_original: Web/JavaScript/Reference/Global_Objects/Date/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Date/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/date/tostring/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/date/tostring/index.html index b558e82142..5ba0fdcde5 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/date/tostring/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/date/tostring/index.html @@ -1,10 +1,11 @@ --- title: toString -slug: toString +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Date/toString tags: - Désambiguation translation_of: Web/JavaScript/Reference/Global_Objects/Date/toString translation_of_original: toString +original_slug: toString ---
toString est une méthode de plusieurs objets JavaScript :
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/error/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/error/index.html index 014afc9ce2..af25e67737 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/error/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/error/index.html @@ -1,6 +1,6 @@ --- title: Error.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Error/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Error tags: - Error - JavaScript @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Error translation_of_original: Web/JavaScript/Reference/Global_Objects/Error/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Error/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/evalerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/evalerror/index.html index 1123259c3d..de61990d66 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/evalerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/evalerror/index.html @@ -1,6 +1,6 @@ --- title: EvalError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/EvalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/EvalError tags: - Error - EvalError @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/EvalError translation_of_original: Web/JavaScript/Reference/Global_Objects/EvalError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/EvalError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/function/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/function/index.html index ff4a70e10f..e1a47c0578 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/function/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/function/index.html @@ -1,6 +1,6 @@ --- title: Function.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Function/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Function tags: - Function - JavaScript @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Function translation_of_original: Web/JavaScript/Reference/Global_Objects/Function/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Function/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html index 1a23ca8eb5..dea1262a82 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/generatorfunction/index.html @@ -1,6 +1,6 @@ --- title: GeneratorFunction.prototype -slug: Web/JavaScript/Reference/Objets_globaux/GeneratorFunction/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/GeneratorFunction tags: - ECMAScript 2015 - GeneratorFunction @@ -11,6 +11,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/GeneratorFunction translation_of_original: Web/JavaScript/Reference/Global_Objects/GeneratorFunction/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/GeneratorFunction/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/internalerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/internalerror/index.html index 7d44d99002..816ef8e5b6 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/internalerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/internalerror/index.html @@ -1,6 +1,6 @@ --- title: InternalError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/InternalError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/InternalError tags: - Error - InternalError @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/InternalError translation_of_original: Web/JavaScript/Reference/Global_Objects/InternalError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/InternalError/prototype ---
{{JSRef}} {{non-standard_header}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/collator/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/collator/index.html index b523b88842..7f22c8754a 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/collator/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/collator/index.html @@ -1,6 +1,6 @@ --- title: Intl.Collator.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/Collator/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Collator tags: - Collator - Internationalisation @@ -12,6 +12,7 @@ tags: - i18n translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Collator translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/Collator/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/Collator/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html index 39e6679295..7113b76a12 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.DateTimeFormat.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat tags: - Internationalisation - Intl @@ -11,6 +11,7 @@ tags: - i18n translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/DateTimeFormat/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/listformat/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/listformat/index.html index 1aab6a459d..455b244609 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/listformat/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/listformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.ListFormat.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat tags: - Experimental - Intl @@ -11,6 +11,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Intl/ListFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/ListFormat/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/locale/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/locale/index.html index cc22f45a17..4b34e387eb 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/locale/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/locale/index.html @@ -1,6 +1,6 @@ --- title: Intl.Locale.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/Locale/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/Locale tags: - Internationalisation - Intl @@ -10,6 +10,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Intl/Locale translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/Locale/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/Locale/prototype ---

{{JSRef}}

diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html index 7627a01670..ac9a10ea3c 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/numberformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.NumberFormat.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat tags: - Internationalisation - Intl @@ -12,6 +12,7 @@ tags: - i18n translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/NumberFormat/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/pluralrules/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/pluralrules/index.html index 6674890eb1..2455f57d26 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/pluralrules/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/pluralrules/index.html @@ -1,6 +1,6 @@ --- title: Intl.PluralRules.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/PluralRules tags: - Internationalisation - Intl @@ -10,6 +10,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/PluralRules/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/PluralRules/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/intl/relativetimeformat/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/intl/relativetimeformat/index.html index 9e212403c3..b8ffa6a9b7 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/intl/relativetimeformat/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/intl/relativetimeformat/index.html @@ -1,6 +1,6 @@ --- title: Intl.RelativeTimeFormat.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat tags: - Internationalisation - Intl @@ -10,6 +10,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat translation_of_original: Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Intl/RelativeTimeFormat/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/json/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/json/index.html index a70dfee208..4fd5def9ec 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/json/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/json/index.html @@ -1,6 +1,6 @@ --- title: Utiliser le JSON natif -slug: Web/JavaScript/Guide/Utiliser_le_JSON_natif +slug: conflicting/Web/JavaScript/Reference/Global_Objects/JSON tags: - Add-ons - Advanced @@ -10,6 +10,7 @@ tags: - JavaScript translation_of: Web/JavaScript/Reference/Global_Objects/JSON translation_of_original: Web/JavaScript/Guide/Using_native_JSON +original_slug: Web/JavaScript/Guide/Utiliser_le_JSON_natif ---

{{jsSidebar("JavaScript Guide")}}

diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/map/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/map/index.html index 48a00f9135..e28ce3356a 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/map/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/map/index.html @@ -1,6 +1,6 @@ --- title: Map.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Map/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Map tags: - ECMAScript 2015 - JavaScript @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Map translation_of_original: Web/JavaScript/Reference/Global_Objects/Map/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Map/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/number/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/number/index.html index 0cb02e939e..ce0c02e822 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/number/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/number/index.html @@ -1,6 +1,6 @@ --- title: Number.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Number/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Number tags: - JavaScript - Number @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Number translation_of_original: Web/JavaScript/Reference/Global_Objects/Number/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Number/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/object/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/object/index.html index 6eb405ace4..ca4147cc2d 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/object/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/object/index.html @@ -1,6 +1,6 @@ --- title: Object.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Object/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Object tags: - JavaScript - Object @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Object translation_of_original: Web/JavaScript/Reference/Global_Objects/Object/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Object/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/object/tosource/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/object/tosource/index.html index cbd68198f6..da3d18baf1 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/object/tosource/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/object/tosource/index.html @@ -1,10 +1,11 @@ --- title: toSource -slug: toSource +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Object/toSource tags: - Désambiguation translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource translation_of_original: toSource +original_slug: toSource ---
toSource est une méthode de différents objets JavaScript :
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/promise/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/promise/index.html index 9a6146375f..a4baddd6e8 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/promise/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/promise/index.html @@ -1,6 +1,6 @@ --- title: Promise.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Promise/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Promise tags: - JavaScript - Promise @@ -9,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Promise translation_of_original: Web/JavaScript/Reference/Global_Objects/Promise/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Promise/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/rangeerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/rangeerror/index.html index 1af96393bc..1bb6017897 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/rangeerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/rangeerror/index.html @@ -1,6 +1,6 @@ --- title: RangeError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/RangeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/RangeError tags: - Error - JavaScript @@ -10,6 +10,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/RangeError translation_of_original: Web/JavaScript/Reference/Global_Objects/RangeError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/RangeError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/referenceerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/referenceerror/index.html index bdbf50f34c..e2fff2ad32 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/referenceerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/referenceerror/index.html @@ -1,6 +1,6 @@ --- title: ReferenceError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/ReferenceError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/ReferenceError tags: - Error - JavaScript @@ -10,6 +10,7 @@ tags: - ReferenceError translation_of: Web/JavaScript/Reference/Global_Objects/ReferenceError translation_of_original: Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/ReferenceError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/regexp/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/regexp/index.html index 7a507e9699..09603b661a 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/regexp/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/regexp/index.html @@ -1,6 +1,6 @@ --- title: RegExp.prototype -slug: Web/JavaScript/Reference/Objets_globaux/RegExp/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/RegExp tags: - JavaScript - Propriété @@ -9,6 +9,7 @@ tags: - RegExp translation_of: Web/JavaScript/Reference/Global_Objects/RegExp translation_of_original: Web/JavaScript/Reference/Global_Objects/RegExp/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/set/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/set/index.html index 485be156ee..eb20f50e82 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/set/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/set/index.html @@ -1,6 +1,6 @@ --- title: Set.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Set/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Set tags: - ECMAScript 2015 - JavaScript @@ -8,6 +8,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Set translation_of_original: Web/JavaScript/Reference/Global_Objects/Set/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Set/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/sharedarraybuffer/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/sharedarraybuffer/index.html index 58e0f921fd..497e42f393 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/sharedarraybuffer/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/sharedarraybuffer/index.html @@ -1,6 +1,6 @@ --- title: SharedArrayBuffer.prototype -slug: Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer tags: - JavaScript - Mémoire partagée @@ -10,6 +10,7 @@ tags: - TypedArrays translation_of: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer translation_of_original: Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/SharedArrayBuffer/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/string/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/string/index.html index f7fc1c80a6..08dbbfc5b2 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/string/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/string/index.html @@ -1,6 +1,6 @@ --- title: String.prototype -slug: Web/JavaScript/Reference/Objets_globaux/String/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/String tags: - JavaScript - Propriété @@ -9,6 +9,7 @@ tags: - String translation_of: Web/JavaScript/Reference/Global_Objects/String translation_of_original: Web/JavaScript/Reference/Global_Objects/String/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/String/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/symbol/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/symbol/index.html index 9f3c6f0703..74360162a2 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/symbol/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/symbol/index.html @@ -1,6 +1,6 @@ --- title: Symbol.prototype -slug: Web/JavaScript/Reference/Objets_globaux/Symbol/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/Symbol tags: - ECMAScript6 - JavaScript @@ -9,6 +9,7 @@ tags: - Symbol translation_of: Web/JavaScript/Reference/Global_Objects/Symbol translation_of_original: Web/JavaScript/Reference/Global_Objects/Symbol/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/Symbol/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html index 7407f68670..b8630d3fab 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/syntaxerror/index.html @@ -1,6 +1,6 @@ --- title: SyntaxError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/SyntaxError tags: - Error - JavaScript @@ -10,6 +10,7 @@ tags: - SyntaxError translation_of: Web/JavaScript/Reference/Global_Objects/SyntaxError translation_of_original: Web/JavaScript/Reference/Global_Objects/SyntaxError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/SyntaxError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/typedarray/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/typedarray/index.html index 85c7f14222..1b800b908e 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/typedarray/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/typedarray/index.html @@ -1,6 +1,6 @@ --- title: TypedArray.prototype -slug: Web/JavaScript/Reference/Objets_globaux/TypedArray/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/TypedArray tags: - JavaScript - Propriété @@ -9,6 +9,7 @@ tags: - TypedArray translation_of: Web/JavaScript/Reference/Global_Objects/TypedArray translation_of_original: Web/JavaScript/Reference/Global_Objects/TypedArray/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/TypedArray/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/typeerror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/typeerror/index.html index 041451e11c..0f818427fb 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/typeerror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/typeerror/index.html @@ -1,6 +1,6 @@ --- title: TypeError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/TypeError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/TypeError tags: - Error - JavaScript @@ -10,6 +10,7 @@ tags: - TypeError translation_of: Web/JavaScript/Reference/Global_Objects/TypeError translation_of_original: Web/JavaScript/Reference/Global_Objects/TypeError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/TypeError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/urierror/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/urierror/index.html index 4c45a4af6b..2321ca906f 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/urierror/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/urierror/index.html @@ -1,6 +1,6 @@ --- title: URIError.prototype -slug: Web/JavaScript/Reference/Objets_globaux/URIError/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/URIError tags: - Error - JavaScript @@ -10,6 +10,7 @@ tags: - URIError translation_of: Web/JavaScript/Reference/Global_Objects/URIError translation_of_original: Web/JavaScript/Reference/Global_Objects/URIError/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/URIError/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/weakmap/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/weakmap/index.html index 7ca2bf02d1..f279908c96 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/weakmap/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/weakmap/index.html @@ -1,6 +1,6 @@ --- title: WeakMap.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WeakMap tags: - ECMAScript 2015 - JavaScript @@ -9,6 +9,7 @@ tags: - WeakMap translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap translation_of_original: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/weakset/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/weakset/index.html index 092f97b6c3..04354ee98c 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/weakset/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/weakset/index.html @@ -1,6 +1,6 @@ --- title: WeakSet.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WeakSet/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WeakSet tags: - ECMAScript 2015 - JavaScript @@ -9,6 +9,7 @@ tags: - WeakSet translation_of: Web/JavaScript/Reference/Global_Objects/WeakSet translation_of_original: Web/JavaScript/Reference/Global_Objects/WeakSet/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WeakSet/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/global/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/global/index.html index fabce82ac1..fe27343864 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/global/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/global/index.html @@ -1,6 +1,6 @@ --- title: WebAssembly.Global.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global tags: - JavaScript - Propriété @@ -8,6 +8,7 @@ tags: - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global translation_of_original: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Global/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/instance/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/instance/index.html index 504c57504a..62b9fa7e39 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/instance/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/instance/index.html @@ -1,6 +1,6 @@ --- title: WebAssembly.Instance.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance tags: - JavaScript - Propriété @@ -10,6 +10,7 @@ tags: - instance translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance translation_of_original: Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Instance/prototype ---
{{JSRef}} {{SeeCompatTable}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/memory/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/memory/index.html index 32b16d8969..9edc7f0727 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/memory/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/memory/index.html @@ -1,6 +1,6 @@ --- title: WebAssembly.Memory.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory tags: - JavaScript - Propriété @@ -10,6 +10,7 @@ tags: - memory translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory translation_of_original: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Memory/prototype ---
{{JSRef}} {{SeeCompatTable}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/module/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/module/index.html index 3ac694ae07..3c1fb126b6 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/module/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/module/index.html @@ -1,6 +1,6 @@ --- title: WebAssembly.Module.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module tags: - Experimental - JavaScript @@ -11,6 +11,7 @@ tags: - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Module translation_of_original: Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Module/prototype ---
{{JSRef}}
diff --git a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/table/index.html b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/table/index.html index b9f2be5e36..f534e5a6db 100644 --- a/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/table/index.html +++ b/files/fr/conflicting/web/javascript/reference/global_objects/webassembly/table/index.html @@ -1,6 +1,6 @@ --- title: WebAssembly.Table.prototype -slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/prototype +slug: conflicting/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table tags: - Experimental - JavaScript @@ -10,6 +10,7 @@ tags: - WebAssembly translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Table translation_of_original: Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/prototype +original_slug: Web/JavaScript/Reference/Objets_globaux/WebAssembly/Table/prototype ---
{{JSRef}} {{SeeCompatTable}}
diff --git a/files/fr/conflicting/web/javascript/reference/lexical_grammar/index.html b/files/fr/conflicting/web/javascript/reference/lexical_grammar/index.html index dae1cd3126..58401bb61b 100644 --- a/files/fr/conflicting/web/javascript/reference/lexical_grammar/index.html +++ b/files/fr/conflicting/web/javascript/reference/lexical_grammar/index.html @@ -1,8 +1,9 @@ --- title: Mots réservés -slug: Web/JavaScript/Reference/Mots_réservés +slug: conflicting/Web/JavaScript/Reference/Lexical_grammar translation_of: Web/JavaScript/Reference/Lexical_grammar#Keywords translation_of_original: Web/JavaScript/Reference/Reserved_Words +original_slug: Web/JavaScript/Reference/Mots_réservés ---

Introduction

diff --git a/files/fr/conflicting/web/javascript/reference/operators/index.html b/files/fr/conflicting/web/javascript/reference/operators/index.html index d11d106a96..6ceb1e781b 100644 --- a/files/fr/conflicting/web/javascript/reference/operators/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators/index.html @@ -1,12 +1,13 @@ --- title: Opérateurs arithmétiques -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques +slug: conflicting/Web/JavaScript/Reference/Operators tags: - JavaScript - Operator - Reference translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_arithmétiques ---
{{jsSidebar("Operators")}}
diff --git a/files/fr/conflicting/web/javascript/reference/operators_03cb648b1d07bbaa8b57526b509d6d55/index.html b/files/fr/conflicting/web/javascript/reference/operators_03cb648b1d07bbaa8b57526b509d6d55/index.html index 50d1221a40..1e02f37846 100644 --- a/files/fr/conflicting/web/javascript/reference/operators_03cb648b1d07bbaa8b57526b509d6d55/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators_03cb648b1d07bbaa8b57526b509d6d55/index.html @@ -1,12 +1,14 @@ --- title: Opérateurs de comparaison -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison +slug: >- + conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55 tags: - JavaScript - Opérateur - Reference translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Comparison_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_de_comparaison ---
{{jsSidebar("Operators")}}
diff --git a/files/fr/conflicting/web/javascript/reference/operators_201bc9aef1615ff38f215c35d4cde8c9/index.html b/files/fr/conflicting/web/javascript/reference/operators_201bc9aef1615ff38f215c35d4cde8c9/index.html index 5b7ec3375f..2eaf8d2284 100644 --- a/files/fr/conflicting/web/javascript/reference/operators_201bc9aef1615ff38f215c35d4cde8c9/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators_201bc9aef1615ff38f215c35d4cde8c9/index.html @@ -1,8 +1,10 @@ --- title: Opérateurs de chaînes -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes +slug: >- + conflicting/Web/JavaScript/Reference/Operators_201bc9aef1615ff38f215c35d4cde8c9 translation_of: Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition translation_of_original: Web/JavaScript/Reference/Operators/String_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_de_chaînes ---

 

Résumé

diff --git a/files/fr/conflicting/web/javascript/reference/operators_2be16fc74d75a7c9dca0abca1dc5883b/index.html b/files/fr/conflicting/web/javascript/reference/operators_2be16fc74d75a7c9dca0abca1dc5883b/index.html index d019cb8637..4fbcf69ed6 100644 --- a/files/fr/conflicting/web/javascript/reference/operators_2be16fc74d75a7c9dca0abca1dc5883b/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators_2be16fc74d75a7c9dca0abca1dc5883b/index.html @@ -1,12 +1,14 @@ --- title: Opérateurs d'affectation -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation +slug: >- + conflicting/Web/JavaScript/Reference/Operators_2be16fc74d75a7c9dca0abca1dc5883b tags: - JavaScript - Operator - Reference translation_of: Web/JavaScript/Reference/Operators#Assignment_operators translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_d_affectation ---
{{jsSidebar("Operators")}}
diff --git a/files/fr/conflicting/web/javascript/reference/operators_688eef608213025193cd6b8e1e75b5c3/index.html b/files/fr/conflicting/web/javascript/reference/operators_688eef608213025193cd6b8e1e75b5c3/index.html index af76410f01..1a57197b9c 100644 --- a/files/fr/conflicting/web/javascript/reference/operators_688eef608213025193cd6b8e1e75b5c3/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators_688eef608213025193cd6b8e1e75b5c3/index.html @@ -1,6 +1,7 @@ --- title: Opérateurs binaires -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires +slug: >- + conflicting/Web/JavaScript/Reference/Operators_688eef608213025193cd6b8e1e75b5c3 tags: - JavaScript - Operator @@ -8,6 +9,7 @@ tags: - Reference translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Bitwise_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_binaires ---
{{jsSidebar("Operators")}}
diff --git a/files/fr/conflicting/web/javascript/reference/operators_d0fb75b0fac950a91a017a1f497c6a1f/index.html b/files/fr/conflicting/web/javascript/reference/operators_d0fb75b0fac950a91a017a1f497c6a1f/index.html index 6b82320d69..3751e727d9 100644 --- a/files/fr/conflicting/web/javascript/reference/operators_d0fb75b0fac950a91a017a1f497c6a1f/index.html +++ b/files/fr/conflicting/web/javascript/reference/operators_d0fb75b0fac950a91a017a1f497c6a1f/index.html @@ -1,12 +1,14 @@ --- title: Opérateurs logiques -slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques +slug: >- + conflicting/Web/JavaScript/Reference/Operators_d0fb75b0fac950a91a017a1f497c6a1f tags: - JavaScript - Operator - Reference translation_of: Web/JavaScript/Reference/Operators translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators +original_slug: Web/JavaScript/Reference/Opérateurs/Opérateurs_logiques ---
{{jsSidebar("Operators")}}
diff --git a/files/fr/conflicting/web/javascript/reference/statements/switch/index.html b/files/fr/conflicting/web/javascript/reference/statements/switch/index.html index e2cc368115..d144d24ae1 100644 --- a/files/fr/conflicting/web/javascript/reference/statements/switch/index.html +++ b/files/fr/conflicting/web/javascript/reference/statements/switch/index.html @@ -1,12 +1,13 @@ --- title: default -slug: Web/JavaScript/Reference/Instructions/default +slug: conflicting/Web/JavaScript/Reference/Statements/switch tags: - JavaScript - Keyword - Reference translation_of: Web/JavaScript/Reference/Statements/switch translation_of_original: Web/JavaScript/Reference/Statements/default +original_slug: Web/JavaScript/Reference/Instructions/default ---
{{jsSidebar("Statements")}}
diff --git a/files/fr/conflicting/web/progressive_web_apps/index.html b/files/fr/conflicting/web/progressive_web_apps/index.html index 3bea56aaa7..0756d9111a 100644 --- a/files/fr/conflicting/web/progressive_web_apps/index.html +++ b/files/fr/conflicting/web/progressive_web_apps/index.html @@ -1,6 +1,6 @@ --- title: Identifiable -slug: Web/Progressive_web_apps/Identifiable +slug: conflicting/Web/Progressive_web_apps tags: - Applications - Identifiable @@ -8,6 +8,7 @@ tags: - Manifeste Web translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Discoverable +original_slug: Web/Progressive_web_apps/Identifiable ---
Dès lors que vous publiez une application web, vous voulez que le monde le sache. Les moteurs de recherche le font, mais souvent on souhaite plus de contrôle sur comment l'application sera affichée dans les résultats de la recherche. Le nouveau manifeste du W3C pour les applications web peut aider à cela, ainsi que pour d'autres fonctionnalités.
diff --git a/files/fr/conflicting/web/progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b/index.html b/files/fr/conflicting/web/progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b/index.html index c5c90869f4..99d6b2901b 100644 --- a/files/fr/conflicting/web/progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b/index.html @@ -1,6 +1,6 @@ --- title: Sécurisée -slug: Web/Progressive_web_apps/Securisee +slug: conflicting/Web/Progressive_web_apps_0d5c38b9aa908cbb52e4c39037b4f28b tags: - Applications - Applications web modernes @@ -10,6 +10,7 @@ tags: - Web translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Safe +original_slug: Web/Progressive_web_apps/Securisee ---
La plateforme Web fournit un mécanisme sécurisé de livraison permettant d'éviter l'infiltration et s'assurer que le contenu n'a pas été altéré - aussi longtemps que vous bénéficiez de l'avantage du HTTPS et que vous développez votre application avec la sécurité à l'esprit.
diff --git a/files/fr/conflicting/web/progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc/index.html b/files/fr/conflicting/web/progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc/index.html index 98ad67f276..df9593f35c 100644 --- a/files/fr/conflicting/web/progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc/index.html @@ -1,6 +1,6 @@ --- title: Partageable -slug: Web/Progressive_web_apps/Partageable +slug: conflicting/Web/Progressive_web_apps_12fa0bab73df8b67470cc2aaa3a2effc tags: - Applications - Applications web modernes @@ -8,6 +8,7 @@ tags: - Partageable translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Linkable +original_slug: Web/Progressive_web_apps/Partageable ---
Une des fonctions les plus puissantes du Web est d'être capable de relier une application web à un lien URL spécifique — pas besoin de plateforme d'application, pas de processus complexe d'installation. Cela a toujours été comme ça.
diff --git a/files/fr/conflicting/web/progressive_web_apps_7b3e1886320599eacfee6834ead473f1/index.html b/files/fr/conflicting/web/progressive_web_apps_7b3e1886320599eacfee6834ead473f1/index.html index 1692b10b1d..2920de7486 100644 --- a/files/fr/conflicting/web/progressive_web_apps_7b3e1886320599eacfee6834ead473f1/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_7b3e1886320599eacfee6834ead473f1/index.html @@ -1,12 +1,13 @@ --- title: Installable -slug: Web/Progressive_web_apps/Installable +slug: conflicting/Web/Progressive_web_apps_7b3e1886320599eacfee6834ead473f1 tags: - Applications - Installable - Manifeste translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Installable +original_slug: Web/Progressive_web_apps/Installable ---
Une partie basique de l'expérience avec l'application, pour un utilisateur, est d'avoir l'icône sur l'écran d'accueil et être capable de l'ouvrir dans son propre conteneur avec une bonne intégration avec la plateforme système sous-jacente. Les applications web modernes peuvent avoir ce sentiment d'application native.
diff --git a/files/fr/conflicting/web/progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf/index.html b/files/fr/conflicting/web/progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf/index.html index d4c0de5453..18b99b7bd1 100644 --- a/files/fr/conflicting/web/progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf/index.html @@ -1,12 +1,13 @@ --- title: Progressive -slug: Web/Progressive_web_apps/Progressive +slug: conflicting/Web/Progressive_web_apps_954d3e6cc1e06f006b865b74099f55cf tags: - Amélioration progressive - Applications - Design adaptatif translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Progressive +original_slug: Web/Progressive_web_apps/Progressive ---
Les applications web modernes peuvent être développées pour fournir une experience vraiment agréable avec les navigateurs complètement compatibles, et une expérience correcte (mais pas aussi brillante) avec les navigateurs moins aptes. Nous avons fait cela pendant des années avec de bonnes pratiques comme l'amélioration progressive, donc gardons cette bonne manière de faire les choses.
diff --git a/files/fr/conflicting/web/progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31/index.html b/files/fr/conflicting/web/progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31/index.html index 52bcf0a121..c5649d3b9a 100644 --- a/files/fr/conflicting/web/progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31/index.html @@ -1,6 +1,6 @@ --- title: Indépendante du réseau -slug: Web/Progressive_web_apps/Independante_du_reseau +slug: conflicting/Web/Progressive_web_apps_ab4d34f3f29326f76d3aab740be03d31 tags: - App shell - Applications @@ -11,6 +11,7 @@ tags: - localStorage translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Network_independent +original_slug: Web/Progressive_web_apps/Independante_du_reseau ---
Les applications web modernes peuvent fonctionner quand le réseau n'est pas fiable, ou même inexistant. Terminé les pages blanches d'erreur de connexion ou les dinosaures qui courent dans le désert. Une séparation claire entre l'affichage (UI) et le contenu ainsi qu'un cache hors-ligne et des services workers, vous permettent de stocker les données de l'application et ses dépendances pour les futures utilisations.
diff --git a/files/fr/conflicting/web/progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67/index.html b/files/fr/conflicting/web/progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67/index.html index 729faa93e9..e84ab387d7 100644 --- a/files/fr/conflicting/web/progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67/index.html +++ b/files/fr/conflicting/web/progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67/index.html @@ -1,6 +1,6 @@ --- title: Re-engageable -slug: Web/Progressive_web_apps/Re-engageable +slug: conflicting/Web/Progressive_web_apps_cb2823fe6cfc1ddee5db1f6a5d240c67 tags: - Applications - Notifications @@ -9,6 +9,7 @@ tags: - Web translation_of: Web/Progressive_web_apps translation_of_original: Web/Progressive_web_apps/Re-engageable +original_slug: Web/Progressive_web_apps/Re-engageable ---
Un des principaux avantages des plateformes natives est la facilité avec laquelle les utilisateurs peuvent se retrouver de nouveaux attirés par des mises-à-jour et du nouveau contenu, même quand ils ne sont pas en train de regarder l'application ou d'utiliser leur appareil. Les applications web modernes peuvent désormais le faire aussi, en utilisant de nouvelles technologies comme l'API Web Push.
diff --git a/files/fr/conflicting/web/xpath/introduction_to_using_xpath_in_javascript/index.html b/files/fr/conflicting/web/xpath/introduction_to_using_xpath_in_javascript/index.html index 861663258c..80c3a9485c 100644 --- a/files/fr/conflicting/web/xpath/introduction_to_using_xpath_in_javascript/index.html +++ b/files/fr/conflicting/web/xpath/introduction_to_using_xpath_in_javascript/index.html @@ -1,6 +1,6 @@ --- title: Utilisation de XPath -slug: Utilisation_de_XPath +slug: conflicting/Web/XPath/Introduction_to_using_XPath_in_JavaScript tags: - AJAX - DOM @@ -11,6 +11,7 @@ tags: - XSLT translation_of: Web/XPath/Introduction_to_using_XPath_in_JavaScript translation_of_original: Using_XPath +original_slug: Utilisation_de_XPath ---

 

XPath est un langage de conversion des éléments d'un document XML. C'est une recommandation du W3C (en).

diff --git a/files/fr/games/anatomy/index.html b/files/fr/games/anatomy/index.html index 61f5534983..a435835eda 100644 --- a/files/fr/games/anatomy/index.html +++ b/files/fr/games/anatomy/index.html @@ -1,12 +1,13 @@ --- title: Anatomie d'un jeu vidéo -slug: Jeux/Anatomie +slug: Games/Anatomy tags: - Boucle Principale - JavaScript - Jeux - requestAnimationFrame translation_of: Games/Anatomy +original_slug: Jeux/Anatomie ---
{{GamesSidebar}}

  {{IncludeSubnav("/fr/docs/Jeux")}}

diff --git a/files/fr/games/examples/index.html b/files/fr/games/examples/index.html index 363e25ed7a..c86f6b8f4e 100644 --- a/files/fr/games/examples/index.html +++ b/files/fr/games/examples/index.html @@ -1,12 +1,13 @@ --- title: Exemples -slug: Jeux/Exemples +slug: Games/Examples tags: - Demos - Exemples - Jeux - Web translation_of: Games/Examples +original_slug: Jeux/Exemples ---
{{GamesSidebar}}
  {{IncludeSubnav("/fr/docs/Jeux")}}
diff --git a/files/fr/games/index.html b/files/fr/games/index.html index 7cd59f447e..d8528f83e7 100644 --- a/files/fr/games/index.html +++ b/files/fr/games/index.html @@ -1,11 +1,12 @@ --- title: Développement de jeux vidéo -slug: Jeux +slug: Games tags: - Applications - Développement - Jeux translation_of: Games +original_slug: Jeux ---
{{GamesSidebar}}
diff --git a/files/fr/games/index/index.html b/files/fr/games/index/index.html index 5253f58521..d42a4663e8 100644 --- a/files/fr/games/index/index.html +++ b/files/fr/games/index/index.html @@ -1,9 +1,10 @@ --- title: Index -slug: Jeux/Index +slug: Games/Index tags: - Meta translation_of: Games/Index +original_slug: Jeux/Index ---
{{GamesSidebar}}
{{IncludeSubnav("/fr/docs/Jeux")}}
diff --git a/files/fr/games/introduction/index.html b/files/fr/games/introduction/index.html index 8a6c2686a5..cf1d1cf591 100644 --- a/files/fr/games/introduction/index.html +++ b/files/fr/games/introduction/index.html @@ -1,12 +1,13 @@ --- title: Introduction au développement de jeux vidéo -slug: Jeux/Introduction +slug: Games/Introduction tags: - Firefox OS - Guide - Jeux - Mobile translation_of: Games/Introduction +original_slug: Jeux/Introduction ---
{{GamesSidebar}}
diff --git a/files/fr/games/introduction_to_html5_game_development/index.html b/files/fr/games/introduction_to_html5_game_development/index.html index e18d9517f8..e0f770ca03 100644 --- a/files/fr/games/introduction_to_html5_game_development/index.html +++ b/files/fr/games/introduction_to_html5_game_development/index.html @@ -1,12 +1,13 @@ --- title: Introduction au développement de jeux HTML5 (résumé) -slug: Jeux/Introduction_to_HTML5_Game_Gevelopment_(summary) +slug: Games/Introduction_to_HTML5_Game_Development tags: - Firefox OS - HTML5 - Jeux - Mobile translation_of: Games/Introduction_to_HTML5_Game_Development_(summary) +original_slug: Jeux/Introduction_to_HTML5_Game_Gevelopment_(summary) ---
{{GamesSidebar}}
diff --git a/files/fr/games/publishing_games/game_monetization/index.html b/files/fr/games/publishing_games/game_monetization/index.html index 05c6512a27..8d3b507571 100644 --- a/files/fr/games/publishing_games/game_monetization/index.html +++ b/files/fr/games/publishing_games/game_monetization/index.html @@ -1,6 +1,6 @@ --- title: Monétisation du jeu -slug: Jeux/Publier_jeux/Game_monetization +slug: Games/Publishing_games/Game_monetization tags: - Games - HTML5 @@ -12,6 +12,7 @@ tags: - iap - image de marque translation_of: Games/Publishing_games/Game_monetization +original_slug: Jeux/Publier_jeux/Game_monetization ---
{{GamesSidebar}}
diff --git a/files/fr/games/publishing_games/index.html b/files/fr/games/publishing_games/index.html index 3f6d0f8a09..fb5c562cd8 100644 --- a/files/fr/games/publishing_games/index.html +++ b/files/fr/games/publishing_games/index.html @@ -1,6 +1,6 @@ --- title: Publier des jeux -slug: Jeux/Publier_jeux +slug: Games/Publishing_games tags: - HTML5 - JavaScript @@ -10,6 +10,7 @@ tags: - distribution - publication translation_of: Games/Publishing_games +original_slug: Jeux/Publier_jeux ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_phaser/index.html b/files/fr/games/tutorials/2d_breakout_game_phaser/index.html index 43897c6574..904c1b8174 100644 --- a/files/fr/games/tutorials/2d_breakout_game_phaser/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_phaser/index.html @@ -1,7 +1,8 @@ --- title: 2D breakout game using Phaser -slug: Games/Workflows/2D_breakout_game_Phaser +slug: Games/Tutorials/2D_breakout_game_Phaser translation_of: Games/Tutorials/2D_breakout_game_Phaser +original_slug: Games/Workflows/2D_breakout_game_Phaser ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.html index 1f2e90da51..c1ba0b6ffc 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/bounce_off_the_walls/index.html @@ -1,7 +1,6 @@ --- title: Faire rebondir la balle sur les murs -slug: >- - Games/Workflows/2D_Breakout_game_pure_JavaScript/Faire_rebondir_la_balle_sur_les_murs +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Bounce_off_the_walls tags: - Animation - Canvas @@ -14,6 +13,8 @@ tags: - detection - graphique translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Bounce_off_the_walls +original_slug: >- + Games/Workflows/2D_Breakout_game_pure_JavaScript/Faire_rebondir_la_balle_sur_les_murs ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html index 1d193d6045..e6c4d1157b 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/build_the_brick_field/index.html @@ -1,6 +1,6 @@ --- title: Créer les briques -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Build_the_brick_field +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field tags: - Canvas - Casse-Brique @@ -10,6 +10,7 @@ tags: - Tutoriel - graphique translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Build_the_brick_field +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Build_the_brick_field ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html index 01e210ed5e..3b6a96ba30 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/collision_detection/index.html @@ -1,6 +1,6 @@ --- title: Détection de collisions -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/detection_colisions +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection tags: - Canvas - JavaScript @@ -9,6 +9,7 @@ tags: - detection - totoriel translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Collision_detection +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/detection_colisions ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html index 12603405c0..952b45f3d8 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/create_the_canvas_and_draw_on_it/index.html @@ -1,7 +1,7 @@ --- title: Créer l'élément Canvas et l'afficher slug: >- - Games/Workflows/2D_Breakout_game_pure_JavaScript/creer_element_canvas_et_afficher + Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it tags: - 2D - Canvas @@ -12,6 +12,8 @@ tags: - Tutoriel translation_of: >- Games/Tutorials/2D_Breakout_game_pure_JavaScript/Create_the_Canvas_and_draw_on_it +original_slug: >- + Games/Workflows/2D_Breakout_game_pure_JavaScript/creer_element_canvas_et_afficher ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html index 061aa336fd..e7e9d5dfb3 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/finishing_up/index.html @@ -1,6 +1,6 @@ --- title: Finitions -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/finitions +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up tags: - Canevas - Débutant @@ -10,6 +10,7 @@ tags: - requestAnimationFrame - vies translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Finishing_up +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/finitions ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/game_over/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/game_over/index.html index 9b37cce3c6..c9beb838e6 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/game_over/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/game_over/index.html @@ -1,6 +1,6 @@ --- title: Fin de partie -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Game_over +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Game_over tags: - Canvas - Débutant @@ -10,6 +10,7 @@ tags: - Tutoriel - game over translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Game_over +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Game_over ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/index.html index 57d3b276ed..fb0bca3bbe 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/index.html @@ -1,6 +1,6 @@ --- title: Jeu de casse-briques 2D en pur JavaScript -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript tags: - 2D - Canvas @@ -9,6 +9,7 @@ tags: - Jeux - Tutoriel translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html index 322e7fd229..08d2ab62b6 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/mouse_controls/index.html @@ -1,6 +1,6 @@ --- title: Contrôle à la souris -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Mouse_controls +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls tags: - Canevas - Contrôles @@ -10,6 +10,7 @@ tags: - Souris - Tutoriel translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Mouse_controls +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Mouse_controls ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html index 5619a7bbdf..3603260996 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/move_the_ball/index.html @@ -1,6 +1,6 @@ --- title: Déplacer la balle -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Move_the_ball +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball tags: - 2D - Boucle @@ -10,6 +10,7 @@ tags: - Mouvement - Tutoriel translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Move_the_ball +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Move_the_ball ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/paddle_and_keyboard_controls/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/paddle_and_keyboard_controls/index.html index 27b1ee4f05..7663c6cf0c 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/paddle_and_keyboard_controls/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/paddle_and_keyboard_controls/index.html @@ -1,6 +1,6 @@ --- title: Raquette et contrôle clavier -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Paddle_et_contrôle_clavier +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Paddle_and_keyboard_controls tags: - Canvas - Clavier @@ -12,6 +12,7 @@ tags: - contrôle clavier - graphique translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Paddle_and_keyboard_controls +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Paddle_et_contrôle_clavier ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/track_the_score_and_win/index.html b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/track_the_score_and_win/index.html index 090b0ea4cb..7a7026bae2 100644 --- a/files/fr/games/tutorials/2d_breakout_game_pure_javascript/track_the_score_and_win/index.html +++ b/files/fr/games/tutorials/2d_breakout_game_pure_javascript/track_the_score_and_win/index.html @@ -1,7 +1,8 @@ --- title: Suivre le score et gagner -slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win +slug: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win translation_of: Games/Tutorials/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win +original_slug: Games/Workflows/2D_Breakout_game_pure_JavaScript/Track_the_score_and_win ---
{{GamesSidebar}}
diff --git a/files/fr/games/tutorials/html5_gamedev_phaser_device_orientation/index.html b/files/fr/games/tutorials/html5_gamedev_phaser_device_orientation/index.html index 1a3c93c7d1..ddf183756f 100644 --- a/files/fr/games/tutorials/html5_gamedev_phaser_device_orientation/index.html +++ b/files/fr/games/tutorials/html5_gamedev_phaser_device_orientation/index.html @@ -1,7 +1,8 @@ --- title: Jeu 2D avec l'API Device orientation -slug: Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation_FR +slug: Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation translation_of: Games/Tutorials/HTML5_Gamedev_Phaser_Device_Orientation +original_slug: Games/Workflows/HTML5_Gamedev_Phaser_Device_Orientation_FR ---
{{GamesSidebar}}

{{IncludeSubnav("/fr/docs/Jeux")}}  

diff --git a/files/fr/games/tutorials/index.html b/files/fr/games/tutorials/index.html index a518d5ea72..690b800a40 100644 --- a/files/fr/games/tutorials/index.html +++ b/files/fr/games/tutorials/index.html @@ -1,12 +1,13 @@ --- title: Workflows for different game types -slug: Games/Workflows +slug: Games/Tutorials tags: - Canvas - JavaScript - Jeux - Web translation_of: Games/Tutorials +original_slug: Games/Workflows ---
{{GamesSidebar}}

 

diff --git a/files/fr/glossary/404/index.html b/files/fr/glossary/404/index.html index 53408ae513..f150afb7c2 100644 --- a/files/fr/glossary/404/index.html +++ b/files/fr/glossary/404/index.html @@ -1,6 +1,6 @@ --- title: '404' -slug: Glossaire/404 +slug: Glossary/404 tags: - Erreurs - Glossaire @@ -8,6 +8,7 @@ tags: - Infrastructure - Navigation translation_of: Glossary/404 +original_slug: Glossaire/404 ---

Une erreur 404 est un code de réponse standard indiquant que la ressource demandée ne peut être trouvée par le {{Glossary("Server", "serveur")}}.

diff --git a/files/fr/glossary/502/index.html b/files/fr/glossary/502/index.html index 09cea4e3ff..9efbfa64c3 100644 --- a/files/fr/glossary/502/index.html +++ b/files/fr/glossary/502/index.html @@ -1,6 +1,6 @@ --- title: '502' -slug: Glossaire/502 +slug: Glossary/502 tags: - '502' - Erreurs @@ -9,6 +9,7 @@ tags: - Infrastructure - Navigation translation_of: Glossary/502 +original_slug: Glossaire/502 ---

Le code erreur {{Glossary("HTTP")}} correspond à « Bad Gateway ».

diff --git a/files/fr/glossary/abstraction/index.html b/files/fr/glossary/abstraction/index.html index 445d226c79..ce5aee571c 100644 --- a/files/fr/glossary/abstraction/index.html +++ b/files/fr/glossary/abstraction/index.html @@ -1,6 +1,6 @@ --- title: Abstraction -slug: Glossaire/Abstraction +slug: Glossary/Abstraction tags: - Abstraction - Codage @@ -9,6 +9,7 @@ tags: - Glossaire - Langage de programmation translation_of: Glossary/Abstraction +original_slug: Glossaire/Abstraction ---

L'Abstraction dans le domaine de la {{Glossary("Computer programming","programmation informatique")}} permet de réduire la complexité et d'obtenir une conception et une implémentation plus efficaces dans les systèmes logiciels complexes. Elle dissimule les complexités techniques des systèmes derrière des {{Glossary("API")}} plus simples à manipuler.

diff --git a/files/fr/glossary/accessibility/index.html b/files/fr/glossary/accessibility/index.html index e28c48eb63..844aa0cd04 100644 --- a/files/fr/glossary/accessibility/index.html +++ b/files/fr/glossary/accessibility/index.html @@ -1,10 +1,11 @@ --- title: Accessibilité -slug: Glossaire/Accessibilité +slug: Glossary/Accessibility tags: - Accessibilité - Glossaire translation_of: Glossary/Accessibility +original_slug: Glossaire/Accessibilité ---

L'Accessibilité du web (A11Y) correspond aux bonnes pratiques assurant qu'un site web reste utilisable indépendamment des conditions de navigation et possibles handicaps de l'utilisateur. L'accessibilité du web est définie formellement et discutée au {{Glossary("W3C")}} au travers de la {{Glossary("WAI","Web Accessibility Initiative")}} (WAI).

diff --git a/files/fr/glossary/adobe_flash/index.html b/files/fr/glossary/adobe_flash/index.html index f84dd907f9..948798da2a 100644 --- a/files/fr/glossary/adobe_flash/index.html +++ b/files/fr/glossary/adobe_flash/index.html @@ -1,11 +1,12 @@ --- title: Adobe Flash -slug: Glossaire/Adobe_Flash +slug: Glossary/Adobe_Flash tags: - Flash - Glossaire - Infrastructure translation_of: Glossary/Adobe_Flash +original_slug: Glossaire/Adobe_Flash ---

Adobe Flash est une technologie obsolescente, développée par Adobe Systems, qui permet de créer des applications internet riches, des graphiques vectoriels et des applications multimédias. Pour utiliser Flash au sein d'un {{Glossary("Browser","navigateur web")}}, vous devez installer le plugin adéquat.

diff --git a/files/fr/glossary/ajax/index.html b/files/fr/glossary/ajax/index.html index eeaeb2a0bf..3a37adf62d 100644 --- a/files/fr/glossary/ajax/index.html +++ b/files/fr/glossary/ajax/index.html @@ -1,14 +1,15 @@ --- title: AJAX -slug: Glossaire/AJAX +slug: Glossary/AJAX tags: - AJAX - CodingScripting - Encodage - Glossaire - Infrastructure - - 'l10n:priority' + - l10n:priority translation_of: Glossary/AJAX +original_slug: Glossaire/AJAX ---

Le {{Glossary("JavaScript")}} et {{Glossary("XML")}} asynchrone (AJAX) est une pratique de programmation qui consiste à construire des pages web plus complexes et plus dynamiques en utilisant une technologie connue sous le nom de {{Glossary("XHR_(XMLHttpRequest)", "XMLHttpRequest")}}.

diff --git a/files/fr/glossary/algorithm/index.html b/files/fr/glossary/algorithm/index.html index 97d46b25c5..5bf486d89d 100644 --- a/files/fr/glossary/algorithm/index.html +++ b/files/fr/glossary/algorithm/index.html @@ -1,8 +1,9 @@ --- title: Algorithme -slug: Glossaire/Algorithme +slug: Glossary/Algorithm tags: - Glossaire translation_of: Glossary/Algorithm +original_slug: Glossaire/Algorithme ---

Un algorithme est une série d'instructions indépendantes qui exécutent une fonction.

diff --git a/files/fr/glossary/alignment_container/index.html b/files/fr/glossary/alignment_container/index.html index 6b35b6371c..658d11d727 100644 --- a/files/fr/glossary/alignment_container/index.html +++ b/files/fr/glossary/alignment_container/index.html @@ -1,12 +1,13 @@ --- title: Alignment container -slug: Glossaire/Alignment_Container +slug: Glossary/Alignment_Container tags: - Alignement - CSS - Glossaire - bloc d'alignement translation_of: Glossary/Alignment_Container +original_slug: Glossaire/Alignment_Container ---

Le bloc d'alignement est le rectangle avec lequel le sujet d'alignement est aligné. Cela est défini par le mode de disposition ; généralement, le bloc d'alignement contient le sujet d'alignement et il adopte le mode d'ecriture de la boîte qui établit le bloc conteneur.

diff --git a/files/fr/glossary/alignment_subject/index.html b/files/fr/glossary/alignment_subject/index.html index 3289d952b2..46db1330fb 100644 --- a/files/fr/glossary/alignment_subject/index.html +++ b/files/fr/glossary/alignment_subject/index.html @@ -1,7 +1,8 @@ --- title: Alignment subject -slug: Glossaire/Alignment_Subject +slug: Glossary/Alignment_Subject translation_of: Glossary/Alignment_Subject +original_slug: Glossaire/Alignment_Subject ---

Dans le CSS Box Alignment (alignement des boîtes en CSS) l'alignment subject (le sujet de l'alignement) est la ou les choses alignées par la propriété.

diff --git a/files/fr/glossary/alpn/index.html b/files/fr/glossary/alpn/index.html index 5a834ce08e..93b47e0e91 100644 --- a/files/fr/glossary/alpn/index.html +++ b/files/fr/glossary/alpn/index.html @@ -1,6 +1,6 @@ --- title: ALPN -slug: Glossaire/ALPN +slug: Glossary/ALPN tags: - ALPN - Brouillon @@ -8,6 +8,7 @@ tags: - NeedsContent - TLS translation_of: Glossary/ALPN +original_slug: Glossaire/ALPN ---

Application-Layer {{Glossary("Protocol")}} Negotiation (ALPN) est une extension {{Glossary("TLS")}} qui indique quel protocole de couche d'application négocie la connexion chiffrée sans nécessiter d'aller-retour supplémentaires.

diff --git a/files/fr/glossary/api/index.html b/files/fr/glossary/api/index.html index 5a06119821..f876497333 100644 --- a/files/fr/glossary/api/index.html +++ b/files/fr/glossary/api/index.html @@ -1,11 +1,12 @@ --- title: API -slug: Glossaire/API +slug: Glossary/API tags: - Encodage - Glossaire - Infrastructure translation_of: Glossary/API +original_slug: Glossaire/API ---

Une API (Application Programming Interface) est un ensemble de fonctionnalités et de règles existant dans un logiciel permettant d'intéragir avec celui-ci de manière automatisée (plutôt que de passer par une interface utilisateur). L'API peut être vue comme un contrat simple passé entre le logiciel qui la propose et d'autres entités, telles que des logiciels ou matériels tiers.

diff --git a/files/fr/glossary/apple_safari/index.html b/files/fr/glossary/apple_safari/index.html index d251f8f9b6..ae946ec02f 100644 --- a/files/fr/glossary/apple_safari/index.html +++ b/files/fr/glossary/apple_safari/index.html @@ -1,11 +1,12 @@ --- title: Apple Safari -slug: Glossaire/Apple_Safari +slug: Glossary/Apple_Safari tags: - Glossaire - Mécaniques web - Navigation translation_of: Glossary/Apple_Safari +original_slug: Glossaire/Apple_Safari ---

Safari est un {{Glossary("Browser","navigateur web")}} développé par la société Apple. Il est installé de base sur les systèmes d'exploitation OS X et iOS.

diff --git a/files/fr/glossary/application_context/index.html b/files/fr/glossary/application_context/index.html index e74d2ac173..014c40d6d0 100644 --- a/files/fr/glossary/application_context/index.html +++ b/files/fr/glossary/application_context/index.html @@ -1,10 +1,11 @@ --- title: Contexte d'application -slug: Glossaire/application_context +slug: Glossary/application_context tags: - Glossaire - scripts translation_of: Glossary/application_context +original_slug: Glossaire/application_context ---

Un contexte d'application est un contexte de navigation de haut niveau lié à un manifeste.

diff --git a/files/fr/glossary/argument/index.html b/files/fr/glossary/argument/index.html index dbc1c746c8..f7bdd93afc 100644 --- a/files/fr/glossary/argument/index.html +++ b/files/fr/glossary/argument/index.html @@ -1,11 +1,12 @@ --- title: Argument -slug: Glossaire/Argument +slug: Glossary/Argument tags: - Encodage - Glossaire - JavaScript translation_of: Glossary/Argument +original_slug: Glossaire/Argument ---

Un argument est une {{Glossary("Value","valeur")}}  ({{Glossary("Primitive", "primitive")}} ou {{Glossary("Object", "objet")}}) passée en tant qu'entrée à une {{Glossary("Function", "fonction")}}.

diff --git a/files/fr/glossary/aria/index.html b/files/fr/glossary/aria/index.html index ca7c89c670..96fcb40bfb 100644 --- a/files/fr/glossary/aria/index.html +++ b/files/fr/glossary/aria/index.html @@ -1,10 +1,11 @@ --- title: ARIA -slug: Glossaire/ARIA +slug: Glossary/ARIA tags: - Accessibilité - Glossaire translation_of: Glossary/ARIA +original_slug: Glossaire/ARIA ---

ARIA (Accessible Rich {{glossary("Internet")}} Applications) est une spécification technique du {{Glossary("W3C")}}. ARIA décrit comment ajouter de la sémantique et d'autres métadonnées à du contenu {{Glossary("HTML")}} dans le but de répondre aux besoins des technologies d'assistance.

diff --git a/files/fr/glossary/arpa/index.html b/files/fr/glossary/arpa/index.html index c16d40da33..8d40b7125a 100644 --- a/files/fr/glossary/arpa/index.html +++ b/files/fr/glossary/arpa/index.html @@ -1,10 +1,11 @@ --- title: ARPA -slug: Glossaire/ARPA +slug: Glossary/ARPA tags: - Glossaire - Infrastructure translation_of: Glossary/ARPA +original_slug: Glossaire/ARPA ---

.arpa (address and routing parameter area) est un {{glossary("TLD","domaine de premier niveau")}} utilisé dans des objectifs relatifs à l'infrastructure d'Internet, en particulier des recherches DNS inverses (c'est-à-dire, trouver le {{glossary( 'domain name' ,'nom de domaine')}} d'une {{glossary( "IP address" ,"adresse IP")}} donnée).

diff --git a/files/fr/glossary/arpanet/index.html b/files/fr/glossary/arpanet/index.html index 4965ecaf94..d74f365d10 100644 --- a/files/fr/glossary/arpanet/index.html +++ b/files/fr/glossary/arpanet/index.html @@ -1,10 +1,11 @@ --- title: Arpanet -slug: Glossaire/Arpanet +slug: Glossary/Arpanet tags: - Glossaire - Infrastructure translation_of: Glossary/Arpanet +original_slug: Glossaire/Arpanet ---

ARPAnet (advanced research projects agency network) était l'un des premiers réseaux informatiques, construit en 1969 comme un support robuste pour transmettre des données militaires sensibles et pour relier des groupes à la pointe de la recherche à travers le territoire des États-Unis. ARPAnet utilisait d'abord NCP (network control protocol) puis par la suite la première version de la suite des protocoles Internet ou {{glossary("TCP")}}/{{glossary("IPv6","IP")}}, ce qui a fait d'ARPAnet une partie importante du naissant {{glossary("Internet")}}. ARPAnet a fermé au début des années 90.

diff --git a/files/fr/glossary/array/index.html b/files/fr/glossary/array/index.html index 0f203e6815..6aa361711c 100644 --- a/files/fr/glossary/array/index.html +++ b/files/fr/glossary/array/index.html @@ -1,6 +1,6 @@ --- title: Tableau (Array) -slug: Glossaire/array +slug: Glossary/array tags: - Encodage - Glossaire @@ -9,6 +9,7 @@ tags: - Programmation - Tableau translation_of: Glossary/array +original_slug: Glossaire/array ---

En anglais, un array, parfois appelé en français « tableau » ou « liste », est une collection de données ({{Glossary("Primitive","primitives")}} ou {{Glossary("Object","objets")}} selon le langage). Ils sont utilisés pour stocker plusieurs valeurs dans une seule variable. Ceci est comparé à une variable qui ne peut stocker qu'une seule valeur.

diff --git a/files/fr/glossary/ascii/index.html b/files/fr/glossary/ascii/index.html index e758fcac3e..71c92b1fca 100644 --- a/files/fr/glossary/ascii/index.html +++ b/files/fr/glossary/ascii/index.html @@ -1,10 +1,11 @@ --- title: ASCII -slug: Glossaire/ASCII +slug: Glossary/ASCII tags: - Glossaire - Infrastructure translation_of: Glossary/ASCII +original_slug: Glossaire/ASCII ---

ASCII (American Standard Code for Information Interchange) est l'une des méthodes d'encodage utilisées par les ordinateurs pour convertir les lettres, les nombres, la ponctuation et les codes de contrôle sous forme numérique. Depuis 2007, l'{{Glossary("UTF-8")}} est privilégié sur internet.

diff --git a/files/fr/glossary/asynchronous/index.html b/files/fr/glossary/asynchronous/index.html index fc2a704148..9ca7f4785f 100644 --- a/files/fr/glossary/asynchronous/index.html +++ b/files/fr/glossary/asynchronous/index.html @@ -1,11 +1,12 @@ --- title: Asynchrone -slug: Glossaire/Asynchronous +slug: Glossary/Asynchronous tags: - Glossaire - Mécanismes web - Web translation_of: Glossary/Asynchronous +original_slug: Glossaire/Asynchronous ---

Asynchrone fait référence à un environnement de communication où chaque partie reçoit et traite les messages lorsque c'est possible ou plus pratique, au lieu de le faire au même moment.

diff --git a/files/fr/glossary/atag/index.html b/files/fr/glossary/atag/index.html index 1c3c9731b0..537d65a57d 100644 --- a/files/fr/glossary/atag/index.html +++ b/files/fr/glossary/atag/index.html @@ -1,6 +1,6 @@ --- title: ATAG -slug: Glossaire/ATAG +slug: Glossary/ATAG tags: - ATAG - Accessibilité @@ -8,6 +8,7 @@ tags: - Glossaire - Règles de création d'outils accessibles translation_of: Glossary/ATAG +original_slug: Glossaire/ATAG ---

Authoring Tool Accessibility Guidelines (ATAG) est une recommandation {{Glossary("W3C")}} pour construire des outils de création-accessibilité qui produisent des contenus accessibles.

diff --git a/files/fr/glossary/attribute/index.html b/files/fr/glossary/attribute/index.html index 54926f8b1f..78f28af36f 100644 --- a/files/fr/glossary/attribute/index.html +++ b/files/fr/glossary/attribute/index.html @@ -1,11 +1,12 @@ --- title: Attribut -slug: Glossaire/Attribut +slug: Glossary/Attribute tags: - Encodage - Glossaire - HTML translation_of: Glossary/Attribute +original_slug: Glossaire/Attribut ---

Un attribut vient compléter un {{Glossary("tag")}}. Sa présence peut être requise ou facultative. Il peut fournir des méta-informations ou changer le comportement du tag. La syntaxe est name=valuename est l'identificateur de l'attribut et value sa valeur attribuée.

diff --git a/files/fr/glossary/bandwidth/index.html b/files/fr/glossary/bandwidth/index.html index a0e833134b..f147af91c7 100644 --- a/files/fr/glossary/bandwidth/index.html +++ b/files/fr/glossary/bandwidth/index.html @@ -1,10 +1,11 @@ --- title: Bande passante -slug: Glossaire/Bandwidth +slug: Glossary/Bandwidth tags: - Glossaire - Infrastructure translation_of: Glossary/Bandwidth +original_slug: Glossaire/Bandwidth ---

La bande passante est la mesure de la quantité d'informations qui peut passer dans une connexion de données sur une période de temps donnée. Elle est généralement exprimée en multiples de bits-par-seconde (bps), par exemple mégabits-par-seconde (Mbps) ou gigabits-par-seconde (Gbps).

diff --git a/files/fr/glossary/base64/index.html b/files/fr/glossary/base64/index.html index ae762bf333..dabc1174d8 100644 --- a/files/fr/glossary/base64/index.html +++ b/files/fr/glossary/base64/index.html @@ -1,6 +1,6 @@ --- title: Décoder et encoder en base64 -slug: Web/API/WindowBase64/Décoder_encoder_en_base64 +slug: Glossary/Base64 tags: - Advanced - Base64 @@ -13,6 +13,7 @@ tags: - atob() - btoa() translation_of: Glossary/Base64 +original_slug: Web/API/WindowBase64/Décoder_encoder_en_base64 ---

Base64 est un groupe de schéma pour encoder des données binaires sous forme d'un texte au format ASCII grâce à la représentation de ces données en base 64. Le terme base64 vient à l'origine de l'encodage utilisé pour transférer certains contenus MIME.

diff --git a/files/fr/glossary/baseline/index.html b/files/fr/glossary/baseline/index.html index c4add007de..efcbae6f38 100644 --- a/files/fr/glossary/baseline/index.html +++ b/files/fr/glossary/baseline/index.html @@ -1,6 +1,6 @@ --- title: Ligne de base -slug: Glossaire/ligne_de_base +slug: Glossary/baseline tags: - Alignement - CSS @@ -8,6 +8,7 @@ tags: - SVG - Typographie translation_of: Glossary/baseline +original_slug: Glossaire/ligne_de_base ---

La ligne de base (baseline en anglais) est une expression utilisée en typographie européenne et ouest-asiatique pour désigner une ligne imaginaire sur laquelle les caractères d’une police reposent.

diff --git a/files/fr/glossary/beacon/index.html b/files/fr/glossary/beacon/index.html index 905566d8eb..fbf0d82aab 100644 --- a/files/fr/glossary/beacon/index.html +++ b/files/fr/glossary/beacon/index.html @@ -1,7 +1,8 @@ --- title: beacon -slug: Glossaire/beacon +slug: Glossary/beacon translation_of: Glossary/beacon +original_slug: Glossaire/beacon ---

Un beacon Web est un petit objet, tel qu'un gif de 1 pixel, intégré au balisage, utilisé pour communiquer des informations au serveur Web ou à des serveurs tiers. Les beacons sont généralement inclus pour fournir des informations sur l'utilisateur à des fins statistiques. Les beacons sont souvent inclus dans des scripts tiers pour collecter des données utilisateur, des mesures de performance et des rapports d'erreurs.

diff --git a/files/fr/glossary/bidi/index.html b/files/fr/glossary/bidi/index.html index 49cf62bf89..6554c3af08 100644 --- a/files/fr/glossary/bidi/index.html +++ b/files/fr/glossary/bidi/index.html @@ -1,12 +1,13 @@ --- title: BiDi -slug: Glossaire/BiDi +slug: Glossary/BiDi tags: - Accessibilité - Glossaire - Internationalisation - Langues translation_of: Glossary/BiDi +original_slug: Glossaire/BiDi ---

BiDi (BiDirectionnel) fait référence à un document contenant à la fois du texte se lisant de droite à gauche et du texte se lisant de gauche à droite. Même lorsque les deux directions se trouvent dans le même paragraphe, le texte de chaque langue doit apparaître dans son propre sens.

diff --git a/files/fr/glossary/bigint/index.html b/files/fr/glossary/bigint/index.html index 7de9471d67..22efa5d9e8 100644 --- a/files/fr/glossary/bigint/index.html +++ b/files/fr/glossary/bigint/index.html @@ -1,6 +1,6 @@ --- title: BigInt -slug: Glossaire/BigInt +slug: Glossary/BigInt tags: - BigInt - Glossaire @@ -8,6 +8,7 @@ tags: - Reference - format de précision arbitraire translation_of: Glossary/BigInt +original_slug: Glossaire/BigInt ---

Dans {{Glossary("JavaScript")}}, BigInt est un type de données numériques qui peut représenter des entiers au format de précision arbitraire. Dans d'autres langages de programmation, différents types numériques peuvent exister, par exemple : Entiers, Flottants, Doubles, ou Bignums.

diff --git a/files/fr/glossary/blink/index.html b/files/fr/glossary/blink/index.html index 65b149377a..349ad1e169 100644 --- a/files/fr/glossary/blink/index.html +++ b/files/fr/glossary/blink/index.html @@ -1,11 +1,12 @@ --- title: Blink -slug: Glossaire/Blink +slug: Glossary/Blink tags: - Agencement - Glossaire - Infrastructure translation_of: Glossary/Blink +original_slug: Glossaire/Blink ---

Blink est un moteur de rendu HTML libre basé sur {{Glossary("WebKit")}} et développé principalement par Google dans le cadre du projet Chromium (et par conséquent présent dans Chrome aussi). Plus particulièrement, Blink est une branche de la bibliothèque WebCore de WebKit qui gère l'agencement, le rendu et le {{Glossary("DOM")}}.

diff --git a/files/fr/glossary/block/css/index.html b/files/fr/glossary/block/css/index.html index 9d1571b42c..7c7e5de919 100644 --- a/files/fr/glossary/block/css/index.html +++ b/files/fr/glossary/block/css/index.html @@ -1,6 +1,6 @@ --- title: Block (CSS) -slug: Glossary/Block/Block_(CSS) +slug: Glossary/Block/CSS tags: - CSS - Conception @@ -8,6 +8,7 @@ tags: - Glossaire - HTML translation_of: Glossary/Block/CSS +original_slug: Glossary/Block/Block_(CSS) ---

Sur une page web, un block est un {{glossary("Element","élément")}} {{glossary("HTML")}} qui apparaît sous l'élément précédent et au-dessus du suivant (communément connu comme un block-level element ). Par exemple, {{htmlelement("p")}} est par défaut un élément de type block, alors que {{htmlelement("a")}} est un  inline element - vous pouvez placer plusieurs liens les uns à côté des autres dans votre source HTML et ils seront placés sur la même ligne dans la sortie rendue.

diff --git a/files/fr/glossary/block_cipher_mode_of_operation/index.html b/files/fr/glossary/block_cipher_mode_of_operation/index.html index df8532d22f..687b9730f9 100644 --- a/files/fr/glossary/block_cipher_mode_of_operation/index.html +++ b/files/fr/glossary/block_cipher_mode_of_operation/index.html @@ -1,12 +1,13 @@ --- title: Block cipher mode of operation -slug: Glossaire/Block_cipher_mode_of_operation +slug: Glossary/Block_cipher_mode_of_operation tags: - Cryptographie - Glossaire - Mode de fonctionnement de chiffrement par bloc - Sécurité translation_of: Glossary/Block_cipher_mode_of_operation +original_slug: Glossaire/Block_cipher_mode_of_operation ---

Un mode de fonctionnement de chiffrement par bloc, généralement appelé simplement "mode" dans le contexte, spécifie comment un chiffrement par bloc doit être utilisé pour chiffrer ou déchiffrer les messages qui sont plus longs que la taille du bloc.

diff --git a/files/fr/glossary/boolean/index.html b/files/fr/glossary/boolean/index.html index 450e535aa5..b24b0c938d 100644 --- a/files/fr/glossary/boolean/index.html +++ b/files/fr/glossary/boolean/index.html @@ -1,6 +1,6 @@ --- title: Booléen -slug: Glossaire/Boolean +slug: Glossary/Boolean tags: - Booléen - Glossaire @@ -8,6 +8,7 @@ tags: - Langages de programmation - Types de données translation_of: Glossary/Boolean +original_slug: Glossaire/Boolean ---

En informatique, un booléen est un type de données logique qui ne peut prendre que deux valeurs : true (vrai) ou false (faux). Par exemple, en JavaScript, les conditions booléennes sont souvent ouvertes pour décider quelle section de code doit être exécutée (comme dans l'instruction If) ou répétée (comme pour une boucle For).

diff --git a/files/fr/glossary/boot2gecko/index.html b/files/fr/glossary/boot2gecko/index.html index 1ea0511d18..abc29595b7 100644 --- a/files/fr/glossary/boot2gecko/index.html +++ b/files/fr/glossary/boot2gecko/index.html @@ -1,6 +1,6 @@ --- title: Boot2Gecko -slug: Glossaire/Boot2Gecko +slug: Glossary/Boot2Gecko tags: - Boot2Gecko - Firefox OS @@ -8,6 +8,7 @@ tags: - Infrastructure - Introduction translation_of: Glossary/Boot2Gecko +original_slug: Glossaire/Boot2Gecko ---

Boot2Gecko (B2G) est le nom de code pour {{glossary("Firefox OS")}} et fait référence aux éléments de construction  qui n'ont pas encore reçu la marque Firefox OS officielle. (Firefox OS était aussi souvent appelé Boot2Gecko avant que le projet ait un nom officiel.)

diff --git a/files/fr/glossary/bootstrap/index.html b/files/fr/glossary/bootstrap/index.html index 2a60958125..e2fecc8a9b 100644 --- a/files/fr/glossary/bootstrap/index.html +++ b/files/fr/glossary/bootstrap/index.html @@ -1,6 +1,6 @@ --- title: Bootstrap -slug: Glossaire/Bootstrap +slug: Glossary/Bootstrap tags: - Bootstrap - CSS @@ -8,6 +8,7 @@ tags: - Intro - framework translation_of: Glossary/Bootstrap +original_slug: Glossaire/Bootstrap ---

Bootstrap est un framework {{Glossary("HTML")}}, CSS, et {{Glossary("JavaScript")}} gratuit et open source pour créer rapidement des sites Web réactifs.

diff --git a/files/fr/glossary/bounding_box/index.html b/files/fr/glossary/bounding_box/index.html index 443c2d294c..a5522b9e5e 100644 --- a/files/fr/glossary/bounding_box/index.html +++ b/files/fr/glossary/bounding_box/index.html @@ -1,11 +1,12 @@ --- title: Rectangle à limitation minimum -slug: Glossaire/rectangle_limitation_minimum +slug: Glossary/bounding_box tags: - Bounding Box - Conception - Encodage - Glossaire translation_of: Glossary/bounding_box +original_slug: Glossaire/rectangle_limitation_minimum ---

Le rectangle à limitation minimum d'un élément est le plus petit rectangle possible (aligné avec les axes du système de coordonnées de l'utilisateur de cet élément) qui inclut cet élément et ses descendants.

diff --git a/files/fr/glossary/breadcrumb/index.html b/files/fr/glossary/breadcrumb/index.html index cd642c1e7f..2c07962d53 100644 --- a/files/fr/glossary/breadcrumb/index.html +++ b/files/fr/glossary/breadcrumb/index.html @@ -1,6 +1,6 @@ --- title: Breadcrumb -slug: Glossaire/Breadcrumb +slug: Glossary/Breadcrumb tags: - Accessibilité - Chercher @@ -11,6 +11,7 @@ tags: - breadcrumb - fil d'Ariane translation_of: Glossary/Breadcrumb +original_slug: Glossaire/Breadcrumb ---

Un breadcrumb, ou fil d'Ariane, est une aide à la navigation qui est généralement placée entre l'en-tête d'un site et le contenu principal, affichant soit une hiérarchie de la page actuelle par rapport à la structure du site, du niveau supérieur à la page actuelle, soit une liste des liens suivis par l'utilisateur pour accéder à la page en cours, dans l'ordre visité.

diff --git a/files/fr/glossary/brotli_compression/index.html b/files/fr/glossary/brotli_compression/index.html index a90a85b1ca..dc7157d402 100644 --- a/files/fr/glossary/brotli_compression/index.html +++ b/files/fr/glossary/brotli_compression/index.html @@ -1,6 +1,6 @@ --- title: Brotli -slug: Glossaire/brotli_compression +slug: Glossary/brotli_compression tags: - Brotli - Glossaire @@ -8,6 +8,7 @@ tags: - Reference - compression translation_of: Glossary/brotli_compression +original_slug: Glossaire/brotli_compression ---

Brotli est un algorithme de compression sans perte à usage général. Il compresse les données à l'aide d'une combinaison d'une variant moderne de l'algorithme LZ77, du codage Huffman, et de la modélisation de contexte de second ordre, fournissant un taux de compression comparable aux meilleures méthodes de compression à usage général actuellement disponibles. Brotli fournit de meilleurs taux de compression que gzip et les vitesses de dégonflage sont comparables, mais la compression brotli est un processus plus lent que la compression Gzip, donc gzip peut être une meilleure option pour la compression de contenue non-cachable.

diff --git a/files/fr/glossary/browser/index.html b/files/fr/glossary/browser/index.html index 484c26cc70..7e427615be 100644 --- a/files/fr/glossary/browser/index.html +++ b/files/fr/glossary/browser/index.html @@ -1,10 +1,11 @@ --- title: Navigateur -slug: Glossaire/Navigateur +slug: Glossary/Browser tags: - Glossaire - Navigation translation_of: Glossary/Browser +original_slug: Glossaire/Navigateur ---

Un navigateur internet est un programme informatique qui reçoit et affiche les pages du {{Glossary("World Wide Web","Web")}}, et permet aux utilisateurs d'accéder à d'autres pages au travers d'{{Glossary("hyperlink","hyperliens")}}.

diff --git a/files/fr/glossary/browsing_context/index.html b/files/fr/glossary/browsing_context/index.html index bc9edefd44..967e31edcd 100644 --- a/files/fr/glossary/browsing_context/index.html +++ b/files/fr/glossary/browsing_context/index.html @@ -1,9 +1,10 @@ --- title: Contexte de navigation -slug: Glossaire/Browsing_context +slug: Glossary/Browsing_context tags: - Glossaire translation_of: Glossary/Browsing_context +original_slug: Glossaire/Browsing_context ---

Un contexte de navigation est l'environnement dans lequel un {{glossary("Browser","navigateur")}} affiche un {{domxref("Document","document")}}. Dans les navigateurs modernes, il s'agit généralement d'un onglet, mais il peut s'agir d'une fenêtre ou encore seulement des parties d'une page, comme une {{HTMLElement("frame")}} ou une {{HTMLElement("iframe")}}.

diff --git a/files/fr/glossary/buffer/index.html b/files/fr/glossary/buffer/index.html index 50292d0b87..d735701466 100644 --- a/files/fr/glossary/buffer/index.html +++ b/files/fr/glossary/buffer/index.html @@ -1,10 +1,11 @@ --- title: Tampon -slug: Glossaire/Tampon +slug: Glossary/buffer tags: - Glossaire - Stockage temporaire translation_of: Glossary/buffer +original_slug: Glossaire/Tampon ---

Un tampon est un stockage dans la mémoire physique utilisé pour stocker temporairement des données pendant leur transfert d'un endroit à un autre.

diff --git "a/files/fr/glossary/b\303\251zier_curve/index.html" "b/files/fr/glossary/b\303\251zier_curve/index.html" index 4528e77ad8..6e0733dfc2 100644 --- "a/files/fr/glossary/b\303\251zier_curve/index.html" +++ "b/files/fr/glossary/b\303\251zier_curve/index.html" @@ -1,12 +1,13 @@ --- title: Courbe de Bézier -slug: Glossaire/Bézier_curve +slug: Glossary/Bézier_curve tags: - Courbe de Bézier - Glossaire - Reference - graphique translation_of: Glossary/Bézier_curve +original_slug: Glossaire/Bézier_curve ---

Une courbe de Bézier est une courbe décrite mathématiquement utilisée en infographie et en animation. Dans {{Glossary("vector image", "vector images")}}, elles sont utilisées pour modéliser des courbes lisses qui peuvent être redimensionnées indéfiniment.

diff --git a/files/fr/glossary/cache/index.html b/files/fr/glossary/cache/index.html index 4e09279526..600df95b90 100644 --- a/files/fr/glossary/cache/index.html +++ b/files/fr/glossary/cache/index.html @@ -1,10 +1,11 @@ --- title: Cache -slug: Glossaire/Cache +slug: Glossary/Cache tags: - Glossaire - HTTP translation_of: Glossary/Cache +original_slug: Glossaire/Cache ---

Un cache (cache web ou cache HTTP) est un composant stockant temporairement les réponses HTTP dans le but de les réutiliser lors de requêtes HTTP ultérieures, tant qu'elles remplissent certaines conditions.

diff --git a/files/fr/glossary/cacheable/index.html b/files/fr/glossary/cacheable/index.html index 4442b4bfb8..75aa411b15 100644 --- a/files/fr/glossary/cacheable/index.html +++ b/files/fr/glossary/cacheable/index.html @@ -1,11 +1,12 @@ --- title: Apte à être mis en cache -slug: Glossaire/cacheable +slug: Glossary/cacheable tags: - Glossaire - Mise en cache - Mécanismes web translation_of: Glossary/cacheable +original_slug: Glossaire/cacheable ---

Une réponse apte à être mise en cache (cacheable) est une réponse HTTP qui peut être mise en cache, qui est stockée pour être récupérée et utilisée plus tard, en enregistrant une nouvelle requête sur le serveur. Toutes les réponses HTTP ne peuvent pas être mises en cache, les contraintes suivantes sont requises pour qu'une réponse HTTP soit mise en cache :

diff --git a/files/fr/glossary/caldav/index.html b/files/fr/glossary/caldav/index.html index 7f53197909..de15852061 100644 --- a/files/fr/glossary/caldav/index.html +++ b/files/fr/glossary/caldav/index.html @@ -1,11 +1,12 @@ --- title: CalDAV -slug: Glossaire/CalDAV +slug: Glossary/CalDAV tags: - CalDAV - Glossaire - Infrastructure translation_of: Glossary/CalDAV +original_slug: Glossaire/CalDAV ---

CalDAV (extensions de gestion de calendrier pour {{Glossary("WebDAV")}}) est un {{glossary("protocol","protocole")}} normalisé par l'IETF utilisé pour accéder à distance à des données d'agendas stockées sur un {{glossary("server","serveur")}}.

diff --git a/files/fr/glossary/call_stack/index.html b/files/fr/glossary/call_stack/index.html index 56f544bc90..f7da93aa2f 100644 --- a/files/fr/glossary/call_stack/index.html +++ b/files/fr/glossary/call_stack/index.html @@ -1,11 +1,12 @@ --- title: Pile d'exécution -slug: Glossaire/Pile_d_exécution +slug: Glossary/Call_stack tags: - Encodage - Glossaire - Pile d'exécution translation_of: Glossary/Call_stack +original_slug: Glossaire/Pile_d_exécution ---

Une pile d'exécution est le mécanisme d'un interpréteur (comme l'interpréteur de JavaScript sur un navigateur web) pour conserver la trace de son emplacement dans un script qui appelle plusieurs {{glossary("Function","fonctions")}} depuis d'autres fonctions  — quelle fonction est en cours d'exécution, quelles fonctions sont appelées depuis cette fonction et doivent être appelées ensuite, etc.

diff --git a/files/fr/glossary/callback_function/index.html b/files/fr/glossary/callback_function/index.html index f736c36a1e..7995f84c2e 100644 --- a/files/fr/glossary/callback_function/index.html +++ b/files/fr/glossary/callback_function/index.html @@ -1,12 +1,13 @@ --- title: Fonction de rappel (callback) -slug: Glossaire/Fonction_de_rappel +slug: Glossary/Callback_function tags: - Callback - Fonction de rappel - Glossaire - Rappel translation_of: Glossary/Callback_function +original_slug: Glossaire/Fonction_de_rappel ---

Une fonction de rappel (aussi appelée callback en anglais) est une fonction passée dans une autre fonction en tant qu'argument, qui est ensuite invoquée à l'intérieur de la fonction externe pour accomplir une sorte de routine ou d'action.

diff --git a/files/fr/glossary/canonical_order/index.html b/files/fr/glossary/canonical_order/index.html index 9064b264e4..8baa103533 100644 --- a/files/fr/glossary/canonical_order/index.html +++ b/files/fr/glossary/canonical_order/index.html @@ -1,12 +1,13 @@ --- title: Ordre canonique -slug: Glossaire/Ordre_canonique +slug: Glossary/Canonical_order tags: - CSS - Encodage - Glossaire - ordre canonique translation_of: Glossary/Canonical_order +original_slug: Glossaire/Ordre_canonique ---

En CSS, la locution "ordre canonique" est utilisée pour désigner l'ordre dans lequel des valeurs séparées doivent être spécifiées (ou {{Glossary("parse","analysées")}}) ou doivent être {{Glossary("serialization","sérialisées")}} dans le cadre d'une valeur de propriété CSS. Il est défini par la {{Glossary ("Syntax","syntaxe")}} formelle de la propriété et se réfère normalement à l'ordre dans lequel les valeurs longues doivent être spécifiées dans le cadre d'une seule valeur raccourcie.

diff --git a/files/fr/glossary/canvas/index.html b/files/fr/glossary/canvas/index.html index 896a9d77fc..8050087219 100644 --- a/files/fr/glossary/canvas/index.html +++ b/files/fr/glossary/canvas/index.html @@ -1,6 +1,6 @@ --- title: Canvas -slug: Glossaire/Canvas +slug: Glossary/Canvas tags: - Glossaire - Graphismes @@ -8,6 +8,7 @@ tags: - JavaScript - scripts translation_of: Glossary/Canvas +original_slug: Glossaire/Canvas ---

L'élément {{Glossary("HTML")}} {{HTMLElement("canvas")}} fournit une zone graphique vide sur laquelle des {{Glossary("API","API")}} {{Glossary("JavaScript")}} spécifiques peuvent dessiner (telles que des Canvas 2D ou du {{Glossary("WebGL")}}) .

diff --git a/files/fr/glossary/card_sorting/index.html b/files/fr/glossary/card_sorting/index.html index 95f50f5c2c..6780fc3c2e 100644 --- a/files/fr/glossary/card_sorting/index.html +++ b/files/fr/glossary/card_sorting/index.html @@ -1,10 +1,11 @@ --- title: Tri par cartes -slug: Glossaire/Tri_par_cartes +slug: Glossary/Card_sorting tags: - Conception - Glossaire translation_of: Glossary/Card_sorting +original_slug: Glossaire/Tri_par_cartes ---

Le tri par cartes est une méthode simple utilisée en {{glossary("Information architecture","architecture informatique")}}. Les gens impliqués dans la conception d'un site (ou d'un autre type de produit) sont invités à formaliser le contenu, les services et les fonctionnalités qui leur semblent essentiels au produit. Ensuite, ces fonctionnalités sont triées par catégories ou groupements. Cette technique peut être utile pour déterminer, par exemple, ce qui devrait aller sur chaque page d'un site. L'origine du nom est simple : souvent, le tri par carte consiste à écrire des éléments à trier sur des cartes et à ensuite trier ces cartes dans différentes piles.

diff --git a/files/fr/glossary/carddav/index.html b/files/fr/glossary/carddav/index.html index e07522e671..a11efda06f 100644 --- a/files/fr/glossary/carddav/index.html +++ b/files/fr/glossary/carddav/index.html @@ -1,11 +1,12 @@ --- title: CardDAV -slug: Glossaire/CardDAV +slug: Glossary/CardDAV tags: - CardDAV - Glossaire - Infrastructure translation_of: Glossary/CardDAV +original_slug: Glossaire/CardDAV ---

CardDAV (extension vCard pour {{Glossary("WebDAV")}}) est un {{glossary("protocol","protocole")}} normalisé par l'IETF et utilisé pour partager ou accéder à distance à des informations de contacts par l'intermédiaire d'un {{glossary("server","serveur")}}.

diff --git a/files/fr/glossary/caret/index.html b/files/fr/glossary/caret/index.html index fa81ceca96..468723ca57 100644 --- a/files/fr/glossary/caret/index.html +++ b/files/fr/glossary/caret/index.html @@ -1,11 +1,12 @@ --- title: Curseur "caret" -slug: Glossaire/Curseur_caret +slug: Glossary/caret tags: - Curseurs - Glossaire - Insertion translation_of: Glossary/caret +original_slug: Glossaire/Curseur_caret ---

Un curseur ("caret" parfois appelé "curseur de texte") est un indicateur affiché sur l'écran pour indiquer où la saisie de texte sera insérée. La plupart des interfaces utilisateur représentent le curseur à l'aide d'une fine ligne verticale ou d'une boîte de taille de caractère qui clignote, mais cela peut varier. Ce point dans le texte est appelé le point d'insertion. Le mot anglais "caret" différencie le point d'insertion du texte du curseur (cursor) de la souris.

diff --git a/files/fr/glossary/cdn/index.html b/files/fr/glossary/cdn/index.html index 737c929cac..03bb5c762b 100644 --- a/files/fr/glossary/cdn/index.html +++ b/files/fr/glossary/cdn/index.html @@ -1,10 +1,11 @@ --- title: CDN -slug: Glossaire/CDN +slug: Glossary/CDN tags: - Glossaire - Infrastructure translation_of: Glossary/CDN +original_slug: Glossaire/CDN ---

Un CDN (Content Delivery Network) est un groupe de serveurs répartis en de nombreux endroits. Ces serveurs répliquent des copies des données. De cette manière, les serveurs peuvent  répondre aux requêtes de données en se basant sur les serveurs les plus proches de leurs utilisateurs finaux respectifs. Les CDN rendent les services rapides et moins affectés par les trafics élevés.

diff --git a/files/fr/glossary/certificate_authority/index.html b/files/fr/glossary/certificate_authority/index.html index 86df49fbc8..1ad7de70be 100644 --- a/files/fr/glossary/certificate_authority/index.html +++ b/files/fr/glossary/certificate_authority/index.html @@ -1,11 +1,12 @@ --- title: Autorité de certification -slug: Glossaire/Certificate_authority +slug: Glossary/Certificate_authority tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Certificate_authority +original_slug: Glossaire/Certificate_authority ---

Une autorité de certification (AC, ou CA en anglais) est une organisation qui {{Glossary("Signature/Security", "signe")}} des {{Glossary("Digital certificate", "certificats numériques")}} et leurs {{Glossary("Clé", "clés publiques")}} associées. Cela certifie qu'une organisation qui a demandé un certificat numérique (exemple : Mozilla Corporation) est autorisée à demander un certificat pour le sujet nommé dans celui-ci (exemple : mozilla.org).

diff --git a/files/fr/glossary/certified/index.html b/files/fr/glossary/certified/index.html index c83a6b70ba..aed5590663 100644 --- a/files/fr/glossary/certified/index.html +++ b/files/fr/glossary/certified/index.html @@ -1,12 +1,13 @@ --- title: Certifié -slug: Glossaire/Certifié +slug: Glossary/Certified tags: - Applications - Firefox OS - Glossaire - Sécurité translation_of: Glossary/Certified +original_slug: Glossaire/Certifié ---

Certifié signifie qu'un contenu, une application ou une transmission de données a passé avec succès une évaluation faite par des professionnels ayant une expertise dans le domaine concerné, indiquant ainsi l'exhaustivité, la sécurité et la fiabilité.

diff --git a/files/fr/glossary/challenge/index.html b/files/fr/glossary/challenge/index.html index eb3ef9073f..4afcdebc5a 100644 --- a/files/fr/glossary/challenge/index.html +++ b/files/fr/glossary/challenge/index.html @@ -1,11 +1,12 @@ --- title: Authentification par défi-réponse -slug: Glossaire/défi_réponse +slug: Glossary/challenge tags: - Glossaire - Protocoles - Sécurité translation_of: Glossary/challenge +original_slug: Glossaire/défi_réponse ---

Dans les protocoles de sécurité, un défi (challenge), c'est quelques données envoyées au client par le serveur demandant des réponses différentes à chaque fois. Les protocoles défi-réponse sont une manière de combattre des attaques par rejeu dans lesquelles un attaquant écoute le message précédent et le renvoie une nouvelle fois pour obtenir la même information d'identification que le message original.

diff --git a/files/fr/glossary/character/index.html b/files/fr/glossary/character/index.html index ffa5553c0c..dd4e1e1460 100644 --- a/files/fr/glossary/character/index.html +++ b/files/fr/glossary/character/index.html @@ -1,12 +1,13 @@ --- title: Caractère -slug: Glossaire/Character +slug: Glossary/Character tags: - Caractères - Chaîne de caractères - Glossaire - scripts translation_of: Glossary/Character +original_slug: Glossaire/Character ---

Un caractère peut être un symbole (lettre, chiffre, ponctuation) ou un caractère de contrôle (par exemple un retour chariot ou un trait d'union conditionnel). {{glossary("UTF-8")}} est le jeu de caractères le plus courant. Il comprend les graphèmes des langues les plus répandues.

diff --git a/files/fr/glossary/character_encoding/index.html b/files/fr/glossary/character_encoding/index.html index 299bb1c955..66519d27c3 100644 --- a/files/fr/glossary/character_encoding/index.html +++ b/files/fr/glossary/character_encoding/index.html @@ -1,12 +1,13 @@ --- title: Codage des caractères -slug: Glossaire/codage_caracteres +slug: Glossary/character_encoding tags: - Composition - Glossaire - Internationalisation - Langues translation_of: Glossary/character_encoding +original_slug: Glossaire/codage_caracteres ---

Un encodage définit une correspondance entre les octets et le texte. Une séquence d'octets permet différentes interprétations textuelles. En spécifiant un codage particulier (tel que UTF-8), nous spécifions comment la séquence d'octets doit être interprétée.

diff --git a/files/fr/glossary/chrome/index.html b/files/fr/glossary/chrome/index.html index 22854c45ae..b8d03bef75 100644 --- a/files/fr/glossary/chrome/index.html +++ b/files/fr/glossary/chrome/index.html @@ -1,12 +1,13 @@ --- title: Chrome -slug: Glossaire/Chrome +slug: Glossary/Chrome tags: - Chrome - Glossaire - Mécaniques web - Navigateur translation_of: Glossary/Chrome +original_slug: Glossaire/Chrome ---

Résumé

diff --git a/files/fr/glossary/cia/index.html b/files/fr/glossary/cia/index.html index 7ea48838dd..993e0e2aa4 100644 --- a/files/fr/glossary/cia/index.html +++ b/files/fr/glossary/cia/index.html @@ -1,10 +1,11 @@ --- title: DIC -slug: Glossaire/DIC +slug: Glossary/CIA tags: - Glossaire - Sécurité translation_of: Glossary/CIA +original_slug: Glossaire/DIC ---

DIC (Disponibilité, Intégrité, Confidentialité) (également appelé triade DIC ou triade CID) est un modèle qui guide les stratégies d'une organisation dans le domaine de la sécurité de l'information.

diff --git a/files/fr/glossary/cipher/index.html b/files/fr/glossary/cipher/index.html index 227cbd9043..7c5b6586d6 100644 --- a/files/fr/glossary/cipher/index.html +++ b/files/fr/glossary/cipher/index.html @@ -1,6 +1,6 @@ --- title: Chiffre -slug: Glossaire/Chiffre +slug: Glossary/Cipher tags: - Attaques - Cryptographie @@ -8,6 +8,7 @@ tags: - Sécurité - Vie privée translation_of: Glossary/Cipher +original_slug: Glossaire/Chiffre ---

En {{glossary("cryptography","cryptographie")}}, un chiffre est un algorithme qui permet de {{glossary("encryption","chiffrer")}} du {{glossary("cleartext","texte brut")}} dans le but de le rendre illisible et de le {{glossary("decryption", "déchiffrer")}} par la suite.

diff --git a/files/fr/glossary/cipher_suite/index.html b/files/fr/glossary/cipher_suite/index.html index 7ea59ef53c..935ccdfb6b 100644 --- a/files/fr/glossary/cipher_suite/index.html +++ b/files/fr/glossary/cipher_suite/index.html @@ -1,11 +1,12 @@ --- title: Suite de chiffrement -slug: Glossaire/suite_de_chiffrement +slug: Glossary/Cipher_suite tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Cipher_suite +original_slug: Glossaire/suite_de_chiffrement ---

Une suite de chiffrement est un ensemble comprenant un algorithme d'échange de clefs, une méthode d'authentification, un {{glossary("Cipher","chiffre")}} et un code d'authentification des messages.

diff --git a/files/fr/glossary/ciphertext/index.html b/files/fr/glossary/ciphertext/index.html index 65dd4ba849..745a515ac4 100644 --- a/files/fr/glossary/ciphertext/index.html +++ b/files/fr/glossary/ciphertext/index.html @@ -1,6 +1,6 @@ --- title: Cryptogramme -slug: Glossaire/Cryptogramme +slug: Glossary/Ciphertext tags: - Confidentialité - Cryptographie @@ -8,6 +8,7 @@ tags: - Privacy - Sécurité translation_of: Glossary/Ciphertext +original_slug: Glossaire/Cryptogramme ---

En {{glossary("cryptography","cryptographie")}}, un cryptogramme est un message codé qui contient des informations mais qui n'est pas lisible sauf s'il est {{glossary("decryption","déchiffré")}} avec le bon {{glossary("cipher","cryptosystème")}} et le bon code secret (qu'on appelle une {{glossary("Key","clé")}}). Une fois déchiffré, on obtient le {{glossary("Texte_brut","texte brut")}}. La sécurité d'un cryptogramme et par conséquent celle des informations qu'il contient dépendent de la sécurité du cryptosystème utilisé et de la possibilité de garder la clé secrète.

diff --git a/files/fr/glossary/class/index.html b/files/fr/glossary/class/index.html index 6166ae6700..cde1759b89 100644 --- a/files/fr/glossary/class/index.html +++ b/files/fr/glossary/class/index.html @@ -1,10 +1,11 @@ --- title: Classe -slug: Glossaire/Class +slug: Glossary/Class tags: - Glossaire - scripts translation_of: Glossary/Class +original_slug: Glossaire/Class ---

En {{glossary("OOP","programmation orientée objet")}}, une classe définit les caractéristiques d'un {{glossary("object","objet")}}. Une classe est une définition de modèle pour les {{glossary("property","propriétés")}} et les {{glossary("method","méthodes")}} d'un objet, le "schéma" à partir duquel d'autres instances plus spécifiques de l'objet sont tracées.

diff --git a/files/fr/glossary/closure/index.html b/files/fr/glossary/closure/index.html index 37e9e918a7..b9fce3d31b 100644 --- a/files/fr/glossary/closure/index.html +++ b/files/fr/glossary/closure/index.html @@ -1,10 +1,11 @@ --- title: Fermeture -slug: Glossaire/Fermeture +slug: Glossary/Closure tags: - Encodage - Glossaire translation_of: Glossary/Closure +original_slug: Glossaire/Fermeture ---

La contrainte qui définit la {{glossary("scope","portée")}} d'exécution. En {{glossary("JavaScript")}}, les {{glossary("function","fonctions")}} créent un contexte de fermeture.

diff --git a/files/fr/glossary/cms/index.html b/files/fr/glossary/cms/index.html index 0528bb2843..135f65c5ce 100644 --- a/files/fr/glossary/cms/index.html +++ b/files/fr/glossary/cms/index.html @@ -1,11 +1,12 @@ --- title: CMS -slug: Glossaire/CMS +slug: Glossary/CMS tags: - CMS - Composition - Glossaire translation_of: Glossary/CMS +original_slug: Glossaire/CMS ---

Un CMS (Content Management System ou Système de gestion de contenu) est un logiciel permettant à un utilisateur de publier, organiser, modifier et supprimer différents types de contenus. Il peut s'agir de textes, d'images, de vidéos, de son ou encore, de code interactif.

diff --git a/files/fr/glossary/codec/index.html b/files/fr/glossary/codec/index.html index ae310ad06d..7807ace2af 100644 --- a/files/fr/glossary/codec/index.html +++ b/files/fr/glossary/codec/index.html @@ -1,10 +1,11 @@ --- title: Codec -slug: Glossaire/Codec +slug: Glossary/Codec tags: - Glossaire - Mécanique web translation_of: Glossary/Codec +original_slug: Glossaire/Codec ---

Un codec  (terme formé à partir de "codeur-décodeur") est un programme informatique qui code et décode un flux de données.

diff --git a/files/fr/glossary/compile/index.html b/files/fr/glossary/compile/index.html index dfa623e454..a4ebd4c49c 100644 --- a/files/fr/glossary/compile/index.html +++ b/files/fr/glossary/compile/index.html @@ -1,11 +1,12 @@ --- title: Compilation -slug: Glossaire/Compile +slug: Glossary/Compile tags: - Compilation - Glossaire - Langages translation_of: Glossary/Compile +original_slug: Glossaire/Compile ---

La compilation est un processus consistant à transformer un programme informatique, écrit dans un langage donné, en un programme dans un autre langage (généralement en assembleur qui pourra être exécuté par l'ordinateur).

diff --git a/files/fr/glossary/compile_time/index.html b/files/fr/glossary/compile_time/index.html index 22be739e22..41589d8739 100644 --- a/files/fr/glossary/compile_time/index.html +++ b/files/fr/glossary/compile_time/index.html @@ -1,11 +1,12 @@ --- title: Moment de compilation -slug: Glossaire/Moment_de_compilation +slug: Glossary/Compile_time tags: - CodingScripting - Glossaire - JavaScript translation_of: Glossary/Compile_time +original_slug: Glossaire/Moment_de_compilation ---

Le moment de compilation est le moment allant du premier chargement du programme jusqu'à la fin de son {{Glossary("parse","analyse syntaxique")}}.

diff --git a/files/fr/glossary/computer_programming/index.html b/files/fr/glossary/computer_programming/index.html index 5df7497621..4ade4158fa 100644 --- a/files/fr/glossary/computer_programming/index.html +++ b/files/fr/glossary/computer_programming/index.html @@ -1,11 +1,12 @@ --- title: Programmation informatique -slug: Glossaire/Computer_Programming +slug: Glossary/Computer_Programming tags: - Langage de programmation - Programmation - Programmation informatique translation_of: Glossary/Computer_Programming +original_slug: Glossaire/Computer_Programming ---

La programmation informatique est un processus de composition et d'organisation d'un ensemble d'instructions. Celles-ci indiquent à un ordinateur / logiciel ce qu'il faut faire dans une langue que l'ordinateur comprend. Elles sont réalisées sous la forme de plusieurs langages différents tels que C ++, Java, JavaScript, HTML, Python, Ruby et Rust.

diff --git a/files/fr/glossary/conditional/index.html b/files/fr/glossary/conditional/index.html index 40eab1c250..0d9c715c1e 100644 --- a/files/fr/glossary/conditional/index.html +++ b/files/fr/glossary/conditional/index.html @@ -1,11 +1,12 @@ --- title: Condition -slug: Glossaire/Conditionnel +slug: Glossary/Conditional tags: - Débutant - Glossaire - scripts translation_of: Glossary/Conditional +original_slug: Glossaire/Conditionnel ---

Une condition est un ensemble de règles qui peut interrompre ou modifier l'exécution normale du code, selon que la condition est remplie ou non.

diff --git a/files/fr/glossary/constant/index.html b/files/fr/glossary/constant/index.html index 66a256334f..506f20c903 100644 --- a/files/fr/glossary/constant/index.html +++ b/files/fr/glossary/constant/index.html @@ -1,11 +1,12 @@ --- title: Constante -slug: Glossaire/Constant +slug: Glossary/Constant tags: - Constante - Glossaire - scripts translation_of: Glossary/Constant +original_slug: Glossaire/Constant ---

Une constante est une valeur que le programmeur ne peut pas modifier, des nombres par exemple (1, 2, 42). Par contre, avec des {{glossary("Variable","variables")}}, le programmeur peut affecter une nouvelle {{glossary("value","valeur")}} à un nom de variable déjà utilisé.

diff --git a/files/fr/glossary/constructor/index.html b/files/fr/glossary/constructor/index.html index 05981a50d1..dc611fa830 100644 --- a/files/fr/glossary/constructor/index.html +++ b/files/fr/glossary/constructor/index.html @@ -1,10 +1,11 @@ --- title: Constructeur -slug: Glossaire/Constructeur +slug: Glossary/Constructor tags: - Glossaire - scripts translation_of: Glossary/Constructor +original_slug: Glossaire/Constructeur ---

Un constructeur est associé à un {{glossary("object","objet")}} d'une classe particulière qui a été instanciée. Le constructeur initialise cet objet et peut fournir un accès à ses informations privées. Le concept de constructeur peut s'appliquer à la plupart des langages de {{glossary("OOP","programmation orientée objet")}}. Dans l'essentiel, un constructeur en {{glossary("JavaScript")}} est en général déclaré lors de l'instance d'une {{glossary("Class","classe")}}.

diff --git a/files/fr/glossary/control_flow/index.html b/files/fr/glossary/control_flow/index.html index e308d5ef62..970f2243f1 100644 --- a/files/fr/glossary/control_flow/index.html +++ b/files/fr/glossary/control_flow/index.html @@ -1,11 +1,12 @@ --- title: Structure de contrôle -slug: Glossaire/Structure_de_contrôle +slug: Glossary/Control_flow tags: - Encodage - Glossaire - JavaScript translation_of: Glossary/Control_flow +original_slug: Glossaire/Structure_de_contrôle ---

Les structures de contrôle déterminent l'ordre dans lequel l'ordinateur exécute les instructions d'un script.

diff --git a/files/fr/glossary/cookie/index.html b/files/fr/glossary/cookie/index.html index 3f445a6a00..c204cce5ec 100644 --- a/files/fr/glossary/cookie/index.html +++ b/files/fr/glossary/cookie/index.html @@ -1,10 +1,11 @@ --- title: Cookie -slug: Glossaire/Cookie +slug: Glossary/Cookie tags: - Glossaire - Mécanique web translation_of: Glossary/Cookie +original_slug: Glossaire/Cookie ---

Un cookie est un petit bout d'information laissé via le navigateur web par un site web sur l'ordinateur du visiteur.

diff --git a/files/fr/glossary/copyleft/index.html b/files/fr/glossary/copyleft/index.html index 904011a431..1d27991945 100644 --- a/files/fr/glossary/copyleft/index.html +++ b/files/fr/glossary/copyleft/index.html @@ -1,12 +1,13 @@ --- title: Copyleft -slug: Glossaire/Copyleft +slug: Glossary/Copyleft tags: - Glossaire - OpenPractices - Partage - Remixing translation_of: Glossary/Copyleft +original_slug: Glossaire/Copyleft ---

Copyleft est un terme, faisant généralement référence à une licence, utilisé pour indiquer que cette dernière impose la redistribution dudit travail sous la même licence que l'original. Des exemples de licences copyleft sont la GNU {{Glossary("GPL")}} (pour le logiciel) et les licences Creative Commons SA (Share Alike) (pour les œuvres artisitiques).

diff --git a/files/fr/glossary/cors/index.html b/files/fr/glossary/cors/index.html index 701cd7bedd..beaac32297 100644 --- a/files/fr/glossary/cors/index.html +++ b/files/fr/glossary/cors/index.html @@ -1,12 +1,13 @@ --- title: CORS -slug: Glossaire/CORS +slug: Glossary/CORS tags: - CORS - Glossaire - Infrastructure - Sécurité translation_of: Glossary/CORS +original_slug: Glossaire/CORS ---

CORS (Partage de ressource cross-origin) est un mécanisme qui consiste à transmettre des entêtes HTTP qui déterminent s'il faut ou non bloquer les requêtes à des ressources restreintes sur une page web qui se trouve sur un domaine externe au domaine dont la ressource est originaire.

diff --git a/files/fr/glossary/crawler/index.html b/files/fr/glossary/crawler/index.html index ccd6a42b51..e6da5dc205 100644 --- a/files/fr/glossary/crawler/index.html +++ b/files/fr/glossary/crawler/index.html @@ -1,12 +1,13 @@ --- title: Robot d'indexation -slug: Glossaire/Robot_d_indexation +slug: Glossary/Crawler tags: - Glossaire - Infrastructure - Navigateur - Robot d'indexation translation_of: Glossary/Crawler +original_slug: Glossaire/Robot_d_indexation ---

Un robot d'indexation est un programme, souvent appelé bot ou robot, qui parcourt de manière systématique le {{glossary("World Wide Web","Web")}} pour collecter des données à partir des pages web. Les moteurs de recherche utilisent généralement des robots d'indexation pour construire leurs index.

diff --git a/files/fr/glossary/crlf/index.html b/files/fr/glossary/crlf/index.html index 88bf9e44a9..6c805d240b 100644 --- a/files/fr/glossary/crlf/index.html +++ b/files/fr/glossary/crlf/index.html @@ -1,6 +1,6 @@ --- title: CRLF -slug: Glossaire/CRLF +slug: Glossary/CRLF tags: - CR - CRLF @@ -9,6 +9,7 @@ tags: - fin de ligne - retour chariot translation_of: Glossary/CRLF +original_slug: Glossaire/CRLF ---

CR et LF sont des caractères de contrôle ou bytecode qui peuvent être utilisés pour indiquer une fin de ligne dans un fichier texte.

diff --git a/files/fr/glossary/cross-site_scripting/index.html b/files/fr/glossary/cross-site_scripting/index.html index 77ca745489..f538131725 100644 --- a/files/fr/glossary/cross-site_scripting/index.html +++ b/files/fr/glossary/cross-site_scripting/index.html @@ -1,6 +1,6 @@ --- title: Cross-site scripting -slug: Glossaire/Cross-site_scripting +slug: Glossary/Cross-site_scripting tags: - DOM - Faille de sécurité @@ -8,6 +8,7 @@ tags: - Sécurité - XSS translation_of: Glossary/Cross-site_scripting +original_slug: Glossaire/Cross-site_scripting ---

Cross-site scripting (XSS) est une faille de sécurité qui permet à un attaquant d'injecter dans un site web un code client malveillant. Ce code est exécuté par les victimes et permet aux attaquants de contourner les contrôles d'accès et d'usurper l'identité des utilisateurs. Selon le projet Open Web Application Security, XSS était la troisième cause de vulnérabilité des applications du web en 2013.

diff --git a/files/fr/glossary/cross_axis/index.html b/files/fr/glossary/cross_axis/index.html index 5084de43ea..a718d12b69 100644 --- a/files/fr/glossary/cross_axis/index.html +++ b/files/fr/glossary/cross_axis/index.html @@ -1,11 +1,12 @@ --- title: Axe transversal -slug: Glossaire/Axe_transversal +slug: Glossary/Cross_Axis tags: - CSS - Glossaire - axes translation_of: Glossary/Cross_Axis +original_slug: Glossaire/Axe_transversal ---

L'axe transversal d'une {{glossary("flexbox")}} traverse l'{{glossary("Main Axis","axe principal")}}, donc si la {{glossary("flex-direction")}} et l'axe principal sont row (ligne) ou row-reverse l'axe transversal est en colonne.

diff --git a/files/fr/glossary/crud/index.html b/files/fr/glossary/crud/index.html index 2f4018e0f0..e450d2a816 100644 --- a/files/fr/glossary/crud/index.html +++ b/files/fr/glossary/crud/index.html @@ -1,10 +1,11 @@ --- title: CRUD -slug: Glossaire/CRUD +slug: Glossary/CRUD tags: - Glossaire - Infrastructure translation_of: Glossary/CRUD +original_slug: Glossaire/CRUD ---

CRUD (create, read, update, delete) (créer, lire, mettre à jour, supprimer) est un acronyme pour les façons dont on peut fonctionner sur des données stockées. C'est un moyen mnémotechnique pour les quatre fonctions de base du stockage persistant. CRUD fait généralement référence aux opérations effectuées dans une base de données ou un magasin de données, mais peut également s'appliquer aux fonctions de niveau supérieur d'une application telles que les suppressions logicielles lorsque les données ne sont pas supprimées mais marquées comme supprimées via un état.

diff --git a/files/fr/glossary/cryptanalysis/index.html b/files/fr/glossary/cryptanalysis/index.html index cf35e2a126..2990009a36 100644 --- a/files/fr/glossary/cryptanalysis/index.html +++ b/files/fr/glossary/cryptanalysis/index.html @@ -1,12 +1,13 @@ --- title: Cryptanalyse -slug: Glossaire/Cryptanalyse +slug: Glossary/Cryptanalysis tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Cryptanalysis +original_slug: Glossaire/Cryptanalyse ---

La cryptanalyse est la branche de la {{glossary("cryptography","cryptographie")}} qui étudie la manière de casser des codes et des cryptosystèmes. Elle développe des techniques pour casser les {{glossary("cipher","systèmes cryptographiques")}}, en particulier par des méthodes plus efficaces que la recherche par force brute. En plus des méthodes traditionnelles comme l'analyse fréquentielle ou l'indice de coïncidence, la cryptanalyse intègre des méthodes plus récentes, comme la cryptanalyse linéaire our la cryptanalyse différentielle qui peuvent venir à bout de systèmes cryptographiques plus avancés.

diff --git a/files/fr/glossary/cryptographic_hash_function/index.html b/files/fr/glossary/cryptographic_hash_function/index.html index 32548e31a6..4e1f6e82e2 100644 --- a/files/fr/glossary/cryptographic_hash_function/index.html +++ b/files/fr/glossary/cryptographic_hash_function/index.html @@ -1,11 +1,12 @@ --- title: Fonction de hachage cryptographique -slug: Glossaire/Fonction_de_hachage_cryptographique +slug: Glossary/Cryptographic_hash_function tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Cryptographic_hash_function +original_slug: Glossaire/Fonction_de_hachage_cryptographique ---

Une fonction de hachage cryptographique est une primitive {{glossary("cryptographie", "cryptographique")}} qui transforme un message de taille arbitraire en un message de taille fixe, appelé un {{glossary("digest","condensé")}}. Les fonctions de hachage cryptographiques sont employées pour l'authentification, les {{Glossary("Digital signature", "signatures numériques")}} et les {{Glossary("HMAC", "codes d'authentification de messages")}}.

diff --git a/files/fr/glossary/cryptography/index.html b/files/fr/glossary/cryptography/index.html index 6b7c78ae56..ccaa76023f 100644 --- a/files/fr/glossary/cryptography/index.html +++ b/files/fr/glossary/cryptography/index.html @@ -1,12 +1,13 @@ --- title: Cryptographie -slug: Glossaire/Cryptographie +slug: Glossary/Cryptography tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Cryptography +original_slug: Glossaire/Cryptographie ---

La cryptographie, ou cryptologie, est la science qui étudie comment coder et transmettre des messages de manière sécurisée. La cryptographie conçoit et étudie des algorithmes (utilisés pour coder et décoder des messages dans un environnement non sûr) et leurs applications. En plus de la confidentialité des données, la cryptographie s'attaque aussi à l'identification, l'authentification, la non-répudiation, et l'intégrité des données. Par conséquent, elle étudie également l'usage des méthodes cryptographiques dans ce contexte, les cryptosystèmes.

diff --git a/files/fr/glossary/csp/index.html b/files/fr/glossary/csp/index.html index 45a154a033..330737eddd 100644 --- a/files/fr/glossary/csp/index.html +++ b/files/fr/glossary/csp/index.html @@ -1,12 +1,13 @@ --- title: CSP -slug: Glossaire/CSP +slug: Glossary/CSP tags: - Glossaire - HTTP - Infrastructure - Sécurité translation_of: Glossary/CSP +original_slug: Glossaire/CSP ---

Un CSP (Content Security Policy) est utilisé pour détecter et restreindre certains types d'attaques visant des sites web comme les failles {{Glossary("Cross-site scripting")}} et les injections de données.

diff --git a/files/fr/glossary/csrf/index.html b/files/fr/glossary/csrf/index.html index d04d5207e1..6a4cb92a4d 100644 --- a/files/fr/glossary/csrf/index.html +++ b/files/fr/glossary/csrf/index.html @@ -1,10 +1,11 @@ --- title: CSRF -slug: Glossaire/CSRF +slug: Glossary/CSRF tags: - Glossaire - Sécurité translation_of: Glossary/CSRF +original_slug: Glossaire/CSRF ---

CSRF (Cross-Site Request Forgery) est une attaque qui usurpe l'identité d'un utilisateur de confiance et envoie des commandes non désirées sur un site web. Cela peut être réalisé, par exemple, en ajoutant des paramètres malveillants dans une {{glossary("URL")}} associée à un lien qui prétend aller quelque part ailleurs.

diff --git a/files/fr/glossary/css/index.html b/files/fr/glossary/css/index.html index 1b7bd31838..acae1084e6 100644 --- a/files/fr/glossary/css/index.html +++ b/files/fr/glossary/css/index.html @@ -1,13 +1,14 @@ --- title: CSS -slug: Glossaire/CSS +slug: Glossary/CSS tags: - CSS - Encodage - Glossaire - Web - - 'l10n:priority' + - l10n:priority translation_of: Glossary/CSS +original_slug: Glossaire/CSS ---

CSS (Cascading Style Sheets ou Feuilles de style en cascade en français) est un langage déclaratif utilisé pour décrire la présentation de pages web dans le {{glossary("Browser","navigateur")}}. Le navigateur applique les déclarations de style CSS aux éléments concernés pour les mettre en forme. Une déclaration de style contient des propriétés et leurs valeurs et détermine l'apparence d'un ou plusieurs éléments de la page.

diff --git a/files/fr/glossary/css_pixel/index.html b/files/fr/glossary/css_pixel/index.html index 26c52eb7a8..af18974347 100644 --- a/files/fr/glossary/css_pixel/index.html +++ b/files/fr/glossary/css_pixel/index.html @@ -1,6 +1,6 @@ --- title: Pixel CSS -slug: Glossaire/Pixel_CSS +slug: Glossary/CSS_pixel tags: - CSS - Glossaire @@ -12,6 +12,7 @@ tags: - taille - unité translation_of: Glossary/CSS_pixel +original_slug: Glossaire/Pixel_CSS ---

Le pixel CSS—désigné dans {{Glossary("CSS")}} avec le suffixe px—est une unité de longueur qui correspond approximativement à la largeur ou à la hauteur d'un point unique qui peut être vu confortablement par l'œil humain sans effort mais par ailleurs aussi petit que possible. Par définition, il s'agit de la taille physique d'un seul pixel à une densité de pixels de 96 DPI, situé à une longueur de bras des yeux du spectateur.

diff --git a/files/fr/glossary/css_preprocessor/index.html b/files/fr/glossary/css_preprocessor/index.html index bf3a222025..6007c8c8f7 100644 --- a/files/fr/glossary/css_preprocessor/index.html +++ b/files/fr/glossary/css_preprocessor/index.html @@ -1,10 +1,11 @@ --- title: Préprocesseur CSS -slug: Glossaire/preprocesseur_CSS +slug: Glossary/CSS_preprocessor tags: - CSS - Glossaire translation_of: Glossary/CSS_preprocessor +original_slug: Glossaire/preprocesseur_CSS ---

Un préprocesseur CSS est un programme  qui vous permet de générer des {{Glossary("CSS")}} à partir d'un unique préprocesseur propriétaire {{Glossary("Syntax")}}. Il y a de nombreux préprocesseurs CSS au choix, mais la plupart des préprocesseurs CSS ajoutent quelques fonctionnalités qui n'existent pas en CSS pur, telles que {{Glossary("Variable","variable")}}, mixin, sélecteur d'imbrication, etc. Ces fonctionnalités rendent la structure CSS plus lisible et plus facile à maintenir.

diff --git a/files/fr/glossary/css_selector/index.html b/files/fr/glossary/css_selector/index.html index ef01f56000..ed038c9715 100644 --- a/files/fr/glossary/css_selector/index.html +++ b/files/fr/glossary/css_selector/index.html @@ -1,6 +1,6 @@ --- title: Sélecteur CSS -slug: Glossaire/Sélecteur_CSS +slug: Glossary/CSS_Selector tags: - CSS - Glossaire @@ -9,6 +9,7 @@ tags: - Sélecteur - Sélecteur CSS translation_of: Glossary/CSS_Selector +original_slug: Glossaire/Sélecteur_CSS ---

Un sélecteur CSS est la partie de la règle CSS qui désigne les éléments d'un document concernés par la règle. Les éléments correspondants auront le style spécifié par la règle qui leur est appliqué.

diff --git a/files/fr/glossary/data_structure/index.html b/files/fr/glossary/data_structure/index.html index 3aef43bb8e..7a3fd34780 100644 --- a/files/fr/glossary/data_structure/index.html +++ b/files/fr/glossary/data_structure/index.html @@ -1,9 +1,10 @@ --- title: Structure de données -slug: Glossaire/Structure_de_données +slug: Glossary/Data_structure tags: - Structure de données translation_of: Glossary/Data_structure +original_slug: Glossaire/Structure_de_données ---

Une structure de données est une façon particulière d'organiser des données afin de pouvoir les utiliser efficacement.

diff --git a/files/fr/glossary/decryption/index.html b/files/fr/glossary/decryption/index.html index 8a66a43dc3..5e85be057c 100644 --- a/files/fr/glossary/decryption/index.html +++ b/files/fr/glossary/decryption/index.html @@ -1,12 +1,13 @@ --- title: Déchiffrement -slug: Glossaire/Déchiffrement +slug: Glossary/Decryption tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Decryption +original_slug: Glossaire/Déchiffrement ---

En {{glossary("Cryptography","cryptographie")}}, le déchiffrement est la conversion d'un {{glossary("ciphertext","cryptogramme")}} en {{glossary("cleartexte","texte brut")}}.

diff --git a/files/fr/glossary/delta/index.html b/files/fr/glossary/delta/index.html index 1493beb1b2..b786f69c93 100644 --- a/files/fr/glossary/delta/index.html +++ b/files/fr/glossary/delta/index.html @@ -1,12 +1,13 @@ --- title: Delta -slug: Glossaire/Delta +slug: Glossary/Delta tags: - Delta - Glossaire - Valeur - difference translation_of: Glossary/Delta +original_slug: Glossaire/Delta ---

Le terme delta fait référence à la différence entre deux valeurs ou états. Le nom provient de la lettre grecque Δ (delta), qui équivaut à la lettre D dans l'alphabet romain. Delta se réfère simplement à l'utilisation de la lettre Δ comme raccourci pour la différence.

diff --git a/files/fr/glossary/denial_of_service/index.html b/files/fr/glossary/denial_of_service/index.html index 5378ca0c6a..acda2802a0 100644 --- a/files/fr/glossary/denial_of_service/index.html +++ b/files/fr/glossary/denial_of_service/index.html @@ -1,6 +1,6 @@ --- title: Déni de Service -slug: Glossaire/Déni_de_Service +slug: Glossary/Denial_of_Service tags: - Attaque - Déni de Service @@ -8,5 +8,6 @@ tags: - Intro - Sécurité translation_of: Glossary/Denial_of_Service +original_slug: Glossaire/Déni_de_Service ---

{{page("/fr/docs/Glossaire/Attaque_DOS")}}

diff --git a/files/fr/glossary/descriptor_(css)/index.html b/files/fr/glossary/descriptor_(css)/index.html index eea65e6d7e..ed42628fdc 100644 --- a/files/fr/glossary/descriptor_(css)/index.html +++ b/files/fr/glossary/descriptor_(css)/index.html @@ -1,11 +1,12 @@ --- title: Descripteur (CSS) -slug: Glossaire/Descripteur_(CSS) +slug: Glossary/Descriptor_(CSS) tags: - CSS - Encodage - Glossaire translation_of: Glossary/Descriptor_(CSS) +original_slug: Glossaire/Descripteur_(CSS) ---
diff --git a/files/fr/glossary/deserialization/index.html b/files/fr/glossary/deserialization/index.html index 5169d8bafe..8904d03acc 100644 --- a/files/fr/glossary/deserialization/index.html +++ b/files/fr/glossary/deserialization/index.html @@ -1,11 +1,12 @@ --- title: Désérialisation -slug: Glossaire/Désérialisation +slug: Glossary/Deserialization tags: - Désérialisation - Glossaire - JavaScript translation_of: Glossary/Deserialization +original_slug: Glossaire/Désérialisation ---

Le processus par lequel un format de niveau inférieur (par exemple, qui a été transféré sur un réseau ou stocké dans un magasin de données) est traduit en un objet lisible ou une autre structure de données.

diff --git a/files/fr/glossary/developer_tools/index.html b/files/fr/glossary/developer_tools/index.html index de78c17a7e..5a80203e28 100644 --- a/files/fr/glossary/developer_tools/index.html +++ b/files/fr/glossary/developer_tools/index.html @@ -1,12 +1,13 @@ --- title: Outils de développement -slug: Glossaire/Developer_Tools +slug: Glossary/Developer_Tools tags: - Encodage - Glossaire - débogage - outils de développement translation_of: Glossary/Developer_Tools +original_slug: Glossaire/Developer_Tools ---

Les outils de développement sont des programmes qui permettent à un développeur de créer, tester et {{Glossary("debug","déboguer")}} un logiciel.

diff --git a/files/fr/glossary/dhtml/index.html b/files/fr/glossary/dhtml/index.html index 5fd5d90fee..1a147647fb 100644 --- a/files/fr/glossary/dhtml/index.html +++ b/files/fr/glossary/dhtml/index.html @@ -1,12 +1,13 @@ --- title: DHTML -slug: DHTML +slug: Glossary/DHTML tags: - DHTML - Encodage - Glossaire - HTML translation_of: Glossary/DHTML +original_slug: DHTML ---
DHTML est une abréviation de « dynamic {{glossary("HTML")}})  » (HTML dynamique). Le terme DHTML fait généralement référence à des pages Web interactives qui ne sont pas animées par des plugins tels que {{Glossary("Adobe Flash","Flash")}} ou {{Glossary("Java")}}. Il combine les fonctionnalités des {{Glossary("HTML")}} , {{Glossary("CSS")}} , du {{Glossary("DOM")}} et {{Glossary("JavaScript")}}.
diff --git a/files/fr/glossary/digest/index.html b/files/fr/glossary/digest/index.html index aa38f171cb..bae4224963 100644 --- a/files/fr/glossary/digest/index.html +++ b/files/fr/glossary/digest/index.html @@ -1,12 +1,13 @@ --- title: Condensé -slug: Glossaire/Condensat +slug: Glossary/Digest tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Digest +original_slug: Glossaire/Condensat ---

Un condensé (digest) est une petite valeur générée par une {{glossary("hash","fonction de hachage")}} à partir d'un message complet. Dans l'idéal, un condensé est rapide à calculer, non réversible et imprédictible, et par conséquent indique si quelqu'un a falsifié un message donné.

diff --git a/files/fr/glossary/digital_certificate/index.html b/files/fr/glossary/digital_certificate/index.html index 836a2aece8..9477cf2878 100644 --- a/files/fr/glossary/digital_certificate/index.html +++ b/files/fr/glossary/digital_certificate/index.html @@ -1,11 +1,12 @@ --- title: Certificat numérique -slug: Glossaire/Certificat_numérique +slug: Glossary/Digital_certificate tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Digital_certificate +original_slug: Glossaire/Certificat_numérique ---

Un certificat numérique est un fichier de données qui associe une {{Glossary("Key","clé cryptographique")}} publiquement connue à une organisation. Il contient des informations concernant celle-ci, telles que le nom usuel (par exemple mozilla.org), l'unité d'organisation (par exemple Mozilla Corporation) et sa situation géographique (par exemple Mountain View). Les certificats numériques sont le plus souvent signés par une {{Glossary("certificate authority","autorité de certification")}}, attestant leur authenticité.

diff --git a/files/fr/glossary/distributed_denial_of_service/index.html b/files/fr/glossary/distributed_denial_of_service/index.html index 1434becf4c..f2cc8b75f4 100644 --- a/files/fr/glossary/distributed_denial_of_service/index.html +++ b/files/fr/glossary/distributed_denial_of_service/index.html @@ -1,12 +1,13 @@ --- title: Déni de service distribué -slug: Glossaire/Déni_de_service_distribué +slug: Glossary/Distributed_Denial_of_Service tags: - Attaques - Déni de Service - Glossaire - Sécurité translation_of: Glossary/Distributed_Denial_of_Service +original_slug: Glossaire/Déni_de_service_distribué ---

Un déni de service distribué (DDoS, Distributed Denial-of-Service) est une attaque dans laquelle de nombreux systèmes sont compromis et réunis pour attaquer une seule cible, afin de submerger les ressources du serveur et de bloquer les utilisateurs légitimes.

diff --git a/files/fr/glossary/dmz/index.html b/files/fr/glossary/dmz/index.html index 8861a2ba61..e7fbae7854 100644 --- a/files/fr/glossary/dmz/index.html +++ b/files/fr/glossary/dmz/index.html @@ -1,11 +1,12 @@ --- title: DMZ -slug: Glossaire/DMZ +slug: Glossary/DMZ tags: - Glossaire - Réseau - Sécurité translation_of: Glossary/DMZ +original_slug: Glossaire/DMZ ---

Une DMZ est un moyen de fournir une interface isolée et sécurisée entre un réseau interne (d'entreprise ou privé) et le monde extérieur non fiable, généralement l'Internet. Elle expose uniquement certains points de terminaison définis, tout en refusant l'accès au réseau interne aux {{Glossary('node/networking','noeuds externes')}}.

diff --git a/files/fr/glossary/dns/index.html b/files/fr/glossary/dns/index.html index 99897c1af2..551cba7f2e 100644 --- a/files/fr/glossary/dns/index.html +++ b/files/fr/glossary/dns/index.html @@ -1,12 +1,13 @@ --- title: DNS -slug: Glossaire/DNS +slug: Glossary/DNS tags: - DNS - Glossaire - Infrastructure - Nom de domaine translation_of: Glossary/DNS +original_slug: Glossaire/DNS ---

DNS (domain name system) transforme les noms de domaines en adresses IP nécessaires à la mise en relation avec un service sur Internet ou un réseau privé.

diff --git a/files/fr/glossary/doctype/index.html b/files/fr/glossary/doctype/index.html index 738e1e1748..f4bc2662a3 100644 --- a/files/fr/glossary/doctype/index.html +++ b/files/fr/glossary/doctype/index.html @@ -1,6 +1,6 @@ --- title: Doctype -slug: Glossaire/Doctype +slug: Glossary/Doctype tags: - DOCTYPE - Encodage @@ -9,6 +9,7 @@ tags: - Introduction - Navigateur translation_of: Glossary/Doctype +original_slug: Glossaire/Doctype ---

En {{Glossary("HTML")}}, le doctype est le préambule "<! DOCTYPE html>" requis en haut de tous les documents. Son seul but est d'empêcher un {{Glossary("Browser","navigateur")}} de passer en soi-disant “quirks mode” lors du rendu d'un document ;  c'est-à-dire que le doctype "<!DOCTYPE html>" garantit que le navigateur fait de son mieux pour suivre les spécifications pertinentes, plutôt que d'utiliser un mode de rendu différent incompatible avec certaines spécifications.

diff --git a/files/fr/glossary/document_directive/index.html b/files/fr/glossary/document_directive/index.html index d1950f7901..b678b317cb 100644 --- a/files/fr/glossary/document_directive/index.html +++ b/files/fr/glossary/document_directive/index.html @@ -1,11 +1,12 @@ --- title: Directive de document -slug: Glossaire/Document_directive +slug: Glossary/Document_directive tags: - CSP - Glossaire - Sécurité translation_of: Glossary/Document_directive +original_slug: Glossaire/Document_directive ---

Les directives de document {{Glossary("CSP")}} sont utilisées dans un en-tête de {{HTTPHeader("Content-Security-Policy","politique de sécurité de contenu")}} et régissent les propriétés d'un document ou l'environnement des  "worker"  auxquels la politique s'applique.

diff --git a/files/fr/glossary/document_environment/index.html b/files/fr/glossary/document_environment/index.html index 41dced204e..3a37a0a108 100644 --- a/files/fr/glossary/document_environment/index.html +++ b/files/fr/glossary/document_environment/index.html @@ -1,12 +1,13 @@ --- title: Environnement de document -slug: Glossaire/Environnement_de_document +slug: Glossary/document_environment tags: - Document - Environnement - Glossaire - JavaScript translation_of: Glossary/document_environment +original_slug: Glossaire/Environnement_de_document ---

Lorsque l'environnement global JavaScript est une fenêtre ou un cadre iframe, il s'appelle un environnement de document. Un environnement global est un environnement qui n'a pas d'environnement extérieur.

diff --git a/files/fr/glossary/dom/index.html b/files/fr/glossary/dom/index.html index d0438a2de1..221a930fa2 100644 --- a/files/fr/glossary/dom/index.html +++ b/files/fr/glossary/dom/index.html @@ -1,11 +1,12 @@ --- title: DOM -slug: Glossaire/DOM +slug: Glossary/DOM tags: - DOM - Encodage - Glossaire translation_of: Glossary/DOM +original_slug: Glossaire/DOM ---

Le DOM (Document Object Model) est une {{glossary("API")}} qui réprésente et interagit avec tous types de documents {{glossary("HTML")}} ou {{glossary("XML")}}. Le DOM est un modèle de document chargé dans le {{glossary("Browser","navigateur")}}. La représentation du document est un arbre nodal. Chaque nœud représente une partie du document (par exemple, un {{Glossary("Element","élément")}}, une chaîne de caractères ou un commentaire).

diff --git a/files/fr/glossary/domain/index.html b/files/fr/glossary/domain/index.html index c629c4de95..c24da6b38a 100644 --- a/files/fr/glossary/domain/index.html +++ b/files/fr/glossary/domain/index.html @@ -1,12 +1,13 @@ --- title: Domaine -slug: Glossaire/Domaine +slug: Glossary/Domain tags: - Domaine - Infrastructure - Navigateur - Réseau translation_of: Glossary/Domain +original_slug: Glossaire/Domaine ---

Un domaine fait partie d'un réseau informatique au sein duquel une entité contrôle les ressources de traitement de l'information, par exemple un site web.

diff --git a/files/fr/glossary/domain_name/index.html b/files/fr/glossary/domain_name/index.html index 1f78cfbd27..256f4a46f4 100644 --- a/files/fr/glossary/domain_name/index.html +++ b/files/fr/glossary/domain_name/index.html @@ -1,12 +1,13 @@ --- title: Nom de domaine -slug: Glossaire/Nom_de_domaine +slug: Glossary/Domain_name tags: - Glossaire - Nom de domaine - WebMechanics - protocole translation_of: Glossary/Domain_name +original_slug: Glossaire/Nom_de_domaine ---

Un nom de domaine est l'adresse d'un site web sur l'{{Glossary("Internet")}}. Les noms de domaine sont utilisés dans les {{Glossary("URL","URLs")}} pour identifier le serveur qui héberge une page web particulière. Le nom de domaine consiste en séquence hiérarchique de noms (labels) séparés par des points et terminée par une {{glossary("TLD","extension")}}.

diff --git a/files/fr/glossary/dominator/index.html b/files/fr/glossary/dominator/index.html index 77ce7eab6f..a4d8e236a4 100644 --- a/files/fr/glossary/dominator/index.html +++ b/files/fr/glossary/dominator/index.html @@ -1,10 +1,11 @@ --- title: Dominant -slug: Glossaire/Dominant +slug: Glossary/Dominator tags: - Encodage - Glossaire translation_of: Glossary/Dominator +original_slug: Glossaire/Dominant ---

En théorie des graphes, le nœud A domine le nœud B si tous les chemins du nœud racine vers B passent par A.

diff --git a/files/fr/glossary/dos_attack/index.html b/files/fr/glossary/dos_attack/index.html index 0b4e057c27..9bfbbed2df 100644 --- a/files/fr/glossary/dos_attack/index.html +++ b/files/fr/glossary/dos_attack/index.html @@ -1,10 +1,11 @@ --- title: Attaque DoS -slug: Glossaire/Attaque_DOS +slug: Glossary/DOS_attack tags: - Glossaire - Sécurité translation_of: Glossary/DOS_attack +original_slug: Glossaire/Attaque_DOS ---

Le déni de service ou DoS (Denial of Service) est une attaque réseau qui empêche l'utilisation légitime des ressources d'un {{glossary("serveur")}} en surchargeant celui-ci de requêtes.

diff --git a/files/fr/glossary/dtmf/index.html b/files/fr/glossary/dtmf/index.html index 85dc058491..b56954cf5e 100644 --- a/files/fr/glossary/dtmf/index.html +++ b/files/fr/glossary/dtmf/index.html @@ -1,11 +1,12 @@ --- title: DTMF (Signalisation Dual-Tone Multi-Frequency) -slug: Glossaire/DTMF +slug: Glossary/DTMF tags: - Audio - DTMF - Glossaire translation_of: Glossary/DTMF +original_slug: Glossaire/DTMF ---

La signalisation DTMF (Dual-Tone Multi-Frequency) est un système par lequel des tonalités audibles sont utilisées pour représenter les boutons sur un clavier. Souvent appelé aux Etats-Unis "Touch-Tone" (après la marque Touch-Tone utilisée lors du passage de la numérotation par impulsions au DTMF), DTMF permet de signaler les chiffres 0-9 ainsi que les lettres "A" à "D" et les symboles "#" et "*". Peu de claviers téléphoniques comprennent les lettres, qui sont généralement utilisées pour la signalisation de contrôle par le réseau téléphonique.

diff --git a/files/fr/glossary/dynamic_programming_language/index.html b/files/fr/glossary/dynamic_programming_language/index.html index 58c5c5d185..2168ce1a37 100644 --- a/files/fr/glossary/dynamic_programming_language/index.html +++ b/files/fr/glossary/dynamic_programming_language/index.html @@ -1,12 +1,13 @@ --- title: Langage de programmation dynamique -slug: Glossaire/Langage_de_programmation_dynamique +slug: Glossary/Dynamic_programming_language tags: - Encodage - Glossaire - Langages - Programmation translation_of: Glossary/Dynamic_programming_language +original_slug: Glossaire/Langage_de_programmation_dynamique ---

Un langage de programmation dynamique est un langage de programmation dans lequel les opérations effectuées au moment de la compilation peuvent être réalisées au moment de l'exécution. Par exemple, en JavaScript, il est possible de modifier le type d'une variable ou d'ajouter de nouvelles propriétés ou méthodes à un objet pendant l'exécution du programme.

diff --git a/files/fr/glossary/dynamic_typing/index.html b/files/fr/glossary/dynamic_typing/index.html index e623406f41..6705a00c6e 100644 --- a/files/fr/glossary/dynamic_typing/index.html +++ b/files/fr/glossary/dynamic_typing/index.html @@ -1,12 +1,13 @@ --- title: Typage dynamique -slug: Glossaire/typage_dynamique +slug: Glossary/Dynamic_typing tags: - Encodage - Glossaire - Langage - Programmation translation_of: Glossary/Dynamic_typing +original_slug: Glossaire/typage_dynamique ---

Les langages à typage dynamique sont ceux (comme {{glossary("JavaScript")}}) dont l'interpréteur attribue aux {{glossary("variable","variables")}} un {{glossary("type")}} lors de l'exécution en fonction de la {{glossary("Value","valeur")}} qu'elles possèdent à ce moment.

diff --git a/files/fr/glossary/ecma/index.html b/files/fr/glossary/ecma/index.html index 67601b4a7d..cbd7a0df06 100644 --- a/files/fr/glossary/ecma/index.html +++ b/files/fr/glossary/ecma/index.html @@ -1,11 +1,12 @@ --- title: ECMA -slug: Glossaire/ECMA +slug: Glossary/ECMA tags: - Glossaire - JavaScript - Mécanismes web translation_of: Glossary/ECMA +original_slug: Glossaire/ECMA ---

Ecma International (European Computer Manufacturers Association) est une organisation à but non lucratif qui développe des standards sur le matériel informatique, les communications, et les langages de programmation.

diff --git a/files/fr/glossary/ecmascript/index.html b/files/fr/glossary/ecmascript/index.html index 15b1b4b872..91a6268038 100644 --- a/files/fr/glossary/ecmascript/index.html +++ b/files/fr/glossary/ecmascript/index.html @@ -1,10 +1,11 @@ --- title: ECMAScript -slug: Glossaire/ECMAScript +slug: Glossary/ECMAScript tags: - Glossaire - WebMechanics translation_of: Glossary/ECMAScript +original_slug: Glossaire/ECMAScript ---

ECMAScript est le langage de script sur lequel {{glossary("JavaScript")}} est basé. Ecma International a pour tâche la standardisation d'ECMAScript.

diff --git a/files/fr/glossary/element/index.html b/files/fr/glossary/element/index.html index 4d196f600e..54a301da5e 100644 --- a/files/fr/glossary/element/index.html +++ b/files/fr/glossary/element/index.html @@ -1,10 +1,11 @@ --- title: Élément -slug: Glossaire/Élément +slug: Glossary/Element tags: - Glossaire - HTML translation_of: Glossary/Element +original_slug: Glossaire/Élément ---

Un élément est une partie d'une page web. En {{glossary("XML")}} et {{glossary("HTML")}}, un élément peut contenir une donnée, un morceau de texte ou une image, ou même parfois ne rien contenir du tout. Un élément est typiquement constitué d'une balise ouvrante ayant quelques attributs, du contenu textuel et d'une balise fermante.
Example: in <p class="nice">Hello world!</p>, '<p class="nice">' is an opening tag, 'class="nice"' is an attribute and its value, 'Hello world!' is enclosed text content, and '</p>' is a closing tag.

diff --git a/files/fr/glossary/empty_element/index.html b/files/fr/glossary/empty_element/index.html index 1aa6427ae2..a132d0632a 100644 --- a/files/fr/glossary/empty_element/index.html +++ b/files/fr/glossary/empty_element/index.html @@ -1,11 +1,12 @@ --- title: Élément vide -slug: Glossaire/Element_vide +slug: Glossary/Empty_element tags: - Encodage - Glossaire - Intermédiaire translation_of: Glossary/Empty_element +original_slug: Glossaire/Element_vide ---

Un élément vide (empty element en anglais) est un {{Glossary("Element","élément")}} HTML, SVG, ou MathML qui ne peut pas avoir de nœud enfant (que ce soit un autre élément ou du texte).

diff --git a/files/fr/glossary/encapsulation/index.html b/files/fr/glossary/encapsulation/index.html index 629bf76d1e..de36851b6d 100644 --- a/files/fr/glossary/encapsulation/index.html +++ b/files/fr/glossary/encapsulation/index.html @@ -1,10 +1,11 @@ --- title: Encapsulation -slug: Glossaire/Encapsulation +slug: Glossary/Encapsulation tags: - Encodage - Glossaire translation_of: Glossary/Encapsulation +original_slug: Glossaire/Encapsulation ---

L'encapsulation consiste à inclure des données et des {{glossary("Function","fonctions")}} dans un composant (par exemple une {{glossary("Class","classe")}}) et ensuite de contrôler l'accès à celui-ci pour réaliser une "boîte noire" hors de l'{{glossary("Object","objet")}}. De cette façon, un utilisateur de cette classe n'aurait besoin de connaître que son interface (autrement dit, les données et les fonctions exposées en dehors de la classe), et pas son implémentation qui reste donc cachée.

diff --git a/files/fr/glossary/encryption/index.html b/files/fr/glossary/encryption/index.html index 56490019c7..bd796e9200 100644 --- a/files/fr/glossary/encryption/index.html +++ b/files/fr/glossary/encryption/index.html @@ -1,12 +1,13 @@ --- title: Chiffrement -slug: Glossaire/Chiffrement +slug: Glossary/Encryption tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Encryption +original_slug: Glossaire/Chiffrement ---

En {{glossary("cryptography","cryptographie")}}, le chiffrement est la conversion d'un {{glossary("Texte_brut","texte brut")}} en un texte codé ou {{glossary("ciphertext","cryptogramme")}}. Ce dernier est destiné à ne pas pouvoir être lu par les lecteurs qui n'y sont pas autorisés.

diff --git a/files/fr/glossary/endianness/index.html b/files/fr/glossary/endianness/index.html index 7ef388d3b2..3c4bb5ec12 100644 --- a/files/fr/glossary/endianness/index.html +++ b/files/fr/glossary/endianness/index.html @@ -1,11 +1,12 @@ --- title: Endianness -slug: Glossaire/Endianness +slug: Glossary/Endianness tags: - Codage - Encodage - Glossaire translation_of: Glossary/Endianness +original_slug: Glossaire/Endianness ---

"Endian" et "endianness" (ou "ordre des octets") désigne la manière dont les ordinateurs organisent les octets pour constituer des nombres.

diff --git a/files/fr/glossary/engine/index.html b/files/fr/glossary/engine/index.html index 8c8e60d10f..a452d55b83 100644 --- a/files/fr/glossary/engine/index.html +++ b/files/fr/glossary/engine/index.html @@ -1,10 +1,11 @@ --- title: Moteur -slug: Glossaire/Engine +slug: Glossary/Engine tags: - Encodage - Glossaire translation_of: Glossary/Engine +original_slug: Glossaire/Engine ---

Le moteur {{glossary("JavaScript")}} est un interpréteur qui analyse et exécute un programme JavaScript.

diff --git a/files/fr/glossary/entity/index.html b/files/fr/glossary/entity/index.html index ddc1d102e0..d6effccae9 100644 --- a/files/fr/glossary/entity/index.html +++ b/files/fr/glossary/entity/index.html @@ -1,12 +1,13 @@ --- title: Entité -slug: Glossaire/Entity +slug: Glossary/Entity tags: - Composition - Encodage - Glossaire - HTML translation_of: Glossary/Entity +original_slug: Glossaire/Entity ---

Une entité {{glossary("HTML")}} est une chaîne de texte (string) qui commence par (&) et se termine avec (;). Les entités sont fréquemment utilisées pour afficher des caractères réservés (qui seraient autrement interprétés comme du code HTML) et des caractères invisibles (comme des espaces insécables). Vous pouvez également les utiliser à la place d'autres caractères difficiles à taper avec un clavier standard.

diff --git a/files/fr/glossary/entity_header/index.html b/files/fr/glossary/entity_header/index.html index 1e5ff004a5..7cd8b693d5 100644 --- a/files/fr/glossary/entity_header/index.html +++ b/files/fr/glossary/entity_header/index.html @@ -1,10 +1,11 @@ --- title: En-tête d'entité -slug: Glossaire/En-tête_entité +slug: Glossary/Entity_header tags: - Glossaire - Mécanismes web translation_of: Glossary/Entity_header +original_slug: Glossaire/En-tête_entité ---

Un en-tête d'entité est un {{glossary("header","en-tête HTTP")}} décrivant le contenu du corps du message. Les en-têtes d'entité sont utilisés à la fois dans les requêtes et les réponses HTTP. Des en-têtes tels que {{HTTPHeader("Content length")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Encoding")}} sont des en-têtes d'entité.

diff --git a/files/fr/glossary/event/index.html b/files/fr/glossary/event/index.html index 7d0f247c38..569ad51e51 100644 --- a/files/fr/glossary/event/index.html +++ b/files/fr/glossary/event/index.html @@ -1,12 +1,13 @@ --- title: Évènement -slug: Glossaire/évènement +slug: Glossary/event tags: - DOM - Encodage - Glossaire - évènements translation_of: Glossary/event +original_slug: Glossaire/évènement ---

Les évèhements sont des éléments actifs générés par les éléments DOM qui peuvent être manipulés par un code Javascript.

diff --git a/files/fr/glossary/exception/index.html b/files/fr/glossary/exception/index.html index 999619693c..edd353b337 100644 --- a/files/fr/glossary/exception/index.html +++ b/files/fr/glossary/exception/index.html @@ -1,12 +1,13 @@ --- title: Exception -slug: Glossaire/Exception +slug: Glossary/Exception tags: - Débutants - Encodage - Erreurs - Glossaire translation_of: Glossary/Exception +original_slug: Glossaire/Exception ---

Une exception est un état qui interrompt l'exécution normale du code. En JavaScript, les {{glossary("syntax error", "erreurs de syntaxe")}} sont une source commune d'exceptions.

diff --git a/files/fr/glossary/expando/index.html b/files/fr/glossary/expando/index.html index 6f4dc4119b..ec6f5d1a0f 100644 --- a/files/fr/glossary/expando/index.html +++ b/files/fr/glossary/expando/index.html @@ -1,6 +1,6 @@ --- title: Expando -slug: Glossaire/Expando +slug: Glossary/Expando tags: - Encodage - Glossaire @@ -8,6 +8,7 @@ tags: - Référence(2) - expando translation_of: Glossary/Expando +original_slug: Glossaire/Expando ---

Les propriétés expando sont des propriétés ajoutées aux nœuds {{glossary("DOM")}} en {{glossary("JavaScript")}} mais qui ne figurent pas dans la spécification DOM des {{glossary("Object","objets")}} :

diff --git a/files/fr/glossary/falsy/index.html b/files/fr/glossary/falsy/index.html index fdb5058248..063db74977 100644 --- a/files/fr/glossary/falsy/index.html +++ b/files/fr/glossary/falsy/index.html @@ -1,6 +1,6 @@ --- title: Falsy (Valeurs de type fausses) -slug: Glossaire/Falsy +slug: Glossary/Falsy tags: - Booléen - Encodage @@ -8,6 +8,7 @@ tags: - Glossaire - Valeurs fausses translation_of: Glossary/Falsy +original_slug: Glossaire/Falsy ---

Les valeurs fausses (falsy) sont des valeurs évaluées comme fausses quand elles sont évaluées dans un contexte {{Glossary("Boolean","booléen")}}.

diff --git a/files/fr/glossary/favicon/index.html b/files/fr/glossary/favicon/index.html index 5cc417bffa..f5a605604f 100644 --- a/files/fr/glossary/favicon/index.html +++ b/files/fr/glossary/favicon/index.html @@ -1,12 +1,13 @@ --- title: Favicon -slug: Glossaire/Favicon +slug: Glossary/Favicon tags: - Glossaire - Intro - agent utilisateur - favicon translation_of: Glossary/Favicon +original_slug: Glossaire/Favicon ---

Un favicon (icône de favori) est une petite icône incluse avec un site Web, qui s'affiche à des endroits tels que la barre d'addresse du navigateur, les onglets de page et le menu des signets. Notez cependant que la plupart des navigateurs modernes ont remplacé le favicon de la barre d'adresse par une image indiquant si le site Web utilise ou non {{Glossary("https","HTTPS")}}.

diff --git a/files/fr/glossary/fetch_directive/index.html b/files/fr/glossary/fetch_directive/index.html index e48fdd3273..0e0906f6a3 100644 --- a/files/fr/glossary/fetch_directive/index.html +++ b/files/fr/glossary/fetch_directive/index.html @@ -1,11 +1,12 @@ --- title: Directive de récupération -slug: Glossaire/Directive_de_récupération +slug: Glossary/Fetch_directive tags: - CSP - Glossaire - Sécurité translation_of: Glossary/Fetch_directive +original_slug: Glossaire/Directive_de_récupération ---

Les directives de récupération {{Glossary("CSP")}} sont utilisées dans un en-tête de {{HTTPHeader("Content-Security-Policy","politique de sécurité de contenu")}} et contrôlent les emplacements à partir desquels certaines ressources peuvent être chargées. Par exemple, {{CSP("script-src")}} permet aux développeurs d'autoriser l'exécution de sources de script sur une page, tandis que {{CSP("font-src")}} contrôle les sources des polices de caractères web.

diff --git a/files/fr/glossary/firefox_os/index.html b/files/fr/glossary/firefox_os/index.html index 141b9c9eb2..4e6523be21 100644 --- a/files/fr/glossary/firefox_os/index.html +++ b/files/fr/glossary/firefox_os/index.html @@ -1,12 +1,13 @@ --- title: Firefox OS -slug: Glossaire/Firefox_OS +slug: Glossary/Firefox_OS tags: - Firefox OS - Glossaire - Infrastructure - Introduction translation_of: Glossary/Firefox_OS +original_slug: Glossaire/Firefox_OS ---

Résumé

diff --git a/files/fr/glossary/firewall/index.html b/files/fr/glossary/firewall/index.html index c5d6a403b4..515fbceb54 100644 --- a/files/fr/glossary/firewall/index.html +++ b/files/fr/glossary/firewall/index.html @@ -1,12 +1,13 @@ --- title: pare-feu -slug: Glossaire/pare-feu +slug: Glossary/firewall tags: - DDoS - Glossaire - Pare-feu - Sécurité translation_of: Glossary/firewall +original_slug: Glossaire/pare-feu ---

Un pare-feu est un système qui filtre les connexions réseaux. Il peut aussi bien les autoriser à passer que les bloquer en fonction de certaines règles spécifiques. Par exemple, il peut bloquer une connexion entrante sur un certain port ou des connexions sortantes vers une certaine adresse IP.

diff --git a/files/fr/glossary/first-class_function/index.html b/files/fr/glossary/first-class_function/index.html index 3b6b8eeafc..7c2c1e18af 100644 --- a/files/fr/glossary/first-class_function/index.html +++ b/files/fr/glossary/first-class_function/index.html @@ -1,10 +1,11 @@ --- title: Fonction de première classe -slug: Glossaire/Fonction_de_première_classe +slug: Glossary/First-class_Function tags: - Fonctions - Glossaire translation_of: Glossary/First-class_Function +original_slug: Glossaire/Fonction_de_première_classe ---

Un langage de programmation est dit avoir des fonctions de première classe lorsque les fonctions dans ce langage sont traitées comme n'importe quelle autre variable. Par exemple, dans un tel langage, une fonction peut être transmise en tant qu'argument à d'autres fonctions, peut être retournée par une autre fonction et peut être affectée en tant que valeur à une variable.

diff --git a/files/fr/glossary/first_contentful_paint/index.html b/files/fr/glossary/first_contentful_paint/index.html index 165702c2cc..e405a651dd 100644 --- a/files/fr/glossary/first_contentful_paint/index.html +++ b/files/fr/glossary/first_contentful_paint/index.html @@ -1,12 +1,13 @@ --- title: First contentful paint -slug: Glossaire/First_contentful_paint +slug: Glossary/First_contentful_paint tags: - Glossaire - Performance - Performance Web - Reference translation_of: Glossary/First_contentful_paint +original_slug: Glossaire/First_contentful_paint ---

First Contentful Paint (FCP) est lorsque le navigateur rend le premier bit de contenu du DOM, fournissant le premier retour à l'utilisateur que la page est en cours de chargement. La question "Est-ce que ça se passe?" est "oui" lorsque la première peinture contentieuse est terminée.

diff --git a/files/fr/glossary/first_meaningful_paint/index.html b/files/fr/glossary/first_meaningful_paint/index.html index 33638d5b3f..f9337dbcf4 100644 --- a/files/fr/glossary/first_meaningful_paint/index.html +++ b/files/fr/glossary/first_meaningful_paint/index.html @@ -1,11 +1,12 @@ --- title: First Meaningful Paint -slug: Glossaire/first_meaningful_paint +slug: Glossary/first_meaningful_paint tags: - Glossaire - Performance Web - Reference translation_of: Glossary/first_meaningful_paint +original_slug: Glossaire/first_meaningful_paint ---

First Meaningful Paint (FMP) est la peinture après laquelle le plus grand changement de mise en page au-dessus du pli s'est produit et les polices Web se sont chargées. C'est quand la réponse à "Est-ce utile?" devient "oui", lors de la première finition significative de la peinture.

diff --git a/files/fr/glossary/flex/index.html b/files/fr/glossary/flex/index.html index e4b4d8b0f8..79751a5bef 100644 --- a/files/fr/glossary/flex/index.html +++ b/files/fr/glossary/flex/index.html @@ -1,11 +1,12 @@ --- title: Flex -slug: Glossaire/Flex +slug: Glossary/Flex tags: - CSS - Flex - Glossaire translation_of: Glossary/Flex +original_slug: Glossaire/Flex ---

flex est une nouvelle valeur ajoutée à la propriété CSS {{cssxref("display")}}. De même qu'inline-flex, elle transforme l'élément auquel elle s'applique en un {{glossary("Flex Container","conteneur flexible")}} et les enfants de l'élément en {{glossary("Flex Item","éléments flexible")}}. Les éléments participent alors à la mise en page flexible, et toutes les propriétés définies dans le module de mise en page de boîte flexible CSS peuvent être appliquées.

diff --git a/files/fr/glossary/flex_container/index.html b/files/fr/glossary/flex_container/index.html index 90496bbcbe..7034ace45c 100644 --- a/files/fr/glossary/flex_container/index.html +++ b/files/fr/glossary/flex_container/index.html @@ -1,11 +1,12 @@ --- title: Conteneur flexible -slug: Glossaire/Flex_Container +slug: Glossary/Flex_Container tags: - CSS - Glossaire - flexbox translation_of: Glossary/Flex_Container +original_slug: Glossaire/Flex_Container ---

Une mise en page {{glossary("flexbox")}} est définie en utilisant les valeurs flex ou inline-flex de la propriété display sur l'élément parent. Cet élément devient alors un conteneur flexible et chacun de ses enfants un {{glossary("flex item","élément flexible")}}.

diff --git a/files/fr/glossary/flex_item/index.html b/files/fr/glossary/flex_item/index.html index de302f41cc..aef3d22841 100644 --- a/files/fr/glossary/flex_item/index.html +++ b/files/fr/glossary/flex_item/index.html @@ -1,11 +1,12 @@ --- title: Éléments flexibles -slug: Glossaire/Flex_Item +slug: Glossary/Flex_Item tags: - CSS - Glossaire - flexbox translation_of: Glossary/Flex_Item +original_slug: Glossaire/Flex_Item ---

Les enfants directs d'un {{glossary("Flex Container","conteneur flexible")}} (éléments définis avec display: flex ou display: inline-flex) deviennent des éléments flexibles (flex items).

diff --git a/files/fr/glossary/flexbox/index.html b/files/fr/glossary/flexbox/index.html index 413b6e24ff..6492537100 100644 --- a/files/fr/glossary/flexbox/index.html +++ b/files/fr/glossary/flexbox/index.html @@ -1,11 +1,12 @@ --- title: Flexbox -slug: Glossaire/Flexbox +slug: Glossary/Flexbox tags: - CSS - Glossaire - flexbox translation_of: Glossary/Flexbox +original_slug: Glossaire/Flexbox ---

Flexbox (boîte flexible) est le nom communément utilisé pour le module de mise en page des boîtes flexibles CSS, un modèle de disposition pour afficher des éléments dans une seule dimension - comme une ligne ou une colonne.

diff --git a/files/fr/glossary/forbidden_header_name/index.html b/files/fr/glossary/forbidden_header_name/index.html index 23deb8be62..e6172c63a4 100644 --- a/files/fr/glossary/forbidden_header_name/index.html +++ b/files/fr/glossary/forbidden_header_name/index.html @@ -1,6 +1,6 @@ --- title: Nom d'en-tête interdit -slug: Glossaire/Forbidden_header_name +slug: Glossary/Forbidden_header_name tags: - En-têtes - Fetch @@ -8,6 +8,7 @@ tags: - HTTP - Interdit translation_of: Glossary/Forbidden_header_name +original_slug: Glossaire/Forbidden_header_name ---

Un nom d'en-tête interdit est un nom d'en-tête HTTP qui ne peut être modifié par programmation, spécifiquement, un nom d'en-tête de requête HTTP (contraste avec {{Glossary("Forbidden response header name","Nom d'en-tête de réponse interdit")}}).

diff --git a/files/fr/glossary/forbidden_response_header_name/index.html b/files/fr/glossary/forbidden_response_header_name/index.html index 45ffe55931..5a2d0c3ccb 100644 --- a/files/fr/glossary/forbidden_response_header_name/index.html +++ b/files/fr/glossary/forbidden_response_header_name/index.html @@ -1,6 +1,6 @@ --- title: Nom d'en-tête de réponse interdit -slug: Glossaire/Forbidden_response_header_name +slug: Glossary/Forbidden_response_header_name tags: - En-têtes - Glossaire @@ -8,6 +8,7 @@ tags: - Interdit - Réponses translation_of: Glossary/Forbidden_response_header_name +original_slug: Glossaire/Forbidden_response_header_name ---

Un nom d'en-tête de réponse interdit est un nom d'en-tête HTTP (`Set-Cookie` ou `Set-Cookie2`) qui ne peuvent être modifiés par programmation.

diff --git a/files/fr/glossary/fork/index.html b/files/fr/glossary/fork/index.html index 948f048582..20c267fc4d 100644 --- a/files/fr/glossary/fork/index.html +++ b/files/fr/glossary/fork/index.html @@ -1,12 +1,13 @@ --- title: Fork -slug: Glossaire/Fork +slug: Glossary/Fork tags: - Fork - Glossaire - Outils - git translation_of: Glossary/Fork +original_slug: Glossaire/Fork ---

Un fork est une copie d’un projet logiciel existant à un moment donné pour permettre à quelque-un d’ajouter ses propres modifications au projet. Si la licence du logiciel original le permet, vous pouvez copier le code pour développer votre propre version de ce logiciel, avec vos propres ajouts, qui sera alors un « fork ».

diff --git a/files/fr/glossary/ftp/index.html b/files/fr/glossary/ftp/index.html index 7b57a97074..4d66b0b008 100644 --- a/files/fr/glossary/ftp/index.html +++ b/files/fr/glossary/ftp/index.html @@ -1,12 +1,13 @@ --- title: FTP -slug: Glossaire/FTP +slug: Glossary/FTP tags: - Encodage - FTP - Glossaire - protocole translation_of: Glossary/FTP +original_slug: Glossaire/FTP ---

FTP (file transfer protocol) est un {{glossary("Protocol","protocole")}} réseau standard utilisé pour transférer des fichiers d'un {{glossary("Host","hôte")}} à un autre par Internet. De plus en plus, cependant, les équipes et les comptes d'hébergement n'autorisent pas le FTP et s'appuient plutôt sur un système de contrôle de version comme Git. Vous le trouverez toujours utilisé sur les anciens comptes d'hébergement, mais il est sûr de dire que FTP n'est plus considéré comme la meilleure pratique.

diff --git a/files/fr/glossary/ftu/index.html b/files/fr/glossary/ftu/index.html index 9a0adc1da0..bcfcb5ac5a 100644 --- a/files/fr/glossary/ftu/index.html +++ b/files/fr/glossary/ftu/index.html @@ -1,6 +1,6 @@ --- title: FTU -slug: Glossaire/FTU +slug: Glossary/FTU tags: - FTU - Firefox OS @@ -9,6 +9,7 @@ tags: - Glossaire - Infrastructure translation_of: Glossary/FTU +original_slug: Glossaire/FTU ---

FTU (First Time Use, ou première utilisation) est l'application qui se charge lorsque vous lancez une version nouvellement installée de {{glossary("Gecko")}} sur un appareil {{glossary("Firefox OS")}}.

diff --git a/files/fr/glossary/function/index.html b/files/fr/glossary/function/index.html index 9669e71ef3..ae80d37e95 100644 --- a/files/fr/glossary/function/index.html +++ b/files/fr/glossary/function/index.html @@ -1,6 +1,6 @@ --- title: Fonction -slug: Glossaire/Fonction +slug: Glossary/Function tags: - Encodage - Fonctions @@ -9,6 +9,7 @@ tags: - Introduction - JavaScript translation_of: Glossary/Function +original_slug: Glossaire/Fonction ---

Une fonction est une portion de code qui peut être appelée par d'autres codes ou par elle-même ou par une {{Glossary("Variable","variable")}} qui se réfère à la fonction. Lorsqu'une fonction est appelée, des {{Glossary("Argument","arguments")}} lui sont généralement donnés en entrée. La fonction peut également retourner une valeur de sortie. En {{glossary("JavaScript")}}, une fonction est aussi un {{glossary("Object","objet")}}.

diff --git a/files/fr/glossary/gaia/index.html b/files/fr/glossary/gaia/index.html index 026f1a0215..48d5de1ecd 100644 --- a/files/fr/glossary/gaia/index.html +++ b/files/fr/glossary/gaia/index.html @@ -1,6 +1,6 @@ --- title: Gaia -slug: Glossaire/Gaia +slug: Glossary/Gaia tags: - Boot2Gecko - Firefox OS @@ -9,6 +9,7 @@ tags: - Infrastructure - Intro translation_of: Glossary/Gaia +original_slug: Glossaire/Gaia ---

Interface utilisateur et suite applicative par défaut de la plate-forme Firefox OS.

diff --git a/files/fr/glossary/garbage_collection/index.html b/files/fr/glossary/garbage_collection/index.html index b859592ace..9fa3663113 100644 --- a/files/fr/glossary/garbage_collection/index.html +++ b/files/fr/glossary/garbage_collection/index.html @@ -1,10 +1,11 @@ --- title: Ramasse-miettes -slug: Glossaire/Ramasse-miettes +slug: Glossary/Garbage_collection tags: - Glossaire - codescripting translation_of: Glossary/Garbage_collection +original_slug: Glossaire/Ramasse-miettes ---

Ramasse-miettes est un terme utilisé en {{Glossary("Computer Programming","programmation informatique")}} pour décrire le processus de recherche et de suppression des {{Glossary("Object", "objets")}} qui ne sont plus {{Glossary("Object reference", "référencés")}} par d'autres objets. En d'autres termes, le ramasse-miettes est le processus de suppression de tous les objets qui ne sont plus utilisés par d'autres objets. Souvent abrégé "GC" (pour Garbage Collection en anglais),  le ramasse-miettes est un élément fondamental du système de la {{Glossary("Memory management","gestion de la mémoire")}} utilisé par {{Glossary("JavaScript")}}.

diff --git a/files/fr/glossary/gecko/index.html b/files/fr/glossary/gecko/index.html index adad87a228..c5e509f9bc 100644 --- a/files/fr/glossary/gecko/index.html +++ b/files/fr/glossary/gecko/index.html @@ -1,6 +1,6 @@ --- title: Gecko -slug: Glossaire/Gecko +slug: Glossary/Gecko tags: - Firefox OS - Gecko @@ -9,6 +9,7 @@ tags: - Intro - Mozilla translation_of: Glossary/Gecko +original_slug: Glossaire/Gecko ---

Gecko est le moteur de rendu développé par le Projet Mozilla et utilisé dans beaucoup d'applications/appareils, dont {{glossary("Mozilla Firefox","Firefox")}} et {{glossary("Firefox OS")}}.

diff --git a/files/fr/glossary/general_header/index.html b/files/fr/glossary/general_header/index.html index 2880101d4c..872ca13258 100644 --- a/files/fr/glossary/general_header/index.html +++ b/files/fr/glossary/general_header/index.html @@ -1,11 +1,12 @@ --- title: En-tête général -slug: Glossaire/General_header +slug: Glossary/General_header tags: - En-têtes - Glossaire - Mécanismes web translation_of: Glossary/General_header +original_slug: Glossaire/General_header ---

Un en-tête général est un {{glossary('Header','en-tête HTTP')}} qui peut être utilisé à la fois pour, une requête ou une réponse, mais ne s'applique au contenu lui-même. Suivant le contexte dans lequel ils sont utilisés, les en-têtes généraux sont à la fois des {{glossary("Response header", "en-tête de réponse")}} ou des {{glossary("request header", "en-têtes de requête")}}. Toutefois, ils ne sont pas des {{glossary("entity header","en-têtes d'entité")}}.

diff --git a/files/fr/glossary/gif/index.html b/files/fr/glossary/gif/index.html index 1a998607a8..9454b24acc 100644 --- a/files/fr/glossary/gif/index.html +++ b/files/fr/glossary/gif/index.html @@ -1,10 +1,11 @@ --- title: GIF -slug: Glossaire/gif +slug: Glossary/gif tags: - Composition - Glossaire translation_of: Glossary/gif +original_slug: Glossaire/gif ---

GIF (Graphics Interchange Format) est un format d'image qui utilise une compression sans perte et peut servir pour des animations. Un GIF peut utiliser jusqu'à 8 bits par pixel avec un maximum de 256 couleurs parmi des nuances sur 24 bits.

diff --git a/files/fr/glossary/gij/index.html b/files/fr/glossary/gij/index.html index 49333e052b..00482f686b 100644 --- a/files/fr/glossary/gij/index.html +++ b/files/fr/glossary/gij/index.html @@ -1,6 +1,6 @@ --- title: GIJ -slug: Glossaire/GIJ +slug: Glossary/GIJ tags: - Automatisation - CodingScripting @@ -8,5 +8,6 @@ tags: - Intégration(2) - tests translation_of: Glossary/GIJ +original_slug: Glossaire/GIJ ---

Tests d'intégration Gaia. Basés sur Marionette et JavaScript. Voir GIJ.

diff --git a/files/fr/glossary/git/index.html b/files/fr/glossary/git/index.html index c193332389..ca976667a6 100644 --- a/files/fr/glossary/git/index.html +++ b/files/fr/glossary/git/index.html @@ -1,11 +1,12 @@ --- title: GIT -slug: Glossaire/GIT +slug: Glossary/Git tags: - Espace collaboratif - Glossaire - git translation_of: Glossary/Git +original_slug: Glossaire/GIT ---

Git est un logiciel libre et distribué de gestion de source code (ou{{Glossary("SCM", "SCM", 1)}}, Source Code Management). Cela permet de faciliter la collaboration sur une base de code avec des équipes de développement séparées. Ce qui le distingue des précédents SCM est sa capacité à faire des opérations basiques (créer une branche, faire un commit etc.) sur votre machine de développement locale sans avoir à changer le dépôt master ou avoir les droits d'écriture dessus.

diff --git a/files/fr/glossary/global_object/index.html b/files/fr/glossary/global_object/index.html index 24ab7b529d..fb36c0dc89 100644 --- a/files/fr/glossary/global_object/index.html +++ b/files/fr/glossary/global_object/index.html @@ -1,11 +1,12 @@ --- title: Objet global -slug: Glossaire/Objet_global +slug: Glossary/Global_object tags: - Encodage - Glossaire - Objets translation_of: Glossary/Global_object +original_slug: Glossaire/Objet_global ---

Un objet global est un {{glossary("Object","objet")}} qui existe toujours dans la {{glossary("Global scope","portée globale")}}.

diff --git a/files/fr/glossary/global_scope/index.html b/files/fr/glossary/global_scope/index.html index bf7f27399d..fde1932d10 100644 --- a/files/fr/glossary/global_scope/index.html +++ b/files/fr/glossary/global_scope/index.html @@ -1,10 +1,11 @@ --- title: Portée globale -slug: Glossaire/Portée_globale +slug: Glossary/Global_scope tags: - Encodage - Glossaire translation_of: Glossary/Global_scope +original_slug: Glossaire/Portée_globale ---

Dans un environnement de programmation, la portée globale ( global scope ) est la {{glossary("Scope","portée")}} qui est visible dans toutes les autres portées.

diff --git a/files/fr/glossary/global_variable/index.html b/files/fr/glossary/global_variable/index.html index a2f2a03048..c20ad60534 100644 --- a/files/fr/glossary/global_variable/index.html +++ b/files/fr/glossary/global_variable/index.html @@ -1,10 +1,11 @@ --- title: Variable globale -slug: Glossaire/Variable_globale +slug: Glossary/Global_variable tags: - Encodage - Glossaire translation_of: Glossary/Global_variable +original_slug: Glossaire/Variable_globale ---

Une variable globale est une {{glossary("Variable")}} déclarée dans une {{glossary("Global scope","portée globale")}} en d'autres termes, une variable visible depuis toutes les autres portées.

diff --git a/files/fr/glossary/glyph/index.html b/files/fr/glossary/glyph/index.html index e3e03a119a..fb7bdcc6e7 100644 --- a/files/fr/glossary/glyph/index.html +++ b/files/fr/glossary/glyph/index.html @@ -1,11 +1,12 @@ --- title: Glyphe -slug: Glossaire/Glyphe +slug: Glossary/Glyph tags: - Glossaire - SVG - Typographie translation_of: Glossary/Glyph +original_slug: Glossaire/Glyphe ---

Un glyphe est un terme utilisé en typographie pour désigner la représentation visuelle d’un (ou plusieurs) {{Glossary("Character", "caractère")}}.

diff --git a/files/fr/glossary/gonk/index.html b/files/fr/glossary/gonk/index.html index 93c260f29c..9de47a9c56 100644 --- a/files/fr/glossary/gonk/index.html +++ b/files/fr/glossary/gonk/index.html @@ -1,6 +1,6 @@ --- title: Gonk -slug: Glossaire/Gonk +slug: Glossary/Gonk tags: - Boot2Gecko - Firefox OS @@ -9,6 +9,7 @@ tags: - Infrastructure - Introduction translation_of: Glossary/Gonk +original_slug: Glossaire/Gonk ---

Gonk est le système d'exploitation bas-niveau de {{glossary("Firefox OS")}} et consiste en un noyau Linux (basé sur Android Open Source Project (AOSP)) et une couche d'abstraction matérielle en espace utilisateur (hardware abstraction layer, ou HAL).

diff --git a/files/fr/glossary/google_chrome/index.html b/files/fr/glossary/google_chrome/index.html index 11f0f1ae99..23187fb8c7 100644 --- a/files/fr/glossary/google_chrome/index.html +++ b/files/fr/glossary/google_chrome/index.html @@ -1,6 +1,6 @@ --- title: Google Chrome -slug: Glossaire/Google_Chrome +slug: Glossary/Google_Chrome tags: - Chrome canary - Chrome stable @@ -10,6 +10,7 @@ tags: - WebMechanics - google chrome translation_of: Glossary/Google_Chrome +original_slug: Glossaire/Google_Chrome ---

Google Chrome est un {{glossary("navigateur")}} Web gratuit développé par Google. Il est basé sur le projet open source Chromium. Certaines différences clés sont décrites sur le wiki de Chromium. En ce qui concerne le moteur rendu, les deux navigateurs utilisent un fork de {{glossary("WebKit")}} appelé {{glossary("Blink")}}. Remarquez que la version iOS de Chrome utilise le moteur de rendu de cette plate-forme et non Blink.

diff --git a/files/fr/glossary/gpl/index.html b/files/fr/glossary/gpl/index.html index d5e4a20a23..5d15d505fc 100644 --- a/files/fr/glossary/gpl/index.html +++ b/files/fr/glossary/gpl/index.html @@ -1,6 +1,6 @@ --- title: GPL -slug: Glossaire/GPL +slug: Glossary/GPL tags: - GPL - Glossaire @@ -9,6 +9,7 @@ tags: - Partage - Remixing translation_of: Glossary/GPL +original_slug: Glossaire/GPL ---

La (GNU) GPL (General Public License) est une licence de logiciel libre {{Glossary("copyleft")}} publiée par la Free Software Foundation. Les utilisateurs d'un programme sous licence GPL se voient attribuer les libertés de l'utiliser, de lire son code source, de le modifier et de redistribuer les modifications qu'ils ont réalisées, à condition de redistribuer le programme (modifié ou non) sous la même licence.

diff --git a/files/fr/glossary/gpu/index.html b/files/fr/glossary/gpu/index.html index 1a1a4a41dc..52f30cef5c 100644 --- a/files/fr/glossary/gpu/index.html +++ b/files/fr/glossary/gpu/index.html @@ -1,9 +1,10 @@ --- title: GPU -slug: Glossaire/GPU +slug: Glossary/GPU tags: - Glossaire - Infrastructure translation_of: Glossary/GPU +original_slug: Glossaire/GPU ---

Le GPU (Graphics Processing Unit) est un composant de l'ordinateur similaire au CPU (Central Processing Unit) mais qui est spécialisé dans l'affichage de graphismes (à la fois 2D et 3D) sur votre moniteur.

diff --git a/files/fr/glossary/graceful_degradation/index.html b/files/fr/glossary/graceful_degradation/index.html index dd6727c47d..7b559f8583 100644 --- a/files/fr/glossary/graceful_degradation/index.html +++ b/files/fr/glossary/graceful_degradation/index.html @@ -1,10 +1,11 @@ --- title: Dégradation gracieuse -slug: Glossaire/Graceful_degradation +slug: Glossary/Graceful_degradation tags: - Conception - Glossaire translation_of: Glossary/Graceful_degradation +original_slug: Glossaire/Graceful_degradation ---

La dégradation gracieuse est une philosophie de conception centrée sur la création d'un site / application web moderne qui fonctionnera dans les navigateurs les plus récents, mais qui sera remplacé par un contenu et une fonctionnalité essentiels dans les anciens navigateurs, même moins performant.

diff --git a/files/fr/glossary/grid/index.html b/files/fr/glossary/grid/index.html index a5e626eff7..8ab9a1e5ea 100644 --- a/files/fr/glossary/grid/index.html +++ b/files/fr/glossary/grid/index.html @@ -1,11 +1,12 @@ --- title: Grille -slug: Glossaire/Grid +slug: Glossary/Grid tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid +original_slug: Glossaire/Grid ---

Une grille CSS est définie en utilisant la valeur grid de la propriété display ; vous pouvez définir les colonnes et les lignes de votre grille en utilisant les propriétés {{cssxref("grid-template-rows")}} et {{cssxref("grid-template-columns")}}.

diff --git a/files/fr/glossary/grid_areas/index.html b/files/fr/glossary/grid_areas/index.html index 9f736eca86..4d861c41c7 100644 --- a/files/fr/glossary/grid_areas/index.html +++ b/files/fr/glossary/grid_areas/index.html @@ -1,11 +1,12 @@ --- title: Zone de grille -slug: Glossaire/Zones_de_grille +slug: Glossary/Grid_Areas tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Areas +original_slug: Glossaire/Zones_de_grille ---

Une zone de grille est une {{glossary("grid cell","cellule de grille")}}  ou plus, qui constitue une zone rectangulaire sur la grille. Les zones de grille sont créées lorsque vous placez un élément en utilisant le  placement de la ligne de base ou lors de la définition des zones par l'utilisation de zones de grille nommées.

diff --git a/files/fr/glossary/grid_axis/index.html b/files/fr/glossary/grid_axis/index.html index 0eba3c87b3..54a96e3f3a 100644 --- a/files/fr/glossary/grid_axis/index.html +++ b/files/fr/glossary/grid_axis/index.html @@ -1,11 +1,12 @@ --- title: Axe de grille -slug: Glossaire/Axe_de_grille +slug: Glossary/Grid_Axis tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Axis +original_slug: Glossaire/Axe_de_grille ---

La grille CSS est une méthode de mise en page bidimensionnelle permettant une présentation du contenu en lignes et colonnes. Par conséquent, dans toute grille, nous avons deux axes. L'axe du "bloc" ou de la colonne et l'axe "en ligne" ou de la ligne.

diff --git a/files/fr/glossary/grid_cell/index.html b/files/fr/glossary/grid_cell/index.html index e484a4967a..e2f5349c29 100644 --- a/files/fr/glossary/grid_cell/index.html +++ b/files/fr/glossary/grid_cell/index.html @@ -1,11 +1,12 @@ --- title: Cellule de grille -slug: Glossaire/Cellule_de_grille +slug: Glossary/Grid_Cell tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Cell +original_slug: Glossaire/Cellule_de_grille ---

Dans une Grille CSS, une cellule de grille est la plus petite unité de la grille CSS. Elle est un espace entre 4 intersections {{glossary("grid lines","lignes de grille")}} et conceptuellement assimilable à une cellule de tableau.

diff --git a/files/fr/glossary/grid_column/index.html b/files/fr/glossary/grid_column/index.html index c6c5b2f74c..44209337f2 100644 --- a/files/fr/glossary/grid_column/index.html +++ b/files/fr/glossary/grid_column/index.html @@ -1,11 +1,12 @@ --- title: Colonne de grille -slug: Glossaire/Colonne_de_grille +slug: Glossary/Grid_Column tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Column +original_slug: Glossaire/Colonne_de_grille ---

Une colonne de grille est une piste verticale dans une grille CSS, et est l'espace entre deux lignes de grille verticales. Elle est définie par la propriété {{cssxref("grid-template-columns")}} ou les propriétés raccourcies {{cssxref("grid")}} ou {{cssxref("grid-template")}}.

diff --git a/files/fr/glossary/grid_container/index.html b/files/fr/glossary/grid_container/index.html index 91f62ba355..2664a569f8 100644 --- a/files/fr/glossary/grid_container/index.html +++ b/files/fr/glossary/grid_container/index.html @@ -1,11 +1,12 @@ --- title: Conteneur de grille -slug: Glossaire/grid_container +slug: Glossary/Grid_Container tags: - CSS - Glossaire - Grille translation_of: Glossary/Grid_Container +original_slug: Glossaire/grid_container ---

 

diff --git a/files/fr/glossary/grid_lines/index.html b/files/fr/glossary/grid_lines/index.html index bc6b012483..01c6fe39e6 100644 --- a/files/fr/glossary/grid_lines/index.html +++ b/files/fr/glossary/grid_lines/index.html @@ -1,11 +1,12 @@ --- title: Ligne de grille (line) -slug: Glossaire/Lignes_de_grille_(lines) +slug: Glossary/Grid_Lines tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Lines +original_slug: Glossaire/Lignes_de_grille_(lines) ---

Les lignes de grille sont créées avec la définition  des {{glossary("Grid Tracks", "pistes")}} (tracks) dans la grille explicite pour une grille CSS. Dans l'exemple suivant, est présentée une grille qui a 3 pistes de colonnes et 2 pistes de lignes. Cela nous donne 4 lignes de colonnes (column lines) et 3 lignes de lignes (row lines).

diff --git a/files/fr/glossary/grid_rows/index.html b/files/fr/glossary/grid_rows/index.html index 1cfc2c9d23..c0c57f47e0 100644 --- a/files/fr/glossary/grid_rows/index.html +++ b/files/fr/glossary/grid_rows/index.html @@ -1,11 +1,12 @@ --- title: Ligne de grille (Row) -slug: Glossaire/Lignes_de_grille_(Row) +slug: Glossary/Grid_Rows tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Rows +original_slug: Glossaire/Lignes_de_grille_(Row) ---

Une ligne de grille (row) est une piste horizontale dans une grille CSS, qui se situe dans l'espace entre deux lignes (lines) horizontales de lignes (rows). Elle est définie par la propriété {{cssxref("grid-template-rows")}} ou les propriétés raccourcies {{cssxref("grid")}} ou {{cssxref("grid-template")}}.

diff --git a/files/fr/glossary/grid_tracks/index.html b/files/fr/glossary/grid_tracks/index.html index b9c06af74b..a33af81240 100644 --- a/files/fr/glossary/grid_tracks/index.html +++ b/files/fr/glossary/grid_tracks/index.html @@ -1,11 +1,12 @@ --- title: Piste de grille -slug: Glossaire/Pistes_de_grille +slug: Glossary/Grid_Tracks tags: - CSS - Glossaire - Grilles translation_of: Glossary/Grid_Tracks +original_slug: Glossaire/Pistes_de_grille ---

Une piste de grille est l'espace entre deux {{glossary("grid lines","lignes de grille (lines)")}}. Elle est définie dans la grille explicite avec les propriétés {{cssxref("grid-template-columns")}} et {{cssxref("grid-template-rows")}} ou les propriétés raccourcies {{cssxref("grid")}} ou {{cssxref("grid-template")}}. Les pistes sont aussi créées dans une grille implicite en positionnant un élément de grille en dehors des pistes créées dans la grille explicite.

diff --git a/files/fr/glossary/guard/index.html b/files/fr/glossary/guard/index.html index fd44e58217..72990846b6 100644 --- a/files/fr/glossary/guard/index.html +++ b/files/fr/glossary/guard/index.html @@ -1,10 +1,11 @@ --- title: Guard -slug: Glossaire/Guard +slug: Glossary/Guard tags: - API - Encodage - Glossaire translation_of: Glossary/Guard +original_slug: Glossaire/Guard ---

Guard est une fonctionnalité des objets {{domxref("Headers")}} (en-têtes) (comme définis dans la {{domxref("Fetch_API","spécification Fetch")}}, qui permet aux méthodes telles que {{domxref("Headers.set","set()")}} et {{domxref("Headers.append","append()")}} de changer ou non les contenus des en-têtes. Par exemple, immutable guard signifie que les en-têtes ne peuvent être modifiés. Pour plus d'informations, lisez Les concepts de base Fetch : guard.

diff --git a/files/fr/glossary/gutters/index.html b/files/fr/glossary/gutters/index.html index 608e93c8ae..a9128bc13b 100644 --- a/files/fr/glossary/gutters/index.html +++ b/files/fr/glossary/gutters/index.html @@ -1,11 +1,12 @@ --- title: Gouttière -slug: Glossaire/Gutters +slug: Glossary/Gutters tags: - CSS - Glossaire - Grilles translation_of: Glossary/Gutters +original_slug: Glossaire/Gutters ---

Les gouttières (ou ruelles) sont l'espace entre les pistes de contenu. Elles peuvent être créées en CSS Grid Layout en utilisant les propriétés {{cssxref ("grid-column-gap")}}, {{cssxref ("grid-row-gap")}} ou {{cssxref ("grid-gap" )}}.

diff --git a/files/fr/glossary/gzip_compression/index.html b/files/fr/glossary/gzip_compression/index.html index b561e34449..e5ae06c4e8 100644 --- a/files/fr/glossary/gzip_compression/index.html +++ b/files/fr/glossary/gzip_compression/index.html @@ -1,11 +1,12 @@ --- title: Compression GZip -slug: Glossaire/GZip_compression +slug: Glossary/GZip_compression tags: - Glossaire - compression - gzip translation_of: Glossary/GZip_compression +original_slug: Glossaire/GZip_compression ---

gzip est un algorithme de compression qui permet de réduire la taille des fichiers, ce qui permet des transferts réseau plus rapides. Il est généralement pris en charge par les serveurs Web et les navigateurs modernes, ce qui signifie que les serveurs peuvent compresser automatiquement les fichiers avec gzip avant de les envoyer, et les navigateurs peuvent décompresser les fichiers lors de leur réception.

diff --git a/files/fr/glossary/hash/index.html b/files/fr/glossary/hash/index.html index 21b1723b2e..fa2f3d6be9 100644 --- a/files/fr/glossary/hash/index.html +++ b/files/fr/glossary/hash/index.html @@ -1,12 +1,13 @@ --- title: hash -slug: Glossaire/hash +slug: Glossary/hash tags: - Cryptographie - Encodage - Glossaire - Hash translation_of: Glossary/hash +original_slug: Glossaire/hash ---

La fonction de hachage prend en entrée un message de taille variable et produit en sortie un hash de taille fixe. Il se présente habituellement sous la forme d'une "empreinte" de 128 bits ou "message condensé". Les hashes sont également très utiles en {{glossary("cryptographie")}} en garantissant l'intégrité des données transmises. Il s'agit des blocs pour construire des {{glossary("HMAC")}} qui fournissent l'authentification de messages.

diff --git a/files/fr/glossary/head/index.html b/files/fr/glossary/head/index.html index db2eeed78d..e6b6aa2140 100644 --- a/files/fr/glossary/head/index.html +++ b/files/fr/glossary/head/index.html @@ -1,6 +1,6 @@ --- title: En-tête -slug: Glossaire/En-tête +slug: Glossary/Head tags: - En-têtes - Encodage @@ -8,6 +8,7 @@ tags: - HTML - métadonnée translation_of: Glossary/Head +original_slug: Glossaire/En-tête ---

L'en-tête est la partie d'un document {{glossary("HTML")}} qui contient les {{glossary("métadonnée","métadonnées")}} qui le concernent, comme son auteur, sa description et des liens vers des fichiers {{glossary("CSS")}} ou {{glossary("JavaScript")}} qui s'appliquent au HTML.

diff --git a/files/fr/glossary/high-level_programming_language/index.html b/files/fr/glossary/high-level_programming_language/index.html index d217e17ac2..9db72b8f4d 100644 --- a/files/fr/glossary/high-level_programming_language/index.html +++ b/files/fr/glossary/high-level_programming_language/index.html @@ -1,11 +1,12 @@ --- title: Langage de programmation de haut niveau -slug: Glossaire/Langage_de_programmation_de_haut_niveau +slug: Glossary/High-level_programming_language tags: - Glossaire - Langage - Programmation translation_of: Glossary/High-level_programming_language +original_slug: Glossaire/Langage_de_programmation_de_haut_niveau ---

Un langage de programmation de haut niveau a une abstraction significative des détails du fonctionnement de l'ordinateur. Il est conçu pour être facilement compris par les humains et pour cette raison, il doit être traduit par un autre logiciel. Contrairement aux langages de programmation de bas niveau, il peut utiliser des éléments de langage naturel ou automatiser (voire masquer) des champs importants de système informatique, rendant le processus de développement plus simple et plus compréhensible par rapport à un langage de niveau inférieur. La quantité d'abstraction fournie définit la façon dont un langage de programmation est «de haut niveau».

diff --git a/files/fr/glossary/hmac/index.html b/files/fr/glossary/hmac/index.html index 228ec17c9b..e00553a074 100644 --- a/files/fr/glossary/hmac/index.html +++ b/files/fr/glossary/hmac/index.html @@ -1,11 +1,12 @@ --- title: HMAC -slug: Glossaire/HMAC +slug: Glossary/HMAC tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/HMAC +original_slug: Glossaire/HMAC ---

HMAC est un protocole utilisé pour les messages d'authentification {{Glossary("Cryptography","cryptographiquement")}}. Il peut utiliser toutes sortes de {{Glossary("Cryptographic hash function","fonctions de hachage cryptographique")}}, et sa force dépend de la fonction sous-jacente (SHA1 ou MD5 par exemple) et du choix de la clé secrète. Avec une telle combinaison, l'{{Glossary("Algorithm","algorithme")}} de vérification HMAC est alors repéré avec un nom composé comme HMAC-SHA1.

diff --git a/files/fr/glossary/hoisting/index.html b/files/fr/glossary/hoisting/index.html index d95ea69677..623d09e4e1 100644 --- a/files/fr/glossary/hoisting/index.html +++ b/files/fr/glossary/hoisting/index.html @@ -1,11 +1,12 @@ --- title: Hoisting -slug: Glossaire/Hoisting +slug: Glossary/Hoisting tags: - Encodage - Glossaire - JavaScript translation_of: Glossary/Hoisting +original_slug: Glossaire/Hoisting ---

Le hoisting (en français, "hissage") est un terme que vous ne trouverez dans aucune prose de spécification normative avant  l'ECMAScript® 2015.  Le hissage a été conçu comme une façon générale de penser à la manière dont les contextes d'exécution (précisément, les phases de création et d'exécution) fonctionnent en JavaScript. Toutefois, le concept peut être un peu déroutant à première vue.

diff --git a/files/fr/glossary/host/index.html b/files/fr/glossary/host/index.html index aea4026562..912e1acc63 100644 --- a/files/fr/glossary/host/index.html +++ b/files/fr/glossary/host/index.html @@ -1,12 +1,13 @@ --- title: Hôte -slug: Glossaire/Host +slug: Glossary/Host tags: - Glossaire - Intermédiaire - Web - WebMechanics translation_of: Glossary/Host +original_slug: Glossaire/Host ---

Un hôte est un périphérique connecté à l'{{glossary("Internet")}} (ou à un réseau local). Des hôtes appelés {{glossary("serveur","serveurs")}} offrent des services supplémentaires comme l'hébergement de pages web ou le stockage de fichiers et de courriels.

diff --git a/files/fr/glossary/hotlink/index.html b/files/fr/glossary/hotlink/index.html index e5e6ac3cec..0a40283875 100644 --- a/files/fr/glossary/hotlink/index.html +++ b/files/fr/glossary/hotlink/index.html @@ -1,10 +1,11 @@ --- title: Hotlink -slug: Glossaire/Hotlink +slug: Glossary/Hotlink tags: - Glossaire - Mécanismes web translation_of: Glossary/Hotlink +original_slug: Glossaire/Hotlink ---

Un hotlink (appelé aussi inline link (lien en ligne)) est un objet (typiquement une image) directement lié à un autre sur un autre site. Par exemple, une image hébergée sur site1.com est montrée directement sur site2.com.

diff --git a/files/fr/glossary/houdini/index.html b/files/fr/glossary/houdini/index.html index e399075477..423f3e16fa 100644 --- a/files/fr/glossary/houdini/index.html +++ b/files/fr/glossary/houdini/index.html @@ -1,6 +1,6 @@ --- title: Houdini -slug: Glossaire/Houdini +slug: Glossary/Houdini tags: - CSS - CSS API @@ -8,6 +8,7 @@ tags: - Houdini - Reference translation_of: Glossary/Houdini +original_slug: Glossaire/Houdini ---

Houdini est un ensemble d'API de bas niveau qui donnent aux développeurs la possibilité d'étendre le CSS, offrant la possibilité de se connecter au processus de style et de mise en page du moteur de rendu d'un navigateur. Houdini donne aux développeurs l'accès au modèle d'obet CSS (CSSOM), permettant aux développeurs d'écrire du code que le navigateur peut analyser en CSS. L'avantage de Houdini est que les développeurs peuvent créer des fonctionnalités CSS sans attendre les spécifications des normes Web pour les définir et sans attendre que chaque navigateur implémente complètement les fonctionnalités.

diff --git a/files/fr/glossary/hpkp/index.html b/files/fr/glossary/hpkp/index.html index 90b99b88f7..bbbfa16e21 100644 --- a/files/fr/glossary/hpkp/index.html +++ b/files/fr/glossary/hpkp/index.html @@ -1,10 +1,11 @@ --- title: HPKP -slug: Glossaire/HPKP +slug: Glossary/HPKP tags: - Glossaire - Sécurité translation_of: Glossary/HPKP +original_slug: Glossaire/HPKP ---

HTTP Public Key Pinning (HPKP) est une fonctionnalité de sécurité qui indique à un client Web d'associer une clé publique cryptographique spécifique à un certain serveur Web pour réduire le risque d'attaques {{Glossary("MitM")}} avec des certificats fabriqués .

diff --git a/files/fr/glossary/hsts/index.html b/files/fr/glossary/hsts/index.html index 7e3a118ebd..6a531707e4 100644 --- a/files/fr/glossary/hsts/index.html +++ b/files/fr/glossary/hsts/index.html @@ -1,11 +1,12 @@ --- title: HSTS -slug: Glossaire/HSTS +slug: Glossary/HSTS tags: - Glossaire - HTTP - Sécurité translation_of: Glossary/HSTS +original_slug: Glossaire/HSTS ---

HTTP Strict Transport Security permet à un site web d'informer le navigateur que son accès ne devrait pas se faire en HTTP et qu'il devrait donc convertir toute tentative de connexion en HTTP en connexion HTTPS. HSTS est un en-tête HTTP,  {{HTTPHeader("Strict-Transport-Security")}}, il est donc envoyé par le serveur au début de la réponse à une requête d'un client.

diff --git a/files/fr/glossary/html/index.html b/files/fr/glossary/html/index.html index 8c14fdfcb4..9de4106564 100644 --- a/files/fr/glossary/html/index.html +++ b/files/fr/glossary/html/index.html @@ -1,12 +1,13 @@ --- title: HTML -slug: Glossaire/HTML +slug: Glossary/HTML tags: - Encodage - Glossaire - HTML - - 'l10n:priority' + - l10n:priority translation_of: Glossary/HTML +original_slug: Glossaire/HTML ---
{{QuickLinksWithSubpages("/fr/docs/Glossaire")}}
diff --git a/files/fr/glossary/html5/index.html b/files/fr/glossary/html5/index.html index 4e373b08ba..73e3e020be 100644 --- a/files/fr/glossary/html5/index.html +++ b/files/fr/glossary/html5/index.html @@ -1,12 +1,13 @@ --- title: HTML5 -slug: Glossaire/HTML5 +slug: Glossary/HTML5 tags: - CodingScripting - Glossaire - HTML - HTML5 translation_of: Glossary/HTML5 +original_slug: Glossaire/HTML5 ---

La dernière version stable du {{Glossary("HTML")}}, HTML5, transforme le HTML qui était un simple balisage pour structurer des documents en une plate-forme complète de développement d'applications. Parmi ses autres caractéristiques, HTML5 comporte de nouveaux éléments et des {{glossary("API")}} {{glossary("JavaScript")}} pour améliorer le stockage, le multimédia et l'accès au matériel.

diff --git a/files/fr/glossary/http/index.html b/files/fr/glossary/http/index.html index 1d8fd82b7b..8e42891ed1 100644 --- a/files/fr/glossary/http/index.html +++ b/files/fr/glossary/http/index.html @@ -1,12 +1,13 @@ --- title: HTTP -slug: Glossaire/HTTP +slug: Glossary/HTTP tags: - Débutant - Glossaire - HTTP - Infrastructure translation_of: Glossary/HTTP +original_slug: Glossaire/HTTP ---

L'Hypertext Transfer Protocol (HTTP) (Protocole de transfert hypertexte) est un {{glossary("Protocol","protocole")}} de base qui autorise le transfert de fichiers sur le {{glossary("World Wide Web","web")}}, typiquement entre un navigateur web et un serveur afin que des utilisateurs puissent les consulter. La version actuelle de la spécification HTTP s'appelle {{glossary("HTTP_2", "HTTP/2")}}.

diff --git a/files/fr/glossary/http_2/index.html b/files/fr/glossary/http_2/index.html index 7f9ec6bcfb..6888f9c516 100644 --- a/files/fr/glossary/http_2/index.html +++ b/files/fr/glossary/http_2/index.html @@ -1,14 +1,15 @@ --- title: HTTP/2 -slug: Glossaire/HTTP_2 +slug: Glossary/HTTP_2 tags: - Glossaire - HTTP - Infrastructure - Performance du Web - Reference - - 'l10n:priority' + - l10n:priority translation_of: Glossary/HTTP_2 +original_slug: Glossaire/HTTP_2 ---

HTTP/2 est une révision majeure du Protocole de réseau HTTP. Les principaux objectifs de HTTP/2 sont de réduire la {{glossary("latency","latence")}} en permettant le multiplexage complet des demandes et des réponses, minimiser la surcharge du protocole grâce à une compression efficace des champs d'en-tête HTTP, et ajouter la prise en charge de la priorisation des demandes et de la diffusion sur le serveur.

diff --git a/files/fr/glossary/http_3/index.html b/files/fr/glossary/http_3/index.html index 973bf74d69..5f25500ab6 100644 --- a/files/fr/glossary/http_3/index.html +++ b/files/fr/glossary/http_3/index.html @@ -1,11 +1,12 @@ --- title: HTTP/3 -slug: Glossaire/HTTP_3 +slug: Glossary/HTTP_3 tags: - HTTP - Intro - NeedsContent translation_of: Glossary/HTTP_3 +original_slug: Glossaire/HTTP_3 ---

HTTP/3 est la prochaine révision majeure du protocole réseau HTTP, succédant à {{glossary("HTTP 2", "HTTP/2")}}. Le point majeur de HTTP/3 est qu'il utilise un nouveau protocole {{glossary("UDP")}} nommé QUIC, au lieu de {{glossary("TCP")}}.

diff --git a/files/fr/glossary/http_header/index.html b/files/fr/glossary/http_header/index.html index ed5a9ea787..741950dbf3 100644 --- a/files/fr/glossary/http_header/index.html +++ b/files/fr/glossary/http_header/index.html @@ -1,11 +1,12 @@ --- title: En-tête -slug: Glossaire/Header +slug: Glossary/HTTP_header tags: - En-têtes - Glossaire - Mécanismes web translation_of: Glossary/HTTP_header +original_slug: Glossaire/Header ---

Un en-tête HTTP est un champ de requête ou de réponse HTTP permettant de transmettre des informations supplémentaires modifiant ou précisant la sémantique du message ou de son contenu. Les en-têtes ne sont pas sensibles à la casse, commencent au début d'une ligne et sont immédiatemment suivis d'un ':' et d'une valeur dépendant de l'en-tête en question. La valeur se termine au retour chariot suivant ou à la fin du message.

diff --git a/files/fr/glossary/https/index.html b/files/fr/glossary/https/index.html index 775d3ec276..bb16a99eda 100644 --- a/files/fr/glossary/https/index.html +++ b/files/fr/glossary/https/index.html @@ -1,12 +1,13 @@ --- title: HTTPS -slug: Glossaire/https +slug: Glossary/https tags: - Glossaire - HTTPS - Infrastructure - Sécurité translation_of: Glossary/https +original_slug: Glossaire/https ---

HTTPS (HTTP Sécurisé) est une version chiffrée du protocole {{Glossary("HTTP")}}. Il utilise généralement {{Glossary("TLS")}} ou {{Glossary("SSL")}} pour chiffrer l'intégralité des communications entre un client et un serveur. La connexion sécurisée permet aux clients d'échanger de manière sûre des données sensibles avec un serveur, par exemple pour des transactions bancaires ou du commerce en ligne.

diff --git a/files/fr/glossary/hyperlink/index.html b/files/fr/glossary/hyperlink/index.html index 68a4742bb8..9eaf550dd4 100644 --- a/files/fr/glossary/hyperlink/index.html +++ b/files/fr/glossary/hyperlink/index.html @@ -1,11 +1,12 @@ --- title: Hyperlien -slug: Glossaire/Hyperlien +slug: Glossary/Hyperlink tags: - Glossaire - HTML - Navigation translation_of: Glossary/Hyperlink +original_slug: Glossaire/Hyperlien ---

Les hyperliens connectent des pages web ou des données à une autre. En HTML, l'élément {{HTMLElement("a")}} définit un hyperlien d'un endroit sur une page web (comme une chaîne de caractères ou une image) à un autre endroit sur une autre page web (ou même sur la même page).

diff --git a/files/fr/glossary/hypertext/index.html b/files/fr/glossary/hypertext/index.html index 069c306f09..dcac8c80d1 100644 --- a/files/fr/glossary/hypertext/index.html +++ b/files/fr/glossary/hypertext/index.html @@ -1,11 +1,12 @@ --- title: Hypertexte -slug: Glossaire/Hypertexte +slug: Glossary/Hypertext tags: - Glossaire - Mécanismes web - Web translation_of: Glossary/Hypertext +original_slug: Glossaire/Hypertexte ---

L'hypertexte est un texte contenant des liens vers d'autres textes, par opposition à un unique flux linéaire comme dans un roman.

diff --git a/files/fr/glossary/i18n/index.html b/files/fr/glossary/i18n/index.html index 5acd79dec1..c712c3091a 100644 --- a/files/fr/glossary/i18n/index.html +++ b/files/fr/glossary/i18n/index.html @@ -1,6 +1,6 @@ --- title: I18N -slug: Glossaire/I18N +slug: Glossary/I18N tags: - Crédibilité - Débutant @@ -9,6 +9,7 @@ tags: - OpenPractices - i18n translation_of: Glossary/I18N +original_slug: Glossaire/I18N ---

i18n (issu de "internationalisation", un mot de 20 lettres) est l'ensemble des bonnes pratiques pour permettre à des produits ou des services d'être lisiblement adaptés à toute culture visée.

diff --git a/files/fr/glossary/iana/index.html b/files/fr/glossary/iana/index.html index 76f280ef74..d537491246 100644 --- a/files/fr/glossary/iana/index.html +++ b/files/fr/glossary/iana/index.html @@ -1,10 +1,11 @@ --- title: IANA -slug: Glossaire/IANA +slug: Glossary/IANA tags: - Glossaire - Infrastructure translation_of: Glossary/IANA +original_slug: Glossaire/IANA ---

IANA (Internet Assigned Numbers Authority) est une composante de l'{{glossary("ICANN")}} chargée de l'enregistrement et/ou de l'attribution de {{glossary("Domain name","noms de domaines")}}, {{glossary("IP address","adresses IP")}}, et d'autres noms et numéros utilisés par les {{glossary("Protocol","protocoles")}} Internet.

diff --git a/files/fr/glossary/icann/index.html b/files/fr/glossary/icann/index.html index 3201d0e2a1..1d5c3e4ebe 100644 --- a/files/fr/glossary/icann/index.html +++ b/files/fr/glossary/icann/index.html @@ -1,10 +1,11 @@ --- title: ICANN -slug: Glossaire/ICANN +slug: Glossary/ICANN tags: - Glossaire - Infrastructure translation_of: Glossary/ICANN +original_slug: Glossaire/ICANN ---

ICANN (Internet Corporation of Assigned Names and Numbers) est une société à but non lucratif internationale qui maintient le {{glossary("DNS","système de noms de domaine")}} et l'enregistrement des {{glossary("IP address","adresses IP")}}.

diff --git a/files/fr/glossary/ice/index.html b/files/fr/glossary/ice/index.html index e8f6774d77..dd9ede1bf3 100644 --- a/files/fr/glossary/ice/index.html +++ b/files/fr/glossary/ice/index.html @@ -1,6 +1,6 @@ --- title: ICE -slug: Glossaire/ICE +slug: Glossary/ICE tags: - CodingScripting - Glossaire @@ -8,6 +8,7 @@ tags: - Réseau - WebRTC translation_of: Glossary/ICE +original_slug: Glossaire/ICE ---

ICE (Interactive Connectivity Establishment) est un framework utilisé par {{glossary("WebRTC")}} (parmi d'autres technologies) pour connecter deux pairs ensemble, indépendamment de la topologie réseau (en général pour des conversations audio et/ou vidéo). Ce protocole laisse les deux pairs chercher et établir une connexion avec l'autre même s'ils utilisent tous les deux de la translation d'adresses ({{glossary("NAT")}}) pour partager une adresse IP globale avec d'autres périphériques sur leurs réseaux locaux respectifs.

diff --git a/files/fr/glossary/ide/index.html b/files/fr/glossary/ide/index.html index eecc704ad4..3124f42596 100644 --- a/files/fr/glossary/ide/index.html +++ b/files/fr/glossary/ide/index.html @@ -1,10 +1,11 @@ --- title: EDI -slug: Glossaire/IDE +slug: Glossary/IDE tags: - CodingScripting - Glossaire translation_of: Glossary/IDE +original_slug: Glossaire/IDE ---

Un Environnement de Développement Intégré (EDI) ou Environnement de Développement Interactif est une application logicielle qui fournit des facilités complètes aux programmeurs pour le développemet de logiciels. Un EDI est constitué normalement d'un éditeur de code source, d'outils pour automatiser la compilation et d'un débogueur.

diff --git a/files/fr/glossary/idempotent/index.html b/files/fr/glossary/idempotent/index.html index c3c03a19c6..414cdb5425 100644 --- a/files/fr/glossary/idempotent/index.html +++ b/files/fr/glossary/idempotent/index.html @@ -1,11 +1,12 @@ --- title: Idempotente -slug: Glossaire/Idempotent +slug: Glossary/Idempotent tags: - Glossaire - HTTP - Mécanismes web translation_of: Glossary/Idempotent +original_slug: Glossaire/Idempotent ---

Une méthode HTTP est idempotente si une requête identique peut être faite une ou plusieurs fois de suite avec le même effet, tout en laissant le serveur dans le même état. En d'autres termes, une méthode idempotente ne doit pas avoir d'effets secondaires (sauf dans la tenue de statistiques). Implémentées correctement, les méthodes {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("PUT")}} et {{HTTPMethod("DELETE")}} sont idempotentes, mais pas la méthode {{HTTPMethod("POST")}}. Toutes les méthodes {{glossary("Safe","sécurisées")}} sont également idempotentes.

diff --git a/files/fr/glossary/identifier/index.html b/files/fr/glossary/identifier/index.html index 9567c0bca3..d0853e7be0 100644 --- a/files/fr/glossary/identifier/index.html +++ b/files/fr/glossary/identifier/index.html @@ -1,11 +1,12 @@ --- title: Identificateur -slug: Glossaire/Identifiant +slug: Glossary/Identifier tags: - Débutant - Glossaire - Partage translation_of: Glossary/Identifier +original_slug: Glossaire/Identifiant ---

Une séquence de caractères dans le code qui identifie une {{glossary("Variable","variable")}}, une {{glossary("Function","fonction")}}, ou une {{glossary("Property","propriété")}}.

diff --git a/files/fr/glossary/idl/index.html b/files/fr/glossary/idl/index.html index edaa4e9708..9d81a00f47 100644 --- a/files/fr/glossary/idl/index.html +++ b/files/fr/glossary/idl/index.html @@ -1,12 +1,13 @@ --- title: IDL -slug: Glossaire/IDL +slug: Glossary/IDL tags: - CodingScripting - Glossaire - IDL - Interface description language translation_of: Glossary/IDL +original_slug: Glossaire/IDL ---

Un IDL (Interface Description Language) est un langage générique utilisé pour définir les interfaces des objets en dehors de tout autre langage de programmation spécifique.

diff --git a/files/fr/glossary/ietf/index.html b/files/fr/glossary/ietf/index.html index d5b76fddac..39b1031f27 100644 --- a/files/fr/glossary/ietf/index.html +++ b/files/fr/glossary/ietf/index.html @@ -1,12 +1,13 @@ --- title: IETF -slug: Glossaire/IETF +slug: Glossary/IETF tags: - Glossaire - IETF - Infrastructure - Internet translation_of: Glossary/IETF +original_slug: Glossaire/IETF ---

L'Internet Engineering Task Force (IETF) est une organisation mondiale qui élabore les {{glossary('spécification','spécifications')}} gouvernant les mécanismes derrière le fonctionnement de l'{{glossary("Internet")}}, en particulier {{glossary("TCP")}}/{{glossary("IPv6","IP")}}, la suite de {{glossary("Protocol","protocoles")}} Internet. L'IETF est ouvert, composé de bénévoles et soutenu par l'Internet Society.

diff --git a/files/fr/glossary/iife/index.html b/files/fr/glossary/iife/index.html index 4aabbfb803..553dafdd6c 100644 --- a/files/fr/glossary/iife/index.html +++ b/files/fr/glossary/iife/index.html @@ -1,11 +1,12 @@ --- title: IIFE -slug: Glossaire/IIFE +slug: Glossary/IIFE tags: - Glossaire - JavaScript - Programmation translation_of: Glossary/IIFE +original_slug: Glossaire/IIFE ---

IIFE (Immediately Invoked Function Expression) (Expression de fonction invoquée immédiatement) est une {{glossary("Function","fonction")}} {{glossary("JavaScript")}} qui est exécutée dès qu'elle est définie.

diff --git a/files/fr/glossary/imap/index.html b/files/fr/glossary/imap/index.html index 6e64653da6..a0d16f4b57 100644 --- a/files/fr/glossary/imap/index.html +++ b/files/fr/glossary/imap/index.html @@ -1,11 +1,12 @@ --- title: IMAP -slug: Glossaire/IMAP +slug: Glossary/IMAP tags: - Couriels - Débutant - Glossaire translation_of: Glossary/IMAP +original_slug: Glossaire/IMAP ---

IMAP (Internet Message Access Protocol) est un {{Glossary("Protocol","protocole")}} utilisé pour récupérer et stocker des courriels. Plus récent que {{Glossary("POP3")}}, IMAP permet d'avoir des dossiers et des règles sur le serveur.

diff --git a/files/fr/glossary/immutable/index.html b/files/fr/glossary/immutable/index.html index f3873cdc5a..24f6c4612e 100644 --- a/files/fr/glossary/immutable/index.html +++ b/files/fr/glossary/immutable/index.html @@ -1,10 +1,11 @@ --- title: Immuable -slug: Glossaire/Immuable +slug: Glossary/Immutable tags: - Encodage - Glossaire translation_of: Glossary/Immutable +original_slug: Glossaire/Immuable ---

Un {{glossary("Object","objet")}} immuable est un objet dont le contenu ne peut pas être modifié.
Un objet peut être immuable pour diverses raisons, par exemple :

diff --git a/files/fr/glossary/index.html b/files/fr/glossary/index.html index ba3592c8b8..225252a66c 100644 --- a/files/fr/glossary/index.html +++ b/files/fr/glossary/index.html @@ -1,11 +1,12 @@ --- title: Glossaire -slug: Glossaire +slug: Glossary tags: - Débutant - Glossaire - Index translation_of: Glossary +original_slug: Glossaire ---
{{LearnBox({"title":"Apprenez un nouveau terme :"})}}
diff --git a/files/fr/glossary/index/index.html b/files/fr/glossary/index/index.html index c3d5f147af..b810fae830 100644 --- a/files/fr/glossary/index/index.html +++ b/files/fr/glossary/index/index.html @@ -1,10 +1,11 @@ --- title: Index -slug: Glossaire/Index +slug: Glossary/Index tags: - Glossaire - Index - Navigation translation_of: Glossary/Index +original_slug: Glossaire/Index ---

{{Index("/fr/docs/Glossaire")}}

diff --git a/files/fr/glossary/indexeddb/index.html b/files/fr/glossary/indexeddb/index.html index d14037f130..5dededaf50 100644 --- a/files/fr/glossary/indexeddb/index.html +++ b/files/fr/glossary/indexeddb/index.html @@ -1,12 +1,13 @@ --- title: IndexedDB -slug: Glossaire/IndexedDB +slug: Glossary/IndexedDB tags: - API - Base de données - Glossaire - Programmation translation_of: Glossary/IndexedDB +original_slug: Glossaire/IndexedDB ---

IndexedDB est une {{glossary("API")}} web pour stocker de larges structures de données à l'intérieur des navigateurs et de les indexer afin d'effectuer des recherches hautement performante. De la même façon qu'un Système de gestion de base de données relationnelle (basé sur {{glossary("SQL")}}), IndexedDB est une base de données transactionnelle. Cependant,  IndexedDB  utilise  les objets {{glossary("JavaScript")}} plutôt que des colonnes de tables fixes pour stocker les données.

diff --git a/files/fr/glossary/information_architecture/index.html b/files/fr/glossary/information_architecture/index.html index 40d99ed013..00ac3885be 100644 --- a/files/fr/glossary/information_architecture/index.html +++ b/files/fr/glossary/information_architecture/index.html @@ -1,12 +1,13 @@ --- title: Architecture de l'information -slug: Glossaire/Architecture_de_l_information +slug: Glossary/Information_architecture tags: - Architecture - Conception - Glossaire - Information translation_of: Glossary/Information_architecture +original_slug: Glossaire/Architecture_de_l_information ---

L'architecture de l'information, appliquée à la conception et au développement de sites web, consiste à organiser l'information / le contenu / la fonctionnalité d'un site web de manière à offrir la meilleure expérience possible, les informations et les services étant facilement utilisables et trouvables.

diff --git a/files/fr/glossary/inheritance/index.html b/files/fr/glossary/inheritance/index.html index c0218cba5b..787d66d135 100644 --- a/files/fr/glossary/inheritance/index.html +++ b/files/fr/glossary/inheritance/index.html @@ -1,6 +1,6 @@ --- title: Héritage -slug: Glossaire/Héritage +slug: Glossary/Inheritance tags: - Encodage - Glossaire @@ -8,6 +8,7 @@ tags: - Langage de programmation - Programmation translation_of: Glossary/Inheritance +original_slug: Glossaire/Héritage ---

L'héritage est une fonctionnalité majeure de la {{glossary("OOP","programmation orientée objet")}}. L'abstraction de données peut être exprimée à plusieurs niveaux, c'est-à-dire que des {{glossary("Class","classes")}} peuvent avoir des superclasses et des sous-classes.

diff --git a/files/fr/glossary/input_method_editor/index.html b/files/fr/glossary/input_method_editor/index.html index c197bef355..6bb07a44ce 100644 --- a/files/fr/glossary/input_method_editor/index.html +++ b/files/fr/glossary/input_method_editor/index.html @@ -1,9 +1,10 @@ --- title: Méthode de saisie -slug: Glossaire/Input_method_editor +slug: Glossary/Input_method_editor tags: - Glossary translation_of: Glossary/Input_method_editor +original_slug: Glossaire/Input_method_editor ---

Une méthode de saisie (IME pour Input Method Editor) est un programme qui permet de saisir du texte via une interface utilisateur spécialisé. Les méthodes de saisie peuvent être utilisées dans de nombreuses situations dont : 

diff --git a/files/fr/glossary/instance/index.html b/files/fr/glossary/instance/index.html index 384b376e75..ccf5498917 100644 --- a/files/fr/glossary/instance/index.html +++ b/files/fr/glossary/instance/index.html @@ -1,6 +1,6 @@ --- title: Instance -slug: Glossaire/Instance +slug: Glossary/Instance tags: - CodingScripting - Débutant @@ -8,6 +8,7 @@ tags: - JavaScript - NeedsContent translation_of: Glossary/Instance +original_slug: Glossaire/Instance ---

Un {{glossary("objet")}} créé par un {{glossary("constructeur")}} est une instance de ce constructeur.

diff --git a/files/fr/glossary/internationalization_and_localization/index.html b/files/fr/glossary/internationalization_and_localization/index.html index acbdfe94a1..4b44e5f3d5 100644 --- a/files/fr/glossary/internationalization_and_localization/index.html +++ b/files/fr/glossary/internationalization_and_localization/index.html @@ -1,11 +1,12 @@ --- title: Internationalisation -slug: Glossaire/Internationalisation_et_localisation +slug: Glossary/Internationalization_and_localization tags: - Glossaire - Internationalisation - Reference translation_of: Glossary/Internationalization_and_localization +original_slug: Glossaire/Internationalisation_et_localisation ---

L'internationalisation, souvent abrégée en "i18n", est l'adaptation d'un site web ou d'une application web à différentes langues, différences régionales et exigences techniques pour différentes régions et pays. L'internationalisation est le processus d'architecture de votre application web afin qu'elle puisse être rapidement et facilement adaptée à diverses langues et régions sans trop d'efforts d'ingénierie lorsque de nouvelles langues et régions sont prises en charge. Aussi pour qu'un utilisateur puisse parcourir les fonctionnalités pour traduire ou localiser l'application pour accéder à tout le contenu sans casser la mise en page.

diff --git a/files/fr/glossary/internet/index.html b/files/fr/glossary/internet/index.html index 39c9dfd453..6845991ad2 100644 --- a/files/fr/glossary/internet/index.html +++ b/files/fr/glossary/internet/index.html @@ -1,6 +1,6 @@ --- title: Internet -slug: Glossaire/Internet +slug: Glossary/Internet tags: - Débutant - Glossaire @@ -10,6 +10,7 @@ tags: - Tutoriel - Web translation_of: Glossary/Internet +original_slug: Glossaire/Internet ---

Internet est un réseau mondial constitué de réseaux. Ce réseau utilise le protocole Internet aussi nommé {{glossary("TCP")}}/{{glossary("IPv6", "IP")}} d'après ses principaux {{glossary("Protocol", "protocoles")}}.

diff --git a/files/fr/glossary/ip_address/index.html b/files/fr/glossary/ip_address/index.html index ed11a8f2f9..749478ba34 100644 --- a/files/fr/glossary/ip_address/index.html +++ b/files/fr/glossary/ip_address/index.html @@ -1,12 +1,13 @@ --- title: Adresse IP -slug: Glossaire/IP_Address +slug: Glossary/IP_Address tags: - Débutant - Glossaire - Infrastructure - Web translation_of: Glossary/IP_Address +original_slug: Glossaire/IP_Address ---

Une adresse IP est une série de chiffres assignée à chaque appareil connecté à un réseau qui utilise le protocole Internet.

diff --git a/files/fr/glossary/ipv4/index.html b/files/fr/glossary/ipv4/index.html index bdeb7c6771..3b1c0d79dc 100644 --- a/files/fr/glossary/ipv4/index.html +++ b/files/fr/glossary/ipv4/index.html @@ -1,12 +1,13 @@ --- title: IPv4 -slug: Glossaire/IPv4 +slug: Glossary/IPv4 tags: - Glossaire - IPv4 - Internet Protocole - protocole translation_of: Glossary/IPv4 +original_slug: Glossaire/IPv4 ---

IPv4  est la 4e version du  {{Glossary("Protocol","protocole")}} de communication d'{{glossary("Internet")}} et la première version vraiment déployée.

diff --git a/files/fr/glossary/ipv6/index.html b/files/fr/glossary/ipv6/index.html index 4dfef4cc47..8c6a366de6 100644 --- a/files/fr/glossary/ipv6/index.html +++ b/files/fr/glossary/ipv6/index.html @@ -1,10 +1,11 @@ --- title: IPv6 -slug: Glossaire/IPv6 +slug: Glossary/IPv6 tags: - Glossaire - IPv6 translation_of: Glossary/IPv6 +original_slug: Glossaire/IPv6 ---

IPv6 est la version actuelle du {{glossary("protocol","protocole")}} sous-jacent de communication pour {{glossary("Internet")}}. Lentement  IPv6 remplace {{Glossary("IPv4")}}, entre autres raisons parce que IPv6  permet d'avoir de nombreuses {{Glossary("IP address","adresses IP")}} différentes.

diff --git a/files/fr/glossary/irc/index.html b/files/fr/glossary/irc/index.html index dadcc97904..1d03e544f7 100644 --- a/files/fr/glossary/irc/index.html +++ b/files/fr/glossary/irc/index.html @@ -1,6 +1,6 @@ --- title: IRC -slug: Glossaire/IRC +slug: Glossary/IRC tags: - Discussion écrite en ligne - Glossaire @@ -8,6 +8,7 @@ tags: - Protocoles - irc translation_of: Glossary/IRC +original_slug: Glossaire/IRC ---

IRC (Internet relay chat) est un système mondial de discussion textuelle. Il nécessite une connexion internet et un client de messagerie IRC, qui va envoyer et recevoir des messages via les serveurs IRC.

diff --git a/files/fr/glossary/iso/index.html b/files/fr/glossary/iso/index.html index fcb4c9f4bd..b7e51e22fb 100644 --- a/files/fr/glossary/iso/index.html +++ b/files/fr/glossary/iso/index.html @@ -1,6 +1,6 @@ --- title: ISO -slug: Glossaire/ISO +slug: Glossary/ISO tags: - Glossaire - ISO @@ -8,6 +8,7 @@ tags: - Standards du Web - spécifications web translation_of: Glossary/ISO +original_slug: Glossaire/ISO ---

ISO (International Organization for Standardization) est une organisation internationale qui développe des critères uniformisés coordonnant les entreprises de chaque principal secteur.

diff --git a/files/fr/glossary/isp/index.html b/files/fr/glossary/isp/index.html index c67426099d..68f76fca85 100644 --- a/files/fr/glossary/isp/index.html +++ b/files/fr/glossary/isp/index.html @@ -1,6 +1,6 @@ --- title: FAI -slug: Glossaire/FAI +slug: Glossary/ISP tags: - FAI - Fournisseur d'accès à Internet @@ -8,6 +8,7 @@ tags: - Web - WebMechanics translation_of: Glossary/ISP +original_slug: Glossaire/FAI ---

Un FAI (Fournisseur d'Accès à Internet) vend un accès à Internet, et parfois un service de messagerie, de l'hébergement web ou de la voix sur IP, soit sur une connexion commutée via une ligne téléphonique (le plus fréquent dans le passé), soit sur une connexion haut débit comme un service DSL ou avec un modem câble.

diff --git a/files/fr/glossary/itu/index.html b/files/fr/glossary/itu/index.html index 193fd8e9bb..d5752a43ec 100644 --- a/files/fr/glossary/itu/index.html +++ b/files/fr/glossary/itu/index.html @@ -1,12 +1,13 @@ --- title: ITU -slug: Glossaire/ITU +slug: Glossary/ITU tags: - Glossaire - ITU - Standardisation - organisation translation_of: Glossary/ITU +original_slug: Glossaire/ITU ---

L'Union Internationale des Télécommunications (ITU) est l'organisation autorisée par les Nations Unies à établir des normes et des règles pour les télécommunication, y compris le télégraphe, la radio, la téléphonie et Internet. De la définition des règles pour garantir que les transmissions arrivent là où elles doivent aller et de la création du signal d'alerte «SOS» utilisé en code Morse, l'UIT joue depuis longtemps un rôle clé dans la manière dont nous utilisons la technologie pour échanger des informations et des idées.

diff --git a/files/fr/glossary/jank/index.html b/files/fr/glossary/jank/index.html index 3bc4e70bbd..9a587cb6e9 100644 --- a/files/fr/glossary/jank/index.html +++ b/files/fr/glossary/jank/index.html @@ -1,11 +1,12 @@ --- title: Jank -slug: Glossaire/Jank +slug: Glossary/Jank tags: - Débutant - Encodage - Glossaire - Performance translation_of: Glossary/Jank +original_slug: Glossaire/Jank ---

Jank se réfère à la lenteur dans une interface utilisateur, généralement causée par l'exécution de longues tâches sur le fil principal, le blocage du rendu ou la dépense de trop de puissance de processeur pour les processus en arrière-plan.

diff --git a/files/fr/glossary/java/index.html b/files/fr/glossary/java/index.html index 52e454d6d8..11954e7b1f 100644 --- a/files/fr/glossary/java/index.html +++ b/files/fr/glossary/java/index.html @@ -1,12 +1,13 @@ --- title: Java -slug: Glossaire/Java +slug: Glossary/Java tags: - Encodage - Glossaire - Java - Langage de programmation translation_of: Glossary/Java +original_slug: Glossaire/Java ---

Java est un langage de {{Glossary("OOP","programmation orientée objet")}} basé sur des {{Glossary("Class","classes")}}, de {{Glossary("Computer Programming","programmation informatique")}} conçu pour être indépendant de l'implémentation.

diff --git a/files/fr/glossary/javascript/index.html b/files/fr/glossary/javascript/index.html index f2d76e9c2d..95b1a883c2 100644 --- a/files/fr/glossary/javascript/index.html +++ b/files/fr/glossary/javascript/index.html @@ -1,12 +1,13 @@ --- title: JavaScript -slug: Glossaire/JavaScript +slug: Glossary/JavaScript tags: - Encodage - Glossaire - JavaScript - - 'l10n:priority' + - l10n:priority translation_of: Glossary/JavaScript +original_slug: Glossaire/JavaScript ---

JavaScript (JS) est un langage de programmation principalement utilisé côté client pour générer des pages web dynamiquement, mais également côté {{Glossary("Server","serveur")}}, depuis l'arrivée de Node JS.

diff --git a/files/fr/glossary/jpeg/index.html b/files/fr/glossary/jpeg/index.html index 8375478b58..273e8a1648 100644 --- a/files/fr/glossary/jpeg/index.html +++ b/files/fr/glossary/jpeg/index.html @@ -1,12 +1,13 @@ --- title: JPEG -slug: Glossaire/jpeg +slug: Glossary/jpeg tags: - Composing - Débutant - Glossaire - JPEG translation_of: Glossary/jpeg +original_slug: Glossaire/jpeg ---

JPEG (Joint Photographic Experts Group) est une méthode de compression avec pertes très utilisée pour les images numériques.

diff --git a/files/fr/glossary/jquery/index.html b/files/fr/glossary/jquery/index.html index e21c99703f..93cb394eb1 100644 --- a/files/fr/glossary/jquery/index.html +++ b/files/fr/glossary/jquery/index.html @@ -1,12 +1,13 @@ --- title: jQuery -slug: Glossaire/jQuery +slug: Glossary/jQuery tags: - API - Bibliothèque - Glossaire - JavaScript translation_of: Glossary/jQuery +original_slug: Glossaire/jQuery ---

jQuery est une  {{Glossary("Library","bibliothèque")}} {{Glossary("JavaScript")}} qui se concentre sur la simplification de la manipulation de {{Glossary("DOM")}}, les appels d'{{Glossary ("AJAX")}} et la gestion des {{Glossary ("Event","évènements")}}. Elle est fréquemment utilisée par les développeurs JavaScript.

diff --git a/files/fr/glossary/json/index.html b/files/fr/glossary/json/index.html index e936a1fb10..e0f815d5fe 100644 --- a/files/fr/glossary/json/index.html +++ b/files/fr/glossary/json/index.html @@ -1,12 +1,13 @@ --- title: JSON -slug: Glossaire/JSON +slug: Glossary/JSON tags: - CodingScripting - Glossaire - Intro - JSON translation_of: Glossary/JSON +original_slug: Glossaire/JSON ---

JSON (JavaScript Object Notation) est un format d'échange de données. Bien qu'il n'en soit pas un sous-ensemble au sens strict, JSON ressemble fortement à un sous-ensemble de la syntaxe {{Glossary("JavaScript")}}. Le format JSON est accepté par de nombreux langages de programmation, mais il s'avère particulièrement utile pour les applications basées sur JavaScript comme les sites web et les extensions des navigateurs.

diff --git a/files/fr/glossary/key/index.html b/files/fr/glossary/key/index.html index 0c8b2118ae..4c3697d305 100644 --- a/files/fr/glossary/key/index.html +++ b/files/fr/glossary/key/index.html @@ -1,11 +1,12 @@ --- title: Clé -slug: Glossaire/Clé +slug: Glossary/Key tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Key +original_slug: Glossaire/Clé ---

Une clé est une information utilisée par un {{Glossary("Cipher","chiffre")}} pour l'{{Glossary("Encryption","encryptage")}} et/ou le {{Glossary("Decryption","décryptage")}}. Les messages cryptés doivent rester sécurisés même si tout ce qui concerne le {{Glossary("Cryptosystem","système de cryptage")}}, sauf la clé, est de notoriété publique.

diff --git a/files/fr/glossary/keyword/index.html b/files/fr/glossary/keyword/index.html index 43676e3feb..58f1850d6d 100644 --- a/files/fr/glossary/keyword/index.html +++ b/files/fr/glossary/keyword/index.html @@ -1,12 +1,13 @@ --- title: Mot-clé -slug: Glossaire/Keyword +slug: Glossary/Keyword tags: - Glossaire - Mot-clé - Recherche - recherche par mot-clé translation_of: Glossary/Keyword +original_slug: Glossaire/Keyword ---

Un mot-clé est un mot ou une phrase décrivant un contenu. En ligne, les mots-clés sont utilisés comme requêtes pour les moteurs de recherche ou comme des termes identifiant le contenu de sites web.

diff --git a/files/fr/glossary/latency/index.html b/files/fr/glossary/latency/index.html index ff9cda00c1..b24966c942 100644 --- a/files/fr/glossary/latency/index.html +++ b/files/fr/glossary/latency/index.html @@ -1,6 +1,6 @@ --- title: Latence -slug: Glossaire/Latence +slug: Glossary/Latency tags: - Audio - Glossaire @@ -10,6 +10,7 @@ tags: - Réseau - Video translation_of: Glossary/Latency +original_slug: Glossaire/Latence ---

La latence est le temps réseau nécessaire pour qu'une ressource demandée atteigne sa destination. Une latence faible est bonne, ce qui signifie qu'il y a peu ou pas de délai. Une latence forte est mauvaise, ce qui signifie que la ressource demandée prend beaucoup de temps à atteindre sa destination.

diff --git a/files/fr/glossary/lazy_load/index.html b/files/fr/glossary/lazy_load/index.html index 83374fd49a..cd239a163d 100644 --- a/files/fr/glossary/lazy_load/index.html +++ b/files/fr/glossary/lazy_load/index.html @@ -1,12 +1,13 @@ --- title: Lazy load -slug: Glossaire/Lazy_load +slug: Glossary/Lazy_load tags: - Glossary - Lazy loading - Reference - Web Performance translation_of: Glossary/Lazy_load +original_slug: Glossaire/Lazy_load ---

Lazy load (ou "chargement faineant" en français) est une stratégie qui repousse le chargement de certaines ressources (par exemple, des images) jusqu'à ce qu'elles soient nécessaires pour l'utilisateur, d'après l'activité de l'utilisateur et ses habitudes de navigation. Typiquement, ces ressources ne sont chargées que lorsqu'elles apparaissent sur la page affichée à l'écran. Lorsque le lazy-loading est correctement implémenté, le temps de chargement des ressources est réduit, ce qui contribue à améliorer le temps de charge initial (dont le time to interactive), puisque moins de ressources sont nécessaires pour que la page fonctionne.    

diff --git a/files/fr/glossary/lgpl/index.html b/files/fr/glossary/lgpl/index.html index 76aec58f52..e910e068ee 100644 --- a/files/fr/glossary/lgpl/index.html +++ b/files/fr/glossary/lgpl/index.html @@ -1,6 +1,6 @@ --- title: LGPL -slug: Glossaire/LGPL +slug: Glossary/LGPL tags: - Glossaire - Licence @@ -8,6 +8,7 @@ tags: - Partage - Remixing translation_of: Glossary/LGPL +original_slug: Glossaire/LGPL ---

La LGPL (GNU Lesser General Public License) est une licence de logiciel libre publiée par la Free Software Foundation. Elle constitue une alternative plus permissive que la stricte {{Glossary("GPL")}} {{Glossary("copyleft")}}. Alors que tout travail dérivé d'un programme sous licence GPL doit être distribué sous les mêmes termes (liberté d'utiliser, de partager, d'étudier et de modifier), la LGPL n'impose qu'au composant sous LGPL d'un programme dérivé de continuer à utiliser la LGPL, pas au programme dans son intégralité. La LGPL est habituellement utilisée comme licence pour les composants partagés comme les bibliothèques (.dll, .so, .jar, etc.).

diff --git a/files/fr/glossary/ligature/index.html b/files/fr/glossary/ligature/index.html index 611b3208ee..d76ff16bea 100644 --- a/files/fr/glossary/ligature/index.html +++ b/files/fr/glossary/ligature/index.html @@ -1,11 +1,12 @@ --- title: Ligature -slug: Glossaire/Ligature +slug: Glossary/Ligature tags: - CSS - Design - Glossaire translation_of: Glossary/Ligature +original_slug: Glossaire/Ligature ---

Une ligature est une fusion de deux caractères en un seul nouveau caractère. Par exemple, en français, "œ" est une ligature de "oe".

diff --git a/files/fr/glossary/local_scope/index.html b/files/fr/glossary/local_scope/index.html index ab16092347..a0e43cadf2 100644 --- a/files/fr/glossary/local_scope/index.html +++ b/files/fr/glossary/local_scope/index.html @@ -1,10 +1,11 @@ --- title: Portée locale -slug: Glossaire/Portée_locale +slug: Glossary/Local_scope tags: - Encodage - Glossaire translation_of: Glossary/Local_scope +original_slug: Glossaire/Portée_locale ---

La portée locale est une caractéristique des {{glossary("Variable","variables")}} qui les rend locales (c'est-à-dire, le nom de la variable est lié à sa {{glossary("Value","valeur")}} seulement à l'intérieur d'une portée qui n'est pas la {{glossary("Global scope","portée globale")}}).

diff --git a/files/fr/glossary/local_variable/index.html b/files/fr/glossary/local_variable/index.html index c52259f5cf..9942c0b416 100644 --- a/files/fr/glossary/local_variable/index.html +++ b/files/fr/glossary/local_variable/index.html @@ -1,10 +1,11 @@ --- title: Variable locale -slug: Glossaire/Variable_locale +slug: Glossary/Local_variable tags: - Encodage - Glossaire translation_of: Glossary/Local_variable +original_slug: Glossaire/Variable_locale ---

Une {{glossary("Variable","variable")}} dont le nom est associé à sa {{glossary("Value","valeur")}} uniquement dans une {{Glossary("Local scope","portée locale")}}.

diff --git a/files/fr/glossary/locale/index.html b/files/fr/glossary/locale/index.html index a2bea7a491..2f8332d939 100644 --- a/files/fr/glossary/locale/index.html +++ b/files/fr/glossary/locale/index.html @@ -1,7 +1,8 @@ --- title: Locale -slug: Glossaire/Locale +slug: Glossary/Locale translation_of: Glossary/Locale +original_slug: Glossaire/Locale ---

Les locales sont un ensemble de paramètres régionaux pour l'interface utilisateur basés sur la langue ou le pays.

diff --git a/files/fr/glossary/localization/index.html b/files/fr/glossary/localization/index.html index 30a81b2224..f6517d4f64 100644 --- a/files/fr/glossary/localization/index.html +++ b/files/fr/glossary/localization/index.html @@ -1,12 +1,13 @@ --- title: Localisation -slug: Localization +slug: Glossary/Localization tags: - Glossaire - Langue - Localisation - Paramètres régionaux translation_of: Glossary/Localization +original_slug: Localization ---

La localisation (l10n) est le processus d'adaptation d'une interface utilisateur de logiciel à une culture spécifique.

diff --git a/files/fr/glossary/loop/index.html b/files/fr/glossary/loop/index.html index 30cee61e61..35e298b0f0 100644 --- a/files/fr/glossary/loop/index.html +++ b/files/fr/glossary/loop/index.html @@ -1,11 +1,12 @@ --- title: boucle -slug: Glossaire/loop +slug: Glossary/loop tags: - Glossaire - Programmation - scripts translation_of: Glossary/loop +original_slug: Glossaire/loop ---

En {{Glossary("computer programming","programmation informatique")}}, une boucle est une séquence d'instructions répétées jusqu'à ce qu'une certaine condition soit vérifiée. Par exemple, le processus consistant à obtenir un élément parmi des données pour le modifier, et ensuite vérifier une {{Glossary("conditional","condition")}} , comme le fait qu'un compteur atteigne une valeur définie.

diff --git a/files/fr/glossary/lossless_compression/index.html b/files/fr/glossary/lossless_compression/index.html index 244641193e..b444a78fa4 100644 --- a/files/fr/glossary/lossless_compression/index.html +++ b/files/fr/glossary/lossless_compression/index.html @@ -1,6 +1,6 @@ --- title: Compression sans perte -slug: Glossaire/Compression_sans_perte +slug: Glossary/Lossless_compression tags: - Débutant - Glossaire @@ -9,6 +9,7 @@ tags: - compression - données translation_of: Glossary/Lossless_compression +original_slug: Glossaire/Compression_sans_perte ---

La compression sans perte est un type d'algorithme de compression qui permet aux données d'origine d'être parfaitement restituées à partir des données compressées. Les méthodes de compression sans perte sont réversibles. Parmi les exemples de compression sans perte on retrouve {{glossary("GZIP")}}, {{glossary("Brotli")}}, WebP, and {{glossary("PNG")}},

diff --git a/files/fr/glossary/lossy_compression/index.html b/files/fr/glossary/lossy_compression/index.html index 5b8a1a77f8..0df064f091 100644 --- a/files/fr/glossary/lossy_compression/index.html +++ b/files/fr/glossary/lossy_compression/index.html @@ -1,6 +1,6 @@ --- title: Compression avec perte -slug: Glossaire/compression_avec_perte +slug: Glossary/lossy_compression tags: - Débutant - Glossaire @@ -8,6 +8,7 @@ tags: - JPEG - compression translation_of: Glossary/lossy_compression +original_slug: Glossaire/compression_avec_perte ---

La compression avec perte, ou compression irréversible, est une méthode de compression des données qui réalise des approximations inexactes et abandonne une partie des données pour représenter un contenu.

diff --git a/files/fr/glossary/ltr/index.html b/files/fr/glossary/ltr/index.html index 4d5fc4d8bc..e3540dbca7 100644 --- a/files/fr/glossary/ltr/index.html +++ b/files/fr/glossary/ltr/index.html @@ -1,10 +1,11 @@ --- title: ltr -slug: Glossaire/ltr +slug: Glossary/ltr tags: - Composing - Glossaire - Localisation translation_of: Glossary/ltr +original_slug: Glossaire/ltr ---

ltr (Left To Right, soit gauche vers droite) est une propriété de {{glossary("locale")}} qui indique que le texte est écrit de la gauche vers la droite. Par exemple, la locale en-US (pour Anglais US) indique une écriture de gauche à droite.

diff --git a/files/fr/glossary/main_axis/index.html b/files/fr/glossary/main_axis/index.html index 35acf19fae..cd4e7bb994 100644 --- a/files/fr/glossary/main_axis/index.html +++ b/files/fr/glossary/main_axis/index.html @@ -1,12 +1,13 @@ --- title: Axe principal -slug: Glossaire/Axe_principal +slug: Glossary/Main_Axis tags: - CSS - Glossaire - axes - flexbox translation_of: Glossary/Main_Axis +original_slug: Glossaire/Axe_principal ---

L'axe principal d'une {{glossary("flexbox")}} est déterminé par la direction définie dans la propriété {{cssxref("flex-direction")}}. Il y a 4 valeurs possibles pour flex-direction. Ce sont :

diff --git a/files/fr/glossary/mathml/index.html b/files/fr/glossary/mathml/index.html index 9e95854608..1f6803a0aa 100644 --- a/files/fr/glossary/mathml/index.html +++ b/files/fr/glossary/mathml/index.html @@ -1,6 +1,6 @@ --- title: MathML -slug: Glossaire/MathML +slug: Glossary/MathML tags: - CodingScripting - Glossaire @@ -8,6 +8,7 @@ tags: - Mathematical Markup Language - XML translation_of: Glossary/MathML +original_slug: Glossaire/MathML ---

MathML (une application {{glossary("XML")}}) est un standard ouvert destiné à représenter des formules mathématiques dans des pages web. En 1998, MathML était d'abord une recommandation du W3C pour représenter des formules mathématiques dans le {{glossary("navigateur")}}. MathML a également d'autres applications parmi lesquelles les informations scientifiques et la synthèse vocale.

diff --git a/files/fr/glossary/media/css/index.html b/files/fr/glossary/media/css/index.html index 677bf4253f..14a43d9bc3 100644 --- a/files/fr/glossary/media/css/index.html +++ b/files/fr/glossary/media/css/index.html @@ -1,12 +1,13 @@ --- title: Média (CSS) -slug: Glossaire/Media/CSS +slug: Glossary/Media/CSS tags: - CSS - Glossaire - Intro - Media translation_of: Glossary/Media/CSS +original_slug: Glossaire/Media/CSS ---

Dans le contexte de {{Glossary("CSS")}} (Cascading Style Sheets), le terme média fait référence à la destination vers laquelle le document doit être dessiné par le {{Glossary("rendering engine")}}. Il s'agit généralement d'un écran—mais il peut également s'agir d'une imprimante, d'un synthétiseur vocal, d'un afficheur Braille ou d'un autre type de périphérique.

diff --git a/files/fr/glossary/media/index.html b/files/fr/glossary/media/index.html index f883de8273..d708511807 100644 --- a/files/fr/glossary/media/index.html +++ b/files/fr/glossary/media/index.html @@ -1,10 +1,11 @@ --- title: Media -slug: Glossaire/Media +slug: Glossary/Media tags: - Désambiguïsation - Glossaire translation_of: Glossary/Media +original_slug: Glossaire/Media ---

Le terme média est surchargé quand on parle du Web ; il prend des significations différentes selon le contexte.

diff --git a/files/fr/glossary/metadata/index.html b/files/fr/glossary/metadata/index.html index 22c547e97f..245f0ebcd9 100644 --- a/files/fr/glossary/metadata/index.html +++ b/files/fr/glossary/metadata/index.html @@ -1,12 +1,13 @@ --- title: Métadonnée -slug: Glossaire/Métadonnée +slug: Glossary/Metadata tags: - CodingScripting - Glossaire - HTML - métadonnée translation_of: Glossary/Metadata +original_slug: Glossaire/Métadonnée ---

Une métadonnée est — dans sa définition la plus simple — une donnée qui décrit une donnée. Par exemple, un document {{glossary("HTML")}} est une donnée, mais son élément {{htmlelement("head")}} peut aussi contenir des métadonnées le décrivant — par exemple qui l'a écrit, ou son résumé.

diff --git a/files/fr/glossary/method/index.html b/files/fr/glossary/method/index.html index aded88ffb7..1d5eac1244 100644 --- a/files/fr/glossary/method/index.html +++ b/files/fr/glossary/method/index.html @@ -1,11 +1,12 @@ --- title: Méthode -slug: Glossaire/Méthode +slug: Glossary/Method tags: - Glossaire - Programmation - Script translation_of: Glossary/Method +original_slug: Glossaire/Méthode ---

Une méthode est une {{glossary("fonction", "fonction")}} (function) qui est une {{glossary("property","propriété")}} d'un {{glossary("object","objet")}}. Il existe deux sortes de méthodes : Les méthodes d'instance qui représentent les fonctions fournissant une interface pour effectuer des actions dans le contexte de l'objet qu'elles composent ou les méthodes statiques qui représentent les fonctions pouvant être exécutées sans nécessiter d'instanciation.

diff --git a/files/fr/glossary/microsoft_edge/index.html b/files/fr/glossary/microsoft_edge/index.html index 529e2a07df..360c4a3104 100644 --- a/files/fr/glossary/microsoft_edge/index.html +++ b/files/fr/glossary/microsoft_edge/index.html @@ -1,11 +1,12 @@ --- title: Microsoft Edge -slug: Glossaire/Microsoft_Edge +slug: Glossary/Microsoft_Edge tags: - Glossaire - Infrastructure - Navigateur translation_of: Glossary/Microsoft_Edge +original_slug: Glossaire/Microsoft_Edge ---

Microsoft Edge est un navigateur graphique gratuit fourni avec Microsoft Windows et développé par Microsoft depuis 2014. D'abord connu sous le nom de Spartan, Edge a remplacé le très ancien navigateur Microsoft {{glossary("Microsoft Internet Explorer","Internet Explorer")}}.

diff --git a/files/fr/glossary/microsoft_internet_explorer/index.html b/files/fr/glossary/microsoft_internet_explorer/index.html index 0fab23fa07..0aa8b356d1 100644 --- a/files/fr/glossary/microsoft_internet_explorer/index.html +++ b/files/fr/glossary/microsoft_internet_explorer/index.html @@ -1,6 +1,6 @@ --- title: Microsoft Internet Explorer -slug: Glossaire/Microsoft_Internet_Explorer +slug: Glossary/Microsoft_Internet_Explorer tags: - Glossaire - Internet Explorer @@ -12,6 +12,7 @@ tags: - Système d'exploitation Windows - Windows translation_of: Glossary/Microsoft_Internet_Explorer +original_slug: Glossaire/Microsoft_Internet_Explorer ---

Internet Explorer (ou IE) est un {{glossary("navigateur")}} graphique gratuit maintenu par Microsoft pour conserver une compatibilité avec son utilisation en entreprise. {{glossary("Microsoft Edge")}} est actuellement le navigateur par défaut sous Windows.

diff --git a/files/fr/glossary/middleware/index.html b/files/fr/glossary/middleware/index.html index 6ea43f8afa..9a15975be2 100644 --- a/files/fr/glossary/middleware/index.html +++ b/files/fr/glossary/middleware/index.html @@ -1,10 +1,11 @@ --- title: Intergiciel -slug: Glossaire/Intergiciel +slug: Glossary/Middleware tags: - Glossaire - Programmation translation_of: Glossary/Middleware +original_slug: Glossaire/Intergiciel ---

Intergiciel (Middleware) est un terme (défini vaguement) pour tout logiciel ou service permettant aux parties d'un système de communiquer et de gérer des données. C'est le logiciel qui gère la communication entre les composants et les entrées / sorties, de sorte que les développeurs peuvent se concentrer sur l'objectif spécifique de leur application.

diff --git a/files/fr/glossary/mime/index.html b/files/fr/glossary/mime/index.html index fd1487f5cd..453936ac6c 100644 --- a/files/fr/glossary/mime/index.html +++ b/files/fr/glossary/mime/index.html @@ -1,12 +1,13 @@ --- title: mime -slug: Glossaire/mime +slug: Glossary/mime tags: - Débutant - Glossaire - Infrastructure - MIME translation_of: Glossary/mime +original_slug: Glossaire/mime ---

MIME "Multipurpose internet mail extensions" est un standard pour décrire des documents sous d'autres formes que du texte ASCII, par exemple audio, vidéo et images. Initialement utilisé pour les pièces jointes aux courriers électroniques, il est devenu le standard pour définir n'importe où les types de documents.

diff --git a/files/fr/glossary/mime_type/index.html b/files/fr/glossary/mime_type/index.html index fac6477869..2448619460 100644 --- a/files/fr/glossary/mime_type/index.html +++ b/files/fr/glossary/mime_type/index.html @@ -1,10 +1,11 @@ --- title: Type MIME -slug: Glossaire/Type_MIME +slug: Glossary/MIME_type tags: - Glossaire - Mécanismes web translation_of: Glossary/MIME_type +original_slug: Glossaire/Type_MIME ---

Un type MIME (désormais correctement appelé "media type", mais aussi parfois "content type") est une chaîne de caractères envoyée avec un fichier pour en indiquer le type (par exemple, un fichier sonore sera étiqueté audio/ogg ou un fichier graphique image/png).

diff --git a/files/fr/glossary/minification/index.html b/files/fr/glossary/minification/index.html index 794e296c0b..4e151bb536 100644 --- a/files/fr/glossary/minification/index.html +++ b/files/fr/glossary/minification/index.html @@ -1,11 +1,12 @@ --- title: minification -slug: Glossaire/minification +slug: Glossary/minification tags: - Glossaire - Performance - Performance Web translation_of: Glossary/minification +original_slug: Glossaire/minification ---

 La minification est le processus de suppression des données inutiles ou redondantes sans affecter la manière dont une ressource est traitée par le navigateur. La minification peut inclure la suppression des commentaires de code, des espaces blancs et du code inutilisé, ainsi que le raccourcissement des noms de variables et de fonctions. La minification est utilisée pour améliorer les performances web en réduisant la taille du fichier. Il s'agit généralement d'une étape automatisée qui se produit au moment de la construction.

diff --git a/files/fr/glossary/mitm/index.html b/files/fr/glossary/mitm/index.html index be886dacd8..1f9478e03d 100644 --- a/files/fr/glossary/mitm/index.html +++ b/files/fr/glossary/mitm/index.html @@ -1,11 +1,12 @@ --- title: MitM -slug: Glossaire/MitM +slug: Glossary/MitM tags: - Attaque - Glossaire - Sécurité translation_of: Glossary/MitM +original_slug: Glossaire/MitM ---

Une attaque de l'homme du milieu (Man-in-the-middle attack MitM) intercepte une communication entre deux systèmes. Par exemple, un routeur Wi-Fi peut être compromis.

diff --git a/files/fr/glossary/mixin/index.html b/files/fr/glossary/mixin/index.html index 71e68f8164..1f5b895be6 100644 --- a/files/fr/glossary/mixin/index.html +++ b/files/fr/glossary/mixin/index.html @@ -1,12 +1,13 @@ --- title: Mixin -slug: Glossaire/Mixin +slug: Glossary/Mixin tags: - Glossaire - Méthode - Programmation - Propriété translation_of: Glossary/Mixin +original_slug: Glossaire/Mixin ---

Un mixin est une {{Glossary("class","classe")}} ou une {{Glossary("interface","interface")}} dans laquelle  une partie ou la totalité des {{glossary("method","méthodes")}} et des {{glossary("property","propriétés")}} sont implémentées en  exigeant qu'une autre {{glossary("class","classe")}} ou {{Glossary("interface")}} fournisse les éléments manquants . La nouvelle classe ou interface inclut alors à la fois les propriétés et les méthodes du mixin ainsi que celles qu'il définit lui-même. Toutes les méthodes et propriétés sont utilisées exactement de la même façon, qu'elles soient implémentées dans le mixin ou dans l'interface, ou qu'elle soit la classe qui implémente le mixin.

diff --git a/files/fr/glossary/mobile_first/index.html b/files/fr/glossary/mobile_first/index.html index 8cd1f60275..dcaa688f82 100644 --- a/files/fr/glossary/mobile_first/index.html +++ b/files/fr/glossary/mobile_first/index.html @@ -1,10 +1,11 @@ --- title: Mobile d'abord -slug: Glossaire/Mobile_d_abord +slug: Glossary/Mobile_First tags: - Conception - Disposition - Glossaire translation_of: Glossary/Mobile_First +original_slug: Glossaire/Mobile_d_abord ---

Le "mobile d'abord", une forme d'{{Glossary("Progressive enhancement","amélioration progressive")}}, est une approche de développement et de conception web qui met l'accent sur l'établissement de priorités, en matière de conception et de développement, pour les tailles d'écrans mobiles plutôt que pour les écrans de bureau. La raison d'être de l'approche "mobile d'abord" est de fournir aux utilisateurs de bonnes expériences utilisateur à toutes les tailles d'écran, en commençant par créer une expérience utilisateur qui fonctionne bien sur les petits écrans, puis en l'optimisant pour les autres tailles d'écran. L'approche "mobile d'abord" contraste avec l'ancienne approche de la conception pour les tailles d'écran de bureau d'abord, puis seulement plus tard, en ajoutant un peu de support, pour les petites tailles d'écran.

diff --git a/files/fr/glossary/modem/index.html b/files/fr/glossary/modem/index.html index a561d35c74..b0606f9b4a 100644 --- a/files/fr/glossary/modem/index.html +++ b/files/fr/glossary/modem/index.html @@ -1,11 +1,12 @@ --- title: Modem -slug: Glossaire/Modem +slug: Glossary/Modem tags: - Débutant - Glossaire - Infrastructure translation_of: Glossary/Modem +original_slug: Glossaire/Modem ---

Un modem ("modulateur-démodulateur") est un appareil qui convertit les informations  numériques en informations analogiques et vice-versa, pour l'envoi de données à travers les réseaux. Différents types sont utilisés pour différents réseaux : des modems DSL pour les fils téléphoniques, des modems WiFi pour les ondes radio de courte portée, des modems 3G pour les tours de données cellulaires, etc.

diff --git a/files/fr/glossary/modern_web_apps/index.html b/files/fr/glossary/modern_web_apps/index.html index fcf21a04cf..a1d630d9a9 100644 --- a/files/fr/glossary/modern_web_apps/index.html +++ b/files/fr/glossary/modern_web_apps/index.html @@ -1,9 +1,10 @@ --- title: Applications web modernes -slug: Glossaire/applications_web_modernes +slug: Glossary/Modern_web_apps tags: - Applications - Glossaire translation_of: Glossary/Modern_web_apps +original_slug: Glossaire/applications_web_modernes ---

Voir {{glossary("Progressive web apps","Applications web progressistes")}}

diff --git a/files/fr/glossary/modularity/index.html b/files/fr/glossary/modularity/index.html index adc14648d9..6e544ef8a0 100644 --- a/files/fr/glossary/modularity/index.html +++ b/files/fr/glossary/modularity/index.html @@ -1,10 +1,11 @@ --- title: Modularité -slug: Glossaire/modularité +slug: Glossary/modularity tags: - CodingScripting - Glossaire translation_of: Glossary/modularity +original_slug: Glossaire/modularité ---

Le terme Modularité se réfère au degré qu'ont les composants d'un système à être séparés et recombinés, il s'agit également de la division d'un paquet logiciel en unités logiques. L'avantage d'un système modulaire est qu'il peut traiter ses composants de manière indépendante.

diff --git a/files/fr/glossary/mozilla_firefox/index.html b/files/fr/glossary/mozilla_firefox/index.html index 3e2e370324..c6f7562faf 100644 --- a/files/fr/glossary/mozilla_firefox/index.html +++ b/files/fr/glossary/mozilla_firefox/index.html @@ -1,6 +1,6 @@ --- title: Mozilla Firefox -slug: Glossaire/Mozilla_Firefox +slug: Glossary/Mozilla_Firefox tags: - Firefox - Glossaire @@ -9,6 +9,7 @@ tags: - Mozilla Firefox - Navigateur translation_of: Glossary/Mozilla_Firefox +original_slug: Glossaire/Mozilla_Firefox ---

Mozilla Firefox est un {{Glossary("navigateur")}} open source libre dont le développement est supervisé par Mozilla Corporation. Firefox fonctionne sur Windows, OS X, Linux, et Android.

diff --git a/files/fr/glossary/mutable/index.html b/files/fr/glossary/mutable/index.html index b35d191a8a..59dc106289 100644 --- a/files/fr/glossary/mutable/index.html +++ b/files/fr/glossary/mutable/index.html @@ -1,11 +1,12 @@ --- title: Muable -slug: Glossaire/Muable +slug: Glossary/Mutable tags: - Débutant - Glossaire - Variables translation_of: Glossary/Mutable +original_slug: Glossaire/Muable ---

Une variable muable (mutable) est une variable qui peut être modifiée. En {{glossary("JavaScript")}}, seuls les {{Glossary("Object","objets")}} et {{Glossary("Array","tableaux")}} (arrays) sont muables, pas {{Glossary("primitive", "les valeurs primitives")}}.

diff --git a/files/fr/glossary/mvc/index.html b/files/fr/glossary/mvc/index.html index 590a043bb8..758a55fb46 100644 --- a/files/fr/glossary/mvc/index.html +++ b/files/fr/glossary/mvc/index.html @@ -1,11 +1,12 @@ --- title: MVC -slug: Glossaire/MVC +slug: Glossary/MVC tags: - Conception - Glossaire - Logiciel translation_of: Glossary/MVC +original_slug: Glossaire/MVC ---

MVC (Model-View-Controller ou Modèle-Vue-Contrôleur) est un modèle dans la conception de logiciels. Il met l'accent sur la séparation entre la logique métier et l'affichage du logiciel. Cette «séparation des préoccupations» permet une meilleure répartition du travail et une maintenance améliorée. Certains autres modèles de conception sont basés sur MVC, tels que MVVM (Model-View-Viewmodel), MTP (Model-View-Presenter) et MVW (Model-View-Whatever).

diff --git a/files/fr/glossary/namespace/index.html b/files/fr/glossary/namespace/index.html index 18606c6d32..5483b24ea7 100644 --- a/files/fr/glossary/namespace/index.html +++ b/files/fr/glossary/namespace/index.html @@ -1,9 +1,10 @@ --- title: Namespace -slug: Glossaire/Namespace +slug: Glossary/Namespace tags: - Glossary translation_of: Glossary/Namespace +original_slug: Glossaire/Namespace ---

Un espace de nom (en anglais : Namespace) est un contexte qui permet d'identifier et grouper un ensemble logique d'éléments utilisés par un programme. Dans un même contexte et une même portée (scope), un identifiant doit identifier une entité de manière unique.

diff --git a/files/fr/glossary/nan/index.html b/files/fr/glossary/nan/index.html index fc42a39015..41ffee6d82 100644 --- a/files/fr/glossary/nan/index.html +++ b/files/fr/glossary/nan/index.html @@ -1,10 +1,11 @@ --- title: NaN -slug: Glossaire/NaN +slug: Glossary/NaN tags: - Encodage - Glossaire translation_of: Glossary/NaN +original_slug: Glossaire/NaN ---

NaN (Not a Number — pas un nombre) est un {{Glossary("Type", "type de données")}} numérique qui indique une valeur indéfinie ou une valeur qui ne peut pas être représentée, en particulier le résultat d'une opération à virgule flottante.

diff --git a/files/fr/glossary/nat/index.html b/files/fr/glossary/nat/index.html index 02c9028eca..333e18d567 100644 --- a/files/fr/glossary/nat/index.html +++ b/files/fr/glossary/nat/index.html @@ -1,6 +1,6 @@ --- title: NAT -slug: Glossaire/NAT +slug: Glossary/NAT tags: - Débutant - Glossaire @@ -8,6 +8,7 @@ tags: - Mécanismes web - WebRTC translation_of: Glossary/NAT +original_slug: Glossaire/NAT ---

NAT (Network Address Translation) est une technique pour permettre à plusieurs ordinateurs de partager une adresse IP. Le NAT attribue des adresses uniques aux ordinateurs du réseau local et ajuste le trafic réseau entrant/sortant pour envoyer les données au bon endroit.

diff --git a/files/fr/glossary/native/index.html b/files/fr/glossary/native/index.html index acaf7619c4..98c19597ca 100644 --- a/files/fr/glossary/native/index.html +++ b/files/fr/glossary/native/index.html @@ -1,10 +1,11 @@ --- title: Native -slug: Glossaire/Native +slug: Glossary/Native tags: - Glossaire - Programmation translation_of: Glossary/Native +original_slug: Glossaire/Native ---

Une application native a été compilée pour s'exécuter sur la combinaison logiciel-matériel habituelle de l'architecture cible.

diff --git a/files/fr/glossary/navigation_directive/index.html b/files/fr/glossary/navigation_directive/index.html index 132871db0b..14fe1afce2 100644 --- a/files/fr/glossary/navigation_directive/index.html +++ b/files/fr/glossary/navigation_directive/index.html @@ -1,11 +1,12 @@ --- title: Directive de navigation -slug: Glossaire/Directive_de_navigation +slug: Glossary/Navigation_directive tags: - CSP - Glossaire - Sécurité translation_of: Glossary/Navigation_directive +original_slug: Glossaire/Directive_de_navigation ---

Les directives de navigation {{Glossary("CSP")}} sont utilisées dans un en-tête de {{HTTPHeader("Content-Security-Policy","politique de sécurité de contenu")}} et régissent l'emplacement sur lequel un utilisateur peut naviguer ou envoyer un formulaire, par exemple.

diff --git a/files/fr/glossary/netscape_navigator/index.html b/files/fr/glossary/netscape_navigator/index.html index 6049ba3964..bcabcddb3d 100644 --- a/files/fr/glossary/netscape_navigator/index.html +++ b/files/fr/glossary/netscape_navigator/index.html @@ -1,6 +1,6 @@ --- title: Netscape Navigator -slug: Glossaire/Netscape_Navigator +slug: Glossary/Netscape_Navigator tags: - Glossaire - Navigateur @@ -8,6 +8,7 @@ tags: - Netscape - Netscape Navigator translation_of: Glossary/Netscape_Navigator +original_slug: Glossaire/Netscape_Navigator ---

Netscape Navigator, ou Netscape, était le principal {{glossary("navigateur")}} des années 90. Il était basé sur Mosaic et l'équipe de Netscape était dirigée par Marc Andreessen, un programmeur qui a également écrit du code pour Mosaic.

diff --git a/files/fr/glossary/nntp/index.html b/files/fr/glossary/nntp/index.html index 085a6a7992..c03388b194 100644 --- a/files/fr/glossary/nntp/index.html +++ b/files/fr/glossary/nntp/index.html @@ -1,10 +1,11 @@ --- title: NNTP -slug: Glossaire/NNTP +slug: Glossary/NNTP tags: - Glossaire - Infrastructure translation_of: Glossary/NNTP +original_slug: Glossaire/NNTP ---

NNTP (Network News Transfer Protocol) est un {{Glossary("Protocol","protocole")}} utilisé pour transférer des messages {{Glossary("Usenet")}} d'un client vers un serveur ou entre serveurs.

diff --git a/files/fr/glossary/node.js/index.html b/files/fr/glossary/node.js/index.html index d087a3262a..849a9312de 100644 --- a/files/fr/glossary/node.js/index.html +++ b/files/fr/glossary/node.js/index.html @@ -1,11 +1,12 @@ --- title: Node.js -slug: Glossaire/Node.js +slug: Glossary/Node.js tags: - Glossaire - Infrastructure - JavaScript translation_of: Glossary/Node.js +original_slug: Glossaire/Node.js ---

Node.js est un environnement {{Glossary("JavaScript")}} multiplateforme qui permet aux développeurs de créer des applications réseaux et côté serveur en utilisant JavaScript. 

diff --git a/files/fr/glossary/node/networking/index.html b/files/fr/glossary/node/networking/index.html index 4cb4be5f73..05b13d28df 100644 --- a/files/fr/glossary/node/networking/index.html +++ b/files/fr/glossary/node/networking/index.html @@ -1,10 +1,11 @@ --- title: Nœud (réseau) -slug: Glossary/Node/réseau +slug: Glossary/Node/networking tags: - Glossaire - Infrastructure translation_of: Glossary/Node/networking +original_slug: Glossary/Node/réseau ---

Dans un réseau, un nœud est un point unique du réseau. Dans les réseaux physiques, un nœud est en général un appareil, comme un ordinateur ou un routeur.

diff --git a/files/fr/glossary/non-normative/index.html b/files/fr/glossary/non-normative/index.html index 725b838c3f..f0f0132fcf 100644 --- a/files/fr/glossary/non-normative/index.html +++ b/files/fr/glossary/non-normative/index.html @@ -1,12 +1,13 @@ --- title: non-normatif -slug: Glossaire/non-normative +slug: Glossary/non-normative tags: - Glossaire - Infrastructure - Specification - Standardisation translation_of: Glossary/non-normative +original_slug: Glossaire/non-normative ---

Les {{Glossary("Specification","spécifications")}} logicielles contiennent souvent des informations marquées comme non normatives ou informatives, ce qui signifie qu'elles sont fournies dans le but d'aider le lecteur à mieux comprendre la spécification ou pour montrer un exemple ou une bonne pratique, et qu'il n'est pas nécessaire de les suivre comme une règle. Les sections qui contiennent les informations officielles à respecter sont souvent marquées comme {{Glossary("Normative", "normatives")}}.

diff --git a/files/fr/glossary/normative/index.html b/files/fr/glossary/normative/index.html index 5d9c587333..7b3799bb0a 100644 --- a/files/fr/glossary/normative/index.html +++ b/files/fr/glossary/normative/index.html @@ -1,12 +1,13 @@ --- title: Normatif -slug: Glossaire/Normative +slug: Glossary/Normative tags: - Glossaire - Infrastructure - Spécification(2) - Standardisation translation_of: Glossary/Normative +original_slug: Glossaire/Normative ---

Normatif est un mot communément utilisé dans des {{Glossary("spécification", "spécifications")}} logicielles pour désigner les sections qui sont standardisées et qui doivent être suivies comme des règles. Les spécifications peuvent également contenir des sections marquées {{Glossary("non-normative","non normatives")}} ou informatives, ce qui signifie qu'elles sont données dans le but d'aider le lecteur à mieux comprendre les spécifications ou pour apporter un exemple concret ou de bonnes pratiques, qui n'ont pas à être suivis comme une règle.

diff --git a/files/fr/glossary/null/index.html b/files/fr/glossary/null/index.html index b988a26b36..61486f047b 100644 --- a/files/fr/glossary/null/index.html +++ b/files/fr/glossary/null/index.html @@ -1,10 +1,11 @@ --- title: 'Null' -slug: Glossaire/Null +slug: Glossary/Null tags: - CodingScripting - Glossaire translation_of: Glossary/Null +original_slug: Glossaire/Null ---

En informatique, une valeur null représente une référence qui pointe, en général de manière volontaire, vers un {{glossary("objet")}} ou une adresse invalide ou inexistant. La signification d'une référence nulle varie selon les implémentations des langages.

diff --git a/files/fr/glossary/number/index.html b/files/fr/glossary/number/index.html index 1f3bcd7fbf..1d6225a933 100644 --- a/files/fr/glossary/number/index.html +++ b/files/fr/glossary/number/index.html @@ -1,11 +1,12 @@ --- title: Number -slug: Glossaire/Number +slug: Glossary/Number tags: - CodingScripting - Glossaire - JavaScript translation_of: Glossary/Number +original_slug: Glossaire/Number ---

En {{Glossary("JavaScript")}}, Number est un type de donnée numérique dans le format à virgule flottante double précision 64 bits (IEEE 754). Dans d'autres langages de programmation, différents types numériques peuvent exister, par exemple : Integers, Floats, Doubles, ou Bignums.

diff --git a/files/fr/glossary/object/index.html b/files/fr/glossary/object/index.html index 88fecc0713..5b36f5cd38 100644 --- a/files/fr/glossary/object/index.html +++ b/files/fr/glossary/object/index.html @@ -1,12 +1,13 @@ --- title: Objet -slug: Glossaire/Objet +slug: Glossary/Object tags: - Glossaire - Intro - Objet - Programmation translation_of: Glossary/Object +original_slug: Glossaire/Objet ---

Un Objet est une structure contenant des données et des instructions en rapport avec ces données. Un Objet correspond parfois à des choses du monde réel, par exemple à une voiture ou à une piste dans un jeu vidéo de course. {{glossary("JavaScript")}}, Java, C++, Python et Ruby sont des exemples de langages de {{glossary("OOP","programmation orientée objet")}}.

diff --git a/files/fr/glossary/object_reference/index.html b/files/fr/glossary/object_reference/index.html index bb4d509357..3ba351bcd0 100644 --- a/files/fr/glossary/object_reference/index.html +++ b/files/fr/glossary/object_reference/index.html @@ -1,10 +1,11 @@ --- title: Référence d'objet -slug: Glossaire/Référence_d_objet +slug: Glossary/Object_reference tags: - Glossaire - Programmation translation_of: Glossary/Object_reference +original_slug: Glossaire/Référence_d_objet ---

Un lien vers un {{glossary("objet")}}. Les références d'objet peuvent s'utiliser exactement comme des objets liés.

diff --git a/files/fr/glossary/oop/index.html b/files/fr/glossary/oop/index.html index 7ea79f6c83..2433e9722e 100644 --- a/files/fr/glossary/oop/index.html +++ b/files/fr/glossary/oop/index.html @@ -1,11 +1,12 @@ --- title: POO -slug: Glossaire/POO +slug: Glossary/OOP tags: - Débutant - Glossaire - Script translation_of: Glossary/OOP +original_slug: Glossaire/POO ---

La POO (Programmation Orientée Objet) est un paradigme de programmation qui consiste à encapsuler les données et les traitements en relation avec ces données dans des {{glossary("object","objets")}}. Les algorithmes consistent alors à orchestrer les opérations sur ces objets et non plus sur ce qui les compose.

diff --git a/files/fr/glossary/opengl/index.html b/files/fr/glossary/opengl/index.html index 96a5d72e32..ed94d850f6 100644 --- a/files/fr/glossary/opengl/index.html +++ b/files/fr/glossary/opengl/index.html @@ -1,11 +1,12 @@ --- title: OpenGL -slug: Glossaire/OpenGL +slug: Glossary/OpenGL tags: - Glossaire - OpenGL - Programmation translation_of: Glossary/OpenGL +original_slug: Glossaire/OpenGL ---

OpenGL (Open Graphics Library) est une interface de programmation d'application (API) multi-plateforme et un langage pour le rendu de graphismes vectoriels 2D et 3D. L'API est typiquement utilisée pour interagir avec un processeur graphique (ou GPU, graphics processing unit) pour que le rendu soit accéléré par le matériel.

diff --git a/files/fr/glossary/openssl/index.html b/files/fr/glossary/openssl/index.html index e14e93385c..f6f3c942af 100644 --- a/files/fr/glossary/openssl/index.html +++ b/files/fr/glossary/openssl/index.html @@ -1,10 +1,11 @@ --- title: OpenSSL -slug: Glossaire/OpenSSL +slug: Glossary/OpenSSL tags: - Glossaire - Sécurité translation_of: Glossary/OpenSSL +original_slug: Glossaire/OpenSSL ---

OpenSSL est une implémentation open source de {{glossary("SSL")}} et de {{glossary("TLS")}}.

diff --git a/files/fr/glossary/opera_browser/index.html b/files/fr/glossary/opera_browser/index.html index c13afeeae9..1ebe91c811 100644 --- a/files/fr/glossary/opera_browser/index.html +++ b/files/fr/glossary/opera_browser/index.html @@ -1,6 +1,6 @@ --- title: Navigateur Opera -slug: Glossaire/Opera_Browser +slug: Glossary/Opera_Browser tags: - Glossaire - Navigateur @@ -8,6 +8,7 @@ tags: - Navigation - Opera translation_of: Glossary/Opera_Browser +original_slug: Glossaire/Opera_Browser ---

Opera est le cinquième {{glossary("navigateur")}} web le plus utilisé, distribué publiquement en 1996 et ne fonctionnant à l'origine que sur Windows. Opera utilise {{glossary("Blink")}} comme moteur de rendu depuis 2013 (avant cette date, il s'agissait de {{glossary("Presto")}}). Opera existe également en versions tablette et mobile.

diff --git a/files/fr/glossary/operand/index.html b/files/fr/glossary/operand/index.html index f401dfe0c5..2e3d2f6cdb 100644 --- a/files/fr/glossary/operand/index.html +++ b/files/fr/glossary/operand/index.html @@ -1,10 +1,11 @@ --- title: Opérande -slug: Glossaire/Operand +slug: Glossary/Operand tags: - Encodage - Glossaire translation_of: Glossary/Operand +original_slug: Glossaire/Operand ---

Un opérande est la partie d'une instruction qui représente la donnée manipulée par l'{{glossary("Operator","opérateur")}}. Par exemple, lors de l'ajout de deux nombres, les nombres sont les opérandes et "+" est l'opérateur.

diff --git a/files/fr/glossary/operator/index.html b/files/fr/glossary/operator/index.html index 9b0496e837..553dae7020 100644 --- a/files/fr/glossary/operator/index.html +++ b/files/fr/glossary/operator/index.html @@ -1,10 +1,11 @@ --- title: Opérateur -slug: Glossaire/Operator +slug: Glossary/Operator tags: - Glossaire - Programmation translation_of: Glossary/Operator +original_slug: Glossaire/Operator ---

Syntaxe réservée constituée de caractères alphanumériques ou de ponctuation apportant des fonctionnalités intégrées.  Par exemple, "+" représente l'opérateur d'addition de nombres et de concatenation de chaînes de caractères, alors que l'opération "non", "!", est la négation d'une expression — par exemple, une déclaration vraie returnera false.

diff --git a/files/fr/glossary/origin/index.html b/files/fr/glossary/origin/index.html index 751adb267d..0edb3426ff 100644 --- a/files/fr/glossary/origin/index.html +++ b/files/fr/glossary/origin/index.html @@ -1,11 +1,12 @@ --- title: Origine -slug: Glossaire/Origine +slug: Glossary/Origin tags: - Glossaire - Mécanismes web - origine translation_of: Glossary/Origin +original_slug: Glossaire/Origine ---

Résumé

diff --git a/files/fr/glossary/ota/index.html b/files/fr/glossary/ota/index.html index db26b69588..546d75367d 100644 --- a/files/fr/glossary/ota/index.html +++ b/files/fr/glossary/ota/index.html @@ -1,6 +1,6 @@ --- title: OTA -slug: Glossaire/OTA +slug: Glossary/OTA tags: - Glossaire - Infrastructure @@ -8,6 +8,7 @@ tags: - Mise à jour - OTA translation_of: Glossary/OTA +original_slug: Glossaire/OTA ---

Over The Air (OTA) se réfère à un système de mise à jour automatique sur des appareils connectés à un serveur central. Tous les propriétaires d'un appareil qui vont recevoir des instructions d'"update" (mise à jour) sont sur le même canal, et chaque appareil a souvent accès à plusieurs canaux (ex : pour les outils production ou ingénieur)

diff --git a/files/fr/glossary/owasp/index.html b/files/fr/glossary/owasp/index.html index dc155c1a58..1137274b83 100644 --- a/files/fr/glossary/owasp/index.html +++ b/files/fr/glossary/owasp/index.html @@ -1,10 +1,11 @@ --- title: OWASP -slug: Glossaire/OWASP +slug: Glossary/OWASP tags: - Glossaire - Sécurité translation_of: Glossary/OWASP +original_slug: Glossaire/OWASP ---

OWASP (Open Web Application Security Project) est une organisation à but non lucratif et un réseau mondial qui travaille sur la sécurité des logiciels libres, en particulier sur le Web.

diff --git a/files/fr/glossary/p2p/index.html b/files/fr/glossary/p2p/index.html index 0e8769c6b9..b4a57cc6ce 100644 --- a/files/fr/glossary/p2p/index.html +++ b/files/fr/glossary/p2p/index.html @@ -1,7 +1,8 @@ --- title: P2P -slug: Glossaire/P2P +slug: Glossary/P2P translation_of: Glossary/P2P +original_slug: Glossaire/P2P ---

P2P (Peer-to-peer ou pair à pair) est une architecture réseau dans laquelle tous les ordinateurs, appelés nœuds (peers), ont autant de privilèges et se partagent la charge de travail. Le P2P diffère d'une architecture client-serveur dans laquelle plusieurs clients (nœuds) se connectent à un serveur centralisé pour utiliser des services.

diff --git a/files/fr/glossary/pac/index.html b/files/fr/glossary/pac/index.html index 5784cf550a..cf597e33a7 100644 --- a/files/fr/glossary/pac/index.html +++ b/files/fr/glossary/pac/index.html @@ -1,10 +1,11 @@ --- title: PAC -slug: Glossaire/PAC +slug: Glossary/PAC tags: - Glossaire - Programmation translation_of: Glossary/PAC +original_slug: Glossaire/PAC ---

Un fichier Proxy Auto-Configuration (PAC) est un fichier qui contient une fonction FindProxyForURL() laquelle est utilisée par le navigateur pour déterminer  si les requêtes (y compris HTTP, HTTPS et FTP) doivent être envoyées directement à la destination, ou si elles doivent être transmises via un serveur proxy Web.

diff --git a/files/fr/glossary/packet/index.html b/files/fr/glossary/packet/index.html index 9f6b19625e..07e17ba74e 100644 --- a/files/fr/glossary/packet/index.html +++ b/files/fr/glossary/packet/index.html @@ -1,6 +1,6 @@ --- title: Paquet -slug: Glossaire/Paquet +slug: Glossary/Packet tags: - Glossaire - Paquet @@ -11,6 +11,7 @@ tags: - charge utile - payload translation_of: Glossary/Packet +original_slug: Glossaire/Paquet ---

Un paquet, ou paquet réseau, est un bloc de données formaté envoyé sur un réseau. Les principaux composants d'un paquet réseau sont les données utilisateur et les informations de contrôle. Les données utilisateur sont appelées payload ou charge utile. Les informations de contrôle sont les informations de livraison du payload. Il se compose d'adresses réseau pour la source et la destination, des informations de séquencement et des codes de détection d'erreur et se trouve généralement dans les en-têtes et le pied de page des paquets.

diff --git a/files/fr/glossary/parameter/index.html b/files/fr/glossary/parameter/index.html index 39b7d3c8e2..0908a0356c 100644 --- a/files/fr/glossary/parameter/index.html +++ b/files/fr/glossary/parameter/index.html @@ -1,11 +1,12 @@ --- title: Paramètre -slug: Glossaire/Parameter +slug: Glossary/Parameter tags: - Encodage - Glossaire - JavaScript translation_of: Glossary/Parameter +original_slug: Glossaire/Parameter ---

Un paramètre est une variable nommée passée à une {{Glossary("fonction")}}. Les paramètres servent à importer des {{Glossary("argument","arguments")}} à l'intérieur des fonctions.

diff --git a/files/fr/glossary/parent_object/index.html b/files/fr/glossary/parent_object/index.html index 6fe96993ab..4065e6a5c2 100644 --- a/files/fr/glossary/parent_object/index.html +++ b/files/fr/glossary/parent_object/index.html @@ -1,10 +1,11 @@ --- title: Objet parent -slug: Glossaire/Objet_parent +slug: Glossary/Parent_object tags: - Glossaire - Programmation translation_of: Glossary/Parent_object +original_slug: Glossaire/Objet_parent ---

L'{{glossary("object","objet")}} auquel appartient une {{glossary("property","propriété")}} ou une {{glossary("method","méthode")}} donnée.

diff --git a/files/fr/glossary/parse/index.html b/files/fr/glossary/parse/index.html index 0b0ad3c999..baaad2058a 100644 --- a/files/fr/glossary/parse/index.html +++ b/files/fr/glossary/parse/index.html @@ -1,10 +1,11 @@ --- title: Analyse Syntaxique -slug: Glossaire/Parse +slug: Glossary/Parse tags: - Glossaire - JavaScript translation_of: Glossary/Parse +original_slug: Glossaire/Parse ---

"Parser" signifie analyser et convertir un programme en un format interne que l'environnement d'exécution peut exécuter, par exemple le moteur {{glossary("JavaScript")}} dans les navigateurs.

diff --git a/files/fr/glossary/parser/index.html b/files/fr/glossary/parser/index.html index 440bbd0e33..a5454efb69 100644 --- a/files/fr/glossary/parser/index.html +++ b/files/fr/glossary/parser/index.html @@ -1,10 +1,11 @@ --- title: Analyseur syntaxique -slug: Glossaire/Parser +slug: Glossary/Parser tags: - Encodage - Glossaire translation_of: Glossary/Parser +original_slug: Glossaire/Parser ---

Le module d'un compilateur ou d'un interprête qui effectue l'{{glossary("parse","analyse syntaxique")}} d'un fichier de code source.

diff --git a/files/fr/glossary/pdf/index.html b/files/fr/glossary/pdf/index.html index 9ce683b225..1580f00bd4 100644 --- a/files/fr/glossary/pdf/index.html +++ b/files/fr/glossary/pdf/index.html @@ -1,7 +1,8 @@ --- title: PDF -slug: Glossaire/PDF +slug: Glossary/PDF translation_of: Glossary/PDF +original_slug: Glossaire/PDF ---

PDF (Portable Document Format) est un format de fichiers utilisé pour partager des documents sans dépendre d'un logiciel particulier, d'une plateforme ou d'un système d'exploitation. Le format PDF fournit une image numérique d'un document, qui conserve la même apparence une fois imprimé.

diff --git a/files/fr/glossary/percent-encoding/index.html b/files/fr/glossary/percent-encoding/index.html index 5d164240c6..1f8313e973 100644 --- a/files/fr/glossary/percent-encoding/index.html +++ b/files/fr/glossary/percent-encoding/index.html @@ -1,11 +1,12 @@ --- title: Encodage-pourcent -slug: Glossaire/percent-encoding +slug: Glossary/percent-encoding tags: - Débutant - Glossaire - Mécanismes web translation_of: Glossary/percent-encoding +original_slug: Glossaire/percent-encoding ---

Encodage-pourcent (Percent-encoding) est un mécanisme d'encodage des caractères de 8 bits qui ont une signification spécifique dans le contexte des {{Glossary("URL")}}. Il est parfois appelé encodage d'URL. Il consiste en une substitution de : un caractère '%' suivi d'un code hexadecimal correspondant à la valeur ASCII du caractère à remplacer.

diff --git a/files/fr/glossary/php/index.html b/files/fr/glossary/php/index.html index c0d11277fa..3c89eeb218 100644 --- a/files/fr/glossary/php/index.html +++ b/files/fr/glossary/php/index.html @@ -1,6 +1,6 @@ --- title: PHP -slug: Glossaire/PHP +slug: Glossary/PHP tags: - Encodage - Glossaire @@ -8,6 +8,7 @@ tags: - PHP - Programmation translation_of: Glossary/PHP +original_slug: Glossaire/PHP ---

PHP est un langage de script côté serveur conçu pour le développement web mais aussi utilisé comme langage de programmation généraliste. Créée à l'origine par Rasmus Lerdorf en 1994, l'implémentation de la référence PHP est maintenant produite par The PHP Group. PHP signifiait à l'origine Personal Home Page, mais elle correspond maintenant à l'acronyme récursif PHP : Hypertext Preprocessor.

diff --git a/files/fr/glossary/pixel/index.html b/files/fr/glossary/pixel/index.html index a781d07b58..e55fb37877 100644 --- a/files/fr/glossary/pixel/index.html +++ b/files/fr/glossary/pixel/index.html @@ -1,10 +1,11 @@ --- title: Pixel -slug: Glossaire/Pixel +slug: Glossary/Pixel tags: - Glossaire - Graphismes translation_of: Glossary/Pixel +original_slug: Glossaire/Pixel ---

Un pixel est le plus petit bloc qu'un affichage graphique comme un écran d'ordinateur puisse afficher.

diff --git a/files/fr/glossary/placeholder_names/index.html b/files/fr/glossary/placeholder_names/index.html index 7e7bed4e5f..ffce36d443 100644 --- a/files/fr/glossary/placeholder_names/index.html +++ b/files/fr/glossary/placeholder_names/index.html @@ -1,11 +1,12 @@ --- title: Noms réservés -slug: Glossaire/Noms_réservés +slug: Glossary/Placeholder_names tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Placeholder_names +original_slug: Glossaire/Noms_réservés ---

Les noms réservés sont courramment utilisés en cryptographie pour indiquer les participants à une conversation, sans recourir à une terminologie comme "Partie A", "indiscret" et "attaquant malveillant". Les noms les plus courants sont :

diff --git a/files/fr/glossary/plaintext/index.html b/files/fr/glossary/plaintext/index.html index 55efd24739..f51022ba33 100644 --- a/files/fr/glossary/plaintext/index.html +++ b/files/fr/glossary/plaintext/index.html @@ -1,11 +1,12 @@ --- title: Texte brut -slug: Glossaire/Texte_brut +slug: Glossary/Plaintext tags: - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Plaintext +original_slug: Glossaire/Texte_brut ---

Un texte brut désigne soit une information qui a été utilisée comme entrée pour un {{Glossary("algorithme")}} de {{Glossary("chiffrement")}} , soit un {{Glossary("cryptogramme")}} qui a été déchiffré.

diff --git a/files/fr/glossary/png/index.html b/files/fr/glossary/png/index.html index 8f64ff837b..7834787b05 100644 --- a/files/fr/glossary/png/index.html +++ b/files/fr/glossary/png/index.html @@ -1,6 +1,6 @@ --- title: PNG -slug: Glossaire/PNG +slug: Glossary/PNG tags: - Composition - Débutant @@ -8,6 +8,7 @@ tags: - Infrastructure - PNG translation_of: Glossary/PNG +original_slug: Glossaire/PNG ---

PNG (Portable Network Graphics) est un format de fichiers graphiques qui supporte la compression de données sans perte.

diff --git a/files/fr/glossary/polyfill/index.html b/files/fr/glossary/polyfill/index.html index a5a6f4aa35..2257504ca2 100644 --- a/files/fr/glossary/polyfill/index.html +++ b/files/fr/glossary/polyfill/index.html @@ -1,7 +1,8 @@ --- title: Polyfill -slug: Glossaire/Polyfill +slug: Glossary/Polyfill translation_of: Glossary/Polyfill +original_slug: Glossaire/Polyfill ---

Un polyfill est un bout de code (généralement en JavaScript sur le web) utilisé pour fournir des fonctionnalités récentes sur d'anciens navigateurs qui ne les supportent pas nativement.

diff --git a/files/fr/glossary/polymorphism/index.html b/files/fr/glossary/polymorphism/index.html index 2c928bdea5..a04deb6361 100644 --- a/files/fr/glossary/polymorphism/index.html +++ b/files/fr/glossary/polymorphism/index.html @@ -1,10 +1,11 @@ --- title: Polymorphisme -slug: Glossaire/Polymorphisme +slug: Glossary/Polymorphism tags: - Encodage - Glossaire translation_of: Glossary/Polymorphism +original_slug: Glossaire/Polymorphisme ---

Le polymorphisme est la présentation d'une unique interface pour plusieurs types de données.

diff --git a/files/fr/glossary/pop/index.html b/files/fr/glossary/pop/index.html index edf9256e5d..6f3054ed0c 100644 --- a/files/fr/glossary/pop/index.html +++ b/files/fr/glossary/pop/index.html @@ -1,11 +1,12 @@ --- title: POP3 -slug: Glossaire/POP +slug: Glossary/POP tags: - Débutant - Glossaire - Infrastructure translation_of: Glossary/POP +original_slug: Glossaire/POP ---

POP3 (Post Office Protocol) est un {{glossary("Protocol","protocole")}} très répandu pour récupérer les courriels depuis un serveur de messagerie via une connexion {{glossary("TCP")}}. POP3 ne supporte pas les dossiers, contrairement à l'{{Glossary("IMAP")}}4 qui est plus récent, mais qui est aussi plus difficile à implémenter en raison de sa structure plus complexe.

diff --git a/files/fr/glossary/port/index.html b/files/fr/glossary/port/index.html index 2c7b8929b9..b80fe65d4e 100644 --- a/files/fr/glossary/port/index.html +++ b/files/fr/glossary/port/index.html @@ -1,6 +1,6 @@ --- title: Port -slug: Glossaire/Port +slug: Glossary/Port tags: - Glossaire - Intro @@ -8,6 +8,7 @@ tags: - Sécurité - ports translation_of: Glossary/Port +original_slug: Glossaire/Port ---

Un port est le point d'entrée de communication de tout ordinateur connecté à un réseau avec une {{Glossary("IP address","adresse IP")}}. Les ports sont désignés par des nombres et, en dessous de 1024, chaque port est associé par défaut à un {{Glossary("protocol","protocole")}} spécifique.

diff --git a/files/fr/glossary/preflight_request/index.html b/files/fr/glossary/preflight_request/index.html index 8e2b304737..0fa676bfb9 100644 --- a/files/fr/glossary/preflight_request/index.html +++ b/files/fr/glossary/preflight_request/index.html @@ -1,11 +1,12 @@ --- title: Requête de pré-vérification -slug: Glossaire/requete_pre-verification +slug: Glossary/Preflight_request tags: - CORS - HTTP - pré-vérification translation_of: Glossary/Preflight_request +original_slug: Glossaire/requete_pre-verification ---

Une requête de pré-vérification cross-origin CORS est une requête de vérification faite pour contrôler si le protocole {{Glossary("CORS")}} est autorisé.

diff --git a/files/fr/glossary/presto/index.html b/files/fr/glossary/presto/index.html index 4048155838..a18a0c8828 100644 --- a/files/fr/glossary/presto/index.html +++ b/files/fr/glossary/presto/index.html @@ -1,12 +1,13 @@ --- title: Presto -slug: Glossaire/Presto +slug: Glossary/Presto tags: - Glossaire - Infrastructure - Opera - Presto translation_of: Glossary/Presto +original_slug: Glossaire/Presto ---

Presto était le moteur de rendu propriétaire utilisé par le {{Glossary("Opera browser","navigateur Opera")}} jusqu'à la version 15. Depuis, ce dernier est basé sur Chromium qui utilise le moteur de rendu {{Glossary('Blink')}}.

diff --git a/files/fr/glossary/primitive/index.html b/files/fr/glossary/primitive/index.html index 767776b5d4..2b5c2b2eb7 100644 --- a/files/fr/glossary/primitive/index.html +++ b/files/fr/glossary/primitive/index.html @@ -1,11 +1,12 @@ --- title: Primitive -slug: Glossaire/Primitive +slug: Glossary/Primitive tags: - Glossaire - JavaScript - Programmation translation_of: Glossary/Primitive +original_slug: Glossaire/Primitive ---

Une primitive (valeur primitive ou structure de donnée primitive) est une donnée qui n'est pas un {{Glossary("object","objet")}} et n'a pas de {{glossary("method","méthode")}}. En {{Glossary("JavaScript")}}, il y a 6 types de données primitives: {{Glossary("String")}}, {{Glossary("Number")}}, {{Glossary("Boolean")}}, {{Glossary("Null")}}, {{Glossary("undefined")}}, {{Glossary("Symbol")}} (nouveauté d'{{Glossary("ECMAScript")}} 2015).

diff --git a/files/fr/glossary/privileged/index.html b/files/fr/glossary/privileged/index.html index 703f4ecc7c..de55992d84 100644 --- a/files/fr/glossary/privileged/index.html +++ b/files/fr/glossary/privileged/index.html @@ -1,10 +1,11 @@ --- title: Privilégié -slug: Glossaire/Privilégié +slug: Glossary/Privileged tags: - Glossaire - Sécurité translation_of: Glossary/Privileged +original_slug: Glossaire/Privilégié ---

Un utilisateur est dit privilégié lorsqu'il se voit attribuer des droits supplémentaires sur un système, ou se voit donner des accès à des données avec un niveau de priorité supérieur à celui des utilisateurs normaux. 

diff --git a/files/fr/glossary/privileged_code/index.html b/files/fr/glossary/privileged_code/index.html index 1efe14fab0..f2be39afb8 100644 --- a/files/fr/glossary/privileged_code/index.html +++ b/files/fr/glossary/privileged_code/index.html @@ -1,10 +1,11 @@ --- title: Code privilégié -slug: Glossaire/privileged_code +slug: Glossary/privileged_code tags: - Glossaire - Privilégié translation_of: Glossary/privileged_code +original_slug: Glossaire/privileged_code ---

Code privilégié - Code Javascript de votre extension. Par exemple, code dans les scripts de contenu.

diff --git a/files/fr/glossary/progressive_enhancement/index.html b/files/fr/glossary/progressive_enhancement/index.html index 0e6d5d3d88..617e5dbb69 100644 --- a/files/fr/glossary/progressive_enhancement/index.html +++ b/files/fr/glossary/progressive_enhancement/index.html @@ -1,11 +1,12 @@ --- title: Amélioration progressive -slug: Glossaire/Amélioration_progressive +slug: Glossary/Progressive_Enhancement tags: - Accessibilité - Conception - Glossaire translation_of: Glossary/Progressive_Enhancement +original_slug: Glossaire/Amélioration_progressive ---

L'amélioration progressive est une philosophie de conception centrée sur la fourniture d'une base de contenu et de fonctionnalités essentielles au plus grand nombre possible d'utilisateurs, tout en allant au-delà et en offrant la meilleure expérience possible aux utilisateurs des navigateurs les plus modernes capables d'exécuter tout le code requis .

diff --git a/files/fr/glossary/progressive_web_apps/index.html b/files/fr/glossary/progressive_web_apps/index.html index 93bf4acfc6..bbb993c010 100644 --- a/files/fr/glossary/progressive_web_apps/index.html +++ b/files/fr/glossary/progressive_web_apps/index.html @@ -1,10 +1,11 @@ --- title: Applications web progressistes -slug: Glossaire/Progressive_web_apps +slug: Glossary/Progressive_web_apps tags: - Applications - Glossaire translation_of: Glossary/Progressive_web_apps +original_slug: Glossaire/Progressive_web_apps ---

Applications web progressistes (Progressive web apps) est une locution utilisée pour décrire une manière moderne de développer des applications web. Cela consiste à utiliser des sites ou applications web classiques qui profitent du meilleur du web — comme la possibilité d'apparaître avec les moteurs de recherche, le fait d'être lié par les {{Glossary("URL")}} ou encore la capacité à fonctionner sur tout type d'environnement —, d'y ajouter des API modernes (comme les Service Workers et les notifications Push) et des fonctionnalités qui offrent d'autres avantages habituellement réservés aux applications natives.

diff --git a/files/fr/glossary/promise/index.html b/files/fr/glossary/promise/index.html index ccf296a247..92811a6e34 100644 --- a/files/fr/glossary/promise/index.html +++ b/files/fr/glossary/promise/index.html @@ -1,12 +1,13 @@ --- title: Promesse -slug: Glossaire/Promesse +slug: Glossary/Promise tags: - Asynchrone - Glossaire - Promise - Promises translation_of: Glossary/Promise +original_slug: Glossaire/Promesse ---

Une {{jsxref("Promise")}} est un {{Glossary("Objet")}} retourné par une {{Glossary("Fonction")}} n'ayant pas encore terminé son travail. La promesse représente littéralement une promesse faite par la fonction qui retournera éventuellement un résultat à travers l'objet promesse.

diff --git a/files/fr/glossary/property/css/index.html b/files/fr/glossary/property/css/index.html index b390c202e0..8c4896d468 100644 --- a/files/fr/glossary/property/css/index.html +++ b/files/fr/glossary/property/css/index.html @@ -1,10 +1,11 @@ --- title: Propriété (CSS) -slug: Glossaire/Propriete_CSS +slug: Glossary/property/CSS tags: - Encodage - Glossaire translation_of: Glossary/property/CSS +original_slug: Glossaire/Propriete_CSS ---

Une propriété CSS est une caractéristique (telle que color) dont la valeur associée définit un aspect de la manière dont le navigateur doit afficher l'élément.

diff --git a/files/fr/glossary/protocol/index.html b/files/fr/glossary/protocol/index.html index 3ed4f7d4f2..8bc007f2e4 100644 --- a/files/fr/glossary/protocol/index.html +++ b/files/fr/glossary/protocol/index.html @@ -1,11 +1,12 @@ --- title: Protocole -slug: Glossaire/Protocol +slug: Glossary/Protocol tags: - Glossaire - Infrastructure - Protocoles translation_of: Glossary/Protocol +original_slug: Glossaire/Protocol ---

Un protocole est un système de règles qui définit la manière dont des données sont échangées au sein d'un ordinateur ou entre plusieurs ordinateurs.  La communication entre appareils impose à ceux-ci de s'accorder sur le format des données échangées. L'ensemble des règles qui définissent un format est appelé un protocole.

diff --git a/files/fr/glossary/prototype-based_programming/index.html b/files/fr/glossary/prototype-based_programming/index.html index 34c4955e99..ff837e9624 100644 --- a/files/fr/glossary/prototype-based_programming/index.html +++ b/files/fr/glossary/prototype-based_programming/index.html @@ -1,10 +1,11 @@ --- title: Programmation orientée prototype -slug: Glossaire/Programmation_orientée_prototype +slug: Glossary/Prototype-based_programming tags: - Glossaire - Programmation translation_of: Glossary/Prototype-based_programming +original_slug: Glossaire/Programmation_orientée_prototype ---

La programmation orientée prototype est un style de {{Glossary("OOP","programmation orientée objet")}}} dans laquelle les {{Glossary ('Class', 'classes')}} ne sont pas explicitement définies, mais plutôt dérivées par ajout des propriétés et des méthodes à une instance d'une autre classe ou, moins fréquemment, par ajouts à un objet vide.

diff --git a/files/fr/glossary/prototype/index.html b/files/fr/glossary/prototype/index.html index ddd061527d..258bbff9a5 100644 --- a/files/fr/glossary/prototype/index.html +++ b/files/fr/glossary/prototype/index.html @@ -1,11 +1,12 @@ --- title: Prototype -slug: Glossaire/Prototype +slug: Glossary/Prototype tags: - Apps - Composition - Glossaire translation_of: Glossary/Prototype +original_slug: Glossaire/Prototype ---

Un prototype est un modèle en cours de développement qui montre l'apparence et le comportement d'une application ou d'un produit en cours de conception..

diff --git a/files/fr/glossary/proxy_server/index.html b/files/fr/glossary/proxy_server/index.html index 03613f24b5..c99a234d02 100644 --- a/files/fr/glossary/proxy_server/index.html +++ b/files/fr/glossary/proxy_server/index.html @@ -1,11 +1,12 @@ --- title: Serveur proxy -slug: Glossaire/Serveur_proxy +slug: Glossary/Proxy_server tags: - Glossaire - Proxy - Serveur translation_of: Glossary/Proxy_server +original_slug: Glossaire/Serveur_proxy ---

Un serveur proxy (ou "serveur mandataire" en français) est un programme intermédiaire, ou un ordinateur, utilisé lors de la navigation sur différents réseaux d'Internet. Il facilite l'accès au contenu sur le World Wide Web. Un mandataire reçoit les demandes et retourne les réponses ; il peut transmettre les requêtes ou non (par exemple dans le cas d'un cache), et il peut les modifier (par exemple changer les en-têtes à la frontière entre deux réseaux).

diff --git a/files/fr/glossary/pseudo-class/index.html b/files/fr/glossary/pseudo-class/index.html index 2ccf1494ef..4790cae825 100644 --- a/files/fr/glossary/pseudo-class/index.html +++ b/files/fr/glossary/pseudo-class/index.html @@ -1,12 +1,13 @@ --- title: Pseudo-classe -slug: Glossaire/Pseudo-classe +slug: Glossary/Pseudo-class tags: - CSS - CodingScripting - Glossaire - Sélecteur translation_of: Glossary/Pseudo-class +original_slug: Glossaire/Pseudo-classe ---

En CSS, un sélecteur de pseudo-classe cible des éléments en fonction de leur état plutôt qu'en fonction de l'information issue de l'arbre du document. Par exemple, le sélecteur a{{ cssxref(":visited") }} applique un style uniquement aux liens que l'utilisateur a déjà visités.

diff --git a/files/fr/glossary/pseudo-element/index.html b/files/fr/glossary/pseudo-element/index.html index d4ef36845c..b400d2ac3d 100644 --- a/files/fr/glossary/pseudo-element/index.html +++ b/files/fr/glossary/pseudo-element/index.html @@ -1,11 +1,12 @@ --- title: Pseudo-élément -slug: Glossaire/Pseudo-élément +slug: Glossary/Pseudo-element tags: - CSS - Glossaire - Programmation translation_of: Glossary/Pseudo-element +original_slug: Glossaire/Pseudo-élément ---

En CSS, un sélecteur de pseudo-élément applique des styles à des parties du contenu de votre document dans le cas où il n'y a pas d'élément HTML à cibler. Par exemple, plutôt que de placer la première lettre de chaque paragraphe dans un élément distinct, vous pouvez leur appliquer un style globalement avec p{{ Cssxref("::first-letter") }}.

diff --git a/files/fr/glossary/pseudocode/index.html b/files/fr/glossary/pseudocode/index.html index 0c3c99e752..093a505142 100644 --- a/files/fr/glossary/pseudocode/index.html +++ b/files/fr/glossary/pseudocode/index.html @@ -1,11 +1,12 @@ --- title: Pseudo-code -slug: Glossaire/Pseudo-code +slug: Glossary/Pseudocode tags: - Encodage - Glossaire - Pseudo-code translation_of: Glossary/Pseudocode +original_slug: Glossaire/Pseudo-code ---

Un pseudo-code (également appelé LDA pour Langage de Description d'Algorithmes) fait référence à une syntaxe ressemblant à un code, généralement utilisée pour indiquer aux humains le fonctionnement d'une syntaxe de code ou pour illustrer la conception d'un élément d'architecture de code. Cela ne fonctionnera pas si vous essayez de l'exécuter comme un véritable code.

diff --git a/files/fr/glossary/python/index.html b/files/fr/glossary/python/index.html index 9e92541170..589d52c6b8 100644 --- a/files/fr/glossary/python/index.html +++ b/files/fr/glossary/python/index.html @@ -1,12 +1,13 @@ --- title: Python -slug: Glossaire/Python +slug: Glossary/Python tags: - Glossaire - Langage - Programmation - Python translation_of: Glossary/Python +original_slug: Glossaire/Python ---

Python est un langage de programmation de haut-niveau, pour tous usages. Il possède une approche multi-paradigme et supporte donc des formes de programmation procédurale, orientée objet et fonctionnelle.

diff --git a/files/fr/glossary/quality_values/index.html b/files/fr/glossary/quality_values/index.html index 88b4d44215..74cae1a1b3 100644 --- a/files/fr/glossary/quality_values/index.html +++ b/files/fr/glossary/quality_values/index.html @@ -1,10 +1,11 @@ --- title: Quality values -slug: Glossaire/Quality_values +slug: Glossary/Quality_values tags: - Glossaire - Mécanismes web translation_of: Glossary/Quality_values +original_slug: Glossaire/Quality_values ---

Quality values (valeurs de qualité), ou q-values et q-factors, sont utilisés pour décrire l'ordre de priorité des valeurs séparées par une virgule dans une liste. C'est une syntaxe spéciale autorisée dans quelques en-têtes HTTP et en HTML. L'importance d'une valeur est marquée par le suffixe  ';q=' immédiatement suivi par une valeur comprise entre 0 et 1 inclus, avec jusqu'à trois décimales, la valeur la plus élevée indiquant la priorité la plus haute. Quand le paramètre n'est pas déclaré, la valeur par défaut est 1.

diff --git a/files/fr/glossary/quic/index.html b/files/fr/glossary/quic/index.html index 45f9ee0f9b..e6cfefa3e5 100644 --- a/files/fr/glossary/quic/index.html +++ b/files/fr/glossary/quic/index.html @@ -1,6 +1,6 @@ --- title: QUIC -slug: Glossaire/QUIC +slug: Glossary/QUIC tags: - Glossaire - HTTP @@ -8,6 +8,7 @@ tags: - QUIC - Reference translation_of: Glossary/QUIC +original_slug: Glossaire/QUIC ---

Quick UDP Internet Connection, ou QUIC,  est un protocole de transport multiplexé expérimental implémenté sur UDP.  Il a été développé par Google comme un moyen d'expérimenter des moyens d'améliorer TCP et la livraison d'applications Web. Comme TCP est intégré au noyau de nombreux systèmes d'exploitation, être capable d'expérimenter des changements, de les tester et d'implémenter des modifications est un processus extrêmement lent. La création de QUIC permet aux développeurs de mener des expériences et d'essayer de nouvelles choses plus rapidement.

diff --git a/files/fr/glossary/rail/index.html b/files/fr/glossary/rail/index.html index ec6527e25c..f58d849186 100644 --- a/files/fr/glossary/rail/index.html +++ b/files/fr/glossary/rail/index.html @@ -1,12 +1,13 @@ --- title: RAIL -slug: Glossaire/RAIL +slug: Glossary/RAIL tags: - Glossaire - Performance Web - RAIL - Timings translation_of: Glossary/RAIL +original_slug: Glossaire/RAIL ---

RAIL, acronyme de Response, Animation, Idle, et Load, est un modèle de performance créé par l'équipe Google Chrome en 2015, axé sur l'expérience utilisateur et les performances dans le navigateur. Le mantra de performance de RAIL est "Concentrez-vous sur l'utilisateur; l'objectif final n'est pas de rendre votre site performant sur un appareil spécifique, c'est de rendre les utilisateurs heureux." Il y a 4 étapes d'interaction: chargement de la page, inactivité, réponse à l'entrée, et défilement et animation. Dans l'ordre des acronymes, les principaux principes sont:

diff --git a/files/fr/glossary/raster_image/index.html b/files/fr/glossary/raster_image/index.html index b04889fcef..8a1059ba39 100644 --- a/files/fr/glossary/raster_image/index.html +++ b/files/fr/glossary/raster_image/index.html @@ -1,10 +1,11 @@ --- title: Image matricielle -slug: Glossaire/Image_matricielle +slug: Glossary/Raster_image tags: - Glossaire - Images translation_of: Glossary/Raster_image +original_slug: Glossaire/Image_matricielle ---

Une image matricielle (raster) est un fichier image défini comme une grille de pixels. Elles sont également appelées des "cartes de points" (bitmaps). Les formats d'image matricielle communs sur le web sont JPEG, PNG, GIF et ICO.

diff --git a/files/fr/glossary/rdf/index.html b/files/fr/glossary/rdf/index.html index e40c7146f1..b85c119004 100644 --- a/files/fr/glossary/rdf/index.html +++ b/files/fr/glossary/rdf/index.html @@ -1,6 +1,6 @@ --- title: RDF -slug: Glossaire/RDF +slug: Glossary/RDF tags: - Compatibilité - Encodage @@ -9,6 +9,7 @@ tags: - Mécanismes web - Pratiques translation_of: Glossary/RDF +original_slug: Glossaire/RDF ---

RDF (Resource Description Framework) est un langage développé par le W3C pour représenter des informations sur le World Wide Web, comme des pages Web. RDF apporte une manière standard de coder des informations afin que celles-ci puissent être échangées de façon totalement automatisée entre applications.

diff --git a/files/fr/glossary/real_user_monitoring/index.html b/files/fr/glossary/real_user_monitoring/index.html index a1dc649906..4246e961f3 100644 --- a/files/fr/glossary/real_user_monitoring/index.html +++ b/files/fr/glossary/real_user_monitoring/index.html @@ -1,12 +1,13 @@ --- title: Real User Monitoring (RUM) -slug: Glossaire/Real_User_Monitoring +slug: Glossary/Real_User_Monitoring tags: - Glossaire - Performance Web - RUM - Reference translation_of: Glossary/Real_User_Monitoring +original_slug: Glossaire/Real_User_Monitoring ---

Le Real User Monitoring ou RUM mesure les performances d'une page à partir des machines des utilisateurs réels. Généralement, un script tiers injecte un script sur chaque page pour mesurer et rapporter les données de chargement de page pour chaque demande effectuée. Cette technique surveille les interactions réelles des utilisateurs d'une apllication. Dans RUM, le script tiers collecte des mesures de performances à partir des navigateurs des utilisateurs réels. RUM permet d'identifer comment une application est utilisée, y compris la répartition géographique des utilisateurs et l'impact de cette distribution sur l'expérience de l'utilisateur final.

diff --git a/files/fr/glossary/recursion/index.html b/files/fr/glossary/recursion/index.html index bf35184e73..e8edaf858c 100644 --- a/files/fr/glossary/recursion/index.html +++ b/files/fr/glossary/recursion/index.html @@ -1,10 +1,11 @@ --- title: Récursion -slug: Glossaire/Récursion +slug: Glossary/Recursion tags: - CodingScripting - Glossaire translation_of: Glossary/Recursion +original_slug: Glossaire/Récursion ---

Une fonction qui agit en s'appelant elle-même. Une récursion est utilisée pour résoudre des problèmes qui contiennent des sous-problèmes plus petits. Une fonction récursive peut prendre deux entrées : un cas de base (qui met fin à la récursion) ou un cas de propagation (qui poursuit la récursion).

diff --git a/files/fr/glossary/reference/index.html b/files/fr/glossary/reference/index.html index bc31591a1f..80068bf79c 100644 --- a/files/fr/glossary/reference/index.html +++ b/files/fr/glossary/reference/index.html @@ -1,10 +1,11 @@ --- title: Référence -slug: Glossaire/Référence +slug: Glossary/Reference tags: - Glossaire - Programmation translation_of: Glossary/Reference +original_slug: Glossaire/Référence ---

Dans le contexte des {{glossary("object","objets")}}, une {{glossary("Object reference","référence d'objet")}}. Sur MDN, nous pourrions parler de la référence {{glossary ("JavaScript")}} elle-même.

diff --git a/files/fr/glossary/reflow/index.html b/files/fr/glossary/reflow/index.html index c191454acd..ea65b2b4cf 100644 --- a/files/fr/glossary/reflow/index.html +++ b/files/fr/glossary/reflow/index.html @@ -1,10 +1,11 @@ --- title: Reflow -slug: Glossaire/Reflow +slug: Glossary/Reflow tags: - Glossaire - Mécanismes web translation_of: Glossary/Reflow +original_slug: Glossaire/Reflow ---

Le reflow se produit quand un {{glossary("browser","navigateur")}} doit réarranger et redessiner tout ou partie d'une page web, par exemple, après une mise à jour sur un site interactif.

diff --git a/files/fr/glossary/regular_expression/index.html b/files/fr/glossary/regular_expression/index.html index 9ca7b9388b..056a36f73e 100644 --- a/files/fr/glossary/regular_expression/index.html +++ b/files/fr/glossary/regular_expression/index.html @@ -1,11 +1,12 @@ --- title: Expression Régulière -slug: Glossaire/Regular_expression +slug: Glossary/Regular_expression tags: - CodingScripting - Glossary - Regular Expression translation_of: Glossary/Regular_expression +original_slug: Glossaire/Regular_expression ---

Les expressions régulières (ou regex en anglais) sont des règles qui gouvernent quelles séquences de caractères ressortent dans une recherche.

diff --git a/files/fr/glossary/rendering_engine/index.html b/files/fr/glossary/rendering_engine/index.html index c47d87d80c..47b0dcf325 100644 --- a/files/fr/glossary/rendering_engine/index.html +++ b/files/fr/glossary/rendering_engine/index.html @@ -1,12 +1,13 @@ --- title: Moteur de rendu -slug: Glossaire/Moteur_de_rendu +slug: Glossary/Rendering_engine tags: - Glossaire - Infrastructure - Moteur de navigateur web - Moteur de rendu translation_of: Glossary/Rendering_engine +original_slug: Glossaire/Moteur_de_rendu ---

Un moteur de rendu est un logiciel qui trace du texte et des images à l'écran. Le moteur dessine du texte structuré à partir d'un document (souvent du {{glossary("HTML")}}), et le met en page correctement en se basant sur les déclarations de styles données (souvent indiquées dans des {{glossary("CSS")}}). Exemples de moteurs d'affichage : {{glossary("Blink")}}, {{glossary("Gecko")}}, Edge, {{glossary("WebKit")}}.

diff --git a/files/fr/glossary/repo/index.html b/files/fr/glossary/repo/index.html index 450bcb73f6..04ee5c1d80 100644 --- a/files/fr/glossary/repo/index.html +++ b/files/fr/glossary/repo/index.html @@ -1,12 +1,13 @@ --- title: Repo -slug: Glossaire/Dépôt +slug: Glossary/Repo tags: - Dépôt - Glossaire - Infrastructure - Intro translation_of: Glossary/Repo +original_slug: Glossaire/Dépôt ---

Dans les systèmes de gestion de versions comme {{Glossary("Git")}} ou {{Glossary("SVN")}} , un dépôt est l'endroit où sont hébergés le code source d'une application ainsi que diverses méta-données.

diff --git a/files/fr/glossary/reporting_directive/index.html b/files/fr/glossary/reporting_directive/index.html index 2e902e422a..d3d314b892 100644 --- a/files/fr/glossary/reporting_directive/index.html +++ b/files/fr/glossary/reporting_directive/index.html @@ -1,11 +1,12 @@ --- title: Directive de rapport -slug: Glossaire/Directive_de_rapport +slug: Glossary/Reporting_directive tags: - CSP - Glossaire - Sécurité translation_of: Glossary/Reporting_directive +original_slug: Glossaire/Directive_de_rapport ---

Les directives de rapports {{Glossary("CSP")}} sont utilisées dans un en-tête {{HTTPHeader("Content-Security-Policy","Politique de sécurité de contenu")}} et contrôlent le processus de génération de rapports sur les violations CSP.

diff --git a/files/fr/glossary/request_header/index.html b/files/fr/glossary/request_header/index.html index 613e412700..d980fb23cd 100644 --- a/files/fr/glossary/request_header/index.html +++ b/files/fr/glossary/request_header/index.html @@ -1,12 +1,13 @@ --- title: En-tête de requête -slug: Glossaire/En-tête_de_requête +slug: Glossary/Request_header tags: - En-têtes - Glossaire - HTTP - Mécanismes web translation_of: Glossary/Request_header +original_slug: Glossaire/En-tête_de_requête ---

Un en-tête de requête est un {{glossary("header","en-tête HTTP")}} qui peut être utilisé dans une requête HTTP et ne concerne pas le contenu du message. Les en-têtes de requête, comme {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language", "Accept-*")}} ou {{HTTPHeader("If-Modified-Since","If-*")}}, permettent d'effectuer des requêtes conditionnelles ; d'autres comme {{HTTPHeader("Cookie")}}, {{HTTPHeader("User-Agent")}} ou {{HTTPHeader("Referer")}} précisent le contexte pour que le serveur adapte la réponse.

diff --git a/files/fr/glossary/response_header/index.html b/files/fr/glossary/response_header/index.html index e153de28ba..b2174ada0e 100644 --- a/files/fr/glossary/response_header/index.html +++ b/files/fr/glossary/response_header/index.html @@ -1,12 +1,13 @@ --- title: En-tête de réponse -slug: Glossaire/En-têtes_de_réponse +slug: Glossary/Response_header tags: - En-têtes - Glossaire - HTTP - Mécanismes web translation_of: Glossary/Response_header +original_slug: Glossaire/En-têtes_de_réponse ---

Un en-tête de réponse est un {{glossary("header","en-tête HTTP")}} qui peut être utilisé dans une réponse HTTP et qui ne concerne pas le contenu du message. Les en-têtes de réponse comme {{HTTPHeader("Age")}}, {{HTTPHeader("Location")}} ou {{HTTPHeader("Server")}} sont utilisés pour donner un contexte plus détaillé de la réponse.

diff --git a/files/fr/glossary/responsive_web_design/index.html b/files/fr/glossary/responsive_web_design/index.html index 7a9eac7a66..52187bee38 100644 --- a/files/fr/glossary/responsive_web_design/index.html +++ b/files/fr/glossary/responsive_web_design/index.html @@ -1,10 +1,11 @@ --- title: Conception web adaptative -slug: Glossaire/Responsive_web_design +slug: Glossary/Responsive_web_design tags: - Conception - Glossaire translation_of: Glossary/Responsive_web_design +original_slug: Glossaire/Responsive_web_design ---

Conception web adaptative (Responsive Web Design (RWD)) est un concept de développement web concentré sur l'aspect et le comportement optimaux des sites sur tous les appareils informatiques personnels, du bureau au mobile.

diff --git a/files/fr/glossary/rest/index.html b/files/fr/glossary/rest/index.html index 9fd6469c0c..0c3f092a33 100644 --- a/files/fr/glossary/rest/index.html +++ b/files/fr/glossary/rest/index.html @@ -1,12 +1,13 @@ --- title: REST -slug: Glossaire/REST +slug: Glossary/REST tags: - Architecture - Glossaire - HTTP - Mécanismes web translation_of: Glossary/REST +original_slug: Glossaire/REST ---

Representational State Transfer (REST) désigne un groupe de contraintes concernant l'architecture logicielle destiné à apporter aux systèmes efficacité, fiabilité et scalabilité. Un système est appelé "RESTful" lorsqu'il adhère à ces contraintes.

diff --git a/files/fr/glossary/rgb/index.html b/files/fr/glossary/rgb/index.html index 17d16490e0..1f6d29d3a7 100644 --- a/files/fr/glossary/rgb/index.html +++ b/files/fr/glossary/rgb/index.html @@ -1,12 +1,13 @@ --- title: RVB -slug: Glossaire/RGB +slug: Glossary/RGB tags: - CSS - Conception - Débutant - Guide translation_of: Glossary/RGB +original_slug: Glossaire/RGB ---

Rouge Vert Bleu (RVB) est un modèle de couleurs qui représente les couleurs comme étant une combinaison de trois composantes sous-jacentes (ou canaux), à savoir, rouge, verte et bleue. Chaque couleur est décrite par une suite de trois valeurs (en général comprises entre 0,0 et 1,0, ou entre 0 et 255) qui correspondent aux différentes intensités de rouge, vert et bleu contribuant à déterminer la couleur finale.

diff --git a/files/fr/glossary/ril/index.html b/files/fr/glossary/ril/index.html index bb2cbaf8f9..4d1623cdc4 100644 --- a/files/fr/glossary/ril/index.html +++ b/files/fr/glossary/ril/index.html @@ -1,6 +1,6 @@ --- title: RIL -slug: Glossaire/RIL +slug: Glossary/RIL tags: - Firefox OS - Glossaire @@ -9,6 +9,7 @@ tags: - Mobile - Téléphonie translation_of: Glossary/RIL +original_slug: Glossaire/RIL ---

Le RIL (Radio Interface Layer) est un élément du système d'exploitation mobile qui fait communiquer le logiciel de l'appareil avec le matériel du téléphone, radio ou modem.

diff --git a/files/fr/glossary/rng/index.html b/files/fr/glossary/rng/index.html index 803fb0591d..4eee899e2a 100644 --- a/files/fr/glossary/rng/index.html +++ b/files/fr/glossary/rng/index.html @@ -1,10 +1,11 @@ --- title: Générateur de nombres pseudo-aléatoires -slug: Glossaire/RNG +slug: Glossary/RNG tags: - CodingScripting - Glossaire translation_of: Glossary/RNG +original_slug: Glossaire/RNG ---

Un PRNG (pseudorandom number generator, ou générateur de nombres pseudo-aléatoires en français) est un algorithme qui génère des nombres selon une séquence complexe et apparemment non prévisible. Les véritables nombres aléatoires (issus, disons, d'une source radioactive) sont totalement imprévisibles, tandis que les résultats de tous les algorithmes peuvent être prédits, et un PRNG renvoie les mêmes nombres lorsque les mêmes paramètres initiaux ou graines sont utilisés.

diff --git a/files/fr/glossary/robots.txt/index.html b/files/fr/glossary/robots.txt/index.html index 36537482fa..07ffe84f0d 100644 --- a/files/fr/glossary/robots.txt/index.html +++ b/files/fr/glossary/robots.txt/index.html @@ -1,10 +1,11 @@ --- title: Robots.txt -slug: Glossaire/Robots.txt +slug: Glossary/Robots.txt tags: - Glossaire - Infrastructure translation_of: Glossary/Robots.txt +original_slug: Glossaire/Robots.txt ---

Robots.txt est un fichier qui est habituellement placé à la racine d'un site web. Il détermine si les {{Glossary("crawler", "robots d'indexation")}} ont ou non l'autorisation d'accéder au site web.

diff --git a/files/fr/glossary/rss/index.html b/files/fr/glossary/rss/index.html index 50b56e6e12..e71ffb5694 100644 --- a/files/fr/glossary/rss/index.html +++ b/files/fr/glossary/rss/index.html @@ -1,6 +1,6 @@ --- title: RSS -slug: Glossaire/RSS +slug: Glossary/RSS tags: - Glossaire - OpenPractices @@ -8,6 +8,7 @@ tags: - RSS - WebMechanics translation_of: Glossary/RSS +original_slug: Glossaire/RSS ---

RSS (Really Simple Syndication) désigne plusieurs formats de documents XML conçus pour annoncer des mises à jour de sites. Lorsque vous vous inscrivez au flux RSS d'un site web, ce dernier envoie des informations et annonces de mises à jour à votre lecteur RSS dans un document RSS appelé un flux, la consultation manuelle de tous vos sites préférés n'est donc plus nécessaire.

diff --git a/files/fr/glossary/rtf/index.html b/files/fr/glossary/rtf/index.html index df5c332129..503199fe04 100644 --- a/files/fr/glossary/rtf/index.html +++ b/files/fr/glossary/rtf/index.html @@ -1,6 +1,6 @@ --- title: RTF -slug: Glossaire/RTF +slug: Glossary/RTF tags: - Composing - Format @@ -8,6 +8,7 @@ tags: - RTF - Rich Text Format translation_of: Glossary/RTF +original_slug: Glossaire/RTF ---

RTF (Rich Text Format) est un format de fichier en texte brut avec prise en charge d'instructions de formatage (comme gras ou italique).

diff --git a/files/fr/glossary/rtl/index.html b/files/fr/glossary/rtl/index.html index e6bf34757b..66921ed6fe 100644 --- a/files/fr/glossary/rtl/index.html +++ b/files/fr/glossary/rtl/index.html @@ -1,6 +1,7 @@ --- title: rtl -slug: Glossaire/rtl +slug: Glossary/rtl translation_of: Glossary/rtl +original_slug: Glossaire/rtl ---

RTL est une propriété de {{glossary("locale")}} indiquant que le texte est écrit de la droite vers la gauche. Par example la {{glossary("locale")}} he (pour Hébreu) possède la propriété RTL.

diff --git a/files/fr/glossary/rtp/index.html b/files/fr/glossary/rtp/index.html index bc09ce3b0f..d2b6d1abfa 100644 --- a/files/fr/glossary/rtp/index.html +++ b/files/fr/glossary/rtp/index.html @@ -1,12 +1,13 @@ --- title: RTP (Real-time Transport Protocol) and SRTP (Secure RTP) -slug: Glossaire/RTP +slug: Glossary/RTP tags: - Glossaire - RTP - Réseau - protocole translation_of: Glossary/RTP +original_slug: Glossaire/RTP ---

Le Real-time Transport Protocol (RTP) est un protocole réseau qui décrit comment transmettre divers médias (audio, vidéo) d'un point de terminaison à un autre en temps réel. RTP convient aux applications de streaming vidéo, à la téléphonie sur {{glossary ("IP")}} comme Skype et aux technologies de conférence.

diff --git a/files/fr/glossary/ruby/index.html b/files/fr/glossary/ruby/index.html index 26e48d7db2..5cb42e0ce6 100644 --- a/files/fr/glossary/ruby/index.html +++ b/files/fr/glossary/ruby/index.html @@ -1,11 +1,12 @@ --- title: Ruby -slug: Glossaire/Ruby +slug: Glossary/Ruby tags: - Glossaire - Programmation - Ruby translation_of: Glossary/Ruby +original_slug: Glossaire/Ruby ---

Ruby est un langage de programmation open-source. Dans le domaine du {{glossary("world wide web","web")}}, Ruby est souvent utilisé côté serveur avec le framework Ruby On Rails (ROR) pour développer des applications/sites web.

diff --git a/files/fr/glossary/safe/index.html b/files/fr/glossary/safe/index.html index cfab50bcff..1cd7a2e156 100644 --- a/files/fr/glossary/safe/index.html +++ b/files/fr/glossary/safe/index.html @@ -1,11 +1,12 @@ --- title: Sécurisée -slug: Glossaire/sécurisée +slug: Glossary/safe tags: - Glossaire - Mécanismes web - Sécurité translation_of: Glossary/safe +original_slug: Glossaire/sécurisée ---

Une méthode HTTP est sécurisée (safe) si elle ne modifie pas l'état du serveur. En d'autres termes, une méthode est sécurisée si elle conduit à une opération en lecture seule. Plusieurs méthodes HTTP courantes sont sécurisées : {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}} ou {{HTTPMethod("OPTIONS")}}. Toutes les méthodes sécurisées sont aussi {{glossary("idempotent","idempotentes")}} ainsi que certaines méthodes non sécurisées comme {{HTTPMethod("PUT")}} ou {{HTTPMethod("DELETE")}}.

diff --git a/files/fr/glossary/same-origin_policy/index.html b/files/fr/glossary/same-origin_policy/index.html index d46dd58671..0a735f4b04 100644 --- a/files/fr/glossary/same-origin_policy/index.html +++ b/files/fr/glossary/same-origin_policy/index.html @@ -1,7 +1,8 @@ --- title: Same-origin policy -slug: Glossaire/Same-origin_policy +slug: Glossary/Same-origin_policy translation_of: Glossary/Same-origin_policy +original_slug: Glossaire/Same-origin_policy ---

La same-origin policy (politique de même origine) est un mécanisme de sécurité critique qui restreint la manière dont un document ou un script chargé depuis une {{Glossary("origine")}} peut interagir avec une ressource d’une autre origine. Elle aide à isoler les documents potentiellement malicieux, ce qui réduit les vecteurs d’attaque possibles.

diff --git a/files/fr/glossary/scm/index.html b/files/fr/glossary/scm/index.html index cd776d65af..acbb2cab56 100644 --- a/files/fr/glossary/scm/index.html +++ b/files/fr/glossary/scm/index.html @@ -1,11 +1,12 @@ --- title: SCM -slug: Glossaire/SCM +slug: Glossary/SCM tags: - CodingScripting - Glossaire - SCM translation_of: Glossary/SCM +original_slug: Glossaire/SCM ---

SCM (Source Control Management) est un système de gestion de code source. Habituellement, il s'agit de l'utilisation de logiciels pour gérer les différentes versions des fichiers sources. Un programmeur peut modifier les fichiers de code source sans se préoccuper de l'édition de détails utiles car un SCM conserve la trace des modifications du code source et de qui a fait les modifications.

diff --git a/files/fr/glossary/scope/index.html b/files/fr/glossary/scope/index.html index f8f6854aaa..7326656e86 100644 --- a/files/fr/glossary/scope/index.html +++ b/files/fr/glossary/scope/index.html @@ -1,10 +1,11 @@ --- title: Portée -slug: Glossaire/Portée +slug: Glossary/Scope tags: - Encodage - Glossaire translation_of: Glossary/Scope +original_slug: Glossaire/Portée ---

Le contexte d'{{glossary("exécuter","exécution")}} courant. Le contexte dans lequel les {{glossary("Value","valeurs")}} et expressions sont "visibles," ou peuvent être référencées. Si une {{glossary("variable")}} ou autre expression n'est pas "dans la portée actuelle", alors son utilisation ne sera pas possible. Les portées peuvent aussi être empilées hiérarchiquement de manière à ce que les portées enfants puissent accéder aux portées parentes, mais pas l'inverse.

diff --git a/files/fr/glossary/script-supporting_element/index.html b/files/fr/glossary/script-supporting_element/index.html index 2b76edd03c..bb76ba45bd 100644 --- a/files/fr/glossary/script-supporting_element/index.html +++ b/files/fr/glossary/script-supporting_element/index.html @@ -1,12 +1,13 @@ --- title: Éléments supports de script -slug: Glossaire/Éléments_supports_de_script +slug: Glossary/Script-supporting_element tags: - Contenus - Glossaire - HTML - scripts translation_of: Glossary/Script-supporting_element +original_slug: Glossaire/Éléments_supports_de_script ---

Dans un document {{Glossary("HTML")}}, script-supporting elements (éléments supports de scripts) sont les éléments qui ne contribuent pas directement à l'apparence ou à la disposition de la page ; à la place, ce sont soit des scripts, soit des informations qui ne sont utilisées que par les scripts. Ces éléments peuvent être importants, mais n'affectent pas la page affichée à moins que les scripts de la page ne les y incitent explicitement.

diff --git a/files/fr/glossary/sctp/index.html b/files/fr/glossary/sctp/index.html index db570b4cb3..d86ae40fff 100644 --- a/files/fr/glossary/sctp/index.html +++ b/files/fr/glossary/sctp/index.html @@ -1,11 +1,12 @@ --- title: SCTP -slug: Glossaire/SCTP +slug: Glossary/SCTP tags: - Glossaire - Infrastructure - Protocoles translation_of: Glossary/SCTP +original_slug: Glossaire/SCTP ---

SCTP (Stream Control Transmission {{glossary("Protocol")}}) est un standard {{Glossary ("IETF")}} pour un protocole de transport qui permet la transmission fiable et en ordre des messages tout en offrant un contrôle d'encombrement, de multiples autoguidages et d'autres fonctionnalités pour améliorer la fiabilité et la stabilité de la connexion. Il est utilisé pour envoyer des appels téléphoniques traditionnels sur Internet, mais il est également utilisé pour les données {{Glossary("WebRTC")}}.

diff --git a/files/fr/glossary/sdp/index.html b/files/fr/glossary/sdp/index.html index cf708be673..f69efdf8f1 100644 --- a/files/fr/glossary/sdp/index.html +++ b/files/fr/glossary/sdp/index.html @@ -1,6 +1,6 @@ --- title: SDP -slug: Glossaire/SDP +slug: Glossary/SDP tags: - Avancé - Collaboratif @@ -9,6 +9,7 @@ tags: - WebRTC - protocole translation_of: Glossary/SDP +original_slug: Glossaire/SDP ---

SDP (Session Description {{glossary("Protocol")}}) est le standard décrivant une connexion {{Glossary("P2P","pair-à-pair")}}. SDP contient le {{Glossary("codec")}}, l'adresse source, et des informations temporelles pour l'audio et la vidéo.

diff --git a/files/fr/glossary/search_engine/index.html b/files/fr/glossary/search_engine/index.html index 6cc6eb3c7e..bb2460d18a 100644 --- a/files/fr/glossary/search_engine/index.html +++ b/files/fr/glossary/search_engine/index.html @@ -1,6 +1,6 @@ --- title: Moteur de recherche -slug: Glossaire/Moteur_de_recherche +slug: Glossary/Search_engine tags: - Glossaire - Moteur de recherche @@ -9,6 +9,7 @@ tags: - Recherche - Web translation_of: Glossary/Search_engine +original_slug: Glossaire/Moteur_de_recherche ---

Un moteur de recherche est un système logiciel qui collecte des informations à partir du {{Glossary("World Wide Web")}} et qui les présente aux utilisateurs qui recherchent des informations spécifiques.

diff --git a/files/fr/glossary/second-level_domain/index.html b/files/fr/glossary/second-level_domain/index.html index 0fcd2fe833..d0cb038b43 100644 --- a/files/fr/glossary/second-level_domain/index.html +++ b/files/fr/glossary/second-level_domain/index.html @@ -1,9 +1,10 @@ --- title: Domaine de deuxième niveau -slug: Glossaire/Domaine_deuxième-niveau +slug: Glossary/Second-level_Domain tags: - Glossaire - Infrastructure translation_of: Glossary/Second-level_Domain +original_slug: Glossaire/Domaine_deuxième-niveau ---

{{page("/fr/docs/Glossaire/SLD")}}

diff --git a/files/fr/glossary/self-executing_anonymous_function/index.html b/files/fr/glossary/self-executing_anonymous_function/index.html index 4d12be2f8f..6f8d645bb3 100644 --- a/files/fr/glossary/self-executing_anonymous_function/index.html +++ b/files/fr/glossary/self-executing_anonymous_function/index.html @@ -1,9 +1,10 @@ --- title: Fonction anonyme auto-exécutante -slug: Glossaire/fonction_anonyme_auto-executante +slug: Glossary/Self-Executing_Anonymous_Function tags: - Glossary translation_of: Glossary/Self-Executing_Anonymous_Function +original_slug: Glossaire/fonction_anonyme_auto-executante ---

Une {{glossary("fonction")}} {{glossary("JavaScript")}} qui se lance dès qu'elle est définie. Aussi connu en tant que IIFE (Immediately Invoked Function Expression ou Expression-fonction immédiatement invoquée).

diff --git a/files/fr/glossary/semantics/index.html b/files/fr/glossary/semantics/index.html index 9fd72fc006..e742de47e4 100644 --- a/files/fr/glossary/semantics/index.html +++ b/files/fr/glossary/semantics/index.html @@ -1,12 +1,13 @@ --- title: Sémantique -slug: Glossaire/Sémantique +slug: Glossary/Semantics tags: - Glossaire - HTML - Programmation - sémantique translation_of: Glossary/Semantics +original_slug: Glossaire/Sémantique ---

En programmation, la sémantique fait référence au sens d'une partie de code — par exemple "quel effet aura l'exécution de cette ligne de JavaScript ?", ou "quel est le rôle ou le but de cet élément HTML" (plutôt que "à quoi ressemble-t-il ?".)

diff --git a/files/fr/glossary/seo/index.html b/files/fr/glossary/seo/index.html index a6126f19de..4a917c4f6b 100644 --- a/files/fr/glossary/seo/index.html +++ b/files/fr/glossary/seo/index.html @@ -1,12 +1,13 @@ --- title: SEO -slug: Glossaire/SEO +slug: Glossary/SEO tags: - Glossaire - Mécanismes web - Recherches - Visibilité translation_of: Glossary/SEO +original_slug: Glossaire/SEO ---

SEO (Search Engine Optimization ou, en français, Optimisation pour les moteurs de recherche) est le processus permettant de rendre un site web plus visible dans les résultats de recherche, également appelé amélioration des classements de recherche.

diff --git a/files/fr/glossary/serialization/index.html b/files/fr/glossary/serialization/index.html index f98873d1e8..385a5a45ad 100644 --- a/files/fr/glossary/serialization/index.html +++ b/files/fr/glossary/serialization/index.html @@ -1,6 +1,6 @@ --- title: Sérialisation -slug: Glossaire/Sérialisation +slug: Glossary/Serialization tags: - CSS - Encodage @@ -8,6 +8,7 @@ tags: - JavaScript - Sérialisation translation_of: Glossary/Serialization +original_slug: Glossaire/Sérialisation ---

Le processus par lequel un objet ou une structure de données est traduit dans un format approprié pour un transfert sur un réseau, ou un stockage (par exemple dans un tampon de tableau ou un format de fichier).

diff --git a/files/fr/glossary/server/index.html b/files/fr/glossary/server/index.html index 8033dfcb5a..0caedeafd3 100644 --- a/files/fr/glossary/server/index.html +++ b/files/fr/glossary/server/index.html @@ -1,6 +1,6 @@ --- title: Serveur -slug: Glossaire/Serveur +slug: Glossary/Server tags: - Glossaire - Infrastructure @@ -8,6 +8,7 @@ tags: - Serveur - protocole translation_of: Glossary/Server +original_slug: Glossaire/Serveur ---

Un serveur matériel est un ordinateur partagé sur un réseau qui fournit des services à des clients. Un serveur logiciel est un programme qui fournit des services à des programmes clients.

diff --git a/files/fr/glossary/session_hijacking/index.html b/files/fr/glossary/session_hijacking/index.html index 6fd708c22b..78fe7b7677 100644 --- a/files/fr/glossary/session_hijacking/index.html +++ b/files/fr/glossary/session_hijacking/index.html @@ -1,11 +1,12 @@ --- title: Détournement de session -slug: Glossaire/Détournement_de_session +slug: Glossary/Session_Hijacking tags: - Attaques - Glossaire - Sécurité translation_of: Glossary/Session_Hijacking +original_slug: Glossaire/Détournement_de_session ---

Le détournement de session se produit lorsqu'un attaquant prend le contrôle d'une session valide entre deux ordinateurs. L'attaquant vole un identifiant de session valide afin de pénétrer dans le système et de fouiller les données.

diff --git a/files/fr/glossary/sgml/index.html b/files/fr/glossary/sgml/index.html index 36f5ec9dbb..94e366ead2 100644 --- a/files/fr/glossary/sgml/index.html +++ b/files/fr/glossary/sgml/index.html @@ -1,11 +1,12 @@ --- title: SGML -slug: SGML +slug: Glossary/SGML tags: - Glossaire - Programmation - SGML translation_of: Glossary/SGML +original_slug: SGML ---

SGML (Standard Generalized Markup Language) est une spécification {{glossary("ISO")}} pour définir des langages de balisage générique pour des documents.

diff --git a/files/fr/glossary/shim/index.html b/files/fr/glossary/shim/index.html index afdb055a85..2a167f276e 100644 --- a/files/fr/glossary/shim/index.html +++ b/files/fr/glossary/shim/index.html @@ -1,10 +1,11 @@ --- title: Shim -slug: Glossaire/Shim +slug: Glossary/Shim tags: - Encodage - Glossaire translation_of: Glossary/Shim +original_slug: Glossaire/Shim ---

Un shim est un morceau de code utilisé pour corriger le comportement du code qui existe déjà, généralement en ajoutant une nouvelle API qui contourne le problème. Cela diffère d'un {{Glossary("polyfill")}} qui implémente une nouvelle API non supportée par le navigateur de stock tel qu'il est livré.

diff --git a/files/fr/glossary/signature/function/index.html b/files/fr/glossary/signature/function/index.html index 68f26990b6..5d90c7af21 100644 --- a/files/fr/glossary/signature/function/index.html +++ b/files/fr/glossary/signature/function/index.html @@ -1,12 +1,13 @@ --- title: Signature (fonctions) -slug: Glossaire/Signature/Fonction +slug: Glossary/Signature/Function tags: - Glossaire - Java - JavaScript - Programmation translation_of: Glossary/Signature/Function +original_slug: Glossaire/Signature/Fonction ---

Une signature de fonction (ou signature de type, ou signature de méthode) définit les entrées et sorties des {{Glossary("Function", "fonctions")}} et des {{Glossary("Method", "méthodes")}}.

diff --git a/files/fr/glossary/signature/index.html b/files/fr/glossary/signature/index.html index 2d3784ee3d..7c37cb9b36 100644 --- a/files/fr/glossary/signature/index.html +++ b/files/fr/glossary/signature/index.html @@ -1,10 +1,11 @@ --- title: Signature -slug: Glossaire/Signature +slug: Glossary/Signature tags: - Glossaire - Homonymie translation_of: Glossary/Signature +original_slug: Glossaire/Signature ---

Le terme signature peut avoir plusieurs significations selon le contexte. Il peut s'agir de :

diff --git a/files/fr/glossary/signature/security/index.html b/files/fr/glossary/signature/security/index.html index 6c3de48518..a9c5a700ed 100644 --- a/files/fr/glossary/signature/security/index.html +++ b/files/fr/glossary/signature/security/index.html @@ -1,12 +1,13 @@ --- title: Signature (sécurité) -slug: Glossaire/Signature/Sécurité +slug: Glossary/Signature/Security tags: - Confidentialité - Cryptographie - Glossaire - Sécurité translation_of: Glossary/Signature/Security +original_slug: Glossaire/Signature/Sécurité ---

Une signature, ou signature numérique, est un {{glossary("protocol","protocole")}} montrant l'authenticité d'un message.

diff --git a/files/fr/glossary/simd/index.html b/files/fr/glossary/simd/index.html index 5a1beb0422..85a01615f8 100644 --- a/files/fr/glossary/simd/index.html +++ b/files/fr/glossary/simd/index.html @@ -1,11 +1,12 @@ --- title: SIMD -slug: Glossaire/SIMD +slug: Glossary/SIMD tags: - CodingScripting - Glossaire - JavaScript translation_of: Glossary/SIMD +original_slug: Glossaire/SIMD ---

SIMD (prononcé "seem-dee") est l'acronyme de Single Instruction/Multiple Data (instruction unique/données multiples) qui est une des {{Interwiki("wikipedia","Taxinomie_de_Flynn","catégories d'architecture d'ordinateurs")}}. SIMD permet à une même opération d'être réalisée sur plusieurs données, ce qui résulte en une parallélisation au niveau des données et par conséquent apporte un gain de performances, par exemple dans le traitement de graphismes 3D ou vidéo, dans les simulations physiques ou la cryptographie et d'autres domaines encore.

diff --git a/files/fr/glossary/simple_header/index.html b/files/fr/glossary/simple_header/index.html index f65b20bf84..c68b961dbd 100644 --- a/files/fr/glossary/simple_header/index.html +++ b/files/fr/glossary/simple_header/index.html @@ -1,12 +1,13 @@ --- title: En-tête simple -slug: Glossaire/En-tête_simple +slug: Glossary/Simple_header tags: - CORS - En-têtes - Glossaire - HTTP translation_of: Glossary/Simple_header +original_slug: Glossaire/En-tête_simple ---

Un en-tête simple (ou en-tête de requête sécurisé CORS) est l'un des en-têtes HTTP suivants :

diff --git a/files/fr/glossary/simple_response_header/index.html b/files/fr/glossary/simple_response_header/index.html index cc3200ba7b..496e135ab6 100644 --- a/files/fr/glossary/simple_response_header/index.html +++ b/files/fr/glossary/simple_response_header/index.html @@ -1,11 +1,12 @@ --- title: En-tête de réponse simple -slug: Glossaire/En-tête_de_réponse_simple +slug: Glossary/Simple_response_header tags: - En-têtes - Glossaire - HTTP translation_of: Glossary/Simple_response_header +original_slug: Glossaire/En-tête_de_réponse_simple ---

Un en-tête de réponse simple (ou un en-tête de réponse sécurisé CORS) est un en-tête HTTP qui a été sécurisé pour ne pas être filtré lorsque les réponses sont traitées par CORS, car elles sont considérées comme sûres (comme les en-têtes listés dans {{HTTPHeader("Access-Control-Expose-Headers")}}). Par défaut, la liste des réponses sûres inclut les en-têtes de réponse suivants :

diff --git a/files/fr/glossary/sisd/index.html b/files/fr/glossary/sisd/index.html index 00976a4d8b..be31b9e779 100644 --- a/files/fr/glossary/sisd/index.html +++ b/files/fr/glossary/sisd/index.html @@ -1,10 +1,11 @@ --- title: SISD -slug: Glossaire/SISD +slug: Glossary/SISD tags: - CodingScripting - Glossaire translation_of: Glossary/SISD +original_slug: Glossaire/SISD ---

SISD signifie Single Instruction/Single Data et est une des {{Interwiki("wikipedia","Taxinomie_de_Flynn","catégories d'architecture des ordinateurs")}}. Avec une architecture SISD, un processeur unique exécute une instruction unique et opère sur un flux de données unique en mémoire.

diff --git a/files/fr/glossary/site/index.html b/files/fr/glossary/site/index.html index 99b69d68b3..1d3af3b42b 100644 --- a/files/fr/glossary/site/index.html +++ b/files/fr/glossary/site/index.html @@ -1,11 +1,12 @@ --- title: Site -slug: Glossaire/Site +slug: Glossary/Site tags: - Glossaire - Sécurité - WebMécanique translation_of: Glossary/Site +original_slug: Glossaire/Site ---

Le site d'un élément de contenu Web est déterminé par le domaine enregistrable de l'hôte au sein de l'origine. Ceci est calculé en consultant une liste de suffixes publics pour trouver la partie de l'hôte qui est comptée comme suffixe public (par exemple, com, org ou co.uk).

diff --git a/files/fr/glossary/site_map/index.html b/files/fr/glossary/site_map/index.html index 7f8ea08208..872f94e981 100644 --- a/files/fr/glossary/site_map/index.html +++ b/files/fr/glossary/site_map/index.html @@ -1,11 +1,12 @@ --- title: Site map -slug: Glossaire/Site_map +slug: Glossary/Site_map tags: - Accessibilité - Chercher - Glossaire - Site map translation_of: Glossary/Site_map +original_slug: Glossaire/Site_map ---

Une site map ou sitemap est une liste de pages d'un site web, un plan du site. Les listes structurées de la page d'un site aident à l'optimisation des moteurs de recherche, en fournissant un lien aux robots d'exploration tels que les moteurs de recherche à suivre. Les site maps aident également les utilisateurs à naviguer sur le site en fournissant un aperçu du contenu d'un site en un seul coup d'œil.

diff --git a/files/fr/glossary/sld/index.html b/files/fr/glossary/sld/index.html index f660fbded1..9ab6a59d33 100644 --- a/files/fr/glossary/sld/index.html +++ b/files/fr/glossary/sld/index.html @@ -1,10 +1,11 @@ --- title: SLD -slug: Glossaire/SLD +slug: Glossary/SLD tags: - Glossaire - Infrastructure translation_of: Glossary/SLD +original_slug: Glossaire/SLD ---

Un SLD (Second Level Domain) est un domaine qui est hiérarchiquement directement sous un {{Glossary("TLD")}}.

diff --git a/files/fr/glossary/sloppy_mode/index.html b/files/fr/glossary/sloppy_mode/index.html index 3a8ecb0fb4..a0b4184881 100644 --- a/files/fr/glossary/sloppy_mode/index.html +++ b/files/fr/glossary/sloppy_mode/index.html @@ -1,10 +1,11 @@ --- title: Sloppy mode -slug: Glossaire/Sloppy_mode +slug: Glossary/Sloppy_mode tags: - Glossaire - JavaScript translation_of: Glossary/Sloppy_mode +original_slug: Glossaire/Sloppy_mode ---

En {{Glossary ("ECMAScript")}} 5 et plus tard, les scripts optent pour un nouveau mode strict, qui modifie la sémantique de JavaScript de plusieurs façons pour améliorer sa résilience et qui facilite la compréhension de ce qui se passe en cas de problème .

diff --git a/files/fr/glossary/slug/index.html b/files/fr/glossary/slug/index.html index 455a3ac7cb..c66f16641b 100644 --- a/files/fr/glossary/slug/index.html +++ b/files/fr/glossary/slug/index.html @@ -1,10 +1,11 @@ --- title: Slug -slug: Glossaire/Slug +slug: Glossary/Slug tags: - Glossaire - URL translation_of: Glossary/Slug +original_slug: Glossaire/Slug ---

Un Slug est la partie d'identification unique d'une adresse Web, généralement à la fin de l'URL. Dans le contexte de MDN, c'est la partie de l'URL qui suit "<locale>/docs/".

diff --git a/files/fr/glossary/smoke_test/index.html b/files/fr/glossary/smoke_test/index.html index 0d467c2700..60b700935c 100644 --- a/files/fr/glossary/smoke_test/index.html +++ b/files/fr/glossary/smoke_test/index.html @@ -1,10 +1,11 @@ --- title: Test de fumée -slug: Glossaire/Test_de_fumée +slug: Glossary/Smoke_Test tags: - Glossaire - tests translation_of: Glossary/Smoke_Test +original_slug: Glossaire/Test_de_fumée ---

Un test de fumée (Smoke test) consiste en des tests fonctionnels ou unitaires de fonctions logicielles critiques. Les tests de fumée viennent avant d'autres tests approfondis.

diff --git a/files/fr/glossary/smtp/index.html b/files/fr/glossary/smtp/index.html index 061c1a1ce4..9bae976ec6 100644 --- a/files/fr/glossary/smtp/index.html +++ b/files/fr/glossary/smtp/index.html @@ -1,6 +1,6 @@ --- title: SMTP -slug: Glossaire/SMTP +slug: Glossary/SMTP tags: - Collaboration - Débutant @@ -8,6 +8,7 @@ tags: - Infrastructure - Partage translation_of: Glossary/SMTP +original_slug: Glossaire/SMTP ---

SMTP (Simple Mail Transfer Protocol) est un {{glossary("protocol","protocole")}} utilisé pour envoyer un nouveau courriel. Tout comme POP3 et NNTP, il s'agit d'un protocole piloté par une {{Glossary("state machine","machine d'état")}}.

diff --git a/files/fr/glossary/soap/index.html b/files/fr/glossary/soap/index.html index 6b2350311c..eff5edf316 100644 --- a/files/fr/glossary/soap/index.html +++ b/files/fr/glossary/soap/index.html @@ -1,12 +1,13 @@ --- title: SOAP -slug: Glossaire/SOAP +slug: Glossary/SOAP tags: - Glossaire - Infrastructure - SOAP - WebMechanics translation_of: Glossary/SOAP +original_slug: Glossaire/SOAP ---

SOAP (Simple Object Access Protocol) est un {{glossary("Protocol","protocole")}} de transmission de données au format {{glossary('XML')}}. {{glossary('Mozilla Firefox','Firefox')}} a supprimé le support de SOAP en 2008.

diff --git a/files/fr/glossary/specification/index.html b/files/fr/glossary/specification/index.html index 9dbdadffd0..a5054026f1 100644 --- a/files/fr/glossary/specification/index.html +++ b/files/fr/glossary/specification/index.html @@ -1,10 +1,11 @@ --- title: Spécification -slug: Glossaire/Specification +slug: Glossary/Specification tags: - Glossaire - Normes translation_of: Glossary/Specification +original_slug: Glossaire/Specification ---

Une spécification est un document qui décrit en détail les fonctionnalités ou attributs que doit avoir un produit avant livraison. Dans le contexte de la description du web, le terme «spécification» (souvent abrégé simplement «spec») signifie généralement un document décrivant un langage, une technologie ou un  {{Glossary("API")}} qui constituent l'ensemble complet des technologies web ouvertes.

diff --git a/files/fr/glossary/speculative_parsing/index.html b/files/fr/glossary/speculative_parsing/index.html index 15342d7577..59c8f243e7 100644 --- a/files/fr/glossary/speculative_parsing/index.html +++ b/files/fr/glossary/speculative_parsing/index.html @@ -1,6 +1,6 @@ --- title: Optimisation des pages pour l'analyse spéculative -slug: Web/HTML/Optimizing_your_pages_for_speculative_parsing +slug: Glossary/speculative_parsing tags: - Avancé - Cookies @@ -9,6 +9,7 @@ tags: - HTML5 - NeedsUpdate translation_of: Glossary/speculative_parsing +original_slug: Web/HTML/Optimizing_your_pages_for_speculative_parsing ---

Traditionnellement dans les navigateurs, l'analyseur HTML a été exécuté sur le fil principal et a été bloqué après une balise </script> jusqu'à ce que le script ait été extrait du réseau et exécuté. L'analyseur HTML dans Firefox 4 et versions ultérieures prend en charge l'analyse spéculative sur le fil principal. Il analyse "en avant" pendant que les scripts sont téléchargés et exécutés. Comme dans Firefox 3.5 et 3.6, l'analyseur HTML lance des chargements spéculatifs pour les scripts, les feuilles de style et les images qu'il trouve à l'avance dans le flux. Toutefois, dans Firefox 4 et versions ultérieures, l'analyseur HTML exécute également l'algorithme de construction de l'arborescence HTML de manière spéculative. L'avantage est que lorsqu'une spéculation réussit, il n'est pas nécessaire d'analyser la partie du fichier entrant qui a déjà été analysée pour les scripts, les feuilles de style et les images. L'inconvénient est qu'il y a plus de travail perdu quand la spéculation échoue.

diff --git a/files/fr/glossary/sql/index.html b/files/fr/glossary/sql/index.html index b4f022607d..045f2e7ee9 100644 --- a/files/fr/glossary/sql/index.html +++ b/files/fr/glossary/sql/index.html @@ -1,12 +1,13 @@ --- title: SQL -slug: Glossaire/SQL +slug: Glossary/SQL tags: - CodingScripting - Database - Glossary - Sql translation_of: Glossary/SQL +original_slug: Glossaire/SQL ---

SQL (Structured Query Language) est un langage normalisé pour mettre à jour, récupérer et calculer des données dans les tables d'une base de données.

diff --git a/files/fr/glossary/sql_injection/index.html b/files/fr/glossary/sql_injection/index.html index 0e092c51c5..833a98ac82 100644 --- a/files/fr/glossary/sql_injection/index.html +++ b/files/fr/glossary/sql_injection/index.html @@ -1,12 +1,13 @@ --- title: Injection SQL -slug: Glossaire/Injection_SQL +slug: Glossary/SQL_Injection tags: - Attaques - Glossaire - Sql - Sécurité translation_of: Glossary/SQL_Injection +original_slug: Glossaire/Injection_SQL ---

L'injection SQL tire parti des applications web qui ne parviennent pas à valider les entrées utilisateur. Les pirates peuvent transmettre des commandes SQL via l'application web de manière malveillante pour exécution par une base de données principale.

diff --git a/files/fr/glossary/sri/index.html b/files/fr/glossary/sri/index.html index ae3370ef55..c1932db10a 100644 --- a/files/fr/glossary/sri/index.html +++ b/files/fr/glossary/sri/index.html @@ -1,10 +1,11 @@ --- title: SRI -slug: Glossaire/SRI +slug: Glossary/SRI tags: - Glossaire - Sécurité translation_of: Glossary/SRI +original_slug: Glossaire/SRI ---

Subresource Integrity (SRI) (intégrité des sous-ressources) est une fonctionnalité de sécurité qui permet aux navigateurs de vérifier que les fichiers qu'ils récupèrent (par exemple, à partir d'un {{Glossary("CDN")}}) sont livrés sans manipulation inattendue. Cela fonctionne en vous permettant de fournir un hachage cryptographique auquel un fichier récupéré doit correspondre.

diff --git a/files/fr/glossary/ssl/index.html b/files/fr/glossary/ssl/index.html index dee68f046a..cd99370842 100644 --- a/files/fr/glossary/ssl/index.html +++ b/files/fr/glossary/ssl/index.html @@ -1,10 +1,11 @@ --- title: SSL -slug: Glossaire/SSL_Glossary +slug: Glossary/SSL tags: - Glossaire - Sécurité translation_of: Glossary/SSL +original_slug: Glossaire/SSL_Glossary ---

SSL (Secure Sockets Layer) est un protocole standard qui garantit que la communication entre deux applications informatiques est privée et sécurisée (ne peut être ni lue ni modifiée par des observateurs extérieurs). C'est la base du protocole {{Glossary("TLS")}}.

diff --git a/files/fr/glossary/stacking_context/index.html b/files/fr/glossary/stacking_context/index.html index 6fabd788a3..0e4402bc1d 100644 --- a/files/fr/glossary/stacking_context/index.html +++ b/files/fr/glossary/stacking_context/index.html @@ -1,11 +1,12 @@ --- title: Contexte d'empilement -slug: Glossaire/Contexte_d_empilement +slug: Glossary/Stacking_context tags: - CSS - Encodage - Glossaire translation_of: Glossary/Stacking_context +original_slug: Glossaire/Contexte_d_empilement ---

Le contexte d'empilement renvoie à la façon dont les éléments d'une page web semblent se superposer à d'autres éléments, tout comme vous pouvez placer les fiches sur votre bureau côte à côte ou se chevauchant.

diff --git a/files/fr/glossary/state_machine/index.html b/files/fr/glossary/state_machine/index.html index 65e92b2246..4cc0af7b70 100644 --- a/files/fr/glossary/state_machine/index.html +++ b/files/fr/glossary/state_machine/index.html @@ -1,10 +1,11 @@ --- title: Machine d'état -slug: Glossaire/Machine_d_état +slug: Glossary/State_machine tags: - Glossaire - états translation_of: Glossary/State_machine +original_slug: Glossaire/Machine_d_état ---

Une machine d'état est une abstraction mathématique utilisée pour concevoir des algorithmes. Une machine d'état lit un ensemble d'entrées et passe à un état différent en fonction de ces entrées.

diff --git a/files/fr/glossary/statement/index.html b/files/fr/glossary/statement/index.html index 57c5438531..a457183c63 100644 --- a/files/fr/glossary/statement/index.html +++ b/files/fr/glossary/statement/index.html @@ -1,11 +1,12 @@ --- title: Instruction -slug: Glossaire/Statement +slug: Glossary/Statement tags: - CodingScripting - Débutant - Glossaire translation_of: Glossary/Statement +original_slug: Glossaire/Statement ---

Dans un langage de programmation informatique, une instruction est une ligne de code dictant une tâche. Tout programme consiste en une séquence d'instructions.

diff --git a/files/fr/glossary/static_typing/index.html b/files/fr/glossary/static_typing/index.html index c5e3902bf1..a0b5f68e65 100644 --- a/files/fr/glossary/static_typing/index.html +++ b/files/fr/glossary/static_typing/index.html @@ -1,11 +1,12 @@ --- title: Typage statique -slug: Glossaire/typage_statique +slug: Glossary/Static_typing tags: - Glossaire - Programmation - Type translation_of: Glossary/Static_typing +original_slug: Glossaire/typage_statique ---

Un langage à typage statique est un langage (comme Java, C ou C++) avec lequel les types des variables sont connus lors de la compilation et doivent être spécifiés expressément par le programmeur. Dans la plupart de ces langages, les types doivent être expressément indiqués par le programmeur ; dans d'autres cas (comme OCaml), l'inférence de type permet au programmeur de ne pas indiquer les types de variables.

diff --git a/files/fr/glossary/string/index.html b/files/fr/glossary/string/index.html index 3e7b9ad844..85ee91dbf7 100644 --- a/files/fr/glossary/string/index.html +++ b/files/fr/glossary/string/index.html @@ -1,12 +1,13 @@ --- title: Chaîne de caractères -slug: Glossaire/String +slug: Glossary/String tags: - Chaîne de caractères - Débutant - Glossaire - String translation_of: Glossary/String +original_slug: Glossaire/String ---

Dans les langages de programmation, le terme chaîne de {{Glossary("character","caractères")}} (String) est utilisé pour représenter du texte.

diff --git a/files/fr/glossary/stun/index.html b/files/fr/glossary/stun/index.html index 9e381e802e..f408ff1bcf 100644 --- a/files/fr/glossary/stun/index.html +++ b/files/fr/glossary/stun/index.html @@ -1,6 +1,6 @@ --- title: STUN -slug: Glossaire/STUN +slug: Glossary/STUN tags: - Glossaire - Infrastructure @@ -8,6 +8,7 @@ tags: - WebMechanics - WebRTC translation_of: Glossary/STUN +original_slug: Glossaire/STUN ---

STUN (Session Traversal Utilities for NAT) est un protocole auxiliaire servant à transmettre des données dans un environnement avec du {{glossary("NAT")}} (Network Address Translator). STUN retourne l'{{glossary("IP address","adresse IP")}}, le {{glossary("port")}} et l'état de la connectivité d'un ordinateur en réseau derrière un NAT.

diff --git a/files/fr/glossary/svg/index.html b/files/fr/glossary/svg/index.html index 5cc1f8bbad..3794c24ef4 100644 --- a/files/fr/glossary/svg/index.html +++ b/files/fr/glossary/svg/index.html @@ -1,6 +1,6 @@ --- title: SVG -slug: Glossaire/SVG +slug: Glossary/SVG tags: - Débutant - Encodage @@ -8,6 +8,7 @@ tags: - Graphismes - SVG translation_of: Glossary/SVG +original_slug: Glossaire/SVG ---

Scalable Vector Graphics (SVG) est un format d'image vectorielle 2D basé sur une syntaxe {{Glossary("XML")}}.

diff --git a/files/fr/glossary/svn/index.html b/files/fr/glossary/svn/index.html index 855295d7b5..4cb0f95c56 100644 --- a/files/fr/glossary/svn/index.html +++ b/files/fr/glossary/svn/index.html @@ -1,11 +1,12 @@ --- title: SVN -slug: Glossaire/SVN +slug: Glossary/SVN tags: - Collaboratif - Glossaire - SVN translation_of: Glossary/SVN +original_slug: Glossaire/SVN ---

SVN (pour Apache Subversion) est un logiciel libre de gestion du contrôle de système  ({{Glossary("SCM")}}). Il permet aux développeurs de conserver un historique des modifications de texte et de code. Bien que SVN puisse également gérer les fichiers binaires, nous ne vous recommandons pas de l'utiliser pour de tels fichiers.

diff --git a/files/fr/glossary/symbol/index.html b/files/fr/glossary/symbol/index.html index a20bbb206b..bf922c7d7b 100644 --- a/files/fr/glossary/symbol/index.html +++ b/files/fr/glossary/symbol/index.html @@ -1,11 +1,12 @@ --- title: Symbole -slug: Glossaire/Symbole +slug: Glossary/Symbol tags: - Glossaire - JavaScript - Partage translation_of: Glossary/Symbol +original_slug: Glossaire/Symbole ---

Cette page de glossaire décrit à la fois un type de données, appelé "symbole", et la fonction de classe, appelée "{{jsxref ("Symbol","symbole")}}()", qui (entre autres) crée des instances du type de données symbole .

diff --git a/files/fr/glossary/synchronous/index.html b/files/fr/glossary/synchronous/index.html index 8cbeb636a3..cee5cae212 100644 --- a/files/fr/glossary/synchronous/index.html +++ b/files/fr/glossary/synchronous/index.html @@ -1,11 +1,12 @@ --- title: Synchrone -slug: Glossaire/Synchronous +slug: Glossary/Synchronous tags: - Glossaire - Mécanismes web - Web translation_of: Glossary/Synchronous +original_slug: Glossaire/Synchronous ---

Synchrone fait référence à une communication en temps réel pendant laquelle chaque partie reçoit les messages (et, si nécessaire, les traite et y répond) dès que possible après qu'ils aient été envoyés.

diff --git a/files/fr/glossary/syntax/index.html b/files/fr/glossary/syntax/index.html index e4dad27015..d7a4c57b0f 100644 --- a/files/fr/glossary/syntax/index.html +++ b/files/fr/glossary/syntax/index.html @@ -1,11 +1,12 @@ --- title: Syntaxe -slug: Glossaire/Syntaxe +slug: Glossary/Syntax tags: - Encodage - Glossaire - Syntaxe translation_of: Glossary/Syntax +original_slug: Glossaire/Syntaxe ---

La syntaxe définit les séquences et combinaisons de {{Glossary("Character","caractères")}} requises pour créer du code correctement structuré. La syntaxe diffère d'un langage à l'autre (e.g., la syntaxe est différente en {{Glossary("HTML")}} et en {{Glossary("JavaScript")}}). La syntaxe s'applique à la fois aux langages de programmation (commandes données à l'ordinateur) et aux langages de balisage (informations sur la structure de documents).

diff --git a/files/fr/glossary/syntax_error/index.html b/files/fr/glossary/syntax_error/index.html index 745f05a1e0..8e14228d0b 100644 --- a/files/fr/glossary/syntax_error/index.html +++ b/files/fr/glossary/syntax_error/index.html @@ -1,10 +1,11 @@ --- title: Erreur de syntaxe -slug: Glossaire/Syntax_error +slug: Glossary/Syntax_error tags: - CodingScripting - Glossaire translation_of: Glossary/Syntax_error +original_slug: Glossaire/Syntax_error ---

Une {{Glossary("exception")}} provoquée par l'usage incorrect d'une {{Glossary("syntaxe")}} prédéfinie. Les erreurs de syntaxe sont détectées au cours de la compilation ou de l'interprétation du code source. Par exemple, si vous oubliez de fermer une accolade (}) lors de la définition d'une fonction {{Glossary("JavaScript")}}, vous déclencherez une erreur de syntaxe. Les outils de développement des navigateurs affichent les erreurs de syntaxe {{Glossary("JavaScript")}} et {{Glossary("CSS")}} dans la console.

diff --git a/files/fr/glossary/tag/index.html b/files/fr/glossary/tag/index.html index 9d8b416447..f45cbd4b30 100644 --- a/files/fr/glossary/tag/index.html +++ b/files/fr/glossary/tag/index.html @@ -1,11 +1,12 @@ --- title: Balise -slug: Glossaire/Balise +slug: Glossary/Tag tags: - Glossaire - HTML - Introduction translation_of: Glossary/Tag +original_slug: Glossaire/Balise ---

En {{Glossary("HTML")}} une balise est utilisée pour créer un {{Glossary("element")}}.  Le nom d'un élément HTML est le nom utilisé dans des chevrons comme par exemple <p> pour un paragraphe.  Notez que le nom de la balise fermante est précédé par un caractère barre oblique, "</p>", et que pour les éléments vides la balise de fin n'est pas nécessaire ni permise. Si les attributs ne sont pas mentionnés, les valeurs par défaut s'appliquent pour chaque cas.

diff --git a/files/fr/glossary/tcp/index.html b/files/fr/glossary/tcp/index.html index 35b07fb4a8..ee588d0e25 100644 --- a/files/fr/glossary/tcp/index.html +++ b/files/fr/glossary/tcp/index.html @@ -1,7 +1,8 @@ --- title: TCP -slug: Glossaire/TCP +slug: Glossary/TCP translation_of: Glossary/TCP +original_slug: Glossaire/TCP ---

TCP (transmission control protocol) est un protocole réseau qui permet à deux hôtes de se connecter et d'échanger des données. Le protocole TCP garantit la distribution des données et paquets dans l'ordre où ils ont été envoyés. Vint Cerf et Bob Kahn, scientifiques du DARPA, ont imaginé TCP dans les années 70.

diff --git a/files/fr/glossary/tcp_handshake/index.html b/files/fr/glossary/tcp_handshake/index.html index e48791d681..f104d1be2f 100644 --- a/files/fr/glossary/tcp_handshake/index.html +++ b/files/fr/glossary/tcp_handshake/index.html @@ -1,9 +1,10 @@ --- title: Liaison à trois voies -slug: Glossaire/TCP_handshake +slug: Glossary/TCP_handshake tags: - TCP translation_of: Glossary/TCP_handshake +original_slug: Glossaire/TCP_handshake ---

{{glossary('Transmission_Control_Protocol_(TCP)','TCP (Transmission Control Protocol)')}} est un protocole hôte à hôte de la couche transport permettant la communication en mode connexion entre deux ordinateurs sur un réseau IP. TCP utilise une liaison à trois voies (ou TCP-Handshake, trois messages ou SYN-SYN-ACK) pour établir une connexion TCP / IP sur un réseau IP: SYN pour synchronize et ACK pour acuittement. Les trois messages transmis par TCP pour négocier et démarrer une session TCP sont respectivement surnommés SYN, SYN-ACK et ACK: synchronize, synchronize acquittement, et acquittement. Le mécanisme à trois messages est conçu pour que deux ordinateurs souhaitant échanger des informations puissent négocier les paramètres de la connexion avant de transmettre des données telles que des requêtes de navigateur HTTP.

diff --git a/files/fr/glossary/tcp_slow_start/index.html b/files/fr/glossary/tcp_slow_start/index.html index 8d37c82c4f..fc35071dc8 100644 --- a/files/fr/glossary/tcp_slow_start/index.html +++ b/files/fr/glossary/tcp_slow_start/index.html @@ -1,11 +1,12 @@ --- title: TCP slow start -slug: Glossaire/TCP_slow_start +slug: Glossary/TCP_slow_start tags: - Performance - Performance Web - TCP translation_of: Glossary/TCP_slow_start +original_slug: Glossaire/TCP_slow_start ---

Le démarrage lent, ou TCP slow start, permet d’accumulez la vitesse de transmission des capacités du réseau sans savoir initialement quelles sont ces capacités et sans créer de congestion. {{glossary('TCP')}} slow start est un algorithme utilisé pour détecter la bande passante disponible pour la transmission par paquets. Il empêche l’apparition d’une congestion du réseau dont les capacités sont initialement inconnues.

diff --git a/files/fr/glossary/telnet/index.html b/files/fr/glossary/telnet/index.html index 5d924b4b37..40135e2200 100644 --- a/files/fr/glossary/telnet/index.html +++ b/files/fr/glossary/telnet/index.html @@ -1,10 +1,11 @@ --- title: Telnet -slug: Glossaire/Telnet +slug: Glossary/Telnet tags: - Glossaire - Infrastructure translation_of: Glossary/Telnet +original_slug: Glossaire/Telnet ---

Telnet est un outil en ligne de commandes et un protocole basé sur TCP/IP pour accéder à des ordinateurs distants.

diff --git a/files/fr/glossary/texel/index.html b/files/fr/glossary/texel/index.html index 375d33d393..2c494e4251 100644 --- a/files/fr/glossary/texel/index.html +++ b/files/fr/glossary/texel/index.html @@ -1,6 +1,6 @@ --- title: Texel -slug: Glossaire/Texel +slug: Glossary/Texel tags: - 3D - Glossaire @@ -9,6 +9,7 @@ tags: - dessin - graphique translation_of: Glossary/Texel +original_slug: Glossaire/Texel ---

Un Texel est un pixel unique dans une carte de texture, qui est une image qui est utilisée (en tout ou en partie) comme image présentée sur la surface d'un polygone dans une image rendue en part) 3D. Il ne doit pas être confondu avec le pixel qui est l'unité d'espace de l'écran. C'est l'une des principales différences entre Texel et pixels, les pixels sont des données d'image. Les composants Texel sont constitués de données subjecives, ils peuvent donc être une image aussi bien qu'une carte de profondeur.

diff --git a/files/fr/glossary/three_js/index.html b/files/fr/glossary/three_js/index.html index 271ec51052..62be7b548a 100644 --- a/files/fr/glossary/three_js/index.html +++ b/files/fr/glossary/three_js/index.html @@ -1,6 +1,6 @@ --- title: Three js -slug: Glossaire/Three_js +slug: Glossary/Three_js tags: - JavaScript - Langage de programmation @@ -8,6 +8,7 @@ tags: - Programmation - three.js translation_of: Glossary/Three_js +original_slug: Glossaire/Three_js ---

three.js est un moteur {{Glossary("WebGL")}} en {{Glossary("JavaScript")}} capable d'exécuter directement dans le {{Glossary("Browser","navigateur")}} des jeux exploitant le GPU ainsi que d'autres applications graphiques. La bibliothèque three.js fournit de nombreuses fonctionnalités et {{Glossary("API")}} pour dessiner des scènes 3D dans votre navigateur. 

diff --git a/files/fr/glossary/time_to_interactive/index.html b/files/fr/glossary/time_to_interactive/index.html index c3de2d0abc..fd197498c6 100644 --- a/files/fr/glossary/time_to_interactive/index.html +++ b/files/fr/glossary/time_to_interactive/index.html @@ -1,12 +1,13 @@ --- title: Time to interactive -slug: Glossaire/Time_to_interactive +slug: Glossary/Time_to_interactive tags: - Glossaire - Performance - Performance Web - Reference translation_of: Glossary/Time_to_interactive +original_slug: Glossaire/Time_to_interactive ---

Time to Interactive (TTI) est une métrique de "progression" des performances web non standardisée définie comme le moment où la dernière Long Task s'est terminée et a été suivie de 5 secondes d'inactivité du réseau et du thread principal.

diff --git a/files/fr/glossary/tld/index.html b/files/fr/glossary/tld/index.html index 49e43b684d..8d62a42024 100644 --- a/files/fr/glossary/tld/index.html +++ b/files/fr/glossary/tld/index.html @@ -1,11 +1,12 @@ --- title: TLD -slug: Glossaire/TLD +slug: Glossary/TLD tags: - Glossaire - Web - WebMechanics translation_of: Glossary/TLD +original_slug: Glossaire/TLD ---

Un domaine de premier niveau ou TLD (top-level domain) est le {{Glossary("domaine")}} le plus générique de toute la hiérarchie {{Glossary("DNS")}} (système de noms de domaine) d'Internet. Un TLD est la composante finale d'un {{Glossary("nom de domaine")}}, par exemple, le "org" dans developer.mozilla.org.

diff --git a/files/fr/glossary/tls/index.html b/files/fr/glossary/tls/index.html index 5d7ceb078c..1c5830d885 100644 --- a/files/fr/glossary/tls/index.html +++ b/files/fr/glossary/tls/index.html @@ -1,12 +1,13 @@ --- title: TLS -slug: Glossaire/TLS +slug: Glossary/TLS tags: - Cryptographie - Glossaire - Infrastructure - Sécurité translation_of: Glossary/TLS +original_slug: Glossaire/TLS ---

Transport Layer Security (TLS), comme son prédécesseur Secure Sockets Layer (SSL), est un {{Glossary("Protocol", "protocole")}} utilisé par les applications pour communiquer de manière sécurisée à travers un réseau, tout en prévenant la falsification et l'interception des courriels, navigations web, messageries et autres protocoles.

diff --git a/files/fr/glossary/tofu/index.html b/files/fr/glossary/tofu/index.html index 10d8d0c878..7f7706d236 100644 --- a/files/fr/glossary/tofu/index.html +++ b/files/fr/glossary/tofu/index.html @@ -1,11 +1,12 @@ --- title: TOFU -slug: Glossaire/TOFU +slug: Glossary/TOFU tags: - Glossaire - HTTP - Sécurité translation_of: Glossary/TOFU +original_slug: Glossaire/TOFU ---

Trust On First Use (TOFU) (confiance à la première utilisation) est un modèle de sécurité dans lequel un client doit créer une relation avec un serveur inconnu. Pour ce faire, les clients rechercheront des identifiants (par exemple des clés publiques) stockés localement. Si un identifiant est trouvé, le client peut établir la connexion. Si aucun identifiant n'est trouvé, le client peut demander à l'utilisateur de déterminer si le client doit approuver l'identifiant.

diff --git a/files/fr/glossary/transmission_control_protocol_(tcp)/index.html b/files/fr/glossary/transmission_control_protocol_(tcp)/index.html index c80f5bf9fb..ba8110457e 100644 --- a/files/fr/glossary/transmission_control_protocol_(tcp)/index.html +++ b/files/fr/glossary/transmission_control_protocol_(tcp)/index.html @@ -1,6 +1,6 @@ --- title: Transmission Control Protocol (TCP) -slug: Glossaire/Transmission_Control_Protocol_(TCP) +slug: Glossary/Transmission_Control_Protocol_(TCP) tags: - Glossary - Networking @@ -11,6 +11,7 @@ tags: - TLS - Web Performance translation_of: Glossary/Transmission_Control_Protocol_(TCP) +original_slug: Glossaire/Transmission_Control_Protocol_(TCP) ---

TCP (Transmission Control Protocol) est un protocole hôte à hôte de la couche transport permettant la communication en mode connexion entre deux ordinateurs sur un réseau IP. TCP utilise des ports virtuels pour créer une connexion virtuelle de bout en bout capable de réutiliser les connexions physiques entre deux ordinateurs. TCP encapsule les données de protocole de niveau supérieur telles que {{glossary('HTTP')}} et, {{glossary('SMTP')}} (email).

diff --git a/files/fr/glossary/tree_shaking/index.html b/files/fr/glossary/tree_shaking/index.html index b06984c406..ed49f8c836 100644 --- a/files/fr/glossary/tree_shaking/index.html +++ b/files/fr/glossary/tree_shaking/index.html @@ -1,10 +1,11 @@ --- title: Tree shaking -slug: Glossaire/Tree_shaking +slug: Glossary/Tree_shaking tags: - Glossaire - JavaScript translation_of: Glossary/Tree_shaking +original_slug: Glossaire/Tree_shaking ---

Tree shaking est un terme couramment utilisé dans un contexte JavaScript pour décrire la suppression du code mort.

diff --git a/files/fr/glossary/trident/index.html b/files/fr/glossary/trident/index.html index ff2ac836cb..e3aa40949a 100644 --- a/files/fr/glossary/trident/index.html +++ b/files/fr/glossary/trident/index.html @@ -1,12 +1,13 @@ --- title: Trident -slug: Glossaire/Trident +slug: Glossary/Trident tags: - Glossaire - Infrastructure - Navigateur - Trident translation_of: Glossary/Trident +original_slug: Glossaire/Trident ---

Trident (ou MSHTML) est un moteur de rendu qui fait fonctionner {{Glossary("Microsoft Internet Explorer","Internet Explorer")}}.  Un "{{Glossary("Fork","embranchement")}}" de Trident appelé EdgeHTML a remplacé Trident dans le successeur d'Internet Explorer, {{Glossary("Microsoft Edge","Edge")}}.

diff --git a/files/fr/glossary/truthy/index.html b/files/fr/glossary/truthy/index.html index 62ed641a6b..f3a16046c7 100644 --- a/files/fr/glossary/truthy/index.html +++ b/files/fr/glossary/truthy/index.html @@ -1,11 +1,12 @@ --- title: Truthy -slug: Glossaire/Truthy +slug: Glossary/Truthy tags: - Glossaire - JavaScript - Programmation translation_of: Glossary/Truthy +original_slug: Glossaire/Truthy ---

En {{Glossary("JavaScript")}}, une valeur truthy est une valeur qui est considérée comme vraie quand elle est évaluée dans un contexte {{Glossary("Boolean","booléen")}} . Toutes les valeurs sont truthy sauf si elles sont definies comme {{Glossary("Falsy","falsy")}} (c'est-à-dire, sauf pour false, 0, "", null, undefined, et NaN).

diff --git a/files/fr/glossary/ttl/index.html b/files/fr/glossary/ttl/index.html index 0ec25656b2..a4110a073b 100644 --- a/files/fr/glossary/ttl/index.html +++ b/files/fr/glossary/ttl/index.html @@ -1,10 +1,11 @@ --- title: TTL -slug: Glossaire/TTL +slug: Glossary/TTL tags: - Glossaire - Infrastructure translation_of: Glossary/TTL +original_slug: Glossaire/TTL ---

TTL peut se référer soit à :

diff --git a/files/fr/glossary/turn/index.html b/files/fr/glossary/turn/index.html index 39c0be23b8..5fcb831698 100644 --- a/files/fr/glossary/turn/index.html +++ b/files/fr/glossary/turn/index.html @@ -1,12 +1,13 @@ --- title: TURN -slug: Glossaire/TURN +slug: Glossary/TURN tags: - Glossaire - Infrastructure - Mécanismes web - WebRTC translation_of: Glossary/TURN +original_slug: Glossaire/TURN ---

TURN (Traversal Using Relays around NAT) est un {{Glossary("protocol","protocole")}} permettant à un ordinateur de recevoir et d'envoyer des données malgré l'utilisation de {{glossary("NAT", "translation d'adresse réseau")}} (NAT) ou le fait d'être derrière un pare-feu.

diff --git a/files/fr/glossary/type/index.html b/files/fr/glossary/type/index.html index f50195b94b..c65a4e000f 100644 --- a/files/fr/glossary/type/index.html +++ b/files/fr/glossary/type/index.html @@ -1,12 +1,13 @@ --- title: Type -slug: Glossaire/Type +slug: Glossary/Type tags: - Encodage - Glossaire - JavaScript - Programmation translation_of: Glossary/Type +original_slug: Glossaire/Type ---

Le type (ou type de donnée) est une caractéristique d'une {{glossary("Value","valeur")}} qui détermine le genre de données qu'elle peut stocker - par exemple, en JavaScript, un  {{domxref("Boolean")}} ne contient que des valeurs true (vrai) / false (faux), alors qu'une {{domxref("String")}} (chaîne de caractères) contient des chaînes de texte, un  {{domxref("Number")}} contient toute sorte de nombres, etc.

diff --git a/files/fr/glossary/type_coercion/index.html b/files/fr/glossary/type_coercion/index.html index eb719b4bd6..e5d5d1c3b3 100644 --- a/files/fr/glossary/type_coercion/index.html +++ b/files/fr/glossary/type_coercion/index.html @@ -1,11 +1,12 @@ --- title: Type coercion -slug: Glossaire/Type_coercion +slug: Glossary/Type_coercion tags: - Coercion - JavaScript - Type coercion translation_of: Glossary/Type_coercion +original_slug: Glossaire/Type_coercion ---

La type coercion (en français, coercition de type) est la conversion automatique ou implicite de valeurs d'un type de données à un autre (par exemple : de string à nombre). La {{Glossary("type conversion")}} est similaire à la type coercion puisque les deux convertissent des valeurs d'un type de données à un autre. La différence fondamentale entre elles est que la type coercion est implicite alors que la type conversion peut être implicite ou explicite.

diff --git a/files/fr/glossary/type_conversion/index.html b/files/fr/glossary/type_conversion/index.html index 1e00b8c35e..0d4d3b4d46 100644 --- a/files/fr/glossary/type_conversion/index.html +++ b/files/fr/glossary/type_conversion/index.html @@ -1,12 +1,13 @@ --- title: Conversion de type -slug: Glossaire/Conversion_de_type +slug: Glossary/Type_Conversion tags: - CodingScripting - Conversion de type - Glossaire - Transtypage translation_of: Glossary/Type_Conversion +original_slug: Glossaire/Conversion_de_type ---

La conversion de type (ou transtypage) est le transfert d'une donnée d'un type de donnée vers un autre. Une conversion implicite se produit quand le compilateur affecte les types de donnée automatiquement, mais le code source peut aussi demander à ce qu'une conversion ait lieu de manière explicite.  Exemples simples : étant donnée l'instruction 5+2.0, l'entier 5 est converti implicitement en nombre à virgule flottante, mais avec l'instruction Number("0x11"), la chaîne "0x11" est explicitement convertie en valeur numérique 17.

diff --git a/files/fr/glossary/udp/index.html b/files/fr/glossary/udp/index.html index fa9acee383..659863c94f 100644 --- a/files/fr/glossary/udp/index.html +++ b/files/fr/glossary/udp/index.html @@ -1,11 +1,12 @@ --- title: UDP -slug: Glossaire/UDP +slug: Glossary/UDP tags: - Glossaire - Infrastructure - UDP translation_of: Glossary/UDP +original_slug: Glossaire/UDP ---

UDP (User Datagram Protocol) est un {{glossary("protocol","protocole")}} de longue date utilisé avec {{glossary("IPv6","IP")}} pour envoyer des données lorsque la vitesse de transmission et l'efficacité importent davantage que la sécurité et la fiabilitié.

diff --git a/files/fr/glossary/ui/index.html b/files/fr/glossary/ui/index.html index c32d5e4900..96c9e4f69d 100644 --- a/files/fr/glossary/ui/index.html +++ b/files/fr/glossary/ui/index.html @@ -1,9 +1,10 @@ --- title: UI -slug: Glossaire/UI +slug: Glossary/UI tags: - Glossaire translation_of: Glossary/UI +original_slug: Glossaire/UI ---

L'interface utilisateur (ou UI pour User Interface en anglais) est tout ce qui facilite l'interaction entre un utilisateur et une machine. Dans le domaine de l'informatique, cela peut correspondre à tout, du clavier au programme, en passant par la manette de jeu ou un écran. Dans le cas des logiciels informatiques, il peut s'agir d'une invite en ligne de commande, d'une page web, d'un formulaire de saisie utilisateur ou de l'interface d'une application.

diff --git a/files/fr/glossary/undefined/index.html b/files/fr/glossary/undefined/index.html index d75fa72d40..494d06376d 100644 --- a/files/fr/glossary/undefined/index.html +++ b/files/fr/glossary/undefined/index.html @@ -1,10 +1,11 @@ --- title: Undefined -slug: Glossaire/undefined +slug: Glossary/undefined tags: - Encodage - Glossaire translation_of: Glossary/undefined +original_slug: Glossaire/undefined ---

Une Valeur {{Glossary("primitive")}} affectée automatiquement aux {{Glossary("Variable","variables")}} qui viennent d'être déclarées ou aux {{Glossary("Argument","arguments")}} formels pour lesquels il n'y a pas d'arguments réels.

diff --git a/files/fr/glossary/unicode/index.html b/files/fr/glossary/unicode/index.html index 492d21a1e3..a423989747 100644 --- a/files/fr/glossary/unicode/index.html +++ b/files/fr/glossary/unicode/index.html @@ -1,10 +1,11 @@ --- title: Unicode -slug: Glossaire/Unicode +slug: Glossary/Unicode tags: - Caractères - Glossaire translation_of: Glossary/Unicode +original_slug: Glossaire/Unicode ---

Unicode est une {{Glossary("Character set","police de caractères")}} standard qui énumère et définit les {{Glossary("Character","caractères")}} des différentes langues du monde, systèmes d'écriture et symboles. En attribuant un nombre à chaque caractère, les programmeurs peuvent {{Glossary("Character encoding", "encoder des caractères")}}, pour permettre aux ordinateurs de stocker, traiter et transmettre toute combinaison de langues dans le même fichier ou programme.

diff --git a/files/fr/glossary/uri/index.html b/files/fr/glossary/uri/index.html index 452f0d7993..0bba04d264 100644 --- a/files/fr/glossary/uri/index.html +++ b/files/fr/glossary/uri/index.html @@ -1,6 +1,6 @@ --- title: URI -slug: Glossaire/URI +slug: Glossary/URI tags: - Glossaire - HTTP @@ -8,6 +8,7 @@ tags: - URI - URL translation_of: Glossary/URI +original_slug: Glossaire/URI ---

Un URI (Uniform Resource Identifier) (Identifiant de ressource uniforme ) est une chaîne qui fait référence à une ressource. Les plus courantes sont les {{Glossary("URL")}}, qui identifient une ressource en donnant son emplacement sur le Web. Au contraire, les {{Glossary("URN")}} font référence à une ressource grâce à son nom, dans un environnement donné, par exemple le code ISBN d'un livre.

diff --git a/files/fr/glossary/url/index.html b/files/fr/glossary/url/index.html index 9a552c4a60..a7c6089e64 100644 --- a/files/fr/glossary/url/index.html +++ b/files/fr/glossary/url/index.html @@ -1,10 +1,11 @@ --- title: URL -slug: Glossaire/URL +slug: Glossary/URL tags: - Glossaire - Infrastructure translation_of: Glossary/URL +original_slug: Glossaire/URL ---

Uniform Resource Locator (URL) est une chaîne de texte qui spécifie où une ressource (telle qu'une page web, une image ou une vidéo) peut être trouvée sur Internet.

diff --git a/files/fr/glossary/urn/index.html b/files/fr/glossary/urn/index.html index 55812381da..011cfaf515 100644 --- a/files/fr/glossary/urn/index.html +++ b/files/fr/glossary/urn/index.html @@ -1,12 +1,13 @@ --- title: URN -slug: Glossaire/URN +slug: Glossary/URN tags: - Glossaire - Intro - Navigation - urn translation_of: Glossary/URN +original_slug: Glossaire/URN ---

Un URN (Uniform Resource Name) est un {{Glossary("URI")}} dans un format standardisé faisant référence à une ressource sans spécifier son emplacement ni si elle existe. L'exemple suivant est issu de la RFC3986 : urn:oasis:names:specification:docbook:dtd:xml:4.1.2

diff --git a/files/fr/glossary/usenet/index.html b/files/fr/glossary/usenet/index.html index 7f73d5f3ef..2398fcbcfc 100644 --- a/files/fr/glossary/usenet/index.html +++ b/files/fr/glossary/usenet/index.html @@ -1,10 +1,11 @@ --- title: Usenet -slug: Glossaire/Usenet +slug: Glossary/Usenet tags: - Glossaire - WebMechanics translation_of: Glossary/Usenet +original_slug: Glossaire/Usenet ---

Usenet est un système de discussion sur internet où chaque message est dupliqué sur plusieurs serveurs. Équivalent aux forums Internet actuels, Usenet fonctionnait comme un bulletin board system.

diff --git a/files/fr/glossary/user_agent/index.html b/files/fr/glossary/user_agent/index.html index 9d52373700..eac49b5063 100644 --- a/files/fr/glossary/user_agent/index.html +++ b/files/fr/glossary/user_agent/index.html @@ -1,12 +1,13 @@ --- title: Agent utilisateur -slug: Glossaire/User_agent +slug: Glossary/User_agent tags: - Glossaire - Mécanismes web - Web - agent utilisateur translation_of: Glossary/User_agent +original_slug: Glossaire/User_agent ---

Un agent utilisateur est un programme informatique qui représente une personne, par exemple, un {{Glossary("Navigateur","navigateur")}} dans le cadre d'une utilisation sur le {{Glossary("World Wide Web", "Web")}}.

diff --git a/files/fr/glossary/utf-8/index.html b/files/fr/glossary/utf-8/index.html index b4dd418229..3f01e14326 100644 --- a/files/fr/glossary/utf-8/index.html +++ b/files/fr/glossary/utf-8/index.html @@ -1,6 +1,6 @@ --- title: UTF-8 -slug: Glossaire/UTF-8 +slug: Glossary/UTF-8 tags: - Encodage - Glossaire @@ -8,6 +8,7 @@ tags: - JavaScript - Utf-8 translation_of: Glossary/UTF-8 +original_slug: Glossaire/UTF-8 ---

UTF-8 (UCS Transformation Format 8) est le {{Glossary("Character encoding","codage de caractères")}} le plus répandu sur le world wide web. Chaque caractère est représenté par un à quatre octets. UTF-8 est rétro-compatible avec l'{{Glossary("ASCII")}} et peut représenter n'importe quel caractère Unicode.

diff --git a/files/fr/glossary/ux/index.html b/files/fr/glossary/ux/index.html index 4284964545..ecbe5b35e2 100644 --- a/files/fr/glossary/ux/index.html +++ b/files/fr/glossary/ux/index.html @@ -1,6 +1,6 @@ --- title: UX -slug: Glossaire/UX +slug: Glossary/UX tags: - Accessibilité - Composition @@ -9,6 +9,7 @@ tags: - Glossary - Navigation translation_of: Glossary/UX +original_slug: Glossaire/UX ---

UX est un acronyme signifiant User eXperience (expérience utilisateur). Il s'agit de l'étude de l'interaction entre des utilisateurs et un système. Son objectif est de rendre l'interaction avec un système plus simple du point de vue de l'utilisateur.

diff --git a/files/fr/glossary/validator/index.html b/files/fr/glossary/validator/index.html index a2a1258254..26c589f629 100644 --- a/files/fr/glossary/validator/index.html +++ b/files/fr/glossary/validator/index.html @@ -1,10 +1,11 @@ --- title: Validateur -slug: Glossaire/Validator +slug: Glossary/Validator tags: - Glossaire - Sécurité translation_of: Glossary/Validator +original_slug: Glossaire/Validator ---

Un validateur est un programme qui vérifie les erreurs de syntaxe d'un code informatique. Ils peuvent être créés pour tous les formats et langages, mais dans notre contexte on parle d'outils vérifiant le {{Glossary("HTML")}}, {{Glossary("CSS")}}, et {{Glossary("XML")}}.

diff --git a/files/fr/glossary/value/index.html b/files/fr/glossary/value/index.html index 3b2363a959..dfc103c6f5 100644 --- a/files/fr/glossary/value/index.html +++ b/files/fr/glossary/value/index.html @@ -1,10 +1,11 @@ --- title: Valeur -slug: Glossaire/Valeur +slug: Glossary/Value tags: - Encodage - Glossaire translation_of: Glossary/Value +original_slug: Glossaire/Valeur ---

En ce qui concerne les données ou un objet {{Glossary("Wrapper", "wrapper")}} enveloppant cette donnée, la valeur est la {{Glossary("Primitive","valeur primitive")}} que cet objet wrapper contient. Pour les {{Glossary("Variable","variables")}} ou les {{Glossary("Property","propriétés")}}, la valeur peut être soit une primitive, soit une {{Glossary("Object reference","référence d'objet")}}.

diff --git a/files/fr/glossary/variable/index.html b/files/fr/glossary/variable/index.html index 547a5ef7e2..9e6841691b 100644 --- a/files/fr/glossary/variable/index.html +++ b/files/fr/glossary/variable/index.html @@ -1,6 +1,6 @@ --- title: Variable -slug: Glossaire/Variable +slug: Glossary/Variable tags: - Encodage - Glossaire @@ -8,6 +8,7 @@ tags: - Programmation - Variables translation_of: Glossary/Variable +original_slug: Glossaire/Variable ---

Une variable est un emplacement nommé pour conserver une {{Glossary("Value", "valeur")}}. Ainsi, il est possible d'accéder à une valeur quelconque par l'intermédiaire d'un nom prédéterminé.

diff --git a/files/fr/glossary/vendor_prefix/index.html b/files/fr/glossary/vendor_prefix/index.html index 891d444c14..35d720c183 100644 --- a/files/fr/glossary/vendor_prefix/index.html +++ b/files/fr/glossary/vendor_prefix/index.html @@ -1,12 +1,13 @@ --- title: Préfixe vendeur -slug: Glossaire/Préfixe_Vendeur +slug: Glossary/Vendor_Prefix tags: - CSS - Encodage - Glossaire - Préfixes translation_of: Glossary/Vendor_Prefix +original_slug: Glossaire/Préfixe_Vendeur ---

Les vendeurs de navigateurs ajoutent parfois des préfixes aux propriétés CSS expérimentales ou non standards. Les développeurs peuvent ainsi les expérimenter sans que les changements de comportement du navigateur ne cassent le code pendant le processus de standardisation. Les développeurs sont supposés attendre que le comportement du navigateur soit standardisé pour inclure la propriété non préfixée.

diff --git a/files/fr/glossary/viewport/index.html b/files/fr/glossary/viewport/index.html index cbd2e738ca..d5c060e831 100644 --- a/files/fr/glossary/viewport/index.html +++ b/files/fr/glossary/viewport/index.html @@ -1,10 +1,11 @@ --- title: Vue -slug: Glossaire/Viewport +slug: Glossary/Viewport tags: - Encodage - Glossaire translation_of: Glossary/Viewport +original_slug: Glossaire/Viewport ---

Une vue représente une zone polygonale (normalement rectangulaire) dans les graphiques d'ordinateur en cours de visualisation. En termes de navigateur web, elle se réfère à la partie du document que vous visualisez, qui est actuellement visible dans la fenêtre (ou à l'écran, si le document est en cours d'affichage en mode plein écran). Le contenu en dehors de la fenêtre d'affichage n'est pas visible à l'écran jusqu'à ce qu'il défile dans la vue.

diff --git a/files/fr/glossary/voip/index.html b/files/fr/glossary/voip/index.html index 1c4ac9572b..4aad03b7e3 100644 --- a/files/fr/glossary/voip/index.html +++ b/files/fr/glossary/voip/index.html @@ -1,11 +1,12 @@ --- title: VoIP -slug: Glossaire/VoIP +slug: Glossary/VoIP tags: - Glossaire - Infrastructure - VoIP translation_of: Glossary/VoIP +original_slug: Glossaire/VoIP ---

La VoIP (Voice over Internet Protocol) est une technologie utilisée pour transmettre des messages vocaux via des réseaux IP (Internet Protocol). Parmi les logiciels de VoIP courants, on trouve Skype, Msn Messenger, Yahoo et beaucoup d'autres. Tout ce qui est transféré en VoIP est numérique. Cette technologie est aussi connue sous les noms de téléphonie IP ou téléphonie haut débit. La principale raison de l'utiliser est son coût.

diff --git a/files/fr/glossary/w3c/index.html b/files/fr/glossary/w3c/index.html index 9c32c8aeeb..7ed2f60815 100644 --- a/files/fr/glossary/w3c/index.html +++ b/files/fr/glossary/w3c/index.html @@ -1,7 +1,8 @@ --- title: W3C -slug: Glossaire/W3C +slug: Glossary/W3C translation_of: Glossary/W3C +original_slug: Glossaire/W3C ---

Le World Wide Web Consortium (W3C) est un organisme international qui maintient les règles en {{Glossary("World Wide Web", "relation avec le Web")}} et les frameworks.

diff --git a/files/fr/glossary/wai/index.html b/files/fr/glossary/wai/index.html index cf7270bdb6..1db0261217 100644 --- a/files/fr/glossary/wai/index.html +++ b/files/fr/glossary/wai/index.html @@ -1,10 +1,11 @@ --- title: WAI -slug: Glossaire/WAI +slug: Glossary/WAI tags: - Accessibilité - Glossaire translation_of: Glossary/WAI +original_slug: Glossaire/WAI ---

La WAI ou Web Accessibility Initiative a été lancée par le World Wide Web Consortium (W3C) pour rendre le web plus accessibie aux personnes handicapées, celles-ci pouvant avoir besoin d'un {{Glossary("navigateur")}} ou d'appareils non standards.

diff --git a/files/fr/glossary/wcag/index.html b/files/fr/glossary/wcag/index.html index b3dc97c01c..f19c08f2dd 100644 --- a/files/fr/glossary/wcag/index.html +++ b/files/fr/glossary/wcag/index.html @@ -1,12 +1,13 @@ --- title: WCAG -slug: Glossaire/WCAG +slug: Glossary/WCAG tags: - Accessibilité - Directives web - Glossaire - WCAG translation_of: Glossary/WCAG +original_slug: Glossaire/WCAG ---

Les Web Content Accessibility Guidelines (WCAG) sont une recommandation publiée par le groupe {{Glossary("WAI","Web Accessibility Initiative")}} du {{Glossary("W3C")}}. Ils définissent un ensemble de lignes de conduite à suivre pour rendre le contenu accessible principalement aux personnes avec des handicaps, mais aussi aux appareils aux ressources limitées comme les téléphones portables.

diff --git a/files/fr/glossary/web_server/index.html b/files/fr/glossary/web_server/index.html index af1540e5de..7befc0cad9 100644 --- a/files/fr/glossary/web_server/index.html +++ b/files/fr/glossary/web_server/index.html @@ -1,10 +1,11 @@ --- title: Serveur Web -slug: Glossaire/Serveur_Web +slug: Glossary/Web_server tags: - serveur web - serveur-web translation_of: Glossary/Web_server +original_slug: Glossaire/Serveur_Web ---

Un serveur Web est un logiciel qui s'exécute souvent sur un serveur matériel offrant un service à un utilisateur, généralement appelé client. Un serveur, par contre, est un matériel qui vit dans une pièce remplie d'ordinateurs, communément appelée centre de données.

diff --git a/files/fr/glossary/web_standards/index.html b/files/fr/glossary/web_standards/index.html index ddc17ca445..6d3a7fd4f5 100644 --- a/files/fr/glossary/web_standards/index.html +++ b/files/fr/glossary/web_standards/index.html @@ -1,6 +1,6 @@ --- title: Standards du Web -slug: Glossaire/Web_standards +slug: Glossary/Web_standards tags: - Glossaire - Infrastructure @@ -8,6 +8,7 @@ tags: - spécifications web - standards translation_of: Glossary/Web_standards +original_slug: Glossaire/Web_standards ---

Les standards du Web sont des règles établies par des organismes de standardisation internationaux qui définissent la manière dont fonctionne le {{Glossary("World Wide Web", "Web")}} (et parfois qui contrôlent l'{{Glossary("Internet")}} également).

diff --git a/files/fr/glossary/webdav/index.html b/files/fr/glossary/webdav/index.html index b492ec37f6..f3c27e91a0 100644 --- a/files/fr/glossary/webdav/index.html +++ b/files/fr/glossary/webdav/index.html @@ -1,10 +1,11 @@ --- title: WebDAV -slug: Glossaire/WebDAV +slug: Glossary/WebDAV tags: - Glossaire - Infrastructure translation_of: Glossary/WebDAV +original_slug: Glossaire/WebDAV ---

WebDAV (Web Distributed Authoring and Versioning) est une extension {{Glossary("HTTP")}} qui permet aux développeurs web de faire des mises à jour de contenu à distance depuis un client.

diff --git a/files/fr/glossary/webextensions/index.html b/files/fr/glossary/webextensions/index.html index a9f2bb1afd..fc3c410785 100644 --- a/files/fr/glossary/webextensions/index.html +++ b/files/fr/glossary/webextensions/index.html @@ -1,10 +1,11 @@ --- title: WebExtensions -slug: Glossaire/WebExtensions +slug: Glossary/WebExtensions tags: - Glossaire - WebExtensions translation_of: Glossary/WebExtensions +original_slug: Glossaire/WebExtensions ---

Les WebExtensions constituent un système multinavigateur pour développer des extensions de navigateur dans Firefox. Ce système fournit des API qui sont dans une large mesure prises en charge dans différents navigateurs tels que Mozilla Firefox, Google Chrome, Opera et Microsoft Edge.

diff --git a/files/fr/glossary/webgl/index.html b/files/fr/glossary/webgl/index.html index f761f71a71..1316be03c6 100644 --- a/files/fr/glossary/webgl/index.html +++ b/files/fr/glossary/webgl/index.html @@ -1,6 +1,6 @@ --- title: WebGL -slug: Glossaire/WebGL +slug: Glossary/WebGL tags: - Avancé - CodingScripting @@ -8,6 +8,7 @@ tags: - Graphismes Web - WebGL translation_of: Glossary/WebGL +original_slug: Glossaire/WebGL ---

WebGL (Web Graphics Library) est une {{Glossary("API")}} {{Glossary("JavaScript")}} pour produire des graphismes 2D et 3D interactifs.

diff --git a/files/fr/glossary/webidl/index.html b/files/fr/glossary/webidl/index.html index f3e85f3078..814f208864 100644 --- a/files/fr/glossary/webidl/index.html +++ b/files/fr/glossary/webidl/index.html @@ -1,11 +1,12 @@ --- title: WebIDL -slug: Glossaire/WebIDL +slug: Glossary/WebIDL tags: - Encodage - Glossaire - WebIDL translation_of: Glossary/WebIDL +original_slug: Glossaire/WebIDL ---

WebIDL est le langage de description d'interface utilisé pour décrire les {{Glossary("Type","types de données")}}, {{Glossary("interface","interfaces")}}, {{Glossary("Method","méthodes")}}, {{Glossary("Property","propriétés")}} et d'autres éléments qui composent une interface de programmation d'application Web ({{Glossary("API")}}). Il utilise une syntaxe quelque peu stylisée qui est indépendante de tout langage de programmation spécifique, de sorte que le code sous-jacent utilisé pour construire chaque API puisse être écrit dans le langage le plus approprié, tout en permettant de faire le plan des composants de l'API pour une construction compatible JavaScript

diff --git a/files/fr/glossary/webkit/index.html b/files/fr/glossary/webkit/index.html index 70806fd463..d53a5ecd8b 100644 --- a/files/fr/glossary/webkit/index.html +++ b/files/fr/glossary/webkit/index.html @@ -1,6 +1,6 @@ --- title: WebKit -slug: Glossaire/WebKit +slug: Glossary/WebKit tags: - Glossaire - Intro @@ -9,6 +9,7 @@ tags: - WebKit - WebMechanics translation_of: Glossary/WebKit +original_slug: Glossaire/WebKit ---

WebKit est un framework destiné à afficher des pages web correctement formatées en se basant sur leur balisage. {{Glossary("Apple Safari")}} dépend de WebKit tout comme de nombreux navigateurs pour mobiles (car WebKit est hautement portable et personnalisable).

diff --git a/files/fr/glossary/webm/index.html b/files/fr/glossary/webm/index.html index dc829be881..d61eeebe1d 100644 --- a/files/fr/glossary/webm/index.html +++ b/files/fr/glossary/webm/index.html @@ -1,12 +1,13 @@ --- title: WebM -slug: Glossaire/webm +slug: Glossary/webm tags: - Composition - Glossaire - Infrastructure - WebM translation_of: Glossary/webm +original_slug: Glossaire/webm ---

WebM est un format vidéo ouvert, destiné au web et libre de redevance. Il est supporté de manière native par Mozilla Firefox.

diff --git a/files/fr/glossary/webp/index.html b/files/fr/glossary/webp/index.html index 66b9255e24..35a9d0d248 100644 --- a/files/fr/glossary/webp/index.html +++ b/files/fr/glossary/webp/index.html @@ -1,6 +1,6 @@ --- title: WebP -slug: Glossaire/webp +slug: Glossary/webp tags: - Composing - Débutant @@ -8,6 +8,7 @@ tags: - Infrastructure - WebP translation_of: Glossary/webp +original_slug: Glossaire/webp ---

WebP est un format d'image avec compression, avec ou sans perte, développé par Google.

diff --git a/files/fr/glossary/webrtc/index.html b/files/fr/glossary/webrtc/index.html index f796f8b47a..7b59380e01 100644 --- a/files/fr/glossary/webrtc/index.html +++ b/files/fr/glossary/webrtc/index.html @@ -1,6 +1,6 @@ --- title: WebRTC -slug: Glossaire/WebRTC +slug: Glossary/WebRTC tags: - Encodage - Glossaire @@ -10,6 +10,7 @@ tags: - Web - WebRTC translation_of: Glossary/WebRTC +original_slug: Glossaire/WebRTC ---

WebRTC (Web Real-Time Communication) (communication en temps réel web) est une {{Glossary("API")}} appelée par les applications web de tchat vidéo, d'appels vocaux et de partage de fichiers P2P.

diff --git a/files/fr/glossary/websockets/index.html b/files/fr/glossary/websockets/index.html index 4187a6db73..ee30de429b 100644 --- a/files/fr/glossary/websockets/index.html +++ b/files/fr/glossary/websockets/index.html @@ -1,6 +1,6 @@ --- title: WebSockets -slug: Glossaire/WebSockets +slug: Glossary/WebSockets tags: - Connexion - Glossaire @@ -10,6 +10,7 @@ tags: - Web - WebSocket translation_of: Glossary/WebSockets +original_slug: Glossaire/WebSockets ---

WebSocket est un {{Glossary("Protocol","protocole")}} servant à établir des connexions {{Glossary("TCP")}} persistantes entre des {{Glossary("Server", "serveurs")}} et des clients afin qu'ils puissent échanger des données à tout moment.

diff --git a/files/fr/glossary/webvtt/index.html b/files/fr/glossary/webvtt/index.html index 66969fa327..014a10cb9f 100644 --- a/files/fr/glossary/webvtt/index.html +++ b/files/fr/glossary/webvtt/index.html @@ -1,9 +1,10 @@ --- title: WebVTT -slug: Glossaire/WebVTT +slug: Glossary/WebVTT tags: - Glossaire translation_of: Glossary/WebVTT +original_slug: Glossaire/WebVTT ---

WebVTT (Web Video Text Tracks) est une spécification {{Glossary("W3C")}} pour un format de fichier marquant des ressources de suivi de texte combinées avec l'élément HTML {{HTMLElement("track")}}.

diff --git a/files/fr/glossary/whatwg/index.html b/files/fr/glossary/whatwg/index.html index 24d608902d..824b32b274 100644 --- a/files/fr/glossary/whatwg/index.html +++ b/files/fr/glossary/whatwg/index.html @@ -1,6 +1,6 @@ --- title: WHATWG -slug: Glossaire/WHATWG +slug: Glossary/WHATWG tags: - Communauté - Glossaire @@ -9,6 +9,7 @@ tags: - WHATWG - Web translation_of: Glossary/WHATWG +original_slug: Glossaire/WHATWG ---

Le WHATWG (Web Hypertext Application Technology Working Group) est une organisation qui maintient et développe le {{Glossary("HTML")}} et les {{Glossary("API", "APIs")}} des applications Web. Le WHATWG a été mis en place en 2004 par d'anciens employés d'Apple, Mozilla et Opera.

diff --git a/files/fr/glossary/whitespace/index.html b/files/fr/glossary/whitespace/index.html index 92b062e11e..624d108ecb 100644 --- a/files/fr/glossary/whitespace/index.html +++ b/files/fr/glossary/whitespace/index.html @@ -1,12 +1,13 @@ --- title: Whitespace -slug: Glossaire/Whitespace +slug: Glossary/Whitespace tags: - Glossaire - Grammaire lexicale - espace blanc - whitespace translation_of: Glossary/Whitespace +original_slug: Glossaire/Whitespace ---

Whitespace sont un ensemble de {{Glossary("Character", "characters")}} qui est utilisé pour afficher des espaces horizontaux ou verticaux entre d'autres caractères. Ils sont souvent utilisés pour séparer les jetons dans {{Glossary("HTML")}}, {{Glossary("CSS")}}, {{Glossary("JavaScript")}}, et dans d'autres langages informatiques. Les caractères whitespace et leur utilisation varient selon les langages.

diff --git a/files/fr/glossary/world_wide_web/index.html b/files/fr/glossary/world_wide_web/index.html index f002576d00..5ae24ff1fc 100644 --- a/files/fr/glossary/world_wide_web/index.html +++ b/files/fr/glossary/world_wide_web/index.html @@ -1,12 +1,13 @@ --- title: World Wide Web -slug: Glossaire/World_Wide_Web +slug: Glossary/World_Wide_Web tags: - Glossaire - Infrastructure - WWW - World Wide Web translation_of: Glossary/World_Wide_Web +original_slug: Glossaire/World_Wide_Web ---

Le World Wide Web — communément appelé WWW, W3, ou le web — est un système de pages web publiques interconnectées à travers l'{{Glossary("Internet")}}. Le web et l'internet ne sont pas la même chose : le web est l'une des nombreuses applications bâties au-dessus de l'internet.

diff --git a/files/fr/glossary/wrapper/index.html b/files/fr/glossary/wrapper/index.html index 16c0f4324d..0242c4dc9f 100644 --- a/files/fr/glossary/wrapper/index.html +++ b/files/fr/glossary/wrapper/index.html @@ -1,10 +1,11 @@ --- title: Wrapper -slug: Glossaire/Wrapper +slug: Glossary/Wrapper tags: - Encodage - Glossaire translation_of: Glossary/Wrapper +original_slug: Glossaire/Wrapper ---

Dans les langages de programmation tels que JavaScript, un wrapper est une fonction qui est destinée à appeler une ou plusieurs autres fonctions, parfois purement par commodité, et parfois en les adaptant pour faire une tâche légèrement différente dans le processus.

diff --git a/files/fr/glossary/xforms/index.html b/files/fr/glossary/xforms/index.html index 0cc2a295e7..0614482b50 100644 --- a/files/fr/glossary/xforms/index.html +++ b/files/fr/glossary/xforms/index.html @@ -1,12 +1,13 @@ --- title: XForm -slug: Glossaire/XForm +slug: Glossary/XForms tags: - CodingScripting - Glossaire - Obsolete - XForms translation_of: Glossary/XForms +original_slug: Glossaire/XForm ---

XForms est une convention pour la construction de formulaires Web et pour le traitement de leurs données dans un format {{glossary("XML")}}. Plus aucun navigateur majeur ne supporte XForms—nous suggérons d'utiliser les formulaires HTML5 à la place.

diff --git a/files/fr/glossary/xhr_(xmlhttprequest)/index.html b/files/fr/glossary/xhr_(xmlhttprequest)/index.html index 7bac907c15..b728572007 100644 --- a/files/fr/glossary/xhr_(xmlhttprequest)/index.html +++ b/files/fr/glossary/xhr_(xmlhttprequest)/index.html @@ -1,9 +1,10 @@ --- title: XHR (XMLHttpRequest) -slug: Glossaire/XHR_(XMLHttpRequest) +slug: Glossary/XHR_(XMLHttpRequest) tags: - Glossaire translation_of: Glossary/XHR_(XMLHttpRequest) +original_slug: Glossaire/XHR_(XMLHttpRequest) ---

{{domxref("XMLHttpRequest")}} (XHR) est une {{Glossary("API")}} {{Glossary("JavaScript")}} pour créer des requêtes {{Glossary("AJAX")}}. Ses méthodes permettent d'envoyer des requêtes réseau entre le {{Glossary("Browser","navigateur")}} et un {{Glossary("Server","serveur")}}.

diff --git a/files/fr/glossary/xhtml/index.html b/files/fr/glossary/xhtml/index.html index 777167cf9f..08fba95aca 100644 --- a/files/fr/glossary/xhtml/index.html +++ b/files/fr/glossary/xhtml/index.html @@ -1,11 +1,12 @@ --- title: XHTML -slug: XHTML +slug: Glossary/XHTML tags: - Encodage - Glossaire - XHTML translation_of: Glossary/XHTML +original_slug: XHTML ---

HTML peut voyager sur le réseau vers un navigateur soit en syntaxe HTML soit en syntaxe XML appelée XHTML.

diff --git a/files/fr/glossary/xinclude/index.html b/files/fr/glossary/xinclude/index.html index 0277aeb4fd..12dd08a9e7 100644 --- a/files/fr/glossary/xinclude/index.html +++ b/files/fr/glossary/xinclude/index.html @@ -1,10 +1,11 @@ --- title: XInclude -slug: Glossaire/XInclude +slug: Glossary/XInclude tags: - Encodage - Glossaire translation_of: Glossary/XInclude +original_slug: Glossaire/XInclude ---

XML Inclusions (XInclude) est une recommandation du W3C pour permettre l'inclusion de différentes sources XML d'une manière plus pratique que les entités externes XML. Lorsqu'il est utilisé conjointement avec XPointer (Firefox prend en charge un sous-ensemble et est utilisé dans l'exemple de code ci-dessous), XInclude peut également cibler uniquement des portions spécifiques d'un document à inclure. Firefox ne le supporte pas nativement, mais la fonction suivante a pour but de permettre son utilisation avec les documents qui y sont passés.

diff --git a/files/fr/glossary/xlink/index.html b/files/fr/glossary/xlink/index.html index 72e306840f..d7bf7ca8b8 100644 --- a/files/fr/glossary/xlink/index.html +++ b/files/fr/glossary/xlink/index.html @@ -1,10 +1,11 @@ --- title: XLink -slug: Glossaire/XLink +slug: Glossary/XLink tags: - Encodage - Glossaire translation_of: Glossary/XLink +original_slug: Glossaire/XLink ---

XLink est un standard du W3C qui sert à décrire des liens entre documents XML ou entre XML et d'autres documents. Un certain nombre de ses comportements est laissé à l'implémentation qui détermine comment ils doivent être gérés.

diff --git a/files/fr/glossary/xml/index.html b/files/fr/glossary/xml/index.html index 968f32d1da..9edd26c09c 100644 --- a/files/fr/glossary/xml/index.html +++ b/files/fr/glossary/xml/index.html @@ -1,11 +1,12 @@ --- title: XML -slug: Glossaire/XML +slug: Glossary/XML tags: - Encodage - Glossaire - XML translation_of: Glossary/XML +original_slug: Glossaire/XML ---

eXtensible Markup Language (XML) est un langage de balisage générique définit par le W3C. Le secteur IT utilise de nombreux langages basés sur XML comme langages de description de données.

diff --git a/files/fr/glossary/xpath/index.html b/files/fr/glossary/xpath/index.html index 139f84a6aa..fb37400adf 100644 --- a/files/fr/glossary/xpath/index.html +++ b/files/fr/glossary/xpath/index.html @@ -1,12 +1,13 @@ --- title: XPath -slug: Glossaire/XPath +slug: Glossary/XPath tags: - Encodage - Glossaire - XML - XPath translation_of: Glossary/XPath +original_slug: Glossaire/XPath ---

XPath est un langage de requêtes permettant d'accéder aux sections et contenus d'un document {{glossary("XML")}}.

diff --git a/files/fr/glossary/xquery/index.html b/files/fr/glossary/xquery/index.html index b1406fcacf..4b237d93cd 100644 --- a/files/fr/glossary/xquery/index.html +++ b/files/fr/glossary/xquery/index.html @@ -1,12 +1,13 @@ --- title: XQuery -slug: Glossaire/XQuery +slug: Glossary/XQuery tags: - Encodage - Glossaire - XML - XQuery translation_of: Glossary/XQuery +original_slug: Glossaire/XQuery ---

XQuery est un langage informatique pour mettre à jour, récupérer, et effectuer des calculs sur les données de bases de données {{glossary("XML")}}.

diff --git a/files/fr/glossary/xslt/index.html b/files/fr/glossary/xslt/index.html index 8ff8914bb5..f4d95da81f 100644 --- a/files/fr/glossary/xslt/index.html +++ b/files/fr/glossary/xslt/index.html @@ -1,12 +1,13 @@ --- title: XSLT -slug: Glossaire/XSLT +slug: Glossary/XSLT tags: - CodingScripting - Glossaire - XML - XSLT translation_of: Glossary/XSLT +original_slug: Glossaire/XSLT ---

eXtensible Stylesheet Language Transformations (XSLT) est un langage déclaratif utilisé pour convertir des documents {{Glossary("XML")}} en d'autres documents XML, {{Glossary("HTML")}}, {{Glossary("PDF")}}, text brut etc.

diff --git a/files/fr/learn/accessibility/accessibility_troubleshooting/index.html b/files/fr/learn/accessibility/accessibility_troubleshooting/index.html index 27f7489b2e..54a4415545 100644 --- a/files/fr/learn/accessibility/accessibility_troubleshooting/index.html +++ b/files/fr/learn/accessibility/accessibility_troubleshooting/index.html @@ -1,6 +1,6 @@ --- title: 'Évaluation: dépannage d''accessibilité' -slug: Apprendre/a11y/Accessibility_troubleshooting +slug: Learn/Accessibility/Accessibility_troubleshooting tags: - Accessibilité - Apprendre @@ -9,6 +9,7 @@ tags: - HTML - JavaScript translation_of: Learn/Accessibility/Accessibility_troubleshooting +original_slug: Apprendre/a11y/Accessibility_troubleshooting ---

{{LearnSidebar}}
{{PreviousMenu("Learn/Accessibility/Mobile", "Learn/Accessibility")}}

diff --git a/files/fr/learn/accessibility/css_and_javascript/index.html b/files/fr/learn/accessibility/css_and_javascript/index.html index 3f59d3a489..06b093fa74 100644 --- a/files/fr/learn/accessibility/css_and_javascript/index.html +++ b/files/fr/learn/accessibility/css_and_javascript/index.html @@ -1,6 +1,6 @@ --- title: Meilleures pratiques d'accessibilité CSS et JavaScript -slug: Apprendre/a11y/CSS_and_JavaScript +slug: Learn/Accessibility/CSS_and_JavaScript tags: - Accessibilité - Apprendre @@ -13,6 +13,7 @@ tags: - couleur - discret translation_of: Learn/Accessibility/CSS_and_JavaScript +original_slug: Apprendre/a11y/CSS_and_JavaScript ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/html/index.html b/files/fr/learn/accessibility/html/index.html index 03b80cbb80..70e128d05d 100644 --- a/files/fr/learn/accessibility/html/index.html +++ b/files/fr/learn/accessibility/html/index.html @@ -1,6 +1,6 @@ --- title: 'HTML : une bonne base pour l''accessibilité' -slug: Apprendre/a11y/HTML +slug: Learn/Accessibility/HTML tags: - Accessibilité - Article @@ -13,6 +13,7 @@ tags: - boutons - sémantique translation_of: Learn/Accessibility/HTML +original_slug: Apprendre/a11y/HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/index.html b/files/fr/learn/accessibility/index.html index 23ff90513d..3a3d54ee77 100644 --- a/files/fr/learn/accessibility/index.html +++ b/files/fr/learn/accessibility/index.html @@ -1,6 +1,6 @@ --- title: Accessibilité -slug: Apprendre/a11y +slug: Learn/Accessibility tags: - ARIA - Accessibilité @@ -10,6 +10,7 @@ tags: - HTML - JavaScript translation_of: Learn/Accessibility +original_slug: Apprendre/a11y ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/mobile/index.html b/files/fr/learn/accessibility/mobile/index.html index 6fd7b657d1..893693f212 100644 --- a/files/fr/learn/accessibility/mobile/index.html +++ b/files/fr/learn/accessibility/mobile/index.html @@ -1,6 +1,6 @@ --- title: Accessibilité mobile -slug: Apprendre/a11y/Mobile +slug: Learn/Accessibility/Mobile tags: - Accessibilité - Article @@ -9,6 +9,7 @@ tags: - responsive - toucher translation_of: Learn/Accessibility/Mobile +original_slug: Apprendre/a11y/Mobile ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/multimedia/index.html b/files/fr/learn/accessibility/multimedia/index.html index e8b03c52b0..d16e2a3bc0 100644 --- a/files/fr/learn/accessibility/multimedia/index.html +++ b/files/fr/learn/accessibility/multimedia/index.html @@ -1,6 +1,6 @@ --- title: Accessible multimedia -slug: Apprendre/a11y/Multimedia +slug: Learn/Accessibility/Multimedia tags: - Accessibilité - Apprendre @@ -12,6 +12,7 @@ tags: - Multimedia - Video translation_of: Learn/Accessibility/Multimedia +original_slug: Apprendre/a11y/Multimedia ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/wai-aria_basics/index.html b/files/fr/learn/accessibility/wai-aria_basics/index.html index 6a55cde5cb..a9990d7f55 100644 --- a/files/fr/learn/accessibility/wai-aria_basics/index.html +++ b/files/fr/learn/accessibility/wai-aria_basics/index.html @@ -1,6 +1,6 @@ --- title: Les bases de WAI-ARIA -slug: Apprendre/a11y/WAI-ARIA_basics +slug: Learn/Accessibility/WAI-ARIA_basics tags: - ARIA - Accessibilité @@ -13,6 +13,7 @@ tags: - WAI-ARIA - sémantique translation_of: Learn/Accessibility/WAI-ARIA_basics +original_slug: Apprendre/a11y/WAI-ARIA_basics ---
{{LearnSidebar}}
diff --git a/files/fr/learn/accessibility/what_is_accessibility/index.html b/files/fr/learn/accessibility/what_is_accessibility/index.html index 047e2763a1..a101c80ccb 100644 --- a/files/fr/learn/accessibility/what_is_accessibility/index.html +++ b/files/fr/learn/accessibility/what_is_accessibility/index.html @@ -1,6 +1,6 @@ --- title: Qu'est ce que l'accessibilité? -slug: Apprendre/a11y/What_is_accessibility +slug: Learn/Accessibility/What_is_accessibility tags: - Accessibilité - Aide technique @@ -15,6 +15,7 @@ tags: - Outils - Utilisateurs translation_of: Learn/Accessibility/What_is_accessibility +original_slug: Apprendre/a11y/What_is_accessibility ---
{{LearnSidebar}}
diff --git a/files/fr/learn/common_questions/available_text_editors/index.html b/files/fr/learn/common_questions/available_text_editors/index.html index d2dd87360c..156fde4e17 100644 --- a/files/fr/learn/common_questions/available_text_editors/index.html +++ b/files/fr/learn/common_questions/available_text_editors/index.html @@ -1,6 +1,6 @@ --- -title: 'Choisir, installer et paramétrer un éditeur de texte' -slug: Apprendre/Choisir_installer_paramétrer_un_éditeur_de_texte +title: Choisir, installer et paramétrer un éditeur de texte +slug: Learn/Common_questions/Available_text_editors tags: - Beginner - Composing @@ -8,6 +8,7 @@ tags: - NeedsActiveLearning - Tools translation_of: Learn/Common_questions/Available_text_editors +original_slug: Apprendre/Choisir_installer_paramétrer_un_éditeur_de_texte ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/learn/common_questions/checking_that_your_web_site_is_working_properly/index.html b/files/fr/learn/common_questions/checking_that_your_web_site_is_working_properly/index.html index 317135bcf5..d8fd3424a7 100644 --- a/files/fr/learn/common_questions/checking_that_your_web_site_is_working_properly/index.html +++ b/files/fr/learn/common_questions/checking_that_your_web_site_is_working_properly/index.html @@ -1,6 +1,6 @@ --- title: Tester le bon fonctionnement de votre site web -slug: Apprendre/Tester_le_bon_fonctionnement_de_votre_site_web +slug: Learn/Common_questions/Checking_that_your_web_site_is_working_properly tags: - Beginner - Document @@ -10,6 +10,7 @@ tags: - Web Development - WebMechanics translation_of: Learn/Common_questions/Checking_that_your_web_site_is_working_properly +original_slug: Apprendre/Tester_le_bon_fonctionnement_de_votre_site_web ---

Dans cet article, nous présenterons les différentes étapes permettant de diagnostiquer les problèmes d'un site web ainsi que les mesures à prendre pour corriger certains de ces problèmes.

diff --git a/files/fr/learn/common_questions/common_web_layouts/index.html b/files/fr/learn/common_questions/common_web_layouts/index.html index 0c50cec44c..2b54571c67 100644 --- a/files/fr/learn/common_questions/common_web_layouts/index.html +++ b/files/fr/learn/common_questions/common_web_layouts/index.html @@ -1,6 +1,6 @@ --- title: Conception d'une page web -slug: Apprendre/Concevoir_page_web +slug: Learn/Common_questions/Common_web_layouts tags: - Beginner - CSS @@ -8,6 +8,7 @@ tags: - HTML - NeedsActiveLearning translation_of: Learn/Common_questions/Common_web_layouts +original_slug: Apprendre/Concevoir_page_web ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/learn/common_questions/design_for_all_types_of_users/index.html b/files/fr/learn/common_questions/design_for_all_types_of_users/index.html index 8d6ae0ad6a..47881342ef 100644 --- a/files/fr/learn/common_questions/design_for_all_types_of_users/index.html +++ b/files/fr/learn/common_questions/design_for_all_types_of_users/index.html @@ -1,6 +1,6 @@ --- title: Concevoir un site pour tous les types d'utilisateurs -slug: Apprendre/Concevoir_site_tous_types_utilisateurs +slug: Learn/Common_questions/Design_for_all_types_of_users tags: - Accessibility - Beginner @@ -8,6 +8,7 @@ tags: - Mobile - NeedsActiveLearning translation_of: Learn/Common_questions/Design_for_all_types_of_users +original_slug: Apprendre/Concevoir_site_tous_types_utilisateurs ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/learn/common_questions/how_does_the_internet_work/index.html b/files/fr/learn/common_questions/how_does_the_internet_work/index.html index b4f81c9acf..d7d0d6ea27 100644 --- a/files/fr/learn/common_questions/how_does_the_internet_work/index.html +++ b/files/fr/learn/common_questions/how_does_the_internet_work/index.html @@ -1,11 +1,12 @@ --- title: Le fonctionnement de l'Internet -slug: Apprendre/Fonctionnement_Internet +slug: Learn/Common_questions/How_does_the_Internet_work tags: - Beginner - Internet - WebMechanics translation_of: Learn/Common_questions/How_does_the_Internet_work +original_slug: Apprendre/Fonctionnement_Internet ---

Dans cet article, nous expliquons ce qu'est l'Internet et comment il fonctionne.

diff --git a/files/fr/learn/common_questions/how_much_does_it_cost/index.html b/files/fr/learn/common_questions/how_much_does_it_cost/index.html index e9ef0e5b3e..713508e03a 100644 --- a/files/fr/learn/common_questions/how_much_does_it_cost/index.html +++ b/files/fr/learn/common_questions/how_much_does_it_cost/index.html @@ -1,11 +1,12 @@ --- title: 'Publier sur le Web : combien ça coûte ?' -slug: Apprendre/Publier_sur_le_Web_combien_ça_coûte +slug: Learn/Common_questions/How_much_does_it_cost tags: - Beginner - Learn - WebMechanics translation_of: Learn/Common_questions/How_much_does_it_cost +original_slug: Apprendre/Publier_sur_le_Web_combien_ça_coûte ---

Se lancer sur le Web n'est pas aussi bon marché qu'il y paraît à première vue. Dans cet article, nous verrons les différentes dépenses et leur raison d'être.

diff --git a/files/fr/learn/common_questions/index.html b/files/fr/learn/common_questions/index.html index 3dc2df9fca..f51f3427f8 100644 --- a/files/fr/learn/common_questions/index.html +++ b/files/fr/learn/common_questions/index.html @@ -1,11 +1,12 @@ --- title: Questions fréquentes -slug: Apprendre/Common_questions +slug: Learn/Common_questions tags: - Learn - Web - WebMechanics translation_of: Learn/Common_questions +original_slug: Apprendre/Common_questions ---
{{LearnSidebar}}
diff --git a/files/fr/learn/common_questions/pages_sites_servers_and_search_engines/index.html b/files/fr/learn/common_questions/pages_sites_servers_and_search_engines/index.html index f5ff96a440..543103e01b 100644 --- a/files/fr/learn/common_questions/pages_sites_servers_and_search_engines/index.html +++ b/files/fr/learn/common_questions/pages_sites_servers_and_search_engines/index.html @@ -2,11 +2,12 @@ title: >- Comprendre les différences entre une page web, un site web, un serveur web et un moteur de recherche -slug: Apprendre/page_vs_site_vs_serveur_vs_moteur_recherche +slug: Learn/Common_questions/Pages_sites_servers_and_search_engines tags: - Beginner - Web translation_of: Learn/Common_questions/Pages_sites_servers_and_search_engines +original_slug: Apprendre/page_vs_site_vs_serveur_vs_moteur_recherche ---

Dans cet article, nous démystifions plusieurs notions liées au Web : page web, site web, serveur web et moteur de recherche.

diff --git a/files/fr/learn/common_questions/set_up_a_local_testing_server/index.html b/files/fr/learn/common_questions/set_up_a_local_testing_server/index.html index c9deed5e9b..ef5a5b62fd 100644 --- a/files/fr/learn/common_questions/set_up_a_local_testing_server/index.html +++ b/files/fr/learn/common_questions/set_up_a_local_testing_server/index.html @@ -1,6 +1,6 @@ --- title: Comment configurer un serveur de test local ? -slug: Apprendre/Common_questions/configurer_un_serveur_de_test_local +slug: Learn/Common_questions/set_up_a_local_testing_server tags: - Apprendre - Débutant @@ -14,6 +14,7 @@ tags: - lamp - localhost translation_of: Learn/Common_questions/set_up_a_local_testing_server +original_slug: Apprendre/Common_questions/configurer_un_serveur_de_test_local ---

Cet article explique comment configurer un serveur de test local simple sur votre machine, et les bases pour l'utiliser.

diff --git a/files/fr/learn/common_questions/thinking_before_coding/index.html b/files/fr/learn/common_questions/thinking_before_coding/index.html index f5e17cdff0..7ebcaffe6d 100644 --- a/files/fr/learn/common_questions/thinking_before_coding/index.html +++ b/files/fr/learn/common_questions/thinking_before_coding/index.html @@ -1,11 +1,12 @@ --- title: Commencez votre projet Web -slug: Apprendre/Commencez_votre_projet_web +slug: Learn/Common_questions/Thinking_before_coding tags: - Beginner - Composing - Web translation_of: Learn/Common_questions/Thinking_before_coding +original_slug: Apprendre/Commencez_votre_projet_web ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/learn/common_questions/upload_files_to_a_web_server/index.html b/files/fr/learn/common_questions/upload_files_to_a_web_server/index.html index 4d8d8330fa..a385e6afb0 100644 --- a/files/fr/learn/common_questions/upload_files_to_a_web_server/index.html +++ b/files/fr/learn/common_questions/upload_files_to_a_web_server/index.html @@ -1,11 +1,12 @@ --- title: Transférer des fichiers vers un serveur web -slug: Apprendre/Transférer_des_fichiers_vers_un_serveur_web +slug: Learn/Common_questions/Upload_files_to_a_web_server tags: - Beginner - NeedsActiveLearning - WebMechanics translation_of: Learn/Common_questions/Upload_files_to_a_web_server +original_slug: Apprendre/Transférer_des_fichiers_vers_un_serveur_web ---

Cet article illustre comment publier votre site en ligne grâce à des outils {{Glossary("FTP")}}. 

diff --git a/files/fr/learn/common_questions/using_github_pages/index.html b/files/fr/learn/common_questions/using_github_pages/index.html index 4537201647..a20bed20d4 100644 --- a/files/fr/learn/common_questions/using_github_pages/index.html +++ b/files/fr/learn/common_questions/using_github_pages/index.html @@ -1,6 +1,6 @@ --- title: Utiliser les pages GitHub -slug: Apprendre/Utiliser_les_pages_GitHub +slug: Learn/Common_questions/Using_Github_pages tags: - Débutant - GitHub @@ -8,6 +8,7 @@ tags: - Web - git translation_of: Learn/Common_questions/Using_Github_pages +original_slug: Apprendre/Utiliser_les_pages_GitHub ---

GitHub est un site de partage de code, sur lequel on peut publier des projets dont le code est géré avec le système de gestion de version Git. Par défaut, le système est open source, ce qui signifie que tout le monde peut consulter le code, l'utiliser pour apprendre ou l'améliorer et collaborer aux projets. Vous pouvez donc participer à d'autres projets ou, à l'inverse, des personnes peuvent collaborer à vos projets ! Dans cet article, nous verrons comment publier du contenu sur le web en utilisant les « pages GitHub » (aussi appelées gh-pages) qui sont une des fonctionnalités de GitHub.

diff --git a/files/fr/learn/common_questions/what_are_browser_developer_tools/index.html b/files/fr/learn/common_questions/what_are_browser_developer_tools/index.html index 71d3585366..5105d8fb6d 100644 --- a/files/fr/learn/common_questions/what_are_browser_developer_tools/index.html +++ b/files/fr/learn/common_questions/what_are_browser_developer_tools/index.html @@ -1,6 +1,6 @@ --- title: Découvrir les outils de développement des navigateurs -slug: Apprendre/Découvrir_outils_développement_navigateurs +slug: Learn/Common_questions/What_are_browser_developer_tools tags: - Beginner - Browser @@ -11,6 +11,7 @@ tags: - JavaScript - Learn translation_of: Learn/Common_questions/What_are_browser_developer_tools +original_slug: Apprendre/Découvrir_outils_développement_navigateurs ---
{{IncludeSubnav("/fr/Apprendre")}}
diff --git a/files/fr/learn/common_questions/what_are_hyperlinks/index.html b/files/fr/learn/common_questions/what_are_hyperlinks/index.html index 35ac0d8bb4..4c4c1b1658 100644 --- a/files/fr/learn/common_questions/what_are_hyperlinks/index.html +++ b/files/fr/learn/common_questions/what_are_hyperlinks/index.html @@ -1,12 +1,13 @@ --- title: Le fonctionnement des liens sur le Web -slug: Apprendre/Le_fonctionnement_des_liens_sur_le_Web +slug: Learn/Common_questions/What_are_hyperlinks tags: - Beginner - Infrastructure - Navigation - NeedsActiveLearning translation_of: Learn/Common_questions/What_are_hyperlinks +original_slug: Apprendre/Le_fonctionnement_des_liens_sur_le_Web ---

Dans cet article, nous verrons ce que sont les liens et en quoi ils sont importants pour la structure du Web.

diff --git a/files/fr/learn/common_questions/what_is_a_domain_name/index.html b/files/fr/learn/common_questions/what_is_a_domain_name/index.html index bc8bc301ef..76b39a4631 100644 --- a/files/fr/learn/common_questions/what_is_a_domain_name/index.html +++ b/files/fr/learn/common_questions/what_is_a_domain_name/index.html @@ -1,6 +1,6 @@ --- title: Comprendre les noms de domaine -slug: Apprendre/Comprendre_noms_de_domaine +slug: Learn/Common_questions/What_is_a_domain_name tags: - Beginner - Domain names @@ -8,6 +8,7 @@ tags: - Learn - Web translation_of: Learn/Common_questions/What_is_a_domain_name +original_slug: Apprendre/Comprendre_noms_de_domaine ---

Dans cet article, nous discutons des noms de domaine : ce qu'ils sont, comment ils sont organisés et comment en avoir un.

diff --git a/files/fr/learn/common_questions/what_is_a_url/index.html b/files/fr/learn/common_questions/what_is_a_url/index.html index 85448c44bb..e3743de8e5 100644 --- a/files/fr/learn/common_questions/what_is_a_url/index.html +++ b/files/fr/learn/common_questions/what_is_a_url/index.html @@ -1,6 +1,6 @@ --- title: Comprendre les URL et leur structure -slug: Apprendre/Comprendre_les_URL +slug: Learn/Common_questions/What_is_a_URL tags: - Beginner - Infrastructure @@ -8,6 +8,7 @@ tags: - NeedsActiveLearning - URL translation_of: Learn/Common_questions/What_is_a_URL +original_slug: Apprendre/Comprendre_les_URL ---

Cet article aborde les Uniform Resource Locators (URL) en expliquant leur rôle et leur structure.

diff --git a/files/fr/learn/common_questions/what_is_a_web_server/index.html b/files/fr/learn/common_questions/what_is_a_web_server/index.html index f035f561ac..88607e0753 100644 --- a/files/fr/learn/common_questions/what_is_a_web_server/index.html +++ b/files/fr/learn/common_questions/what_is_a_web_server/index.html @@ -1,11 +1,12 @@ --- title: Qu'est-ce qu'un serveur web ? -slug: Apprendre/Qu_est-ce_qu_un_serveur_web +slug: Learn/Common_questions/What_is_a_web_server tags: - Beginner - Infrastructure - Learn translation_of: Learn/Common_questions/What_is_a_web_server +original_slug: Apprendre/Qu_est-ce_qu_un_serveur_web ---

Dans cet article, nous verrons ce que sont les serveurs web, comment ils fonctionnent et pourquoi ils sont importants.

diff --git a/files/fr/learn/common_questions/what_is_accessibility/index.html b/files/fr/learn/common_questions/what_is_accessibility/index.html index 403b3ff2fe..a8b667f8eb 100644 --- a/files/fr/learn/common_questions/what_is_accessibility/index.html +++ b/files/fr/learn/common_questions/what_is_accessibility/index.html @@ -1,6 +1,6 @@ --- title: Qu'est-ce que l'accessibilité ? -slug: Apprendre/Accessibilité +slug: Learn/Common_questions/What_is_accessibility tags: - Accessibility - Beginner @@ -8,6 +8,7 @@ tags: - NeedsActiveLearning - Web translation_of: Learn/Common_questions/What_is_accessibility +original_slug: Apprendre/Accessibilité ---

Cet article aborde les concepts de base qui forment l'accessibilité pour le Web.

diff --git a/files/fr/learn/common_questions/what_software_do_i_need/index.html b/files/fr/learn/common_questions/what_software_do_i_need/index.html index fc0e1bcfc8..8a1a9271f1 100644 --- a/files/fr/learn/common_questions/what_software_do_i_need/index.html +++ b/files/fr/learn/common_questions/what_software_do_i_need/index.html @@ -1,12 +1,13 @@ --- title: De quels logiciels ai-je besoin pour construire un site web ? -slug: Apprendre/Quels_logiciels_sont_nécessaires_pour_construire_un_site_web +slug: Learn/Common_questions/What_software_do_I_need tags: - Beginner - Learn - NeedsActiveLearning - WebMechanics translation_of: Learn/Common_questions/What_software_do_I_need +original_slug: Apprendre/Quels_logiciels_sont_nécessaires_pour_construire_un_site_web ---

Dans cet article, nous listons les logiciels nécessaires pour éditer, mettre en ligne ou consulter un site web.

diff --git a/files/fr/learn/css/building_blocks/a_cool_looking_box/index.html b/files/fr/learn/css/building_blocks/a_cool_looking_box/index.html index 05b812da1d..b9aaa7b5ce 100644 --- a/files/fr/learn/css/building_blocks/a_cool_looking_box/index.html +++ b/files/fr/learn/css/building_blocks/a_cool_looking_box/index.html @@ -1,6 +1,6 @@ --- title: Une boîte d'aspect rafraîchissant -slug: Apprendre/CSS/styliser_boites/A_cool_looking_box +slug: Learn/CSS/Building_blocks/A_cool_looking_box tags: - Apprentissage - Arrière‑plans @@ -12,6 +12,7 @@ tags: - encadrement - modèle de boîte translation_of: Learn/CSS/Building_blocks/A_cool_looking_box +original_slug: Apprendre/CSS/styliser_boites/A_cool_looking_box ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/advanced_styling_effects/index.html b/files/fr/learn/css/building_blocks/advanced_styling_effects/index.html index d33fa050a1..8091fe664e 100644 --- a/files/fr/learn/css/building_blocks/advanced_styling_effects/index.html +++ b/files/fr/learn/css/building_blocks/advanced_styling_effects/index.html @@ -1,6 +1,6 @@ --- title: Effets de boîte avancés -slug: Apprendre/CSS/Building_blocks/Advanced_styling_effects +slug: Learn/CSS/Building_blocks/Advanced_styling_effects tags: - Article - Boîtes @@ -13,6 +13,7 @@ tags: - effets - ombres de boîtes translation_of: Learn/CSS/Building_blocks/Advanced_styling_effects +original_slug: Apprendre/CSS/Building_blocks/Advanced_styling_effects ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/backgrounds_and_borders/index.html b/files/fr/learn/css/building_blocks/backgrounds_and_borders/index.html index 53299b96fe..2fedb26439 100644 --- a/files/fr/learn/css/building_blocks/backgrounds_and_borders/index.html +++ b/files/fr/learn/css/building_blocks/backgrounds_and_borders/index.html @@ -1,7 +1,8 @@ --- title: Arrière-plans et bordures -slug: Apprendre/CSS/Building_blocks/Backgrounds_and_borders +slug: Learn/CSS/Building_blocks/Backgrounds_and_borders translation_of: Learn/CSS/Building_blocks/Backgrounds_and_borders +original_slug: Apprendre/CSS/Building_blocks/Backgrounds_and_borders ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/cascade_and_inheritance/index.html b/files/fr/learn/css/building_blocks/cascade_and_inheritance/index.html index 4f394ae7f2..c7dd0051f5 100644 --- a/files/fr/learn/css/building_blocks/cascade_and_inheritance/index.html +++ b/files/fr/learn/css/building_blocks/cascade_and_inheritance/index.html @@ -1,6 +1,6 @@ --- title: Cascade et héritage -slug: Apprendre/CSS/Building_blocks/Cascade_et_heritage +slug: Learn/CSS/Building_blocks/Cascade_and_inheritance tags: - Apprendre - CSS @@ -11,6 +11,7 @@ tags: - ordre dans le source - spécificité translation_of: Learn/CSS/Building_blocks/Cascade_and_inheritance +original_slug: Apprendre/CSS/Building_blocks/Cascade_et_heritage ---
{{LearnSidebar}}{{NextMenu("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/creating_fancy_letterheaded_paper/index.html b/files/fr/learn/css/building_blocks/creating_fancy_letterheaded_paper/index.html index 8e61584e9d..b5e9d31c2e 100644 --- a/files/fr/learn/css/building_blocks/creating_fancy_letterheaded_paper/index.html +++ b/files/fr/learn/css/building_blocks/creating_fancy_letterheaded_paper/index.html @@ -1,6 +1,6 @@ --- title: Création d'un en-tête de papier à lettre élégant -slug: Apprendre/CSS/styliser_boites/Creating_fancy_letterheaded_paper +slug: Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper tags: - Arrière‑plan - Boîte @@ -15,6 +15,7 @@ tags: - lettre avec en‑tête - papier translation_of: Learn/CSS/Building_blocks/Creating_fancy_letterheaded_paper +original_slug: Apprendre/CSS/styliser_boites/Creating_fancy_letterheaded_paper ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/debugging_css/index.html b/files/fr/learn/css/building_blocks/debugging_css/index.html index 01f17c25a5..d3d8121acb 100644 --- a/files/fr/learn/css/building_blocks/debugging_css/index.html +++ b/files/fr/learn/css/building_blocks/debugging_css/index.html @@ -1,7 +1,8 @@ --- title: Debugging CSS -slug: Apprendre/CSS/Building_blocks/Debugging_CSS +slug: Learn/CSS/Building_blocks/Debugging_CSS translation_of: Learn/CSS/Building_blocks/Debugging_CSS +original_slug: Apprendre/CSS/Building_blocks/Debugging_CSS ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Styling_tables", "Learn/CSS/Building_blocks/Organizing", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/fundamental_css_comprehension/index.html b/files/fr/learn/css/building_blocks/fundamental_css_comprehension/index.html index 12a6be6d0c..8c6008bfa0 100644 --- a/files/fr/learn/css/building_blocks/fundamental_css_comprehension/index.html +++ b/files/fr/learn/css/building_blocks/fundamental_css_comprehension/index.html @@ -1,6 +1,6 @@ --- title: Compréhension des fondements des CSS -slug: Apprendre/CSS/Introduction_à_CSS/Fundamental_CSS_comprehension +slug: Learn/CSS/Building_blocks/Fundamental_CSS_comprehension tags: - CSS - Codage @@ -13,6 +13,7 @@ tags: - Sélecteurs - modèle de boîte translation_of: Learn/CSS/Building_blocks/Fundamental_CSS_comprehension +original_slug: Apprendre/CSS/Introduction_à_CSS/Fundamental_CSS_comprehension ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/handling_different_text_directions/index.html b/files/fr/learn/css/building_blocks/handling_different_text_directions/index.html index 7469a614ce..a7586c5ebf 100644 --- a/files/fr/learn/css/building_blocks/handling_different_text_directions/index.html +++ b/files/fr/learn/css/building_blocks/handling_different_text_directions/index.html @@ -1,7 +1,8 @@ --- title: Handling different text directions -slug: Apprendre/CSS/Building_blocks/Handling_different_text_directions +slug: Learn/CSS/Building_blocks/Handling_different_text_directions translation_of: Learn/CSS/Building_blocks/Handling_different_text_directions +original_slug: Apprendre/CSS/Building_blocks/Handling_different_text_directions ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/index.html b/files/fr/learn/css/building_blocks/index.html index 37ab79216a..d0992257a9 100644 --- a/files/fr/learn/css/building_blocks/index.html +++ b/files/fr/learn/css/building_blocks/index.html @@ -1,11 +1,12 @@ --- title: Blocs de base en CSS -slug: Apprendre/CSS/Building_blocks +slug: Learn/CSS/Building_blocks tags: - CSS - Débutant - Tutoriel translation_of: Learn/CSS/Building_blocks +original_slug: Apprendre/CSS/Building_blocks ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/overflowing_content/index.html b/files/fr/learn/css/building_blocks/overflowing_content/index.html index 3b13da9e6b..0f9c1ac83a 100644 --- a/files/fr/learn/css/building_blocks/overflowing_content/index.html +++ b/files/fr/learn/css/building_blocks/overflowing_content/index.html @@ -1,7 +1,8 @@ --- title: Overflow - Débordements de contenu -slug: Apprendre/CSS/Building_blocks/Overflowing_content +slug: Learn/CSS/Building_blocks/Overflowing_content translation_of: Learn/CSS/Building_blocks/Overflowing_content +original_slug: Apprendre/CSS/Building_blocks/Overflowing_content ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Handling_different_text_directions", "Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/selectors/attribute_selectors/index.html b/files/fr/learn/css/building_blocks/selectors/attribute_selectors/index.html index 415d455e9b..a32606765a 100644 --- a/files/fr/learn/css/building_blocks/selectors/attribute_selectors/index.html +++ b/files/fr/learn/css/building_blocks/selectors/attribute_selectors/index.html @@ -1,6 +1,6 @@ --- title: Sélecteurs d'attribut -slug: Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_d_atrribut +slug: Learn/CSS/Building_blocks/Selectors/Attribute_selectors tags: - Apprendre - Attribut @@ -8,6 +8,7 @@ tags: - Débutant - Sélecteurs translation_of: Learn/CSS/Building_blocks/Selectors/Attribute_selectors +original_slug: Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_d_atrribut ---

{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks")}}

diff --git a/files/fr/learn/css/building_blocks/selectors/combinators/index.html b/files/fr/learn/css/building_blocks/selectors/combinators/index.html index 080ef78d83..7a63a06d36 100644 --- a/files/fr/learn/css/building_blocks/selectors/combinators/index.html +++ b/files/fr/learn/css/building_blocks/selectors/combinators/index.html @@ -1,11 +1,12 @@ --- title: Combinateurs -slug: Apprendre/CSS/Building_blocks/Selectors/Combinateurs +slug: Learn/CSS/Building_blocks/Selectors/Combinators tags: - CSS - Sélecteurs - combinateurs translation_of: Learn/CSS/Building_blocks/Selectors/Combinators +original_slug: Apprendre/CSS/Building_blocks/Selectors/Combinateurs ---

{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements", "Learn/CSS/Building_blocks/The_box_model", "Learn/CSS/Building_blocks")}}

diff --git a/files/fr/learn/css/building_blocks/selectors/index.html b/files/fr/learn/css/building_blocks/selectors/index.html index 359c762301..5cfbb2cd4e 100644 --- a/files/fr/learn/css/building_blocks/selectors/index.html +++ b/files/fr/learn/css/building_blocks/selectors/index.html @@ -1,7 +1,8 @@ --- title: Sélecteurs CSS -slug: Apprendre/CSS/Building_blocks/Selectors +slug: Learn/CSS/Building_blocks/Selectors translation_of: Learn/CSS/Building_blocks/Selectors +original_slug: Apprendre/CSS/Building_blocks/Selectors ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Cascade_and_inheritance", "Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html b/files/fr/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html index 6bfb96e324..f7d62596c1 100644 --- a/files/fr/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html +++ b/files/fr/learn/css/building_blocks/selectors/pseudo-classes_and_pseudo-elements/index.html @@ -1,6 +1,6 @@ --- title: Pseudo-classes et pseudo-éléments -slug: Apprendre/CSS/Building_blocks/Selectors/Pseudo-classes_et_pseudo-éléments +slug: Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements tags: - Apprendre - CSS @@ -10,6 +10,7 @@ tags: - Pseudo-element - Sélecteurs translation_of: Learn/CSS/Building_blocks/Selectors/Pseudo-classes_and_pseudo-elements +original_slug: Apprendre/CSS/Building_blocks/Selectors/Pseudo-classes_et_pseudo-éléments ---

{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks")}}

diff --git a/files/fr/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html b/files/fr/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html index f6d0580279..33f687df82 100644 --- a/files/fr/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html +++ b/files/fr/learn/css/building_blocks/selectors/type_class_and_id_selectors/index.html @@ -1,7 +1,8 @@ --- -title: 'Sélecteurs de type, de classe et d''ID' -slug: Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_de_type_classe_ID +title: Sélecteurs de type, de classe et d'ID +slug: Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors translation_of: Learn/CSS/Building_blocks/Selectors/Type_Class_and_ID_Selectors +original_slug: Apprendre/CSS/Building_blocks/Selectors/Sélecteurs_de_type_classe_ID ---

{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors", "Learn/CSS/Building_blocks/Selectors/Attribute_selectors", "Learn/CSS/Building_blocks")}}

diff --git a/files/fr/learn/css/building_blocks/sizing_items_in_css/index.html b/files/fr/learn/css/building_blocks/sizing_items_in_css/index.html index 8349fb5a59..2fdf39d902 100644 --- a/files/fr/learn/css/building_blocks/sizing_items_in_css/index.html +++ b/files/fr/learn/css/building_blocks/sizing_items_in_css/index.html @@ -1,7 +1,8 @@ --- title: Définir la taille des éléments en CSS -slug: Apprendre/CSS/Building_blocks/Sizing_items_in_CSS +slug: Learn/CSS/Building_blocks/Sizing_items_in_CSS translation_of: Learn/CSS/Building_blocks/Sizing_items_in_CSS +original_slug: Apprendre/CSS/Building_blocks/Sizing_items_in_CSS ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Values_and_units", "Learn/CSS/Building_blocks/Images_media_form_elements", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/styling_tables/index.html b/files/fr/learn/css/building_blocks/styling_tables/index.html index 9d6087e1a4..0b8eb4bd14 100644 --- a/files/fr/learn/css/building_blocks/styling_tables/index.html +++ b/files/fr/learn/css/building_blocks/styling_tables/index.html @@ -1,6 +1,6 @@ --- title: Mise en page de tableaux -slug: Apprendre/CSS/Building_blocks/Styling_tables +slug: Learn/CSS/Building_blocks/Styling_tables tags: - Article - CSS @@ -11,6 +11,7 @@ tags: - Style - Tableaux translation_of: Learn/CSS/Building_blocks/Styling_tables +original_slug: Apprendre/CSS/Building_blocks/Styling_tables ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/building_blocks/the_box_model/index.html b/files/fr/learn/css/building_blocks/the_box_model/index.html index 927bbdc232..82b3ffdeff 100644 --- a/files/fr/learn/css/building_blocks/the_box_model/index.html +++ b/files/fr/learn/css/building_blocks/the_box_model/index.html @@ -1,6 +1,6 @@ --- title: Le modèle de Boîte -slug: Apprendre/CSS/Building_blocks/Le_modele_de_boite +slug: Learn/CSS/Building_blocks/The_box_model tags: - Boîte - CSS @@ -17,6 +17,7 @@ tags: - margin - padding translation_of: Learn/CSS/Building_blocks/The_box_model +original_slug: Apprendre/CSS/Building_blocks/Le_modele_de_boite ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Selectors/Combinators", "Learn/CSS/Building_blocks/Backgrounds_and_borders", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/building_blocks/values_and_units/index.html b/files/fr/learn/css/building_blocks/values_and_units/index.html index 59fe695fe4..3968c70cae 100644 --- a/files/fr/learn/css/building_blocks/values_and_units/index.html +++ b/files/fr/learn/css/building_blocks/values_and_units/index.html @@ -1,7 +1,8 @@ --- title: Valeurs et unités CSS -slug: Apprendre/CSS/Building_blocks/Values_and_units +slug: Learn/CSS/Building_blocks/Values_and_units translation_of: Learn/CSS/Building_blocks/Values_and_units +original_slug: Apprendre/CSS/Building_blocks/Values_and_units ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/CSS/Building_blocks/Overflowing_content", "Learn/CSS/Building_blocks/Sizing_items_in_CSS", "Learn/CSS/Building_blocks")}}
diff --git a/files/fr/learn/css/css_layout/flexbox/index.html b/files/fr/learn/css/css_layout/flexbox/index.html index bcf02e9910..a151a1da09 100644 --- a/files/fr/learn/css/css_layout/flexbox/index.html +++ b/files/fr/learn/css/css_layout/flexbox/index.html @@ -1,6 +1,6 @@ --- title: Flexbox -slug: Apprendre/CSS/CSS_layout/Flexbox +slug: Learn/CSS/CSS_layout/Flexbox tags: - Apprentissage - Article @@ -14,6 +14,7 @@ tags: - Mises en page - flexbox translation_of: Learn/CSS/CSS_layout/Flexbox +original_slug: Apprendre/CSS/CSS_layout/Flexbox ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/flexbox_skills/index.html b/files/fr/learn/css/css_layout/flexbox_skills/index.html index 8cb4d16891..d46a7b5f55 100644 --- a/files/fr/learn/css/css_layout/flexbox_skills/index.html +++ b/files/fr/learn/css/css_layout/flexbox_skills/index.html @@ -1,7 +1,8 @@ --- title: 'Testez vos compétences : Flexbox' -slug: Apprendre/CSS/CSS_layout/Flexbox_skills +slug: Learn/CSS/CSS_layout/Flexbox_skills translation_of: Learn/CSS/CSS_layout/Flexbox_skills +original_slug: Apprendre/CSS/CSS_layout/Flexbox_skills ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/floats/index.html b/files/fr/learn/css/css_layout/floats/index.html index a4814ac036..ffcc762cea 100644 --- a/files/fr/learn/css/css_layout/floats/index.html +++ b/files/fr/learn/css/css_layout/floats/index.html @@ -1,6 +1,6 @@ --- title: Les boîtes flottantes -slug: Apprendre/CSS/CSS_layout/Floats +slug: Learn/CSS/CSS_layout/Floats tags: - Article - Boîtes flottantes @@ -14,6 +14,7 @@ tags: - colonnes - multi‑colonne translation_of: Learn/CSS/CSS_layout/Floats +original_slug: Apprendre/CSS/CSS_layout/Floats ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/fundamental_layout_comprehension/index.html b/files/fr/learn/css/css_layout/fundamental_layout_comprehension/index.html index c97cc64ba9..05f16693ae 100644 --- a/files/fr/learn/css/css_layout/fundamental_layout_comprehension/index.html +++ b/files/fr/learn/css/css_layout/fundamental_layout_comprehension/index.html @@ -1,7 +1,8 @@ --- title: Compréhension fondamentale de la mise en page -slug: Apprendre/CSS/CSS_layout/Fundamental_Layout_Comprehension +slug: Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension translation_of: Learn/CSS/CSS_layout/Fundamental_Layout_Comprehension +original_slug: Apprendre/CSS/CSS_layout/Fundamental_Layout_Comprehension ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/grids/index.html b/files/fr/learn/css/css_layout/grids/index.html index 4fd7782640..272858a9e8 100644 --- a/files/fr/learn/css/css_layout/grids/index.html +++ b/files/fr/learn/css/css_layout/grids/index.html @@ -1,6 +1,6 @@ --- title: Grilles -slug: Apprendre/CSS/CSS_layout/Grids +slug: Learn/CSS/CSS_layout/Grids tags: - Apprendre - Article @@ -16,6 +16,7 @@ tags: - structure du quadrillage - système de trames translation_of: Learn/CSS/CSS_layout/Grids +original_slug: Apprendre/CSS/CSS_layout/Grids ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/index.html b/files/fr/learn/css/css_layout/index.html index c8ae618a03..0c88cf7e24 100644 --- a/files/fr/learn/css/css_layout/index.html +++ b/files/fr/learn/css/css_layout/index.html @@ -1,6 +1,6 @@ --- title: La mise en page avec le CSS -slug: Apprendre/CSS/CSS_layout +slug: Learn/CSS/CSS_layout tags: - CSS - Débutant @@ -16,6 +16,7 @@ tags: - float - grid translation_of: Learn/CSS/CSS_layout +original_slug: Apprendre/CSS/CSS_layout ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/introduction/index.html b/files/fr/learn/css/css_layout/introduction/index.html index c8ffefec6c..61936d08b4 100644 --- a/files/fr/learn/css/css_layout/introduction/index.html +++ b/files/fr/learn/css/css_layout/introduction/index.html @@ -1,6 +1,6 @@ --- title: Introduction à la mise en page en CSS -slug: Apprendre/CSS/CSS_layout/Introduction +slug: Learn/CSS/CSS_layout/Introduction tags: - Apprendre - Article @@ -15,6 +15,7 @@ tags: - Positionnement - Tableaux translation_of: Learn/CSS/CSS_layout/Introduction +original_slug: Apprendre/CSS/CSS_layout/Introduction ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/legacy_layout_methods/index.html b/files/fr/learn/css/css_layout/legacy_layout_methods/index.html index d778686c58..f4777dd68d 100644 --- a/files/fr/learn/css/css_layout/legacy_layout_methods/index.html +++ b/files/fr/learn/css/css_layout/legacy_layout_methods/index.html @@ -1,6 +1,6 @@ --- title: Méthodes de mises en page traditionnelles -slug: Apprendre/CSS/CSS_layout/Legacy_Layout_Methods +slug: Learn/CSS/CSS_layout/Legacy_Layout_Methods tags: - Apprendre - Boîtes flottantes @@ -11,6 +11,7 @@ tags: - Héritage - systèmes de trames translation_of: Learn/CSS/CSS_layout/Legacy_Layout_Methods +original_slug: Apprendre/CSS/CSS_layout/Legacy_Layout_Methods ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/media_queries/index.html b/files/fr/learn/css/css_layout/media_queries/index.html index c82e846273..552d1982df 100644 --- a/files/fr/learn/css/css_layout/media_queries/index.html +++ b/files/fr/learn/css/css_layout/media_queries/index.html @@ -1,7 +1,8 @@ --- title: Guide du débutant des Media Queries -slug: Apprendre/CSS/CSS_layout/Media_queries +slug: Learn/CSS/CSS_layout/Media_queries translation_of: Learn/CSS/CSS_layout/Media_queries +original_slug: Apprendre/CSS/CSS_layout/Media_queries ---

{{learnsidebar}}{{PreviousMenuNext("Learn/CSS/CSS_layout/Responsive_Design", "Learn/CSS/CSS_layout/Legacy_Layout_Methods", "Learn/CSS/CSS_layout")}}

diff --git a/files/fr/learn/css/css_layout/multiple-column_layout/index.html b/files/fr/learn/css/css_layout/multiple-column_layout/index.html index b4fb4b03d7..4a23cb740a 100644 --- a/files/fr/learn/css/css_layout/multiple-column_layout/index.html +++ b/files/fr/learn/css/css_layout/multiple-column_layout/index.html @@ -1,6 +1,6 @@ --- title: Disposition sur plusieurs colonnes -slug: Apprendre/CSS/CSS_layout/Multiple-column_Layout +slug: Learn/CSS/CSS_layout/Multiple-column_Layout tags: - Apprendre - Apprentissage @@ -11,6 +11,7 @@ tags: - Guide - Multi-col translation_of: Learn/CSS/CSS_layout/Multiple-column_Layout +original_slug: Apprendre/CSS/CSS_layout/Multiple-column_Layout ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/normal_flow/index.html b/files/fr/learn/css/css_layout/normal_flow/index.html index c3d51d3313..00f1cc1882 100644 --- a/files/fr/learn/css/css_layout/normal_flow/index.html +++ b/files/fr/learn/css/css_layout/normal_flow/index.html @@ -1,7 +1,8 @@ --- title: Cours normal -slug: Apprendre/CSS/CSS_layout/Normal_Flow +slug: Learn/CSS/CSS_layout/Normal_Flow translation_of: Learn/CSS/CSS_layout/Normal_Flow +original_slug: Apprendre/CSS/CSS_layout/Normal_Flow ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/positioning/index.html b/files/fr/learn/css/css_layout/positioning/index.html index 54349c6fef..c4a9c593b6 100644 --- a/files/fr/learn/css/css_layout/positioning/index.html +++ b/files/fr/learn/css/css_layout/positioning/index.html @@ -1,6 +1,6 @@ --- title: Le positionnement -slug: Apprendre/CSS/CSS_layout/Le_positionnement +slug: Learn/CSS/CSS_layout/Positioning tags: - Agencement - Article @@ -16,6 +16,7 @@ tags: - relatif - statique translation_of: Learn/CSS/CSS_layout/Positioning +original_slug: Apprendre/CSS/CSS_layout/Le_positionnement ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/practical_positioning_examples/index.html b/files/fr/learn/css/css_layout/practical_positioning_examples/index.html index da821fefd1..e023fd3d4b 100644 --- a/files/fr/learn/css/css_layout/practical_positioning_examples/index.html +++ b/files/fr/learn/css/css_layout/practical_positioning_examples/index.html @@ -1,7 +1,8 @@ --- title: Exemples pratiques de positionnement -slug: Apprendre/CSS/CSS_layout/Exemples_pratiques_de_positionnement +slug: Learn/CSS/CSS_layout/Practical_positioning_examples translation_of: Learn/CSS/CSS_layout/Practical_positioning_examples +original_slug: Apprendre/CSS/CSS_layout/Exemples_pratiques_de_positionnement ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/css_layout/responsive_design/index.html b/files/fr/learn/css/css_layout/responsive_design/index.html index 323df1a7f6..05df9cfd85 100644 --- a/files/fr/learn/css/css_layout/responsive_design/index.html +++ b/files/fr/learn/css/css_layout/responsive_design/index.html @@ -1,6 +1,6 @@ --- title: Responsive design -slug: Apprendre/CSS/CSS_layout/Responsive_Design +slug: Learn/CSS/CSS_layout/Responsive_Design tags: - Images - Media Queries @@ -11,6 +11,7 @@ tags: - grid - grille fluide translation_of: Learn/CSS/CSS_layout/Responsive_Design +original_slug: Apprendre/CSS/CSS_layout/Responsive_Design ---
{{learnsidebar}}{{PreviousMenuNext("Apprendre/CSS/CSS_layout/Multiple-column_Layout", "Apprendre/CSS/CSS_layout/Media_queries", "Apprendre/CSS/CSS_layout")}}
diff --git a/files/fr/learn/css/css_layout/supporting_older_browsers/index.html b/files/fr/learn/css/css_layout/supporting_older_browsers/index.html index c56a030d08..7a2fc30b98 100644 --- a/files/fr/learn/css/css_layout/supporting_older_browsers/index.html +++ b/files/fr/learn/css/css_layout/supporting_older_browsers/index.html @@ -1,7 +1,8 @@ --- title: Prise en charge des anciens navigateurs -slug: Apprendre/CSS/CSS_layout/Prise_En_Charge_Des_Anciens_Navigateurs +slug: Learn/CSS/CSS_layout/Supporting_Older_Browsers translation_of: Learn/CSS/CSS_layout/Supporting_Older_Browsers +original_slug: Apprendre/CSS/CSS_layout/Prise_En_Charge_Des_Anciens_Navigateurs ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/first_steps/what_is_css/index.html b/files/fr/learn/css/first_steps/what_is_css/index.html index 0b4bfefc33..7389147591 100644 --- a/files/fr/learn/css/first_steps/what_is_css/index.html +++ b/files/fr/learn/css/first_steps/what_is_css/index.html @@ -1,6 +1,6 @@ --- title: Qu'est ce que CSS ? -slug: Learn/CSS/First_steps/Qu_est_ce_que_CSS +slug: Learn/CSS/First_steps/What_is_CSS tags: - Apprendre - CSS @@ -9,6 +9,7 @@ tags: - Specifications - Syntaxe translation_of: Learn/CSS/First_steps/What_is_CSS +original_slug: Learn/CSS/First_steps/Qu_est_ce_que_CSS ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/howto/create_fancy_boxes/index.html b/files/fr/learn/css/howto/create_fancy_boxes/index.html index 8e6fdc1761..dd242c62a3 100644 --- a/files/fr/learn/css/howto/create_fancy_boxes/index.html +++ b/files/fr/learn/css/howto/create_fancy_boxes/index.html @@ -1,11 +1,12 @@ --- title: Créer de belles boîtes -slug: Apprendre/CSS/Comment/Créer_de_belles_boîtes +slug: Learn/CSS/Howto/create_fancy_boxes tags: - Apprendre - CSS - Débutant translation_of: Learn/CSS/Howto/create_fancy_boxes +original_slug: Apprendre/CSS/Comment/Créer_de_belles_boîtes ---

Les boîtes CSS sont des blocs de base pour la construction des pages web. Créer des boîtes agréables à regarder est un défi complexe et intéressant. C'est un défi intéressant parce qu'on peut implémenter une idée de concept, de design, grâce à du code qui fonctionne. C'est un défi complexe car CSS possède à la fois plein de contraintes et de libertés. Dans cet article, nous allons voir de quoi il en retourne en dessinant quelques belles boîtes.

diff --git a/files/fr/learn/css/howto/css_faq/index.html b/files/fr/learn/css/howto/css_faq/index.html index 0d62552798..75479dfb18 100644 --- a/files/fr/learn/css/howto/css_faq/index.html +++ b/files/fr/learn/css/howto/css_faq/index.html @@ -1,12 +1,13 @@ --- title: Questions fréquentes en CSS -slug: Web/CSS/CSS_questions_frequentes +slug: Learn/CSS/Howto/CSS_FAQ tags: - CSS - Débutant - Exemple - Guide translation_of: Learn/CSS/Howto/CSS_FAQ +original_slug: Web/CSS/CSS_questions_frequentes ---

Pourquoi mon CSS, pourtant valide, ne fournit pas un rendu correct ?

diff --git a/files/fr/learn/css/howto/generated_content/index.html b/files/fr/learn/css/howto/generated_content/index.html index a8b6860177..cd56e36305 100644 --- a/files/fr/learn/css/howto/generated_content/index.html +++ b/files/fr/learn/css/howto/generated_content/index.html @@ -1,10 +1,11 @@ --- title: Contenu -slug: Apprendre/CSS/Comment/Generated_content +slug: Learn/CSS/Howto/Generated_content tags: - CSS - - 'CSS:Premiers_pas' + - CSS:Premiers_pas translation_of: Learn/CSS/Howto/Generated_content +original_slug: Apprendre/CSS/Comment/Generated_content ---

 

Cette page décrit plusieurs manières d'utiliser CSS pour ajouter du contenu à un document affiché.

diff --git a/files/fr/learn/css/howto/index.html b/files/fr/learn/css/howto/index.html index 28cc40c4fe..aabbb12aa7 100644 --- a/files/fr/learn/css/howto/index.html +++ b/files/fr/learn/css/howto/index.html @@ -1,11 +1,12 @@ --- title: Apprendre à utiliser CSS pour résoudre des problèmes -slug: Apprendre/CSS/Comment +slug: Learn/CSS/Howto tags: - Apprendre - CSS - Débutant translation_of: Learn/CSS/Howto +original_slug: Apprendre/CSS/Comment ---

 

diff --git a/files/fr/learn/css/index.html b/files/fr/learn/css/index.html index d47ea70f90..82da8789e7 100644 --- a/files/fr/learn/css/index.html +++ b/files/fr/learn/css/index.html @@ -1,6 +1,6 @@ --- title: Composer le HTML avec les CSS -slug: Apprendre/CSS +slug: Learn/CSS tags: - Article - CSS @@ -13,6 +13,7 @@ tags: - débogage - particularités translation_of: Learn/CSS +original_slug: Apprendre/CSS ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/styling_text/fundamentals/index.html b/files/fr/learn/css/styling_text/fundamentals/index.html index 283d1fff00..c43c2fdd55 100644 --- a/files/fr/learn/css/styling_text/fundamentals/index.html +++ b/files/fr/learn/css/styling_text/fundamentals/index.html @@ -1,6 +1,6 @@ --- title: Initiation à la mise en forme du texte -slug: Learn/CSS/Styling_text/initiation-mise-en-forme-du-texte +slug: Learn/CSS/Styling_text/Fundamentals tags: - Alignement - CSS @@ -10,6 +10,7 @@ tags: - Style - Texte translation_of: Learn/CSS/Styling_text/Fundamentals +original_slug: Learn/CSS/Styling_text/initiation-mise-en-forme-du-texte ---
{{LearnSidebar}}
diff --git a/files/fr/learn/css/styling_text/styling_links/index.html b/files/fr/learn/css/styling_text/styling_links/index.html index f216d54186..27276fac47 100644 --- a/files/fr/learn/css/styling_text/styling_links/index.html +++ b/files/fr/learn/css/styling_text/styling_links/index.html @@ -1,6 +1,6 @@ --- title: Mise en forme des liens -slug: Learn/CSS/Styling_text/Mise_en_forme_des_liens +slug: Learn/CSS/Styling_text/Styling_links tags: - Article - Beginner @@ -15,6 +15,7 @@ tags: - menus - tabs translation_of: Learn/CSS/Styling_text/Styling_links +original_slug: Learn/CSS/Styling_text/Mise_en_forme_des_liens ---
{{LearnSidebar}}
diff --git a/files/fr/learn/forms/advanced_form_styling/index.html b/files/fr/learn/forms/advanced_form_styling/index.html index 6d6a68bd4c..3e8fcd3146 100644 --- a/files/fr/learn/forms/advanced_form_styling/index.html +++ b/files/fr/learn/forms/advanced_form_styling/index.html @@ -1,6 +1,6 @@ --- title: Composition avancée des formulaires HTML -slug: Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms +slug: Learn/Forms/Advanced_form_styling tags: - Avancé - CSS @@ -10,6 +10,7 @@ tags: - HTML - Web translation_of: Learn/Forms/Advanced_form_styling +original_slug: Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML", "Web/Guide/HTML/Formulaires/Property_compatibility_table_for_form_widgets", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/basic_native_form_controls/index.html b/files/fr/learn/forms/basic_native_form_controls/index.html index 6b692ee256..f40660b29c 100644 --- a/files/fr/learn/forms/basic_native_form_controls/index.html +++ b/files/fr/learn/forms/basic_native_form_controls/index.html @@ -1,6 +1,6 @@ --- title: Les widgets de formulaire natifs -slug: Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs +slug: Learn/Forms/Basic_native_form_controls tags: - Contrôles - Exemple @@ -10,6 +10,7 @@ tags: - Web - Widgets translation_of: Learn/Forms/Basic_native_form_controls +original_slug: Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs ---
{{LearnSidebar}}
{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML", "Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/form_validation/index.html b/files/fr/learn/forms/form_validation/index.html index ccbac0ef15..7180169353 100644 --- a/files/fr/learn/forms/form_validation/index.html +++ b/files/fr/learn/forms/form_validation/index.html @@ -1,6 +1,6 @@ --- title: Validation des données de formulaires -slug: Web/Guide/HTML/Formulaires/Validation_donnees_formulaire +slug: Learn/Forms/Form_validation tags: - Exemple - Formulaires @@ -10,6 +10,7 @@ tags: - JavaScript - Web translation_of: Learn/Forms/Form_validation +original_slug: Web/Guide/HTML/Formulaires/Validation_donnees_formulaire ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires", "Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/example_1/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/example_1/index.html index 045f631079..e488687b73 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/example_1/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/example_1/index.html @@ -1,12 +1,13 @@ --- title: Exemple 1 -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_1 +slug: Learn/Forms/How_to_build_custom_form_controls/Example_1 tags: - Formulaires - Guide - HTML translation_of: Learn/Forms/How_to_build_custom_form_controls/Example_1 +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_1 ---

C'est le premier exemple de code qui explique comment construire un widget de formulaire personnalisé.

diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/example_2/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/example_2/index.html index dfb0eb3b6a..b70d286010 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/example_2/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/example_2/index.html @@ -1,11 +1,12 @@ --- title: Exemple 2 -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_2 +slug: Learn/Forms/How_to_build_custom_form_controls/Example_2 tags: - Formulaires - HTML translation_of: Learn/Forms/How_to_build_custom_form_controls/Example_2 +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Exemple_2 ---

Ceci est le deuxième exemple expliquant comment construire un formulaire personnalisé.

diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/example_3/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/example_3/index.html index a647cfaba3..5140b97c20 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/example_3/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/example_3/index.html @@ -1,11 +1,12 @@ --- title: Exemple 3 -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_3 +slug: Learn/Forms/How_to_build_custom_form_controls/Example_3 tags: - Formulaires - HTML translation_of: Learn/Forms/How_to_build_custom_form_controls/Example_3 +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_3 ---

Ceci est le troisième exemple expliquant comment construire des widgets de formulaire personnalisés.

diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/example_4/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/example_4/index.html index 4bd1a9a069..e1d738ee61 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/example_4/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/example_4/index.html @@ -1,7 +1,6 @@ --- title: Exemple 4 -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_4 +slug: Learn/Forms/How_to_build_custom_form_controls/Example_4 tags: - Avancé - Exemple @@ -10,6 +9,8 @@ tags: - HTML - Web translation_of: Learn/Forms/How_to_build_custom_form_controls/Example_4 +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_4 ---

Ceci est le quatrième exemple expliquant comment construire des widgets de formulaire personnalisés.

diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/example_5/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/example_5/index.html index bf1143d186..aad371bc78 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/example_5/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/example_5/index.html @@ -1,11 +1,12 @@ --- title: Exemple 5 -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_5 +slug: Learn/Forms/How_to_build_custom_form_controls/Example_5 tags: - Formulaires - HTML translation_of: Learn/Forms/How_to_build_custom_form_controls/Example_5 +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés/Example_5 ---

Voici le dernier exemple expliquant comment construire des widgets de formulaire personnalisés.

diff --git a/files/fr/learn/forms/how_to_build_custom_form_controls/index.html b/files/fr/learn/forms/how_to_build_custom_form_controls/index.html index 4173ff9f9c..4ff0241870 100644 --- a/files/fr/learn/forms/how_to_build_custom_form_controls/index.html +++ b/files/fr/learn/forms/how_to_build_custom_form_controls/index.html @@ -1,7 +1,6 @@ --- title: Comment construire des widgets de formulaires personnalisés -slug: >- - Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés +slug: Learn/Forms/How_to_build_custom_form_controls tags: - Avancé - Exemple @@ -10,6 +9,8 @@ tags: - HTML - Web translation_of: Learn/Forms/How_to_build_custom_form_controls +original_slug: >- + Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Validation_donnees_formulaire", "Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/how_to_structure_a_web_form/example/index.html b/files/fr/learn/forms/how_to_structure_a_web_form/example/index.html index 91cd643bd1..cb36b36527 100644 --- a/files/fr/learn/forms/how_to_structure_a_web_form/example/index.html +++ b/files/fr/learn/forms/how_to_structure_a_web_form/example/index.html @@ -1,7 +1,8 @@ --- title: Exemple -slug: Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple +slug: Learn/Forms/How_to_structure_a_web_form/Example translation_of: Learn/Forms/How_to_structure_a_web_form/Example +original_slug: Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML/Exemple ---

Ceci est un exemple de formulaire de paiement basique extrait de l'article Comment structurer un formulaire HTML.

diff --git a/files/fr/learn/forms/how_to_structure_a_web_form/index.html b/files/fr/learn/forms/how_to_structure_a_web_form/index.html index f7d2e7db7d..80b6d6d142 100644 --- a/files/fr/learn/forms/how_to_structure_a_web_form/index.html +++ b/files/fr/learn/forms/how_to_structure_a_web_form/index.html @@ -1,6 +1,6 @@ --- title: Comment structurer un formulaire HTML -slug: Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML +slug: Learn/Forms/How_to_structure_a_web_form tags: - Apprentissage - Débutant @@ -11,6 +11,7 @@ tags: - Structure - Web translation_of: Learn/Forms/How_to_structure_a_web_form +original_slug: Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/forms/html_forms_in_legacy_browsers/index.html b/files/fr/learn/forms/html_forms_in_legacy_browsers/index.html index 6c1d043659..8267194ba9 100644 --- a/files/fr/learn/forms/html_forms_in_legacy_browsers/index.html +++ b/files/fr/learn/forms/html_forms_in_legacy_browsers/index.html @@ -1,7 +1,8 @@ --- title: Formulaires HTML dans les navigateurs historiques -slug: Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers +slug: Learn/Forms/HTML_forms_in_legacy_browsers translation_of: Learn/Forms/HTML_forms_in_legacy_browsers +original_slug: Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript", "Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/index.html b/files/fr/learn/forms/index.html index 9927bd3385..fadf1ab046 100644 --- a/files/fr/learn/forms/index.html +++ b/files/fr/learn/forms/index.html @@ -1,6 +1,6 @@ --- title: Formulaires HTML -slug: Web/Guide/HTML/Formulaires +slug: Learn/Forms tags: - Apprentissage - Featured @@ -9,6 +9,7 @@ tags: - HTML - Web translation_of: Learn/Forms +original_slug: Web/Guide/HTML/Formulaires ---

{{learnSidebar}}

diff --git a/files/fr/learn/forms/property_compatibility_table_for_form_controls/index.html b/files/fr/learn/forms/property_compatibility_table_for_form_controls/index.html index eacb5640ef..4c702ca4c0 100644 --- a/files/fr/learn/forms/property_compatibility_table_for_form_controls/index.html +++ b/files/fr/learn/forms/property_compatibility_table_for_form_controls/index.html @@ -1,6 +1,6 @@ --- title: Table de compatibilité des propriétés pour les widgets de formulaire -slug: Web/Guide/HTML/Formulaires/Property_compatibility_table_for_form_widgets +slug: Learn/Forms/Property_compatibility_table_for_form_controls tags: - Avancé - CSS @@ -11,6 +11,7 @@ tags: - Mises à jour - Web translation_of: Learn/Forms/Property_compatibility_table_for_form_controls +original_slug: Web/Guide/HTML/Formulaires/Property_compatibility_table_for_form_widgets ---
{{learnsidebar}}{{PreviousMenu("Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/sending_and_retrieving_form_data/index.html b/files/fr/learn/forms/sending_and_retrieving_form_data/index.html index bc81996fda..a1664fe4a5 100644 --- a/files/fr/learn/forms/sending_and_retrieving_form_data/index.html +++ b/files/fr/learn/forms/sending_and_retrieving_form_data/index.html @@ -1,6 +1,6 @@ --- title: Envoyer et extraire les données des formulaires -slug: Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires +slug: Learn/Forms/Sending_and_retrieving_form_data tags: - Débutant - En-têtes @@ -12,6 +12,7 @@ tags: - Sécurité - Web translation_of: Learn/Forms/Sending_and_retrieving_form_data +original_slug: Web/Guide/HTML/Formulaires/Envoyer_et_extraire_les_données_des_formulaires ---
{{learnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Les_blocs_de_formulaires_natifs", "Web/Guide/HTML/Formulaires/Validation_donnees_formulaire", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/sending_forms_through_javascript/index.html b/files/fr/learn/forms/sending_forms_through_javascript/index.html index 922bfb2aaf..d668fe6169 100644 --- a/files/fr/learn/forms/sending_forms_through_javascript/index.html +++ b/files/fr/learn/forms/sending_forms_through_javascript/index.html @@ -1,7 +1,8 @@ --- title: Envoi de formulaires avec JavaScript -slug: Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript +slug: Learn/Forms/Sending_forms_through_JavaScript translation_of: Learn/Forms/Sending_forms_through_JavaScript +original_slug: Web/Guide/HTML/Formulaires/Sending_forms_through_JavaScript ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/Comment_construire_des_widgets_de_formulaires_personnalisés", "Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/styling_web_forms/index.html b/files/fr/learn/forms/styling_web_forms/index.html index fbdafe47d4..a359f85cb2 100644 --- a/files/fr/learn/forms/styling_web_forms/index.html +++ b/files/fr/learn/forms/styling_web_forms/index.html @@ -1,6 +1,6 @@ --- title: Mise en forme des formulaires HTML -slug: Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML +slug: Learn/Forms/Styling_web_forms tags: - CSS - Exemple @@ -10,6 +10,7 @@ tags: - Intermédiaire - Web translation_of: Learn/Forms/Styling_web_forms +original_slug: Web/Guide/HTML/Formulaires/Apparence_des_formulaires_HTML ---
{{LearnSidebar}}{{PreviousMenuNext("Web/Guide/HTML/Formulaires/HTML_forms_in_legacy_browsers", "Web/Guide/HTML/Formulaires/Advanced_styling_for_HTML_forms", "Web/Guide/HTML/Formulaires")}}
diff --git a/files/fr/learn/forms/your_first_form/example/index.html b/files/fr/learn/forms/your_first_form/example/index.html index 3f25e6d644..70455c78a8 100644 --- a/files/fr/learn/forms/your_first_form/example/index.html +++ b/files/fr/learn/forms/your_first_form/example/index.html @@ -1,7 +1,8 @@ --- title: Exemple -slug: Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple +slug: Learn/Forms/Your_first_form/Example translation_of: Learn/Forms/Your_first_form/Example +original_slug: Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML/Exemple ---

Ceci est l'exemple pour l'article Mon premier formulaire HTML.

diff --git a/files/fr/learn/forms/your_first_form/index.html b/files/fr/learn/forms/your_first_form/index.html index 8f082f6d81..ca8631cf21 100644 --- a/files/fr/learn/forms/your_first_form/index.html +++ b/files/fr/learn/forms/your_first_form/index.html @@ -1,6 +1,6 @@ --- title: Mon premier formulaire HTML -slug: Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML +slug: Learn/Forms/Your_first_form tags: - Apprentissage - Codage @@ -11,6 +11,7 @@ tags: - HTML - Web translation_of: Learn/Forms/Your_first_form +original_slug: Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML ---

{{LearnSidebar}}{{NextMenu("Web/Guide/HTML/Formulaires/Comment_structurer_un_formulaire_HTML", "Web/Guide/HTML/Formulaires")}}

diff --git a/files/fr/learn/front-end_web_developer/index.html b/files/fr/learn/front-end_web_developer/index.html index e520a7a9a3..60fea45f7e 100644 --- a/files/fr/learn/front-end_web_developer/index.html +++ b/files/fr/learn/front-end_web_developer/index.html @@ -1,7 +1,8 @@ --- title: Développeur web front-end -slug: Apprendre/Front-end_web_developer +slug: Learn/Front-end_web_developer translation_of: Learn/Front-end_web_developer +original_slug: Apprendre/Front-end_web_developer ---

{{learnsidebar}}

diff --git a/files/fr/learn/getting_started_with_the_web/css_basics/index.html b/files/fr/learn/getting_started_with_the_web/css_basics/index.html index c547529be9..894d563d3a 100644 --- a/files/fr/learn/getting_started_with_the_web/css_basics/index.html +++ b/files/fr/learn/getting_started_with_the_web/css_basics/index.html @@ -1,6 +1,6 @@ --- title: Les bases des CSS -slug: Apprendre/Commencer_avec_le_web/Les_bases_CSS +slug: Learn/Getting_started_with_the_web/CSS_basics tags: - Apprendre - CSS @@ -9,6 +9,7 @@ tags: - Styles - Web translation_of: Learn/Getting_started_with_the_web/CSS_basics +original_slug: Apprendre/Commencer_avec_le_web/Les_bases_CSS ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Les_bases_HTML", "Apprendre/Commencer_avec_le_web/Les_bases_JavaScript","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/dealing_with_files/index.html b/files/fr/learn/getting_started_with_the_web/dealing_with_files/index.html index b2dc72e8de..50cc611033 100644 --- a/files/fr/learn/getting_started_with_the_web/dealing_with_files/index.html +++ b/files/fr/learn/getting_started_with_the_web/dealing_with_files/index.html @@ -1,6 +1,6 @@ --- title: Gérer les fichiers -slug: Apprendre/Commencer_avec_le_web/Gérer_les_fichiers +slug: Learn/Getting_started_with_the_web/Dealing_with_files tags: - Création site - Débutant @@ -10,6 +10,7 @@ tags: - Site Web - Theorie translation_of: Learn/Getting_started_with_the_web/Dealing_with_files +original_slug: Apprendre/Commencer_avec_le_web/Gérer_les_fichiers ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site", "Apprendre/Commencer_avec_le_web/Les_bases_HTML","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/how_the_web_works/index.html b/files/fr/learn/getting_started_with_the_web/how_the_web_works/index.html index bc98c99021..2355b250ef 100644 --- a/files/fr/learn/getting_started_with_the_web/how_the_web_works/index.html +++ b/files/fr/learn/getting_started_with_the_web/how_the_web_works/index.html @@ -1,6 +1,6 @@ --- title: Le fonctionnement du Web -slug: Apprendre/Commencer_avec_le_web/Le_fonctionnement_du_Web +slug: Learn/Getting_started_with_the_web/How_the_Web_works tags: - Apprendre - Client @@ -13,6 +13,7 @@ tags: - TCP - Web translation_of: Learn/Getting_started_with_the_web/How_the_Web_works +original_slug: Apprendre/Commencer_avec_le_web/Le_fonctionnement_du_Web ---
{{LearnSidebar}}
{{PreviousMenu("Apprendre/Commencer_avec_le_web/Publier_votre_site_web","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/html_basics/index.html b/files/fr/learn/getting_started_with_the_web/html_basics/index.html index b486e94905..e47385d2b4 100644 --- a/files/fr/learn/getting_started_with_the_web/html_basics/index.html +++ b/files/fr/learn/getting_started_with_the_web/html_basics/index.html @@ -1,6 +1,6 @@ --- title: Les bases du HTML -slug: Apprendre/Commencer_avec_le_web/Les_bases_HTML +slug: Learn/Getting_started_with_the_web/HTML_basics tags: - Apprendre - Bases HTML @@ -9,6 +9,7 @@ tags: - HTML - Site Web translation_of: Learn/Getting_started_with_the_web/HTML_basics +original_slug: Apprendre/Commencer_avec_le_web/Les_bases_HTML ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Gérer_les_fichiers", "Apprendre/Commencer_avec_le_web/Les_bases_CSS", "Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/index.html b/files/fr/learn/getting_started_with_the_web/index.html index 88479469c9..1347a8defd 100644 --- a/files/fr/learn/getting_started_with_the_web/index.html +++ b/files/fr/learn/getting_started_with_the_web/index.html @@ -1,6 +1,6 @@ --- title: Commencer avec le Web -slug: Apprendre/Commencer_avec_le_web +slug: Learn/Getting_started_with_the_web tags: - CSS - Conception @@ -12,6 +12,7 @@ tags: - Web - publication translation_of: Learn/Getting_started_with_the_web +original_slug: Apprendre/Commencer_avec_le_web ---
{{LearnSidebar}}
diff --git a/files/fr/learn/getting_started_with_the_web/installing_basic_software/index.html b/files/fr/learn/getting_started_with_the_web/installing_basic_software/index.html index 0a7ad53559..7feb0b6e74 100644 --- a/files/fr/learn/getting_started_with_the_web/installing_basic_software/index.html +++ b/files/fr/learn/getting_started_with_the_web/installing_basic_software/index.html @@ -1,6 +1,6 @@ --- title: Installation des outils de base -slug: Apprendre/Commencer_avec_le_web/Installation_outils_de_base +slug: Learn/Getting_started_with_the_web/Installing_basic_software tags: - Apprendre - Débutant @@ -10,6 +10,7 @@ tags: - Web - Éditeurs de texte translation_of: Learn/Getting_started_with_the_web/Installing_basic_software +original_slug: Apprendre/Commencer_avec_le_web/Installation_outils_de_base ---
{{LearnSidebar}}
{{NextMenu("Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/javascript_basics/index.html b/files/fr/learn/getting_started_with_the_web/javascript_basics/index.html index 05d0540779..7041300eec 100644 --- a/files/fr/learn/getting_started_with_the_web/javascript_basics/index.html +++ b/files/fr/learn/getting_started_with_the_web/javascript_basics/index.html @@ -1,6 +1,6 @@ --- title: Les bases de JavaScript -slug: Apprendre/Commencer_avec_le_web/Les_bases_JavaScript +slug: Learn/Getting_started_with_the_web/JavaScript_basics tags: - Apprendre - Code JavaScript @@ -8,6 +8,7 @@ tags: - JavaScript - Web translation_of: Learn/Getting_started_with_the_web/JavaScript_basics +original_slug: Apprendre/Commencer_avec_le_web/Les_bases_JavaScript ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Les_bases_CSS", "Apprendre/Commencer_avec_le_web/Publier_votre_site_web","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/publishing_your_website/index.html b/files/fr/learn/getting_started_with_the_web/publishing_your_website/index.html index c4997f9cdf..69209d31bc 100644 --- a/files/fr/learn/getting_started_with_the_web/publishing_your_website/index.html +++ b/files/fr/learn/getting_started_with_the_web/publishing_your_website/index.html @@ -1,6 +1,6 @@ --- title: Publier votre site web -slug: Apprendre/Commencer_avec_le_web/Publier_votre_site_web +slug: Learn/Getting_started_with_the_web/Publishing_your_website tags: - Apprentissage - Codage @@ -13,6 +13,7 @@ tags: - publier - serveur web translation_of: Learn/Getting_started_with_the_web/Publishing_your_website +original_slug: Apprendre/Commencer_avec_le_web/Publier_votre_site_web ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Les_bases_JavaScript", "Apprendre/Commencer_avec_le_web/Le_fonctionnement_du_Web","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/getting_started_with_the_web/the_web_and_web_standards/index.html b/files/fr/learn/getting_started_with_the_web/the_web_and_web_standards/index.html index 9db46369dd..dba86cd1c1 100644 --- a/files/fr/learn/getting_started_with_the_web/the_web_and_web_standards/index.html +++ b/files/fr/learn/getting_started_with_the_web/the_web_and_web_standards/index.html @@ -1,6 +1,6 @@ --- title: Le web et ses normes -slug: Apprendre/Commencer_avec_le_web/The_web_and_web_standards +slug: Learn/Getting_started_with_the_web/The_web_and_web_standards tags: - Apprendre - Débutant @@ -9,6 +9,7 @@ tags: - Standards Web - Web translation_of: Learn/Getting_started_with_the_web/The_web_and_web_standards +original_slug: Apprendre/Commencer_avec_le_web/The_web_and_web_standards ---

{{learnsidebar}}

diff --git a/files/fr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html b/files/fr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html index 8fbe02c8ab..3312388810 100644 --- a/files/fr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html +++ b/files/fr/learn/getting_started_with_the_web/what_will_your_website_look_like/index.html @@ -1,6 +1,6 @@ --- title: Quel sera l'aspect de votre site web ? -slug: Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site +slug: Learn/Getting_started_with_the_web/What_will_your_website_look_like tags: - Apprendre - Composition @@ -9,6 +9,7 @@ tags: - Planification - Polices de caractères translation_of: Learn/Getting_started_with_the_web/What_will_your_website_look_like +original_slug: Apprendre/Commencer_avec_le_web/Quel_aspect_pour_votre_site ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/Commencer_avec_le_web/Installation_outils_de_base","Apprendre/Commencer_avec_le_web/Gérer_les_fichiers","Apprendre/Commencer_avec_le_web")}}
diff --git a/files/fr/learn/html/cheatsheet/index.html b/files/fr/learn/html/cheatsheet/index.html index 4f07dbb7b6..a3839113a3 100644 --- a/files/fr/learn/html/cheatsheet/index.html +++ b/files/fr/learn/html/cheatsheet/index.html @@ -1,12 +1,13 @@ --- title: Cheatsheet HTML -slug: Apprendre/HTML/Cheatsheet +slug: Learn/HTML/Cheatsheet tags: - Cheatsheet - HTML - Intermediate - Learn translation_of: Learn/HTML/Cheatsheet +original_slug: Apprendre/HTML/Cheatsheet ---
{{draft}}
diff --git a/files/fr/learn/html/howto/add_a_hit_map_on_top_of_an_image/index.html b/files/fr/learn/html/howto/add_a_hit_map_on_top_of_an_image/index.html index 836cd29e95..5d6e826597 100644 --- a/files/fr/learn/html/howto/add_a_hit_map_on_top_of_an_image/index.html +++ b/files/fr/learn/html/howto/add_a_hit_map_on_top_of_an_image/index.html @@ -1,12 +1,13 @@ --- title: Ajouter une carte de zones cliquables sur une image -slug: Apprendre/HTML/Comment/Ajouter_carte_zones_cliquables_sur_image +slug: Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image tags: - Guide - HTML - Intermediate - Navigation translation_of: Learn/HTML/Howto/Add_a_hit_map_on_top_of_an_image +original_slug: Apprendre/HTML/Comment/Ajouter_carte_zones_cliquables_sur_image ---

Dans cet article, nous verrons comment construire une carte imagée cliquable en commençant par les inconvénients de cette méthode.

diff --git a/files/fr/learn/html/howto/author_fast-loading_html_pages/index.html b/files/fr/learn/html/howto/author_fast-loading_html_pages/index.html index 58e21b4603..6be720524c 100644 --- a/files/fr/learn/html/howto/author_fast-loading_html_pages/index.html +++ b/files/fr/learn/html/howto/author_fast-loading_html_pages/index.html @@ -1,10 +1,11 @@ --- title: Astuces de création de pages HTML à affichage rapide -slug: Web/Guide/HTML/Astuces_de_création_de_pages_HTML_à_affichage_rapide +slug: Learn/HTML/Howto/Author_fast-loading_HTML_pages tags: - HTML - Performance translation_of: Learn/HTML/Howto/Author_fast-loading_HTML_pages +original_slug: Web/Guide/HTML/Astuces_de_création_de_pages_HTML_à_affichage_rapide ---

C'est connu, les internautes sont de grands impatients, ils veulent des résultats immédiats, avec des gros titres et des réponses courtes et efficaces. 
Une page web optimisé prévoit non seulement un site plus réactif, mais aussi de réduire la charge sur vos serveurs Web et votre connexion Internet. Cela peut être crucial pour les gros sites ou des sites qui ont un pic de trafic dans des circonstances exceptionnelles (telles que les Unes des journaux fracassantes). De plus, Google en tient compte pour son classement.

diff --git a/files/fr/learn/html/howto/define_terms_with_html/index.html b/files/fr/learn/html/howto/define_terms_with_html/index.html index 3e8aa64e90..ba6015387c 100644 --- a/files/fr/learn/html/howto/define_terms_with_html/index.html +++ b/files/fr/learn/html/howto/define_terms_with_html/index.html @@ -1,12 +1,13 @@ --- title: Définir des termes avec HTML -slug: Apprendre/HTML/Comment/Définir_des_termes_avec_HTML +slug: Learn/HTML/Howto/Define_terms_with_HTML tags: - Beginner - Guide - HTML - Learn translation_of: Learn/HTML/Howto/Define_terms_with_HTML +original_slug: Apprendre/HTML/Comment/Définir_des_termes_avec_HTML ---

HTML fournit plusieurs méthodes pour décrire la sémantique du contenu qu'on emploie (que ce soit intégré dans le texte ou dans un glossaire à part). Dans cet article, nous verrons comment correctement définir les termes utilisés au sein d'un document.

diff --git a/files/fr/learn/html/howto/index.html b/files/fr/learn/html/howto/index.html index 3db762dc5a..62b8556ca8 100644 --- a/files/fr/learn/html/howto/index.html +++ b/files/fr/learn/html/howto/index.html @@ -1,10 +1,11 @@ --- title: Apprendre à utiliser HTML pour résoudre des problèmes -slug: Apprendre/HTML/Comment +slug: Learn/HTML/Howto tags: - CodingScripting - HTML translation_of: Learn/HTML/Howto +original_slug: Apprendre/HTML/Comment ---

Une fois les bases acquises, il n'existe pas de voie idéale pour apprendre {{Glossary("HTML")}}. Vous pouvez ensuite progresser à votre rythme, en utilisant les balises qui vous sont utiles. HTML n'est qu'un ensemble de balises que vous pouvez utiliser pour structurer votre document et lui ajouter des fonctionnalités supplémentaires. Dans les articles suivants, nous travaillerons sur différents exemples illustrant comment utiliser HTML pour résoudre des problèmes fréquents qu'on rencontre lorsqu'on développe pour le Web. Si vous avez besoin d'explications détaillées sur une balise HTML donnée, n'hésitez pas à consulter notre référence HTML.

diff --git a/files/fr/learn/html/howto/use_data_attributes/index.html b/files/fr/learn/html/howto/use_data_attributes/index.html index d67fd6a93d..f18055985b 100644 --- a/files/fr/learn/html/howto/use_data_attributes/index.html +++ b/files/fr/learn/html/howto/use_data_attributes/index.html @@ -1,11 +1,12 @@ --- title: Utiliser les attributs de données -slug: Apprendre/HTML/Comment/Utiliser_attributs_donnes +slug: Learn/HTML/Howto/Use_data_attributes tags: - Guide - HTML - Web translation_of: Learn/HTML/Howto/Use_data_attributes +original_slug: Apprendre/HTML/Comment/Utiliser_attributs_donnes ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/howto/use_javascript_within_a_webpage/index.html b/files/fr/learn/html/howto/use_javascript_within_a_webpage/index.html index 7db20d6d76..c920171729 100644 --- a/files/fr/learn/html/howto/use_javascript_within_a_webpage/index.html +++ b/files/fr/learn/html/howto/use_javascript_within_a_webpage/index.html @@ -1,12 +1,13 @@ --- title: Utiliser JavaScript au sein d'une page web -slug: Apprendre/HTML/Comment/Utiliser_JavaScript_au_sein_d_une_page_web +slug: Learn/HTML/Howto/Use_JavaScript_within_a_webpage tags: - Beginner - HTML - JavaScript - OpenPractices translation_of: Learn/HTML/Howto/Use_JavaScript_within_a_webpage +original_slug: Apprendre/HTML/Comment/Utiliser_JavaScript_au_sein_d_une_page_web ---

Dans cet article, nous verrons comment améliorer les pages web en ajoutant du code JavaScript dans des documents HTML.

diff --git a/files/fr/learn/html/index.html b/files/fr/learn/html/index.html index 1874018d97..3e7ba5b847 100644 --- a/files/fr/learn/html/index.html +++ b/files/fr/learn/html/index.html @@ -1,6 +1,6 @@ --- title: 'Apprendre le HTML : guides et didacticiels' -slug: Apprendre/HTML +slug: Learn/HTML tags: - Apprentissage - Débutant @@ -9,6 +9,7 @@ tags: - Introduction - Rubrique translation_of: Learn/HTML +original_slug: Apprendre/HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/advanced_text_formatting/index.html b/files/fr/learn/html/introduction_to_html/advanced_text_formatting/index.html index 6e9ebf6f83..30a0127dc4 100644 --- a/files/fr/learn/html/introduction_to_html/advanced_text_formatting/index.html +++ b/files/fr/learn/html/introduction_to_html/advanced_text_formatting/index.html @@ -1,6 +1,6 @@ --- title: Formatage avancé du texte -slug: Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte +slug: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting tags: - Apprendre - Citation @@ -13,6 +13,7 @@ tags: - listes descriptives - sémantique translation_of: Learn/HTML/Introduction_to_HTML/Advanced_text_formatting +original_slug: Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/creating_hyperlinks/index.html b/files/fr/learn/html/introduction_to_html/creating_hyperlinks/index.html index b334b15b2c..313f7c4061 100644 --- a/files/fr/learn/html/introduction_to_html/creating_hyperlinks/index.html +++ b/files/fr/learn/html/introduction_to_html/creating_hyperlinks/index.html @@ -1,6 +1,6 @@ --- title: Création d'hyperliens -slug: Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks +slug: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks tags: - Apprendre - Codage @@ -14,6 +14,7 @@ tags: - hyperliens - relatif translation_of: Learn/HTML/Introduction_to_HTML/Creating_hyperlinks +original_slug: Apprendre/HTML/Introduction_à_HTML/Creating_hyperlinks ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals", "Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte", "Apprendre/HTML/Introduction_à_HTML")}}
diff --git a/files/fr/learn/html/introduction_to_html/debugging_html/index.html b/files/fr/learn/html/introduction_to_html/debugging_html/index.html index fe3176ca62..870342584b 100644 --- a/files/fr/learn/html/introduction_to_html/debugging_html/index.html +++ b/files/fr/learn/html/introduction_to_html/debugging_html/index.html @@ -1,6 +1,6 @@ --- title: Déboguer de l'HTML -slug: Apprendre/HTML/Introduction_à_HTML/Debugging_HTML +slug: Learn/HTML/Introduction_to_HTML/Debugging_HTML tags: - Codage - Débutant @@ -11,6 +11,7 @@ tags: - débogage - validateur translation_of: Learn/HTML/Introduction_to_HTML/Debugging_HTML +original_slug: Apprendre/HTML/Introduction_à_HTML/Debugging_HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/document_and_website_structure/index.html b/files/fr/learn/html/introduction_to_html/document_and_website_structure/index.html index e6111a4c4f..9bc182c45b 100644 --- a/files/fr/learn/html/introduction_to_html/document_and_website_structure/index.html +++ b/files/fr/learn/html/introduction_to_html/document_and_website_structure/index.html @@ -1,6 +1,6 @@ --- title: Structure de Site Web et de document -slug: Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure +slug: Learn/HTML/Introduction_to_HTML/Document_and_website_structure tags: - Codage - Disposition @@ -12,6 +12,7 @@ tags: - blocs - sémantique translation_of: Learn/HTML/Introduction_to_HTML/Document_and_website_structure +original_slug: Apprendre/HTML/Introduction_à_HTML/Document_and_website_structure ---
{{LearnSidebar}}
{{PreviousMenuNext("Apprendre/HTML/Introduction_à_HTML/formatage-avance-texte", "Apprendre/HTML/Introduction_à_HTML/Debugging_HTML","Apprendre/HTML/Introduction_à_HTML")}}
diff --git a/files/fr/learn/html/introduction_to_html/getting_started/index.html b/files/fr/learn/html/introduction_to_html/getting_started/index.html index 7717eae9e1..0c16653dfe 100644 --- a/files/fr/learn/html/introduction_to_html/getting_started/index.html +++ b/files/fr/learn/html/introduction_to_html/getting_started/index.html @@ -1,6 +1,6 @@ --- title: Commencer avec le HTML -slug: Apprendre/HTML/Introduction_à_HTML/Getting_started +slug: Learn/HTML/Introduction_to_HTML/Getting_started tags: - Attributs - Codage @@ -12,6 +12,7 @@ tags: - HTML - espace translation_of: Learn/HTML/Introduction_to_HTML/Getting_started +original_slug: Apprendre/HTML/Introduction_à_HTML/Getting_started ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/html_text_fundamentals/index.html b/files/fr/learn/html/introduction_to_html/html_text_fundamentals/index.html index 7065cb861e..e92becce4a 100644 --- a/files/fr/learn/html/introduction_to_html/html_text_fundamentals/index.html +++ b/files/fr/learn/html/introduction_to_html/html_text_fundamentals/index.html @@ -1,6 +1,6 @@ --- title: Fondamentaux du texte HTML -slug: Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals +slug: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals tags: - Apprendre - Débutant @@ -13,6 +13,7 @@ tags: - Titres - sémantique translation_of: Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals +original_slug: Apprendre/HTML/Introduction_à_HTML/HTML_text_fundamentals ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/index.html b/files/fr/learn/html/introduction_to_html/index.html index d9d5aa9a05..92054d53c3 100644 --- a/files/fr/learn/html/introduction_to_html/index.html +++ b/files/fr/learn/html/introduction_to_html/index.html @@ -1,6 +1,6 @@ --- title: Introduction au HTML -slug: Apprendre/HTML/Introduction_à_HTML +slug: Learn/HTML/Introduction_to_HTML tags: - Codage - HTML @@ -12,6 +12,7 @@ tags: - head - sémantique translation_of: Learn/HTML/Introduction_to_HTML +original_slug: Apprendre/HTML/Introduction_à_HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/marking_up_a_letter/index.html b/files/fr/learn/html/introduction_to_html/marking_up_a_letter/index.html index cdf9dd4cf1..8dac71d695 100644 --- a/files/fr/learn/html/introduction_to_html/marking_up_a_letter/index.html +++ b/files/fr/learn/html/introduction_to_html/marking_up_a_letter/index.html @@ -1,6 +1,6 @@ --- title: Faire une lettre -slug: Apprendre/HTML/Introduction_à_HTML/Marking_up_a_letter +slug: Learn/HTML/Introduction_to_HTML/Marking_up_a_letter tags: - Codage - Débutant @@ -10,6 +10,7 @@ tags: - Texte - en-tête translation_of: Learn/HTML/Introduction_to_HTML/Marking_up_a_letter +original_slug: Apprendre/HTML/Introduction_à_HTML/Marking_up_a_letter ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/introduction_to_html/structuring_a_page_of_content/index.html b/files/fr/learn/html/introduction_to_html/structuring_a_page_of_content/index.html index acbe843b62..08e1029fa2 100644 --- a/files/fr/learn/html/introduction_to_html/structuring_a_page_of_content/index.html +++ b/files/fr/learn/html/introduction_to_html/structuring_a_page_of_content/index.html @@ -1,7 +1,8 @@ --- title: Structurer une page de contenu -slug: Apprendre/HTML/Introduction_à_HTML/Structuring_a_page_of_content +slug: Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content translation_of: Learn/HTML/Introduction_to_HTML/Structuring_a_page_of_content +original_slug: Apprendre/HTML/Introduction_à_HTML/Structuring_a_page_of_content ---
{{LearnSidebar}}
{{PreviousNext("Apprendre/HTML/Introduction_à_HTML/Marking_up_a_letter", "Apprendre/HTML/Introduction_à_HTML")}}
diff --git a/files/fr/learn/html/introduction_to_html/the_head_metadata_in_html/index.html b/files/fr/learn/html/introduction_to_html/the_head_metadata_in_html/index.html index f4d2163b6f..8b94e78be0 100644 --- a/files/fr/learn/html/introduction_to_html/the_head_metadata_in_html/index.html +++ b/files/fr/learn/html/introduction_to_html/the_head_metadata_in_html/index.html @@ -1,7 +1,8 @@ --- title: Qu'avez-vous dans la tête ? Métadonnées en HTML -slug: Apprendre/HTML/Introduction_à_HTML/The_head_metadata_in_HTML +slug: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML translation_of: Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HTML +original_slug: Apprendre/HTML/Introduction_à_HTML/The_head_metadata_in_HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html b/files/fr/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html index a6ea2d91cc..5c2520b633 100644 --- a/files/fr/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/adding_vector_graphics_to_the_web/index.html @@ -1,6 +1,6 @@ --- title: Ajouter des images vectorielles à une page web -slug: Apprendre/HTML/Comment/Ajouter_des_images_vectorielles_à_une_page_web +slug: Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web tags: - Graphics - Guide @@ -9,6 +9,7 @@ tags: - Learn - SVG translation_of: Learn/HTML/Multimedia_and_embedding/Adding_vector_graphics_to_the_Web +original_slug: Apprendre/HTML/Comment/Ajouter_des_images_vectorielles_à_une_page_web ---

{{LearnSidebar}}
{{PreviousMenuNext("Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies", "Learn/HTML/Multimedia_and_embedding/Responsive_images", "Learn/HTML/Multimedia_and_embedding")}}

diff --git a/files/fr/learn/html/multimedia_and_embedding/images_in_html/index.html b/files/fr/learn/html/multimedia_and_embedding/images_in_html/index.html index ff8adaf25c..762a36442a 100644 --- a/files/fr/learn/html/multimedia_and_embedding/images_in_html/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/images_in_html/index.html @@ -1,6 +1,6 @@ --- title: Les images en HTML -slug: Apprendre/HTML/Multimedia_and_embedding/Images_in_HTML +slug: Learn/HTML/Multimedia_and_embedding/Images_in_HTML tags: - Débutant - Guide @@ -13,6 +13,7 @@ tags: - img - src translation_of: Learn/HTML/Multimedia_and_embedding/Images_in_HTML +original_slug: Apprendre/HTML/Multimedia_and_embedding/Images_in_HTML ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/multimedia_and_embedding/index.html b/files/fr/learn/html/multimedia_and_embedding/index.html index bcb6a30361..86eb86cd9f 100644 --- a/files/fr/learn/html/multimedia_and_embedding/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/index.html @@ -1,6 +1,6 @@ --- title: Multimédia et Intégration -slug: Apprendre/HTML/Multimedia_and_embedding +slug: Learn/HTML/Multimedia_and_embedding tags: - Apprentissage - Audio @@ -18,6 +18,7 @@ tags: - iframes - imagemaps translation_of: Learn/HTML/Multimedia_and_embedding +original_slug: Apprendre/HTML/Multimedia_and_embedding ---

{{LearnSidebar}}

diff --git a/files/fr/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html b/files/fr/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html index 26193c8bac..bf2054f890 100644 --- a/files/fr/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/mozilla_splash_page/index.html @@ -1,7 +1,8 @@ --- title: 'Évaluation : page d''accueil Mozilla' -slug: Apprendre/HTML/Multimedia_and_embedding/Mozilla_splash_page +slug: Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page translation_of: Learn/HTML/Multimedia_and_embedding/Mozilla_splash_page +original_slug: Apprendre/HTML/Multimedia_and_embedding/Mozilla_splash_page ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html b/files/fr/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html index d90d486303..a35a7d6131 100644 --- a/files/fr/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/other_embedding_technologies/index.html @@ -1,6 +1,6 @@ --- title: Des objets aux « iframe » — autres techniques d'intégration -slug: Apprendre/HTML/Multimedia_and_embedding/Other_embedding_technologies +slug: Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies tags: - Apprentissage - Article @@ -15,6 +15,7 @@ tags: - embed - iframe translation_of: Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies +original_slug: Apprendre/HTML/Multimedia_and_embedding/Other_embedding_technologies ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/multimedia_and_embedding/responsive_images/index.html b/files/fr/learn/html/multimedia_and_embedding/responsive_images/index.html index 8aa1cd799b..9f2d2a3a69 100644 --- a/files/fr/learn/html/multimedia_and_embedding/responsive_images/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/responsive_images/index.html @@ -1,6 +1,6 @@ --- title: Images adaptatives -slug: Apprendre/HTML/Comment/Ajouter_des_images_adaptatives_à_une_page_web +slug: Learn/HTML/Multimedia_and_embedding/Responsive_images tags: - Design - Débutant @@ -15,6 +15,7 @@ tags: - sizes - srcset translation_of: Learn/HTML/Multimedia_and_embedding/Responsive_images +original_slug: Apprendre/HTML/Comment/Ajouter_des_images_adaptatives_à_une_page_web ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/multimedia_and_embedding/video_and_audio_content/index.html b/files/fr/learn/html/multimedia_and_embedding/video_and_audio_content/index.html index deb09eb186..4854d24907 100644 --- a/files/fr/learn/html/multimedia_and_embedding/video_and_audio_content/index.html +++ b/files/fr/learn/html/multimedia_and_embedding/video_and_audio_content/index.html @@ -1,6 +1,6 @@ --- title: Contenu audio et vidéo -slug: Apprendre/HTML/Multimedia_and_embedding/Contenu_audio_et_video +slug: Learn/HTML/Multimedia_and_embedding/Video_and_audio_content tags: - Article - Audio @@ -12,6 +12,7 @@ tags: - pistes (audio ou texte) - sous‑titres translation_of: Learn/HTML/Multimedia_and_embedding/Video_and_audio_content +original_slug: Apprendre/HTML/Multimedia_and_embedding/Contenu_audio_et_video ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/tables/advanced/index.html b/files/fr/learn/html/tables/advanced/index.html index 30815fb4ec..02f4fc5dba 100644 --- a/files/fr/learn/html/tables/advanced/index.html +++ b/files/fr/learn/html/tables/advanced/index.html @@ -1,6 +1,6 @@ --- title: 'Tableaux HTML : dispositions avancées et accessibilité' -slug: Apprendre/HTML/Tableaux/Advanced +slug: Learn/HTML/Tables/Advanced tags: - Accessibilité - Apprentissage @@ -19,6 +19,7 @@ tags: - tfoot - thead translation_of: Learn/HTML/Tables/Advanced +original_slug: Apprendre/HTML/Tableaux/Advanced ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/tables/basics/index.html b/files/fr/learn/html/tables/basics/index.html index b218a2b677..b4e3cf6667 100644 --- a/files/fr/learn/html/tables/basics/index.html +++ b/files/fr/learn/html/tables/basics/index.html @@ -1,6 +1,6 @@ --- title: 'Tableaux HTML : notions de base' -slug: Apprendre/HTML/Tableaux/Basics +slug: Learn/HTML/Tables/Basics tags: - Apprentissage - Article @@ -17,6 +17,7 @@ tags: - rangées - rowspan translation_of: Learn/HTML/Tables/Basics +original_slug: Apprendre/HTML/Tableaux/Basics ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/tables/index.html b/files/fr/learn/html/tables/index.html index 5dd680eddf..1344ec014c 100644 --- a/files/fr/learn/html/tables/index.html +++ b/files/fr/learn/html/tables/index.html @@ -1,6 +1,6 @@ --- title: Les tableaux en HTML -slug: Apprendre/HTML/Tableaux +slug: Learn/HTML/Tables tags: - Article - CodingScripting @@ -11,6 +11,7 @@ tags: - Module - Tableaux translation_of: Learn/HTML/Tables +original_slug: Apprendre/HTML/Tableaux ---
{{LearnSidebar}}
diff --git a/files/fr/learn/html/tables/structuring_planet_data/index.html b/files/fr/learn/html/tables/structuring_planet_data/index.html index 7ee33d6adf..9732baa868 100644 --- a/files/fr/learn/html/tables/structuring_planet_data/index.html +++ b/files/fr/learn/html/tables/structuring_planet_data/index.html @@ -1,7 +1,8 @@ --- title: "Revue\_: structurer les données des planètes" -slug: Apprendre/HTML/Tableaux/Structuring_planet_data +slug: Learn/HTML/Tables/Structuring_planet_data translation_of: Learn/HTML/Tables/Structuring_planet_data +original_slug: Apprendre/HTML/Tableaux/Structuring_planet_data ---
{{LearnSidebar}}
diff --git a/files/fr/learn/index.html b/files/fr/learn/index.html index 43c361e157..6491f09dbe 100644 --- a/files/fr/learn/index.html +++ b/files/fr/learn/index.html @@ -1,6 +1,6 @@ --- title: Apprendre le développement web -slug: Apprendre +slug: Learn tags: - Apprendre - CSS @@ -11,6 +11,7 @@ tags: - Landing - Web translation_of: Learn +original_slug: Apprendre ---

{{LearnSidebar}}

diff --git a/files/fr/learn/index/index.html b/files/fr/learn/index/index.html index fac23a4c5b..040b4c9da2 100644 --- a/files/fr/learn/index/index.html +++ b/files/fr/learn/index/index.html @@ -1,11 +1,12 @@ --- title: Index -slug: Apprendre/Index +slug: Learn/Index tags: - Index - Learn - MDN - Meta translation_of: Learn/Index +original_slug: Apprendre/Index ---

{{Index("/fr/docs/Apprendre")}}

diff --git a/files/fr/learn/javascript/building_blocks/build_your_own_function/index.html b/files/fr/learn/javascript/building_blocks/build_your_own_function/index.html index 6f53bebcd7..1463cc1e20 100644 --- a/files/fr/learn/javascript/building_blocks/build_your_own_function/index.html +++ b/files/fr/learn/javascript/building_blocks/build_your_own_function/index.html @@ -1,6 +1,6 @@ --- title: Construire vos propres fonctions -slug: Apprendre/JavaScript/Building_blocks/Build_your_own_function +slug: Learn/JavaScript/Building_blocks/Build_your_own_function tags: - Apprentissage - Article @@ -13,6 +13,7 @@ tags: - Scripting - Tutoriel translation_of: Learn/JavaScript/Building_blocks/Build_your_own_function +original_slug: Apprendre/JavaScript/Building_blocks/Build_your_own_function ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/conditionals/index.html b/files/fr/learn/javascript/building_blocks/conditionals/index.html index b7fa0fa08c..a41c2385f6 100644 --- a/files/fr/learn/javascript/building_blocks/conditionals/index.html +++ b/files/fr/learn/javascript/building_blocks/conditionals/index.html @@ -1,6 +1,6 @@ --- title: Prendre des décisions dans le code — conditions -slug: Apprendre/JavaScript/Building_blocks/conditionals +slug: Learn/JavaScript/Building_blocks/conditionals tags: - Article - CodingScripting @@ -13,6 +13,7 @@ tags: - if - ternaire translation_of: Learn/JavaScript/Building_blocks/conditionals +original_slug: Apprendre/JavaScript/Building_blocks/conditionals ---

{{LearnSidebar}}

diff --git a/files/fr/learn/javascript/building_blocks/events/index.html b/files/fr/learn/javascript/building_blocks/events/index.html index 10f0118ecf..c61ed3635e 100644 --- a/files/fr/learn/javascript/building_blocks/events/index.html +++ b/files/fr/learn/javascript/building_blocks/events/index.html @@ -1,6 +1,6 @@ --- title: Introduction aux évènements -slug: Apprendre/JavaScript/Building_blocks/Evènements +slug: Learn/JavaScript/Building_blocks/Events tags: - Article - Codage @@ -10,6 +10,7 @@ tags: - Guide - JavaScript translation_of: Learn/JavaScript/Building_blocks/Events +original_slug: Apprendre/JavaScript/Building_blocks/Evènements ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/functions/index.html b/files/fr/learn/javascript/building_blocks/functions/index.html index 43f3e916e1..f7f7cea4e1 100644 --- a/files/fr/learn/javascript/building_blocks/functions/index.html +++ b/files/fr/learn/javascript/building_blocks/functions/index.html @@ -1,7 +1,8 @@ --- title: Fonctions — des blocs de code réutilisables -slug: Apprendre/JavaScript/Building_blocks/Fonctions +slug: Learn/JavaScript/Building_blocks/Functions translation_of: Learn/JavaScript/Building_blocks/Functions +original_slug: Apprendre/JavaScript/Building_blocks/Fonctions ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/image_gallery/index.html b/files/fr/learn/javascript/building_blocks/image_gallery/index.html index 07a51499fd..8f7aebd796 100644 --- a/files/fr/learn/javascript/building_blocks/image_gallery/index.html +++ b/files/fr/learn/javascript/building_blocks/image_gallery/index.html @@ -1,6 +1,6 @@ --- title: Galerie d'images -slug: Apprendre/JavaScript/Building_blocks/Image_gallery +slug: Learn/JavaScript/Building_blocks/Image_gallery tags: - Apprendre - Boucles @@ -9,10 +9,11 @@ tags: - Gestionnaire d'événement - JavaScript - conditions - - 'l10n:priority' + - l10n:priority - Écriture de code - évènements translation_of: Learn/JavaScript/Building_blocks/Image_gallery +original_slug: Apprendre/JavaScript/Building_blocks/Image_gallery ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/index.html b/files/fr/learn/javascript/building_blocks/index.html index 7efffb563e..3fab2ec928 100644 --- a/files/fr/learn/javascript/building_blocks/index.html +++ b/files/fr/learn/javascript/building_blocks/index.html @@ -1,6 +1,6 @@ --- title: Principaux blocs en JS -slug: Apprendre/JavaScript/Building_blocks +slug: Learn/JavaScript/Building_blocks tags: - Auto-évaluation - Boucles @@ -11,6 +11,7 @@ tags: - conditions - évènements translation_of: Learn/JavaScript/Building_blocks +original_slug: Apprendre/JavaScript/Building_blocks ---
{{JsSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/looping_code/index.html b/files/fr/learn/javascript/building_blocks/looping_code/index.html index 820a4d09e2..22a609df6e 100644 --- a/files/fr/learn/javascript/building_blocks/looping_code/index.html +++ b/files/fr/learn/javascript/building_blocks/looping_code/index.html @@ -1,6 +1,6 @@ --- title: Les boucles dans le code -slug: Apprendre/JavaScript/Building_blocks/Looping_code +slug: Learn/JavaScript/Building_blocks/Looping_code tags: - Article - CodingScripting @@ -13,9 +13,10 @@ tags: - break - continue - for - - 'l10n:priority' + - l10n:priority - while translation_of: Learn/JavaScript/Building_blocks/Looping_code +original_slug: Apprendre/JavaScript/Building_blocks/Looping_code ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/building_blocks/return_values/index.html b/files/fr/learn/javascript/building_blocks/return_values/index.html index 72ed199a4c..d272b2fc1c 100644 --- a/files/fr/learn/javascript/building_blocks/return_values/index.html +++ b/files/fr/learn/javascript/building_blocks/return_values/index.html @@ -1,6 +1,6 @@ --- title: Valeurs de retour des fonctions -slug: Apprendre/JavaScript/Building_blocks/Return_values +slug: Learn/JavaScript/Building_blocks/Return_values tags: - Apprendre - Article @@ -12,6 +12,7 @@ tags: - Valeurs de retour - Écriture de code translation_of: Learn/JavaScript/Building_blocks/Return_values +original_slug: Apprendre/JavaScript/Building_blocks/Return_values ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/client-side_storage/index.html b/files/fr/learn/javascript/client-side_web_apis/client-side_storage/index.html index e5226ffa24..7bae8cbfe8 100644 --- a/files/fr/learn/javascript/client-side_web_apis/client-side_storage/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/client-side_storage/index.html @@ -1,6 +1,6 @@ --- title: Stockage côté client -slug: Apprendre/JavaScript/Client-side_web_APIs/Client-side_storage +slug: Learn/JavaScript/Client-side_web_APIs/Client-side_storage tags: - API - Apprendre @@ -11,6 +11,7 @@ tags: - JavaScript - Storage translation_of: Learn/JavaScript/Client-side_web_APIs/Client-side_storage +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Client-side_storage ---

{{LearnSidebar}}

diff --git a/files/fr/learn/javascript/client-side_web_apis/drawing_graphics/index.html b/files/fr/learn/javascript/client-side_web_apis/drawing_graphics/index.html index ce68c6620b..0af7689eaa 100644 --- a/files/fr/learn/javascript/client-side_web_apis/drawing_graphics/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/drawing_graphics/index.html @@ -1,6 +1,6 @@ --- title: Dessiner des éléments graphiques -slug: Apprendre/JavaScript/Client-side_web_APIs/Drawing_graphics +slug: Learn/JavaScript/Client-side_web_APIs/Drawing_graphics tags: - API - Apprendre @@ -12,6 +12,7 @@ tags: - JavaScript - WebGL translation_of: Learn/JavaScript/Client-side_web_APIs/Drawing_graphics +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Drawing_graphics ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/Client-side_web_APIs/Third_party_APIs", "Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs", "Learn/JavaScript/Client-side_web_APIs")}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/fetching_data/index.html b/files/fr/learn/javascript/client-side_web_apis/fetching_data/index.html index 2acc2ed9b3..2c693f757b 100644 --- a/files/fr/learn/javascript/client-side_web_apis/fetching_data/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/fetching_data/index.html @@ -1,6 +1,6 @@ --- title: Récupérer des données du serveur -slug: Apprendre/JavaScript/Client-side_web_APIs/Fetching_data +slug: Learn/JavaScript/Client-side_web_APIs/Fetching_data tags: - API - Apprendre @@ -12,6 +12,7 @@ tags: - XHR - data translation_of: Learn/JavaScript/Client-side_web_APIs/Fetching_data +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Fetching_data ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/index.html b/files/fr/learn/javascript/client-side_web_apis/index.html index d5d6f410e3..ca24150652 100644 --- a/files/fr/learn/javascript/client-side_web_apis/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/index.html @@ -1,6 +1,6 @@ --- title: API web utilisées côté client -slug: Apprendre/JavaScript/Client-side_web_APIs +slug: Learn/JavaScript/Client-side_web_APIs tags: - API - API Web @@ -16,6 +16,7 @@ tags: - Module - données translation_of: Learn/JavaScript/Client-side_web_APIs +original_slug: Apprendre/JavaScript/Client-side_web_APIs ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/introduction/index.html b/files/fr/learn/javascript/client-side_web_apis/introduction/index.html index b7e2ed71b4..1d763d914b 100644 --- a/files/fr/learn/javascript/client-side_web_apis/introduction/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/introduction/index.html @@ -1,6 +1,6 @@ --- title: Introduction aux API du Web -slug: Apprendre/JavaScript/Client-side_web_APIs/Introduction +slug: Learn/JavaScript/Client-side_web_APIs/Introduction tags: - API - API Web @@ -13,6 +13,7 @@ tags: - Tierce partie - côté‑client translation_of: Learn/JavaScript/Client-side_web_APIs/Introduction +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Introduction ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/manipulating_documents/index.html b/files/fr/learn/javascript/client-side_web_apis/manipulating_documents/index.html index 79911663f8..f51770507e 100644 --- a/files/fr/learn/javascript/client-side_web_apis/manipulating_documents/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/manipulating_documents/index.html @@ -1,6 +1,6 @@ --- title: Manipuler des documents -slug: Apprendre/JavaScript/Client-side_web_APIs/Manipulating_documents +slug: Learn/JavaScript/Client-side_web_APIs/Manipulating_documents tags: - API - Apprendre @@ -14,6 +14,7 @@ tags: - WebAPI - Window translation_of: Learn/JavaScript/Client-side_web_APIs/Manipulating_documents +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Manipulating_documents ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/third_party_apis/index.html b/files/fr/learn/javascript/client-side_web_apis/third_party_apis/index.html index f8e36b2078..c0d337f3d1 100644 --- a/files/fr/learn/javascript/client-side_web_apis/third_party_apis/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/third_party_apis/index.html @@ -1,11 +1,12 @@ --- title: API tierces -slug: Apprendre/JavaScript/Client-side_web_APIs/Third_party_APIs +slug: Learn/JavaScript/Client-side_web_APIs/Third_party_APIs tags: - API - Apprendre - Débutant translation_of: Learn/JavaScript/Client-side_web_APIs/Third_party_APIs +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Third_party_APIs ---
{{LearnSidebar}}{{PreviousMenuNext("Learn/JavaScript/Client-side_web_APIs/Fetching_data", "Learn/JavaScript/Client-side_web_APIs/Drawing_graphics", "Learn/JavaScript/Client-side_web_APIs")}}
diff --git a/files/fr/learn/javascript/client-side_web_apis/video_and_audio_apis/index.html b/files/fr/learn/javascript/client-side_web_apis/video_and_audio_apis/index.html index 358458db64..6569f167d1 100644 --- a/files/fr/learn/javascript/client-side_web_apis/video_and_audio_apis/index.html +++ b/files/fr/learn/javascript/client-side_web_apis/video_and_audio_apis/index.html @@ -1,6 +1,6 @@ --- title: APIs vidéo et audio -slug: Apprendre/JavaScript/Client-side_web_APIs/Video_and_audio_APIs +slug: Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs tags: - API - Apprendre @@ -12,6 +12,7 @@ tags: - JavaScript - Video translation_of: Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs +original_slug: Apprendre/JavaScript/Client-side_web_APIs/Video_and_audio_APIs ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/first_steps/arrays/index.html b/files/fr/learn/javascript/first_steps/arrays/index.html index 4fc38abf8d..df8d360351 100644 --- a/files/fr/learn/javascript/first_steps/arrays/index.html +++ b/files/fr/learn/javascript/first_steps/arrays/index.html @@ -1,6 +1,6 @@ --- title: Les tableaux -slug: Learn/JavaScript/First_steps/tableaux +slug: Learn/JavaScript/First_steps/Arrays tags: - Apprendre - Article @@ -14,6 +14,7 @@ tags: - décalage - séparer translation_of: Learn/JavaScript/First_steps/Arrays +original_slug: Learn/JavaScript/First_steps/tableaux ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/first_steps/test_your_skills_colon__arrays/index.html b/files/fr/learn/javascript/first_steps/test_your_skills_colon__arrays/index.html index 240e934831..546eb86a8c 100644 --- a/files/fr/learn/javascript/first_steps/test_your_skills_colon__arrays/index.html +++ b/files/fr/learn/javascript/first_steps/test_your_skills_colon__arrays/index.html @@ -1,7 +1,8 @@ --- title: 'Testez vos compétences: Tableaux' -slug: 'Learn/JavaScript/First_steps/Testes_vos_competence:_Tableaux' -translation_of: 'Learn/JavaScript/First_steps/Test_your_skills:_Arrays' +slug: Learn/JavaScript/First_steps/Test_your_skills:_Arrays +translation_of: Learn/JavaScript/First_steps/Test_your_skills:_Arrays +original_slug: Learn/JavaScript/First_steps/Testes_vos_competence:_Tableaux ---
{{learnsidebar}}
diff --git a/files/fr/learn/javascript/first_steps/useful_string_methods/index.html b/files/fr/learn/javascript/first_steps/useful_string_methods/index.html index d81c3ccb4e..f36b9f5cb2 100644 --- a/files/fr/learn/javascript/first_steps/useful_string_methods/index.html +++ b/files/fr/learn/javascript/first_steps/useful_string_methods/index.html @@ -1,6 +1,6 @@ --- title: Méthodes utiles pour les chaînes de caractères -slug: Learn/JavaScript/First_steps/methode_chaine_utile +slug: Learn/JavaScript/First_steps/Useful_string_methods tags: - Apprentissage - Article @@ -15,6 +15,7 @@ tags: - minuscule - remplacer translation_of: Learn/JavaScript/First_steps/Useful_string_methods +original_slug: Learn/JavaScript/First_steps/methode_chaine_utile ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/index.html b/files/fr/learn/javascript/index.html index a10f2deb2d..cc1ac2b10b 100644 --- a/files/fr/learn/javascript/index.html +++ b/files/fr/learn/javascript/index.html @@ -1,6 +1,6 @@ --- title: JavaScript -slug: Apprendre/JavaScript +slug: Learn/JavaScript tags: - Débutant - Développement @@ -8,6 +8,7 @@ tags: - Modules - scripts translation_of: Learn/JavaScript +original_slug: Apprendre/JavaScript ---

{{LearnSidebar}}

diff --git a/files/fr/learn/javascript/objects/adding_bouncing_balls_features/index.html b/files/fr/learn/javascript/objects/adding_bouncing_balls_features/index.html index 36232925ec..5bd3866baa 100644 --- a/files/fr/learn/javascript/objects/adding_bouncing_balls_features/index.html +++ b/files/fr/learn/javascript/objects/adding_bouncing_balls_features/index.html @@ -1,7 +1,6 @@ --- title: Ajouter des fonctionnalités à notre exercice des balles rebondissantes -slug: >- - Learn/JavaScript/Objects/Ajouter_des_fonctionnalités_à_notre_démo_de_balles_rebondissantes +slug: Learn/JavaScript/Objects/Adding_bouncing_balls_features tags: - Apprentissage - CodingScripting @@ -12,6 +11,8 @@ tags: - Objet - Orienté objet translation_of: Learn/JavaScript/Objects/Adding_bouncing_balls_features +original_slug: >- + Learn/JavaScript/Objects/Ajouter_des_fonctionnalités_à_notre_démo_de_balles_rebondissantes ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/objects/inheritance/index.html b/files/fr/learn/javascript/objects/inheritance/index.html index 9359b6f4ee..b54af2f529 100644 --- a/files/fr/learn/javascript/objects/inheritance/index.html +++ b/files/fr/learn/javascript/objects/inheritance/index.html @@ -1,6 +1,6 @@ --- title: L'héritage au sein de JavaScript -slug: Learn/JavaScript/Objects/Heritage +slug: Learn/JavaScript/Objects/Inheritance tags: - Apprendre - Article @@ -12,6 +12,7 @@ tags: - Programmation orientée objet - Prototype translation_of: Learn/JavaScript/Objects/Inheritance +original_slug: Learn/JavaScript/Objects/Heritage ---

{{LearnSidebar}}

diff --git a/files/fr/learn/javascript/objects/object-oriented_js/index.html b/files/fr/learn/javascript/objects/object-oriented_js/index.html index c16e9a230e..1671769acb 100644 --- a/files/fr/learn/javascript/objects/object-oriented_js/index.html +++ b/files/fr/learn/javascript/objects/object-oriented_js/index.html @@ -1,6 +1,6 @@ --- title: Le JavaScript orienté objet pour débutants -slug: Learn/JavaScript/Objects/JS_orienté-objet +slug: Learn/JavaScript/Objects/Object-oriented_JS tags: - Apprendre - Débutant @@ -10,6 +10,7 @@ tags: - OOP - POO translation_of: Learn/JavaScript/Objects/Object-oriented_JS +original_slug: Learn/JavaScript/Objects/JS_orienté-objet ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/objects/object_building_practice/index.html b/files/fr/learn/javascript/objects/object_building_practice/index.html index a2ab4270eb..33cf718b63 100644 --- a/files/fr/learn/javascript/objects/object_building_practice/index.html +++ b/files/fr/learn/javascript/objects/object_building_practice/index.html @@ -1,6 +1,6 @@ --- title: La construction d'objet en pratique -slug: Learn/JavaScript/Objects/la_construction_d_objet_en_pratique +slug: Learn/JavaScript/Objects/Object_building_practice tags: - Apprendre - Article @@ -11,6 +11,7 @@ tags: - Objets - Tutoriel translation_of: Learn/JavaScript/Objects/Object_building_practice +original_slug: Learn/JavaScript/Objects/la_construction_d_objet_en_pratique ---
{{LearnSidebar}}
diff --git a/files/fr/learn/javascript/objects/object_prototypes/index.html b/files/fr/learn/javascript/objects/object_prototypes/index.html index efb3681f18..9cf87e30ad 100644 --- a/files/fr/learn/javascript/objects/object_prototypes/index.html +++ b/files/fr/learn/javascript/objects/object_prototypes/index.html @@ -1,11 +1,12 @@ --- title: Prototypes Objet -slug: Learn/JavaScript/Objects/Prototypes_Objet +slug: Learn/JavaScript/Objects/Object_prototypes tags: - Constructeur - JavaScript - Prototype translation_of: Learn/JavaScript/Objects/Object_prototypes +original_slug: Learn/JavaScript/Objects/Prototypes_Objet ---
{{LearnSidebar}}
diff --git a/files/fr/learn/performance/why_web_performance/index.html b/files/fr/learn/performance/why_web_performance/index.html index ec49c36548..8cb054da54 100644 --- a/files/fr/learn/performance/why_web_performance/index.html +++ b/files/fr/learn/performance/why_web_performance/index.html @@ -1,6 +1,6 @@ --- title: Le "pourquoi" des performances Web -slug: Learn/Performance/pourquoi_performance_web +slug: Learn/Performance/why_web_performance tags: - Apprendre - Débutant @@ -10,6 +10,7 @@ tags: - Reference - Tutoriel translation_of: Learn/Performance/why_web_performance +original_slug: Learn/Performance/pourquoi_performance_web ---
{{LearnSidebar}}
diff --git a/files/fr/learn/server-side/django/generic_views/index.html b/files/fr/learn/server-side/django/generic_views/index.html index f2d48431fc..3f87155e82 100644 --- a/files/fr/learn/server-side/django/generic_views/index.html +++ b/files/fr/learn/server-side/django/generic_views/index.html @@ -1,6 +1,6 @@ --- title: 'Tutoriel Django - 6e partie : Vues génériques pour les listes et les détails' -slug: Learn/Server-side/Django/Vues_generiques +slug: Learn/Server-side/Django/Generic_views tags: - Beginner - Learn @@ -9,6 +9,7 @@ tags: - django templates - django views translation_of: Learn/Server-side/Django/Generic_views +original_slug: Learn/Server-side/Django/Vues_generiques ---
diff --git a/files/fr/learn/server-side/first_steps/client-server_overview/index.html b/files/fr/learn/server-side/first_steps/client-server_overview/index.html index f20b96e64d..9e6ca75895 100644 --- a/files/fr/learn/server-side/first_steps/client-server_overview/index.html +++ b/files/fr/learn/server-side/first_steps/client-server_overview/index.html @@ -1,7 +1,8 @@ --- title: La relation Client-Serveur -slug: Learn/Server-side/Premiers_pas/Client-Serveur +slug: Learn/Server-side/First_steps/Client-Server_overview translation_of: Learn/Server-side/First_steps/Client-Server_overview +original_slug: Learn/Server-side/Premiers_pas/Client-Serveur ---
{{LearnSidebar}}
diff --git a/files/fr/learn/server-side/first_steps/index.html b/files/fr/learn/server-side/first_steps/index.html index a8caf88e4d..5b2b93d425 100644 --- a/files/fr/learn/server-side/first_steps/index.html +++ b/files/fr/learn/server-side/first_steps/index.html @@ -1,6 +1,6 @@ --- title: Premiers pas dans la programmation d'un site côté serveur -slug: Learn/Server-side/Premiers_pas +slug: Learn/Server-side/First_steps tags: - Débutant - Encodage @@ -8,6 +8,7 @@ tags: - Intro - Programmation côté serveur translation_of: Learn/Server-side/First_steps +original_slug: Learn/Server-side/Premiers_pas ---
{{LearnSidebar}}
diff --git a/files/fr/learn/server-side/first_steps/introduction/index.html b/files/fr/learn/server-side/first_steps/introduction/index.html index d61d1d18c4..6d7a56563e 100644 --- a/files/fr/learn/server-side/first_steps/introduction/index.html +++ b/files/fr/learn/server-side/first_steps/introduction/index.html @@ -1,6 +1,6 @@ --- title: Présentation du côté serveur -slug: Learn/Server-side/Premiers_pas/Introduction +slug: Learn/Server-side/First_steps/Introduction tags: - Apprendre - Débutant @@ -9,6 +9,7 @@ tags: - Programmation côté serveur - Serveur translation_of: Learn/Server-side/First_steps/Introduction +original_slug: Learn/Server-side/Premiers_pas/Introduction ---
{{LearnSidebar}}
diff --git a/files/fr/learn/server-side/first_steps/web_frameworks/index.html b/files/fr/learn/server-side/first_steps/web_frameworks/index.html index b75c70fa0f..9e44b23927 100644 --- a/files/fr/learn/server-side/first_steps/web_frameworks/index.html +++ b/files/fr/learn/server-side/first_steps/web_frameworks/index.html @@ -1,12 +1,13 @@ --- title: Les frameworks web côté serveur -slug: Learn/Server-side/Premiers_pas/Web_frameworks +slug: Learn/Server-side/First_steps/Web_frameworks tags: - Débutant - Guide - Server - Web translation_of: Learn/Server-side/First_steps/Web_frameworks +original_slug: Learn/Server-side/Premiers_pas/Web_frameworks ---
{{LearnSidebar}}
diff --git a/files/fr/learn/server-side/first_steps/website_security/index.html b/files/fr/learn/server-side/first_steps/website_security/index.html index bc47ab4042..d6e65ae2de 100644 --- a/files/fr/learn/server-side/first_steps/website_security/index.html +++ b/files/fr/learn/server-side/first_steps/website_security/index.html @@ -1,12 +1,13 @@ --- title: La sécurité d'un site Web -slug: Learn/Server-side/Premiers_pas/Website_security +slug: Learn/Server-side/First_steps/Website_security tags: - Débutant - Guide - Sécurité - Sécurité Web translation_of: Learn/Server-side/First_steps/Website_security +original_slug: Learn/Server-side/Premiers_pas/Website_security ---
{{LearnSidebar}}
diff --git a/files/fr/learn/tools_and_testing/cross_browser_testing/accessibility/index.html b/files/fr/learn/tools_and_testing/cross_browser_testing/accessibility/index.html index 0af81a09b0..b98eb7323a 100644 --- a/files/fr/learn/tools_and_testing/cross_browser_testing/accessibility/index.html +++ b/files/fr/learn/tools_and_testing/cross_browser_testing/accessibility/index.html @@ -1,6 +1,6 @@ --- title: Gérer les problèmes courants d'accessibilité -slug: Learn/Tools_and_testing/Cross_browser_testing/Accessibilité +slug: Learn/Tools_and_testing/Cross_browser_testing/Accessibility tags: - Accessibilité - Apprentissage @@ -14,6 +14,7 @@ tags: - navigateur croisé - test translation_of: Learn/Tools_and_testing/Cross_browser_testing/Accessibility +original_slug: Learn/Tools_and_testing/Cross_browser_testing/Accessibilité ---
{{LearnSidebar}}
diff --git a/files/fr/learn/tools_and_testing/cross_browser_testing/html_and_css/index.html b/files/fr/learn/tools_and_testing/cross_browser_testing/html_and_css/index.html index 7b2a01fc95..a8914efdd9 100644 --- a/files/fr/learn/tools_and_testing/cross_browser_testing/html_and_css/index.html +++ b/files/fr/learn/tools_and_testing/cross_browser_testing/html_and_css/index.html @@ -1,6 +1,6 @@ --- title: Gérer les problèmes courants en HTML et CSS -slug: Learn/Tools_and_testing/Cross_browser_testing/HTML_et_CSS +slug: Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS tags: - Apprentissage - CSS @@ -11,6 +11,7 @@ tags: - navigateur croisé - test translation_of: Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS +original_slug: Learn/Tools_and_testing/Cross_browser_testing/HTML_et_CSS ---
{{LearnSidebar}}
diff --git a/files/fr/learn/tools_and_testing/github/index.html b/files/fr/learn/tools_and_testing/github/index.html index ce3590b73f..3dbc4a7a76 100644 --- a/files/fr/learn/tools_and_testing/github/index.html +++ b/files/fr/learn/tools_and_testing/github/index.html @@ -1,6 +1,6 @@ --- title: Git and GitHub -slug: Apprendre/Outils_et_tests/GitHub +slug: Learn/Tools_and_testing/GitHub tags: - Apprendre - Beginner @@ -10,6 +10,7 @@ tags: - Web - git translation_of: Learn/Tools_and_testing/GitHub +original_slug: Apprendre/Outils_et_tests/GitHub ---
{{LearnSidebar}}
diff --git a/files/fr/learn/tools_and_testing/index.html b/files/fr/learn/tools_and_testing/index.html index 7fbb181871..49178ba3ef 100644 --- a/files/fr/learn/tools_and_testing/index.html +++ b/files/fr/learn/tools_and_testing/index.html @@ -1,6 +1,6 @@ --- title: Outils et tests -slug: Apprendre/Outils_et_tests +slug: Learn/Tools_and_testing tags: - Accessibilité - Apprendre @@ -13,6 +13,7 @@ tags: - Outils - tests translation_of: Learn/Tools_and_testing +original_slug: Apprendre/Outils_et_tests ---
{{LearnSidebar}}
diff --git a/files/fr/learn/tools_and_testing/understanding_client-side_tools/command_line/index.html b/files/fr/learn/tools_and_testing/understanding_client-side_tools/command_line/index.html index 74d503b7d4..cc0709e279 100644 --- a/files/fr/learn/tools_and_testing/understanding_client-side_tools/command_line/index.html +++ b/files/fr/learn/tools_and_testing/understanding_client-side_tools/command_line/index.html @@ -1,6 +1,6 @@ --- title: Cours express sur la ligne de commande -slug: Learn/Tools_and_testing/Understanding_client-side_tools/Ligne_de_commande +slug: Learn/Tools_and_testing/Understanding_client-side_tools/Command_line tags: - CLI - Côté client @@ -10,6 +10,7 @@ tags: - ligne de commande - npm translation_of: Learn/Tools_and_testing/Understanding_client-side_tools/Command_line +original_slug: Learn/Tools_and_testing/Understanding_client-side_tools/Ligne_de_commande ---
{{LearnSidebar}}
diff --git a/files/fr/mdn/about/index.html b/files/fr/mdn/about/index.html index be8fecffe1..a39a1964a8 100644 --- a/files/fr/mdn/about/index.html +++ b/files/fr/mdn/about/index.html @@ -1,9 +1,10 @@ --- title: À propos -slug: MDN/A_propos +slug: MDN/About tags: - MDN translation_of: MDN/About +original_slug: MDN/A_propos ---
{{MDNSidebar}}

Le Mozilla Developer Network (MDN) est une plateforme évoluée d’apprentissage des technologies web et des logiciels qui animent le Web, notamment :

diff --git a/files/fr/mdn/at_ten/history_of_mdn/index.html b/files/fr/mdn/at_ten/history_of_mdn/index.html index b28f79975c..543d9c45d8 100644 --- a/files/fr/mdn/at_ten/history_of_mdn/index.html +++ b/files/fr/mdn/at_ten/history_of_mdn/index.html @@ -1,9 +1,10 @@ --- title: L'histoire de MDN -slug: MDN_a_dix_ans/Histoire_MDN +slug: MDN/At_ten/History_of_MDN tags: - MDN translation_of: MDN_at_ten/History_of_MDN +original_slug: MDN_a_dix_ans/Histoire_MDN ---

Lors de cette discussion (en anglais), plusieurs contributeurs au projet MDN regardent dans le rétroviseur des dix dernières années de developer.mozilla.org et imaginent la décennie à venir. Vous pourrez entendre l'histoire des différentes migrations entre les logiciels de wiki, la façon dont la communauté a été construite et découvrir de nombreuses anecdotes de l'histoire du site. Le groupe réuni discute également des défis actuels et des projets sur lesquels la communauté MDN travaille cette année.

diff --git a/files/fr/mdn/at_ten/index.html b/files/fr/mdn/at_ten/index.html index e200103a9b..d98252e21e 100644 --- a/files/fr/mdn/at_ten/index.html +++ b/files/fr/mdn/at_ten/index.html @@ -1,10 +1,11 @@ --- title: MDN a 10 ans -slug: MDN_a_dix_ans +slug: MDN/At_ten tags: - 10 ans - MDN translation_of: MDN_at_ten +original_slug: MDN_a_dix_ans ---

Fêtons 10 années passées à documenter votre Web.

diff --git a/files/fr/mdn/contribute/howto/convert_code_samples_to_be_live/index.html b/files/fr/mdn/contribute/howto/convert_code_samples_to_be_live/index.html index 5ba1d36be9..25f2118686 100644 --- a/files/fr/mdn/contribute/howto/convert_code_samples_to_be_live/index.html +++ b/files/fr/mdn/contribute/howto/convert_code_samples_to_be_live/index.html @@ -1,7 +1,8 @@ --- title: Comment convertir des exemples de code pour qu'ils soient "live" -slug: MDN/Contribute/Howto/convertir_code_pour_etre_direct +slug: MDN/Contribute/Howto/Convert_code_samples_to_be_live translation_of: MDN/Contribute/Howto/Convert_code_samples_to_be_live +original_slug: MDN/Contribute/Howto/convertir_code_pour_etre_direct ---
{{MDNSidebar}}

MDN dispose d'un système d'exemples "live", grâce auxquels le code présent sur une page est exécuté pour afficher les résultats de l'exécution de ce code. Cependant, beaucoup d'articles existants affichent du code sans utiliser ce système, et ont donc besoin d'être convertis.

diff --git a/files/fr/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html b/files/fr/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html index 31297c792c..13a550645f 100644 --- a/files/fr/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html +++ b/files/fr/mdn/contribute/howto/create_an_interactive_exercise_to_help_learning_the_web/index.html @@ -1,6 +1,6 @@ --- title: Comment créer un exercice interactif -slug: MDN/Contribute/Howto/Creer_un_exercice_interactif_pour_apprendre_le_web +slug: MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web tags: - Apprendre - Comment faire @@ -9,6 +9,7 @@ tags: - MDN Meta - Tutoriel translation_of: MDN/Contribute/Howto/Create_an_interactive_exercise_to_help_learning_the_web +original_slug: MDN/Contribute/Howto/Creer_un_exercice_interactif_pour_apprendre_le_web ---
{{MDNSidebar}}
diff --git a/files/fr/mdn/guidelines/code_guidelines/index.html b/files/fr/mdn/guidelines/code_guidelines/index.html index 325b4fcb88..d912615e54 100644 --- a/files/fr/mdn/guidelines/code_guidelines/index.html +++ b/files/fr/mdn/guidelines/code_guidelines/index.html @@ -1,6 +1,6 @@ --- title: Guide des lignes directrices -slug: MDN/Guidelines/Code_lignesdirectrices +slug: MDN/Guidelines/Code_guidelines tags: - CSS - Code @@ -10,6 +10,7 @@ tags: - MDN Meta - Shell translation_of: MDN/Guidelines/Code_guidelines +original_slug: MDN/Guidelines/Code_lignesdirectrices ---
{{MDNSidebar}}
diff --git a/files/fr/mdn/structures/compatibility_tables/index.html b/files/fr/mdn/structures/compatibility_tables/index.html index cb334e51c4..8bd72b6e8f 100644 --- a/files/fr/mdn/structures/compatibility_tables/index.html +++ b/files/fr/mdn/structures/compatibility_tables/index.html @@ -1,6 +1,6 @@ --- title: Tables de compatibilité -slug: MDN/Structures/Tables_de_compatibilité +slug: MDN/Structures/Compatibility_tables tags: - Compatibilité - Documentation @@ -8,6 +8,7 @@ tags: - MDN - Navigateurs translation_of: MDN/Structures/Compatibility_tables +original_slug: MDN/Structures/Tables_de_compatibilité ---
{{MDNSidebar}}
{{IncludeSubnav("/en-US/docs/MDN")}}
diff --git a/files/fr/mdn/structures/live_samples/index.html b/files/fr/mdn/structures/live_samples/index.html index 7645a89375..0227ca25bc 100644 --- a/files/fr/mdn/structures/live_samples/index.html +++ b/files/fr/mdn/structures/live_samples/index.html @@ -1,12 +1,13 @@ --- title: Exemples live -slug: MDN/Structures/Exemples_live +slug: MDN/Structures/Live_samples tags: - Débutant - Guide - MDN - MDN Meta translation_of: MDN/Structures/Live_samples +original_slug: MDN/Structures/Exemples_live ---
{{MDNSidebar}}
diff --git a/files/fr/mdn/yari/index.html b/files/fr/mdn/yari/index.html index c9f3813cb2..39766f5c18 100644 --- a/files/fr/mdn/yari/index.html +++ b/files/fr/mdn/yari/index.html @@ -1,11 +1,12 @@ --- -title: 'Kuma, la plateforme soutenant le wiki MDN' -slug: MDN/Kuma +title: Kuma, la plateforme soutenant le wiki MDN +slug: MDN/Yari tags: - Kuma - Kuma script - MDN Meta translation_of: MDN/Kuma +original_slug: MDN/Kuma ---
{{MDNSidebar}}{{IncludeSubnav("/fr/docs/MDN")}}
diff --git a/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html b/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html index 5472013ca7..486085929e 100644 --- a/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html +++ b/files/fr/mozilla/add-ons/webextensions/add_a_button_to_the_toolbar/index.html @@ -1,9 +1,10 @@ --- title: Ajouter un bouton à la barre d'outils -slug: Mozilla/Add-ons/WebExtensions/Ajouter_un_bouton_a_la_barre_d_outils +slug: Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar tags: - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar +original_slug: Mozilla/Add-ons/WebExtensions/Ajouter_un_bouton_a_la_barre_d_outils ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html index f6cf7e86bb..eaa73836fa 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/eval/index.html @@ -1,6 +1,6 @@ --- title: devtools.inspectedWindow.eval() -slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval +slug: Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/eval tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - WebExtensions - eval translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/eval ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html index 2f077b4e9d..233dfe0ef5 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/index.html @@ -1,6 +1,6 @@ --- title: devtools.inspectedWindow -slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow +slug: Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - Reference - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html index f2f7b8cdc8..04d18ec5c4 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/reload/index.html @@ -1,6 +1,6 @@ --- title: devtools.inspectedWindow.reload() -slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/reload +slug: Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/reload tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - devtools.inspectedWindow - reload translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/reload +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/reload ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html index b5b3d3b0b2..9583a31615 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/inspectedwindow/tabid/index.html @@ -1,6 +1,6 @@ --- title: devtools.inspectedWindow.tabId -slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId +slug: Mozilla/Add-ons/WebExtensions/API/devtools/inspectedWindow/tabId tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - devtools.inpectedWindow - tabId translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.inspectedWindow/tabId ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html index abcdf667e6..1edd69dbf5 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/gethar/index.html @@ -1,6 +1,6 @@ --- title: devtools.network.getHAR() -slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/getHAR +slug: Mozilla/Add-ons/WebExtensions/API/devtools/network/getHAR tags: - Add-ons - Extensions @@ -8,6 +8,7 @@ tags: - devtools.network - getHAR translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.network/getHAR +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/getHAR ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html index 580a823371..1e64b79613 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/index.html @@ -1,6 +1,6 @@ --- title: devtools.network -slug: Mozilla/Add-ons/WebExtensions/API/devtools.network +slug: Mozilla/Add-ons/WebExtensions/API/devtools/network tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - devtools.network translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.network +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.network ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html index b7f0d0af31..85d3b03c79 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onnavigated/index.html @@ -1,6 +1,6 @@ --- title: devtools.network.onNavigated -slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/onNavigated +slug: Mozilla/Add-ons/WebExtensions/API/devtools/network/onNavigated tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - devtools.network translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.network/onNavigated +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/onNavigated ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html index e2b4d930fc..d5b945e70b 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/network/onrequestfinished/index.html @@ -1,6 +1,6 @@ --- title: devtools.network.onRequestFinished -slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/onRequestFinished +slug: Mozilla/Add-ons/WebExtensions/API/devtools/network/onRequestFinished tags: - API - Add-ons @@ -11,6 +11,7 @@ tags: - devtools.network - onRequestFinished translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.network/onRequestFinished +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.network/onRequestFinished ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html index 60de8f3871..59ec61fa3c 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/create/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.create() -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/create +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/create tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - WebExtensions - devtools.panels translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/create +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/create ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html index 18223b2718..07714a36c4 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elements/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.elements -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/elements tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - WebExtensions - devtools.panels translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/elements ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html index 7eee52fff5..201fe99073 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/createsidebarpane/index.html @@ -1,7 +1,7 @@ --- title: devtools.panels.ElementsPanel.createSidebarPane() slug: >- - Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane + Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/createSidebarPane tags: - API - Add-ons @@ -13,6 +13,8 @@ tags: - devtools.panels translation_of: >- Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html index 5c2a0413c7..fcfeb896bf 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.ElementsPanel -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel tags: - API - Add-ons @@ -11,6 +11,7 @@ tags: - devtools.panels - devtools.panelsElementsPanel translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html index e753d5aba1..c43b2ed237 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/elementspanel/onselectionchanged/index.html @@ -1,7 +1,7 @@ --- title: onSelectionChanged slug: >- - Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/onSelectionChanged + Mozilla/Add-ons/WebExtensions/API/devtools/panels/ElementsPanel/onSelectionChanged tags: - API - Add-ons @@ -13,6 +13,8 @@ tags: - devtools.panelsElementsPanel translation_of: >- Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/onSelectionChanged +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/onSelectionChanged ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html index e083ff02b3..33e93d2391 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionpanel/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.ExtensionPanel -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionPanel +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionPanel tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - devtools.panels translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionPanel +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionPanel ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html index 02ee0a2073..de63e20cb0 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.ExtensionSidebarPane -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane tags: - API - Add-ons @@ -11,6 +11,7 @@ tags: - devtools.panels - devtools.panels.ExtensionSidebarPane translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html index a1a18463e5..2564eb52ff 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onhidden/index.html @@ -1,7 +1,7 @@ --- title: devtools.panels.ExtensionSidebarPane.onHidden slug: >- - Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onHidden + Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onHidden tags: - API - Add-ons @@ -13,6 +13,8 @@ tags: - onHidden translation_of: >- Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onHidden +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onHidden ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html index 3ca3412af2..b8fc5d6973 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/onshown/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.ExtensionSidebarPane.onShown -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onShown +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/onShown tags: - API - Add-ons @@ -11,6 +11,7 @@ tags: - devtools.panels - onShown translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onShown +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/onShown ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html index d2c97c5f82..54ec4ce5e9 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setexpression/index.html @@ -1,7 +1,7 @@ --- title: devtools.panels.ElementsPanel.setExpression() slug: >- - Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setExpression + Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setExpression tags: - API - Add-ons @@ -12,6 +12,8 @@ tags: - setExpression translation_of: >- Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setExpression +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setExpression ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html index 90252a0c2f..06bf845c94 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setobject/index.html @@ -1,7 +1,7 @@ --- title: devtools.panels.ExtensionSidebarPane.setObject() slug: >- - Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setObject + Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setObject tags: - API - Add-ons @@ -12,6 +12,8 @@ tags: - setObject translation_of: >- Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setObject +original_slug: >- + Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setObject ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html index e4f98e3ff3..f50a2ff36e 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/extensionsidebarpane/setpage/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.ExtensionSidebarPane.setPage() -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setPage +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/ExtensionSidebarPane/setPage tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - setPage translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setPage +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/ExtensionSidebarPane/setPage ---

Définit une page HTML à afficher dans le volet latéral.

diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html index 9f2c06e2a0..736efe00bc 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels tags: - API - Add-ons @@ -9,6 +9,7 @@ tags: - WebExtensions - devtools.panels translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html index 75c9b94ccc..78773a056e 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/onthemechanged/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.onThemeChanged -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/onThemeChanged +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/onThemeChanged tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - devtools.panels - onThemeChanged translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/onThemeChanged +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/onThemeChanged ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html index abddedc962..6053407baa 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/devtools/panels/themename/index.html @@ -1,6 +1,6 @@ --- title: devtools.panels.themeName -slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/themeName +slug: Mozilla/Add-ons/WebExtensions/API/devtools/panels/themeName tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - devtools.panels - themeName translation_of: Mozilla/Add-ons/WebExtensions/API/devtools.panels/themeName +original_slug: Mozilla/Add-ons/WebExtensions/API/devtools.panels/themeName ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html index fb5e7df4e5..4e95717d08 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/onerror/index.html @@ -1,6 +1,6 @@ --- title: proxy.onProxyError -slug: Mozilla/Add-ons/WebExtensions/API/proxy/onProxyError +slug: Mozilla/Add-ons/WebExtensions/API/proxy/onError tags: - API - Add-ons @@ -10,6 +10,7 @@ tags: - WebExtensions - onProxyError translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/onError +original_slug: Mozilla/Add-ons/WebExtensions/API/proxy/onProxyError ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html b/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html index 8ebc5822c2..1fc679446a 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/proxy/settings/index.html @@ -1,6 +1,6 @@ --- title: browserSettings.proxyConfig -slug: Mozilla/Add-ons/WebExtensions/API/browserSettings/proxyConfig +slug: Mozilla/Add-ons/WebExtensions/API/proxy/settings tags: - API - Add-ons @@ -11,6 +11,7 @@ tags: - browserSettings - proxyConfig translation_of: Mozilla/Add-ons/WebExtensions/API/proxy/settings +original_slug: Mozilla/Add-ons/WebExtensions/API/browserSettings/proxyConfig ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html b/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html index 8cf9fcc2b2..30fa5b83af 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html +++ b/files/fr/mozilla/add-ons/webextensions/api/userscripts/working_with_userscripts/index.html @@ -1,6 +1,6 @@ --- title: Travailler avec userScripts -slug: Mozilla/Add-ons/WebExtensions/API/userScripts/travailler_avec_userScripts +slug: Mozilla/Add-ons/WebExtensions/API/userScripts/Working_with_userScripts tags: - API - Extensions @@ -8,6 +8,7 @@ tags: - Tutorial - userScripts translation_of: Mozilla/Add-ons/WebExtensions/API/userScripts/Working_with_userScripts +original_slug: Mozilla/Add-ons/WebExtensions/API/userScripts/travailler_avec_userScripts ---

{{draft}}

diff --git a/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html b/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html index d7d80b6988..e319624948 100644 --- a/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html +++ b/files/fr/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html @@ -1,10 +1,11 @@ --- title: Compatibilité des navigateurs avec les API JavaScript WebExtensions -slug: Mozilla/Add-ons/WebExtensions/Compatibilité_navigateurs_API_JavaScript +slug: Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs tags: - Reference - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs +original_slug: Mozilla/Add-ons/WebExtensions/Compatibilité_navigateurs_API_JavaScript ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html b/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html index 506822110d..798e5fb6a6 100644 --- a/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html +++ b/files/fr/mozilla/add-ons/webextensions/build_a_cross_browser_extension/index.html @@ -1,12 +1,13 @@ --- title: Construction d'une extension cross-browser -slug: Mozilla/Add-ons/WebExtensions/construction_extension_cross_browser +slug: Mozilla/Add-ons/WebExtensions/Build_a_cross_browser_extension tags: - Add-ons - Extensions - Guide - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Build_a_cross_browser_extension +original_slug: Mozilla/Add-ons/WebExtensions/construction_extension_cross_browser ---

{{AddonSidebar()}}

diff --git a/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html b/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html index 71d20cc62b..30bd40e397 100644 --- a/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html +++ b/files/fr/mozilla/add-ons/webextensions/chrome_incompatibilities/index.html @@ -1,11 +1,12 @@ --- title: Incompatibilités avec Chrome -slug: Mozilla/Add-ons/WebExtensions/Incompatibilités_Chrome +slug: Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities tags: - Guide - WebExtensions - google chrome translation_of: Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities +original_slug: Mozilla/Add-ons/WebExtensions/Incompatibilités_Chrome ---

{{AddonSidebar}}

diff --git a/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html b/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html index ecdc2a6849..037a616622 100644 --- a/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html +++ b/files/fr/mozilla/add-ons/webextensions/debugging_(before_firefox_50)/index.html @@ -1,6 +1,6 @@ --- title: Débogage (avant Firefox 50) -slug: Mozilla/Add-ons/WebExtensions/Debogage_(avant_Firefox_50) +slug: Mozilla/Add-ons/WebExtensions/Debugging_(before_Firefox_50) tags: - Debugging - Firefox @@ -9,6 +9,7 @@ tags: - Obsolete - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Debugging_(before_Firefox_50) +original_slug: Mozilla/Add-ons/WebExtensions/Debogage_(avant_Firefox_50) ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html b/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html index 60656f891e..47fabe33f8 100644 --- a/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html +++ b/files/fr/mozilla/add-ons/webextensions/differences_between_api_implementations/index.html @@ -1,10 +1,11 @@ --- title: Différences entre les implémentations d'API -slug: Mozilla/Add-ons/WebExtensions/Differences_entre_les_implementations_api +slug: Mozilla/Add-ons/WebExtensions/Differences_between_API_implementations tags: - Guide - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Differences_between_API_implementations +original_slug: Mozilla/Add-ons/WebExtensions/Differences_entre_les_implementations_api ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/examples/index.html b/files/fr/mozilla/add-ons/webextensions/examples/index.html index 7a96c1adae..815a830c75 100644 --- a/files/fr/mozilla/add-ons/webextensions/examples/index.html +++ b/files/fr/mozilla/add-ons/webextensions/examples/index.html @@ -1,10 +1,11 @@ --- title: Exemples de WebExtensions -slug: Mozilla/Add-ons/WebExtensions/Exemples +slug: Mozilla/Add-ons/WebExtensions/Examples tags: - Interface - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Examples +original_slug: Mozilla/Add-ons/WebExtensions/Exemples ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html b/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html index 8b5695b9e3..adcbe21e9e 100644 --- a/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html +++ b/files/fr/mozilla/add-ons/webextensions/extending_the_developer_tools/index.html @@ -1,6 +1,6 @@ --- title: Extension des outils de développement -slug: Mozilla/Add-ons/WebExtensions/extension_des_outils_de_developpement +slug: Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools tags: - Add-ons - DevTools @@ -9,6 +9,7 @@ tags: - Needs Privileges - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Extending_the_developer_tools +original_slug: Mozilla/Add-ons/WebExtensions/extension_des_outils_de_developpement ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html b/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html index 9635785e5d..9720dff780 100644 --- a/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html +++ b/files/fr/mozilla/add-ons/webextensions/implement_a_settings_page/index.html @@ -1,10 +1,11 @@ --- title: Ajouter une page de paramètres -slug: Mozilla/Add-ons/WebExtensions/Ajouter_une_page_de_paramètres +slug: Mozilla/Add-ons/WebExtensions/Implement_a_settings_page tags: - Paramètres - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Implement_a_settings_page +original_slug: Mozilla/Add-ons/WebExtensions/Ajouter_une_page_de_paramètres ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html b/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html index fe7b69e3a3..77b0d47ea2 100644 --- a/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html +++ b/files/fr/mozilla/add-ons/webextensions/interact_with_the_clipboard/index.html @@ -1,6 +1,6 @@ --- title: Interagir avec le presse-papier -slug: Mozilla/Add-ons/WebExtensions/interagir_avec_le_presse_papier +slug: Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard tags: - Add-ons - Clip @@ -16,6 +16,7 @@ tags: - couper - paste translation_of: Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard +original_slug: Mozilla/Add-ons/WebExtensions/interagir_avec_le_presse_papier ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html b/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html index f534b57be1..9542272584 100644 --- a/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html +++ b/files/fr/mozilla/add-ons/webextensions/intercept_http_requests/index.html @@ -1,12 +1,13 @@ --- title: Intercepter les requêtes HTTP -slug: Mozilla/Add-ons/WebExtensions/Intercepter_requêtes_HTTP +slug: Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests tags: - Extensions - Modules complémentaires - Tutoriel - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests +original_slug: Mozilla/Add-ons/WebExtensions/Intercepter_requêtes_HTTP ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html index a00c7dab33..efb962857b 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/author/index.html @@ -1,11 +1,12 @@ --- title: author -slug: Mozilla/Add-ons/WebExtensions/manifest.json/auteur +slug: Mozilla/Add-ons/WebExtensions/manifest.json/author tags: - Add-ons - Extensions - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/author +original_slug: Mozilla/Add-ons/WebExtensions/manifest.json/auteur ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html index 4181a9e841..40303d2f99 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/background/index.html @@ -1,11 +1,12 @@ --- title: background -slug: Mozilla/Add-ons/WebExtensions/manifest.json/arriere-plan +slug: Mozilla/Add-ons/WebExtensions/manifest.json/background tags: - Add-ons - Extensions - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/background +original_slug: Mozilla/Add-ons/WebExtensions/manifest.json/arriere-plan ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html b/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html index f33a6478c4..23e3be2195 100644 --- a/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html +++ b/files/fr/mozilla/add-ons/webextensions/manifest.json/theme_experiment/index.html @@ -1,6 +1,6 @@ --- title: theme expérimentation -slug: Mozilla/Add-ons/WebExtensions/manifest.json/theme_experimentation +slug: Mozilla/Add-ons/WebExtensions/manifest.json/theme_experiment tags: - Add-ons - Browser @@ -13,6 +13,7 @@ tags: - navigatuer - theme manifest translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/theme_experiment +original_slug: Mozilla/Add-ons/WebExtensions/manifest.json/theme_experimentation ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html b/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html index c9c68b6304..fa169e34fc 100644 --- a/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html +++ b/files/fr/mozilla/add-ons/webextensions/native_manifests/index.html @@ -1,10 +1,11 @@ --- title: manifests Natif -slug: Mozilla/Add-ons/WebExtensions/manifests_native +slug: Mozilla/Add-ons/WebExtensions/Native_manifests tags: - Extensions - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Native_manifests +original_slug: Mozilla/Add-ons/WebExtensions/manifests_native ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html b/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html index 2365874169..4ad4bfb174 100644 --- a/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html +++ b/files/fr/mozilla/add-ons/webextensions/safely_inserting_external_content_into_a_page/index.html @@ -1,7 +1,6 @@ --- title: Insérer en toute sécurité du contenu externe dans une page -slug: >- - Mozilla/Add-ons/WebExtensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page +slug: Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page tags: - Add-ons - Comment @@ -11,6 +10,8 @@ tags: - Sécurité - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Safely_inserting_external_content_into_a_page +original_slug: >- + Mozilla/Add-ons/WebExtensions/inserer_en_toute_securite_du_contenu_externe_dans_une_page ---

{{AddonSidebar}}

diff --git a/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html b/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html index 81ac2d7584..8a97e76cf7 100644 --- a/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html +++ b/files/fr/mozilla/add-ons/webextensions/sharing_objects_with_page_scripts/index.html @@ -1,6 +1,6 @@ --- title: Partage d'objets avec des scripts de page -slug: Mozilla/Add-ons/WebExtensions/partage_d_objets_avec_des_scripts_de_page +slug: Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts tags: - Add-ons - Extensions @@ -13,6 +13,7 @@ tags: - script de contenu - scripts de page translation_of: Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts +original_slug: Mozilla/Add-ons/WebExtensions/partage_d_objets_avec_des_scripts_de_page ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html index b2cf42a214..3a73d669b9 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/context_menu_items/index.html @@ -1,9 +1,10 @@ --- title: Elements du menu contextuel -slug: Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel +slug: Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items tags: - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Context_menu_items +original_slug: Mozilla/Add-ons/WebExtensions/user_interface/elements_menu_contextuel ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html index e487250175..8dd84fbdf0 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/devtools_panels/index.html @@ -1,12 +1,13 @@ --- title: panneaux devtools -slug: Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools +slug: Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels tags: - Débutant - Guide - WebExtensions - interface utilisateur translation_of: Mozilla/Add-ons/WebExtensions/user_interface/devtools_panels +original_slug: Mozilla/Add-ons/WebExtensions/user_interface/panneaux_devtools ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html index d12b031f08..4ffba78bdb 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/extension_pages/index.html @@ -1,12 +1,13 @@ --- title: Extension pages -slug: Mozilla/Add-ons/WebExtensions/user_interface/pages_web_incluses +slug: Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages tags: - Débutant - User Interface - WebExtensions - interface utilisateur translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages +original_slug: Mozilla/Add-ons/WebExtensions/user_interface/pages_web_incluses ---
{{AddonSidebar()}}
diff --git a/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html b/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html index 5d9e2cab05..0528ae24a3 100644 --- a/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html +++ b/files/fr/mozilla/add-ons/webextensions/user_interface/sidebars/index.html @@ -1,10 +1,11 @@ --- title: Barres laterales -slug: Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales +slug: Mozilla/Add-ons/WebExtensions/user_interface/Sidebars tags: - WebExtensions - barre latérale translation_of: Mozilla/Add-ons/WebExtensions/user_interface/Sidebars +original_slug: Mozilla/Add-ons/WebExtensions/user_interface/barres_laterales ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/what_next_/index.html b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html index aabc4dccba..121fe18d09 100644 --- a/files/fr/mozilla/add-ons/webextensions/what_next_/index.html +++ b/files/fr/mozilla/add-ons/webextensions/what_next_/index.html @@ -1,11 +1,12 @@ --- title: Que faire ensuite ? -slug: Mozilla/Add-ons/WebExtensions/que_faire_ensuite +slug: Mozilla/Add-ons/WebExtensions/What_next_ tags: - Débutant - Extensions - WebExtension translation_of: Mozilla/Add-ons/WebExtensions/What_next_ +original_slug: Mozilla/Add-ons/WebExtensions/que_faire_ensuite ---
{{AddonSidebar}}
diff --git a/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html index 7acabb6773..cc12ce18e7 100644 --- a/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html +++ b/files/fr/mozilla/add-ons/webextensions/work_with_contextual_identities/index.html @@ -1,6 +1,6 @@ --- title: Travailler avec des identités contextuelles -slug: Mozilla/Add-ons/WebExtensions/travailler_avec_des_identites_contextuelles +slug: Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities tags: - Add-ons - Comment @@ -10,6 +10,7 @@ tags: - Hox-to - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Work_with_contextual_identities +original_slug: Mozilla/Add-ons/WebExtensions/travailler_avec_des_identites_contextuelles ---

{{AddonSidebar}}

diff --git a/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html b/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html index c13965f88e..b54500ea34 100644 --- a/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html +++ b/files/fr/mozilla/add-ons/webextensions/work_with_the_cookies_api/index.html @@ -1,6 +1,6 @@ --- title: Travailler avec l'API Cookies -slug: Mozilla/Add-ons/WebExtensions/travailler_avec_l_API_cookies +slug: Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API tags: - Add-ons - Comment @@ -10,6 +10,7 @@ tags: - How-to - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/Work_with_the_Cookies_API +original_slug: Mozilla/Add-ons/WebExtensions/travailler_avec_l_API_cookies ---

{{AddonSidebar}}

diff --git a/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html b/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html index 049a8e5683..4ab04f3143 100644 --- a/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html +++ b/files/fr/mozilla/add-ons/webextensions/working_with_the_tabs_api/index.html @@ -1,6 +1,6 @@ --- title: Travailler avec l'API Tabs -slug: Mozilla/Add-ons/WebExtensions/Travailler_avec_l_API_Tabs +slug: Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API tags: - Add-ons - Comment @@ -9,6 +9,7 @@ tags: - onglets - tabs translation_of: Mozilla/Add-ons/WebExtensions/Working_with_the_Tabs_API +original_slug: Mozilla/Add-ons/WebExtensions/Travailler_avec_l_API_Tabs ---

{{AddonSidebar}}

diff --git a/files/fr/mozilla/developer_guide/build_instructions/index.html b/files/fr/mozilla/developer_guide/build_instructions/index.html index 958b486d2a..68b753dce4 100644 --- a/files/fr/mozilla/developer_guide/build_instructions/index.html +++ b/files/fr/mozilla/developer_guide/build_instructions/index.html @@ -1,11 +1,12 @@ --- title: Compilation et installation -slug: Compilation_et_installation +slug: Mozilla/Developer_guide/Build_Instructions tags: - Documentation_sur_la_compilation - Développement_de_Mozilla translation_of: Mozilla/Developer_guide/Build_Instructions translation_of_original: Build_and_Install +original_slug: Compilation_et_installation ---

Se réferer à la page suivante pour la compilation de Thunderbird (utilisation de l'outil Mach recommandée) : Simple Thunderbird build

diff --git a/files/fr/mozilla/developer_guide/introduction/index.html b/files/fr/mozilla/developer_guide/introduction/index.html index a8a6f99467..c6d222c487 100644 --- a/files/fr/mozilla/developer_guide/introduction/index.html +++ b/files/fr/mozilla/developer_guide/introduction/index.html @@ -1,8 +1,9 @@ --- title: Introduction (alternative) -slug: Introduction_(alternative) +slug: Mozilla/Developer_guide/Introduction translation_of: Mozilla/Developer_guide/Introduction translation_of_original: Introduction_(alternate) +original_slug: Introduction_(alternative) ---

Bien que Firefox soit largement écrit en C++, il existe de très nombreuses manière de contribuer sans connaître C++.

Firefox/Thunderbird/etc.

diff --git a/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html b/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html index 31e260de0a..454d0a043e 100644 --- a/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html +++ b/files/fr/mozilla/developer_guide/so_you_just_built_firefox/index.html @@ -1,7 +1,8 @@ --- title: Vous venez juste de compiler Firefox -slug: Mozilla/Developer_guide/Vous_venez_juste_de_compiler_Firefox +slug: Mozilla/Developer_guide/So_you_just_built_Firefox translation_of: Mozilla/Developer_guide/So_you_just_built_Firefox +original_slug: Mozilla/Developer_guide/Vous_venez_juste_de_compiler_Firefox ---

Un lien vers cette page sera affiché après que vous ayez compilé Firefox, avec succès. Elle contient des informations sur les étapes à suivre, avec des liens pour lancer les tests, packager votre executable, etc. Pour le contenu, essayez d'être bref, et d'afficher des liens vers les pages que vous pensez utiles. Votre audience est composée de personnes qui viennent de compiler Firefox, pour la première fois.

Voici quelques liens qui pourraient vous servir :

diff --git a/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html b/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html index 8702ac2824..41c07e07cb 100644 --- a/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html +++ b/files/fr/mozilla/firefox/releases/1.5/adapting_xul_applications_for_firefox_1.5/index.html @@ -1,10 +1,11 @@ --- title: Adaptation des applications XUL pour Firefox 1.5 -slug: Adaptation_des_applications_XUL_pour_Firefox_1.5 +slug: Mozilla/Firefox/Releases/1.5/Adapting_XUL_Applications_for_Firefox_1.5 tags: - Extensions - XUL translation_of: Mozilla/Firefox/Releases/1.5/Adapting_XUL_Applications_for_Firefox_1.5 +original_slug: Adaptation_des_applications_XUL_pour_Firefox_1.5 ---
{{FirefoxSidebar}}

 

diff --git a/files/fr/mozilla/firefox/releases/1.5/index.html b/files/fr/mozilla/firefox/releases/1.5/index.html index 84f17d122f..062d42663f 100644 --- a/files/fr/mozilla/firefox/releases/1.5/index.html +++ b/files/fr/mozilla/firefox/releases/1.5/index.html @@ -1,10 +1,11 @@ --- title: Firefox 1.5 pour les développeurs -slug: Mozilla/Firefox/Versions/1.5 +slug: Mozilla/Firefox/Releases/1.5 tags: - Firefox - Firefox 1.5 translation_of: Mozilla/Firefox/Releases/1.5 +original_slug: Mozilla/Firefox/Versions/1.5 ---
{{FirefoxSidebar}}

Firefox 1.5, basé sur le moteur Gecko 1.8, améliore son support des standards déjà de premier ordre et fournit de nouvelles opportunités de créer la prochaine génération d'applications Web. Firefox 1.5 propose un support amélioré de CSS2 et CSS3, des API pour des graphiques 2D scriptables et programmables grâce à SVG 1.1 et <canvas>, les évènements XForms et XML, ainsi que de nombreuses améliorations du DHTML, du JavaScript et du DOM.

diff --git a/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html b/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html index b88ec3bfcd..87a1ed693b 100644 --- a/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html +++ b/files/fr/mozilla/firefox/releases/1.5/using_firefox_1.5_caching/index.html @@ -1,6 +1,6 @@ --- title: Utilisation du cache de Firefox 1.5 -slug: Utilisation_du_cache_de_Firefox_1.5 +slug: Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching tags: - DOM - Développement_Web @@ -8,6 +8,7 @@ tags: - HTML - JavaScript translation_of: Mozilla/Firefox/Releases/1.5/Using_Firefox_1.5_caching +original_slug: Utilisation_du_cache_de_Firefox_1.5 ---
{{FirefoxSidebar}}

 

diff --git a/files/fr/mozilla/firefox/releases/11/index.html b/files/fr/mozilla/firefox/releases/11/index.html index bc1d161fbd..23a04a3ef2 100644 --- a/files/fr/mozilla/firefox/releases/11/index.html +++ b/files/fr/mozilla/firefox/releases/11/index.html @@ -1,10 +1,11 @@ --- title: Firefox 11 pour les développeurs -slug: Mozilla/Firefox/Versions/11 +slug: Mozilla/Firefox/Releases/11 tags: - Firefox - Firefox 11 translation_of: Mozilla/Firefox/Releases/11 +original_slug: Mozilla/Firefox/Versions/11 ---
{{FirefoxSidebar}}

Firefox 11, basé sur Gecko 11.0, est sorti le 13 mars 2012. Cet article fournit des informations sur les nouvelles fonctionnalités et les principaux bugs corrigés, ainsi que des liens vers une documentation plus détaillée pour les développeurs web et d'extensions.

diff --git a/files/fr/mozilla/firefox/releases/12/index.html b/files/fr/mozilla/firefox/releases/12/index.html index dbb7811cb7..79ddf9330b 100644 --- a/files/fr/mozilla/firefox/releases/12/index.html +++ b/files/fr/mozilla/firefox/releases/12/index.html @@ -1,10 +1,11 @@ --- title: Firefox 12 pour les développeurs -slug: Mozilla/Firefox/Versions/12 +slug: Mozilla/Firefox/Releases/12 tags: - Firefox - Firefox 12 translation_of: Mozilla/Firefox/Releases/12 +original_slug: Mozilla/Firefox/Versions/12 ---
{{FirefoxSidebar}}
diff --git a/files/fr/mozilla/firefox/releases/13/index.html b/files/fr/mozilla/firefox/releases/13/index.html index df1af7aca1..debafd8ec9 100644 --- a/files/fr/mozilla/firefox/releases/13/index.html +++ b/files/fr/mozilla/firefox/releases/13/index.html @@ -1,10 +1,11 @@ --- title: Firefox 13 pour les développeurs -slug: Mozilla/Firefox/Versions/13 +slug: Mozilla/Firefox/Releases/13 tags: - Firefox - Firefox 13 translation_of: Mozilla/Firefox/Releases/13 +original_slug: Mozilla/Firefox/Versions/13 ---
{{FirefoxSidebar}}

Firefox 13, basé sur Gecko 13.0, est sorti le 5 juin 2012. Cette page résume les principaux changements dans Firefox 13 qui sont utiles aux développeurs.

diff --git a/files/fr/mozilla/firefox/releases/15/index.html b/files/fr/mozilla/firefox/releases/15/index.html index e4ed3d90ea..afd69b7e3e 100644 --- a/files/fr/mozilla/firefox/releases/15/index.html +++ b/files/fr/mozilla/firefox/releases/15/index.html @@ -1,10 +1,11 @@ --- title: Firefox 15 pour les développeurs -slug: Mozilla/Firefox/Versions/15 +slug: Mozilla/Firefox/Releases/15 tags: - Firefox - Firefox 15 translation_of: Mozilla/Firefox/Releases/15 +original_slug: Mozilla/Firefox/Versions/15 ---
{{FirefoxSidebar}}

Firefox 15, basé sur Gecko 15.0, est sorti le 28 août 2012. Cette page résume les principaux changements dans Firefox 15 qui sont utiles aux développeurs.

diff --git a/files/fr/mozilla/firefox/releases/16/index.html b/files/fr/mozilla/firefox/releases/16/index.html index 0d9335ab6b..101d8cfa10 100644 --- a/files/fr/mozilla/firefox/releases/16/index.html +++ b/files/fr/mozilla/firefox/releases/16/index.html @@ -1,10 +1,11 @@ --- title: Firefox 16 pour les développeurs -slug: Mozilla/Firefox/Versions/16 +slug: Mozilla/Firefox/Releases/16 tags: - Firefox - Firefox 16 translation_of: Mozilla/Firefox/Releases/16 +original_slug: Mozilla/Firefox/Versions/16 ---
{{FirefoxSidebar}}

Firefox 16, basé sur Gecko 16.0, est sorti le 9 octobre 2012. Cette page résume les principaux changements dans Firefox 15 qui sont utiles aux développeurs.

diff --git a/files/fr/mozilla/firefox/releases/17/index.html b/files/fr/mozilla/firefox/releases/17/index.html index b8c77bfa66..1312ddf90c 100644 --- a/files/fr/mozilla/firefox/releases/17/index.html +++ b/files/fr/mozilla/firefox/releases/17/index.html @@ -1,10 +1,11 @@ --- title: Firefox 17 pour les développeurs -slug: Mozilla/Firefox/Versions/17 +slug: Mozilla/Firefox/Releases/17 tags: - Firefox - Firefox 17 translation_of: Mozilla/Firefox/Releases/17 +original_slug: Mozilla/Firefox/Versions/17 ---
{{FirefoxSidebar}}
diff --git a/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html index 5f4d2359da..589b165fa0 100644 --- a/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/17/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 17 -slug: Mozilla/Firefox/Versions/17/Site_compatibility +slug: Mozilla/Firefox/Releases/17/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 17 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/17/Site_compatibility +original_slug: Mozilla/Firefox/Versions/17/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/18/index.html b/files/fr/mozilla/firefox/releases/18/index.html index 7ed2e61e84..1ba1c5964a 100644 --- a/files/fr/mozilla/firefox/releases/18/index.html +++ b/files/fr/mozilla/firefox/releases/18/index.html @@ -1,10 +1,11 @@ --- title: Firefox 18 pour les développeurs -slug: Mozilla/Firefox/Versions/18 +slug: Mozilla/Firefox/Releases/18 tags: - Firefox - Firefox 18 translation_of: Mozilla/Firefox/Releases/18 +original_slug: Mozilla/Firefox/Versions/18 ---
{{FirefoxSidebar}}

Firefox 18, basé sur Gecko 18.0, est sorti le 8 janvier 2013. Cette page résume les principaux changements dans Firefox 18 qui sont utiles aux développeurs.

diff --git a/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html index 40090de357..325152bed1 100644 --- a/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/18/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 18 -slug: Mozilla/Firefox/Versions/18/Site_compatibility +slug: Mozilla/Firefox/Releases/18/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 18 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/18/Site_compatibility +original_slug: Mozilla/Firefox/Versions/18/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/19/index.html b/files/fr/mozilla/firefox/releases/19/index.html index 8ece44bb72..47d53db6d3 100644 --- a/files/fr/mozilla/firefox/releases/19/index.html +++ b/files/fr/mozilla/firefox/releases/19/index.html @@ -1,10 +1,11 @@ --- title: Firefox 19 pour les développeurs -slug: Mozilla/Firefox/Versions/19 +slug: Mozilla/Firefox/Releases/19 tags: - Firefox - Firefox 19 translation_of: Mozilla/Firefox/Releases/19 +original_slug: Mozilla/Firefox/Versions/19 ---
{{FirefoxSidebar}}

{{ draft() }}

diff --git a/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html index bf8fd61a81..1bb9526fbc 100644 --- a/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/19/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 19 -slug: Mozilla/Firefox/Versions/19/Site_compatibility +slug: Mozilla/Firefox/Releases/19/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 19 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/19/Site_compatibility +original_slug: Mozilla/Firefox/Versions/19/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/2/index.html b/files/fr/mozilla/firefox/releases/2/index.html index c0027bed2d..41bf6f3e9d 100644 --- a/files/fr/mozilla/firefox/releases/2/index.html +++ b/files/fr/mozilla/firefox/releases/2/index.html @@ -1,10 +1,11 @@ --- title: Firefox 2 pour les développeurs -slug: Mozilla/Firefox/Versions/2 +slug: Mozilla/Firefox/Releases/2 tags: - Firefox - Firefox 2 translation_of: Mozilla/Firefox/Releases/2 +original_slug: Mozilla/Firefox/Versions/2 ---
{{FirefoxSidebar}}

''Une grande partie du contenu de cette page est juste là pour boucher les trous. Voyez la version anglaise de cette page pour savoir comment la compléter.''

diff --git a/files/fr/mozilla/firefox/releases/2/security_changes/index.html b/files/fr/mozilla/firefox/releases/2/security_changes/index.html index 02a1c4e215..9590023d5e 100644 --- a/files/fr/mozilla/firefox/releases/2/security_changes/index.html +++ b/files/fr/mozilla/firefox/releases/2/security_changes/index.html @@ -1,9 +1,10 @@ --- title: La sécurité dans Firefox 2 -slug: La_sécurité_dans_Firefox_2 +slug: Mozilla/Firefox/Releases/2/Security_changes tags: - Sécurité translation_of: Mozilla/Firefox/Releases/2/Security_changes +original_slug: La_sécurité_dans_Firefox_2 ---
{{FirefoxSidebar}}

Cet article aborde les changements concernant la sécurité dans Firefox 2.

diff --git a/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html b/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html index 2835b6b46a..a46f4c92a1 100644 --- a/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html +++ b/files/fr/mozilla/firefox/releases/2/updating_extensions/index.html @@ -1,7 +1,8 @@ --- title: Mise à jour des extensions pour Firefox 2 -slug: Mise_à_jour_des_extensions_pour_Firefox_2 +slug: Mozilla/Firefox/Releases/2/Updating_extensions translation_of: Mozilla/Firefox/Releases/2/Updating_extensions +original_slug: Mise_à_jour_des_extensions_pour_Firefox_2 ---
{{FirefoxSidebar}}

 

diff --git a/files/fr/mozilla/firefox/releases/20/index.html b/files/fr/mozilla/firefox/releases/20/index.html index d9bf6ebdd7..69df123354 100644 --- a/files/fr/mozilla/firefox/releases/20/index.html +++ b/files/fr/mozilla/firefox/releases/20/index.html @@ -1,10 +1,11 @@ --- title: Firefox 20 pour les développeurs -slug: Mozilla/Firefox/Versions/20 +slug: Mozilla/Firefox/Releases/20 tags: - Firefox - Firefox 20 translation_of: Mozilla/Firefox/Releases/20 +original_slug: Mozilla/Firefox/Versions/20 ---
{{FirefoxSidebar}}

Firefox 20 est sorti le 2 avril 2013. Cette page résume les principaux changements dans Firefox 20 qui sont utiles aux développeurs.

diff --git a/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html index b126ee10ba..8ce91c14d6 100644 --- a/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/20/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 20 -slug: Mozilla/Firefox/Versions/20/Site_compatibility +slug: Mozilla/Firefox/Releases/20/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 20 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/20/Site_compatibility +original_slug: Mozilla/Firefox/Versions/20/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/21/index.html b/files/fr/mozilla/firefox/releases/21/index.html index 5b31107b63..56705b4624 100644 --- a/files/fr/mozilla/firefox/releases/21/index.html +++ b/files/fr/mozilla/firefox/releases/21/index.html @@ -1,10 +1,11 @@ --- title: Firefox 21 pour les développeurs -slug: Mozilla/Firefox/Versions/21 +slug: Mozilla/Firefox/Releases/21 tags: - Firefox - Firefox 21 translation_of: Mozilla/Firefox/Releases/21 +original_slug: Mozilla/Firefox/Versions/21 ---
{{FirefoxSidebar}}
diff --git a/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html index 0baf393fc3..e472e91fa3 100644 --- a/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/21/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 21 -slug: Mozilla/Firefox/Versions/21/Site_compatibility +slug: Mozilla/Firefox/Releases/21/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 21 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/21/Site_compatibility +original_slug: Mozilla/Firefox/Versions/21/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/22/index.html b/files/fr/mozilla/firefox/releases/22/index.html index d772c8108d..1afc6d7685 100644 --- a/files/fr/mozilla/firefox/releases/22/index.html +++ b/files/fr/mozilla/firefox/releases/22/index.html @@ -1,7 +1,8 @@ --- title: Firefox 22 pour les développeurs -slug: Mozilla/Firefox/Versions/22 +slug: Mozilla/Firefox/Releases/22 translation_of: Mozilla/Firefox/Releases/22 +original_slug: Mozilla/Firefox/Versions/22 ---
{{FirefoxSidebar}}

Vous voulez aider à documenter Firefox 22 ? Parcourez la liste des bugs qui ont besoin d'être documentés et lancez-vous !

diff --git a/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html index d58f2a06c8..4da5d8526a 100644 --- a/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/22/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 22 -slug: Mozilla/Firefox/Versions/22/Site_compatibility +slug: Mozilla/Firefox/Releases/22/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 22 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/22/Site_compatibility +original_slug: Mozilla/Firefox/Versions/22/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/23/index.html b/files/fr/mozilla/firefox/releases/23/index.html index 6d9da9604c..6df95bc6f4 100644 --- a/files/fr/mozilla/firefox/releases/23/index.html +++ b/files/fr/mozilla/firefox/releases/23/index.html @@ -1,7 +1,8 @@ --- title: Firefox 23 pour les développeurs -slug: Mozilla/Firefox/Versions/23 +slug: Mozilla/Firefox/Releases/23 translation_of: Mozilla/Firefox/Releases/23 +original_slug: Mozilla/Firefox/Versions/23 ---
{{FirefoxSidebar}}
Changements pour les développeurs Web
diff --git a/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html index ee40cc83d3..dd320496bd 100644 --- a/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/23/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 23 -slug: Mozilla/Firefox/Versions/23/Site_compatibility +slug: Mozilla/Firefox/Releases/23/Site_compatibility tags: - Compatibilité - Développement Web @@ -8,5 +8,6 @@ tags: - Firefox 23 - FxSiteCompat translation_of: Mozilla/Firefox/Releases/23/Site_compatibility +original_slug: Mozilla/Firefox/Versions/23/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/24/index.html b/files/fr/mozilla/firefox/releases/24/index.html index 7aa78478c5..ff43c72480 100644 --- a/files/fr/mozilla/firefox/releases/24/index.html +++ b/files/fr/mozilla/firefox/releases/24/index.html @@ -1,7 +1,8 @@ --- title: Firefox 24 pour les développeurs -slug: Mozilla/Firefox/Versions/24 +slug: Mozilla/Firefox/Releases/24 translation_of: Mozilla/Firefox/Releases/24 +original_slug: Mozilla/Firefox/Versions/24 ---
{{FirefoxSidebar}}

Changements pour les développeurs Web

diff --git a/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html b/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html index 7cacf2fae5..e012a63ce5 100644 --- a/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html +++ b/files/fr/mozilla/firefox/releases/24/site_compatibility/index.html @@ -1,6 +1,6 @@ --- title: Compatibilité des sites avec Firefox 24 -slug: Mozilla/Firefox/Versions/24/Site_compatibility +slug: Mozilla/Firefox/Releases/24/Site_compatibility tags: - Compatibilité - Développement Web @@ -9,5 +9,6 @@ tags: - FxSiteCompat - Guide translation_of: Mozilla/Firefox/Releases/24/Site_compatibility +original_slug: Mozilla/Firefox/Versions/24/Site_compatibility ---
{{FirefoxSidebar}}

Cette page a été déplacée vers FxSiteCompat.com.

diff --git a/files/fr/mozilla/firefox/releases/3.5/index.html b/files/fr/mozilla/firefox/releases/3.5/index.html index 375c8488d7..4e84c0e4f6 100644 --- a/files/fr/mozilla/firefox/releases/3.5/index.html +++ b/files/fr/mozilla/firefox/releases/3.5/index.html @@ -1,10 +1,11 @@ --- title: Firefox 3.5 pour les développeurs -slug: Mozilla/Firefox/Versions/3.5 +slug: Mozilla/Firefox/Releases/3.5 tags: - Firefox - Firefox 3.5 translation_of: Mozilla/Firefox/Releases/3.5 +original_slug: Mozilla/Firefox/Versions/3.5 ---
{{FirefoxSidebar}}

Firefox 3.5 introduit un certain nombre de nouvelles fonctionnalités, ainsi qu'une gestion améliorée d'une grande variété de standards du Web. Cet article en fournit une longue liste, avec des liens vers des articles décrivant les améliorations majeures.

diff --git a/files/fr/mozilla/firefox/releases/3.6/index.html b/files/fr/mozilla/firefox/releases/3.6/index.html index 6e27affe9d..5831e9e320 100644 --- a/files/fr/mozilla/firefox/releases/3.6/index.html +++ b/files/fr/mozilla/firefox/releases/3.6/index.html @@ -1,10 +1,11 @@ --- title: Firefox 3.6 pour les développeurs -slug: Mozilla/Firefox/Versions/3.6 +slug: Mozilla/Firefox/Releases/3.6 tags: - Firefox - Firefox 3.6 translation_of: Mozilla/Firefox/Releases/3.6 +original_slug: Mozilla/Firefox/Versions/3.6 ---