recursal/MDN huggingface dataset:
FormData
========

La interfaz **`FormData`** proporciona una manera sencilla de construir un conjunto de parejas clave/valor que representan los campos de un formulario y sus valores, que pueden ser enviados fácilmente con el método `XMLHttpRequest.send()` (en-US). Utiliza el mismo formato que usaría un formulario si el tipo de codificación fuera `"multipart/form-data"`.

También puede pasarse directamente al constructor de `URLSearchParams` si se quieren generar parámetros de consulta de la misma forma en que lo haría un `<form>` si usara un envío `GET` simple.

Un objeto que implementa `FormData` puede usarse directamente en una estructura `for...of`, en lugar de `entries()` (en-US): `for (var p of myFormData)` es equivalente a `for (var p of myFormData.entries())`.

**Nota:** Esta característica está disponible en Web Workers.

Constructor
-----------

`FormData()` (en-US)

Crea un nuevo objeto `FormData`.

Métodos
-------

`FormData.append()` (en-US)

Agrega un nuevo valor a una clave existente dentro de un objeto `FormData`, o añade la clave si aún no existe.

`FormData.delete()` (en-US)

Elimina una pareja clave/valor de un objeto `FormData`.

`FormData.entries()` (en-US)

Devuelve un `iterator` que permite recorrer todas las parejas clave/valor contenidas en este objeto.

`FormData.get()` (en-US)

Devuelve el primer valor asociado con una clave dada en un objeto `FormData`.

`FormData.getAll()` (en-US)

Devuelve un array con todos los valores asociados con una clave dada en un objeto `FormData`.

`FormData.has()` (en-US)

Devuelve un booleano que indica si un objeto `FormData` contiene una clave determinada.

`FormData.keys()` (en-US)

Devuelve un `iterator` que permite recorrer todas las claves de las parejas clave/valor contenidas en este objeto.

`FormData.set()` (en-US)

Establece un nuevo valor para una clave existente dentro de un objeto `FormData`, o agrega la clave/valor si aún no existe.

`FormData.values()` (en-US)

Devuelve un `iterator` que permite recorrer todos los valores contenidos en este objeto.

Especificaciones
----------------

| Specification |
| --- |
| XMLHttpRequest Standard # interface-formdata |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver también
-----------

* `XMLHTTPRequest`
* Utilización de XMLHttpRequest
* Usando objetos FormData
* `<form>`
WindowTimers.clearInterval()
============================

Cancela una acción reiterativa que se inició mediante una llamada a `setInterval` (en-US).

Sintaxis
--------
```

window.clearInterval(intervalID)
```


`intervalID` es el identificador de la acción reiterativa que se desea cancelar. Este ID se obtiene a partir de `setInterval()`.

Ejemplo
-------

Vea el ejemplo de`setInterval()` (en-US).

Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # dom-clearinterval-dev |

Vea también
-----------

* JavaScript timers
* `WindowTimers.setTimeout`
* `WindowTimers.setInterval`
* `WindowTimers.clearTimeout`
* `window.requestAnimationFrame`
* *Daemons* management
range
=====

### Introducción

El objeto `Range` representa un fragmento de un documento que puede contener nodos y partes de nodos de texto en un documento dado.

Un rango puede ser creado usando el método `createRange` del objeto `document`. Los objetos rango pueden ser recuperados usando el método `getRangeAt` del objeto `Selection`.

### Propiedades

collapsed

Devuelve un valor booleano indicando si los puntos de inicio y fin están en la misma posición.

commonAncestorContainer

Devuelve el nodo más profundo que contiene los nodos **startContainer** y **endContainer**.

endContainer

Devuelve el nodo dentro del cual termina el rango.

endOffset

Devuelve un número representando donde termina el `Range` en el `endContainer`.

startContainer

Devuelve el nodo dentro del cual comienza el rango.

startOffset

Devuelve un número representando donde empieza el `Range` en el `endContainer`.

### Métodos

#### Métodos de ubicación

Estos métodos definen el punto de inicio y fin de un rango.

setStart

Define la posición inicial de un rango.

setEnd

Define la posición final de un rango.

setStartBefore

Define la posición inicial de un rango relativa a otro nodo.

setStartAfter

Define la posición inicial de un rango relativa a otro nodo.

setEndBefore

Define la posición final de un rango relativa a otro nodo.

setEndAfter

Define la posición final de un rango relativa a otro nodo.

selectNode

Define el rango a contener el nodo y sus contenidos.

selectNodeContents

Define el rango a contener los contenidos de un nodo.

collapse

Pliega el Rango a uno de sus puntos límite.

#### Editando métodos

Estos métodos recuperan nodos de un rango y modifican los contenidos de un rango.

cloneContents

Devuelve un fragmento de documento copiando los nodos de un rango.

deleteContents

Elimina del documento los contenidos de un rango.

extractContents

Mueve los contenidos de un rango del árbol de documento a un fragmento del documento.

insertNode

Inserta un nodo al comienzo de un rango.

surroundContents

Mueve el contenido de un rango a un nodo nuevo.

#### Otros métodos

compareBoundaryPoints

Compara los puntos límite de dos rangos.

cloneRange

Devuelve un objeto rango con puntos límites idénticos al rango clonado.

detach

Libera el Rango desde el uso para mejorar el rendimiento.

toString

Devuelve el texto del rango.

#### Métodos de Gecko

Esta sección describe métodos de `Range` que son particulares a Mozilla y no son parte de las especificaciones DOM W3C.

compareNode 
Obsoleto

Devuelve una constante representando si el nodo está antes, después, dentro o alrededor del rango.

comparePoint

Devuelve -1, 0, or 1 indicando si el punto ocurre antes, dentro o después del rango.

createContextualFragment

Devuelve un fragmenteo de documento creado de un texto de código.

intersectsNode 
Obsoleto

Devuelve un valor boleano verdadero si el nodo dado intersecta el rango.

isPointInRange

Devuelve un valor boleano verdadero indicando si el punto dado está en el rango.
CssRule
=======

El objeto **`CSSRule`** representa una única regla de estilo CSS. Puede ser parte de una lista cssRules de hojas de estilo (stylesheet).

Existen varias clases de reglas y todas ellas comparten unas cuantas propiedades comunes en el interface CSSRule y la mayor parte de ellas son propiedades específicas de un tipo particular de reglas.

| Tipo | interface específico de la regla | Descripción |
| --- | --- | --- |
| `CSSRule.STYLE_RULE` | CSSStyleRule |  |
| `CSSRule.MEDIA_RULE` | CSSMediaRule |  |
| `CSSRule.FONT_FACE_RULE` | CSSFontFaceRule |  |
| `CSSRule.PAGE_RULE` | CSSPageRule |  |
| `CSSRule.IMPORT_RULE` | CSSImportRule |  |
| `CSSRule.CHARSET_RULE` | CSSCharsetRule |  |
| `CSSRule.UNKNOWN_RULE` | CSSUnknownRule |  |

### CSSRule

cssText

Devuelve la representación en forma de texto, de la regla. Ejem.: "h1,h2 { font-size: 16pt }".

parentRule

Devuelve la regla contenedora, si existe. Ejem.: una regla de estilo dentro de un bloque @media.

parentStyleSheet

Devuelve el objeto stylesheet del que esta regla es parte.

type

El tipo de regla. ejem.: `CSSRule.CHARSET_RULE` o `CSSRule.IMPORT_RULE`.

### CSSStyleRule

selectorText

Recoje/Establece la representación en forma de texto, del selector de la regle. Ejem.: "h1,h2".

style

Devuelve el objeto CSSStyleDeclaration para el bloque declaration block de la regla.

### CSSMediaRule

### CSSFontFaceRule

### CSSPageRule

### CSSImportRule

### CSSCharsetRule

### CSSUnknownRule

### Specification

DOM Level 2 CSS: CSSRule
History.length
==============

La propiedad de sólo lectura **`History.length`** retorna un entero representando el número de elementos en el historial de la sesión, incluyendo la página cargada actualmente. Por ejemplo, para una página cargada en una nueva pestaña esta propiedad retorna `1`.

Sintaxis
--------
```

const length = history.length
```

Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # dom-history-length-dev |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Mira también
------------

* La interfaz `History` a la que pertenece.
StorageManager.persisted()
==========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

**Experimental:** **Esta es una tecnología experimental**  
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.

La propiedad **`persisted`** de la interfaz `StorageManager` devuelve una `Promise` que se resuelve como `true` si *box mode* es persistente para el alamacenamiento de su sitio.

Sintaxis
--------
```

navigator.storage.persisted().then(function(persistent) { ... })
```

### Parámetros

Ninguno.

### Devuelve

Una `Promise` que se resuelve como `Boolean`.

Ejemplo
-------


```js
if (navigator.storage && navigator.storage.persist)
  navigator.storage.persisted().then(function (persistent) {
    if (persistent)
      console.log("Storage will not be cleared except by explicit user action");
    else
      console.log("Storage may be cleared by the UA under storage pressure.");
  });
```

Especificaciones
----------------

| Specification |
| --- |
| Storage Standard # dom-storagemanager-persisted |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
StorageManager.persist()
========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

**Experimental:** **Esta es una tecnología experimental**  
Comprueba la Tabla de compabilidad de navegadores cuidadosamente antes de usarla en producción.

El método **`persist()`** de la interfaz `StorageManager` solicita permiso para usar el almacenamiento persistente, y devuelve una `Promise` que se resuelve como `true` si se concede el permiso y *box mode* es persistente, y `false` en cualquier otro caso.

Sintaxis
--------
```

navigator.storage.persist().then(function(persistent) { ... })
```

### Parámetros

Ninguno.

### Valor devuelto

Una `Promise` que se resuelve en un `Boolean`.

Ejemplo
-------


```js
if (navigator.storage && navigator.storage.persist)
  navigator.storage.persist().then(function (persistent) {
    if (persistent)
      console.log("Storage will not be cleared except by explicit user action");
    else
      console.log("Storage may be cleared by the UA under storage pressure.");
  });
```

Especificaciones
----------------

| Specification |
| --- |
| Storage Standard # ref-for-dom-storagemanager-persist |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
StorageManager.estimate()
=========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

El método **`estimate()`** de la interfaz `StorageManager` solicita al Gestor de Almacenamiento la información de cuota y uso para el origen actual. Este método opera de forma asíncrona, por lo que devuelve una `Promise` que se resuelve una vez que la información esté disponible. La función que controla el cumplimiento de la promesa recibe un `StorageEstimate` (en-US) como entrada con la informción de uso y cuota.

Sintaxis
--------
```

var estimatePromise = StorageManager.estimate();
```

### Parámetros

Ninguno.

### Valor devuelto

Una `Promise` que se resuelve como un objeto que se ajusta al diccionario `StorageEstimate` (en-US). Este diccionario contiene estimaciones sobre la cantidad de espacio disponible para el origen o aplicación (en `StorageEstimate.quota` (en-US), así como la cantidad que se usa en ese momento (in `StorageEstimate.usage` (en-US)). Estos no son números exactos; entre la compresión, la deduplicación y la ofuscación por razones de seguridad, no serán precisos.

Es posible que la `quota` varíe de una aplicación a otra en función de factores como la frecuencia con la que el usuario la visita, los datos de popularidad del sitio, etc.

Ejemplo
-------

En este ejemplo, obtenemos las estimaciones de uso y presentamos el porcentaje de la capacidad de almacenamiento utilizada actualmente al usuario.

### HTML


```html
<p>
  You're currently using about <span id="percent"> </span>% of your available
  storage.
</p>
```

### JavaScript


```js
navigator.storage.estimate().then(function (estimate) {
  document.getElementById("percent").innerHTML = (
    estimate.usage / estimate.quota
  ).toFixed(2);
});
```

### Resultado

Especificaciones
----------------

| Specification |
| --- |
| Storage Standard # ref-for-dom-storagemanager-estimate |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver también
-----------

* Storage API
* `Storage`, el objeto devuelto por `Window.localStorage`
* `StorageManager`
* `navigator.storage` (en-US)
GlobalEventHandlers.onclose
===========================

Baseline 2022
-------------

Newly availableSince March 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback
Un gestor de eventos para los eventos de cerrar enviados a la ventana. (No disponible con Firefox 2 o Safari)

Sintaxis
--------
```

window.onclose = funcRef;
```

### Parámetros

* `funcRef` es una referencia a una función.
Ejemplo
-------


```js
window.onclose = resetThatServerThing;
```

Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # event-close |

Compatibilidad con Navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
element.dispatchEvent
=====================

### Resumen

Lanza un evento en el sistema de eventos. El evento está sujeto al mismo comportamiento y capacidades que si fuera un evento de lanzamiento directo.

### Sintaxis
```

bool = element.dispatchEvent(event)
```


* `element` es el objetivo (`target` en Inglés) del evento.
* `event` es un objeto de tipo event que será lanzado.
* El valor devuelto es `false`, si al menos uno de los negociadores (en Inglés:*handler* ) que manejan el evento es preventDefault. En caso contrario, devuelve `true`.
### Notas

Como se ve en el ejemplo anterior, `dispatchEvent` es el último paso en el proceso crear-inicializar-lanzar, que se usa para el lanzamiento manual de eventos en el modelo de implementación de eventos.

El evento puede ser creado mediante el método document.createEvent e inicializado usando initEvent u otro método, más específicamente, métodos de inicialización como initMouseEvent o initUIEvent.

Ver también Event object reference.

### Especificación

DOM Level 2 Events: dispatchEvent
HTMLSelectElement.checkValidity()
=================================

Baseline 2023
-------------

Newly availableSince March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback
El método **`HTMLSelectElement.checkValidity()`** comprueba si el elemento tiene restricciones y si las cumple. Si el elemento no cumple sus restricciones, el navegador lanza un evento cancelable `invalid` (en-US) al momento y luego devuelve `false`.

Sintaxis
--------


```html
var result = selectElt.checkValidity();
```

Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # dom-cva-checkvalidity-dev |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver también
-----------

* Validación de restricciones.
HTMLSelectElement.setCustomValidity()
=====================================

Baseline 2023
-------------

Newly availableSince March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

* Learn more
* See full compatibility
* Report feedback
El metodo **`HTMLSelectElement.setCustomValidity()`** define el mensaje de validación personalizado para el elemento seleccionado con el mensaje especifico. Usa una string vacia para indicar que ese elemento no tiene error de validación customizado.

Syntax
------
```

selectElt.setCustomValidity(string);
```

### Parameters

* `string` is the `DOMString` containing the error message.
Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # dom-cva-setcustomvalidity-dev |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Form validation. (en-US)
Geolocation.clearWatch()
========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

 El método **`Geolocation.clearWatch()`** es usado para remover funciones que monitorizan
 la ubicación o errores, previamente registradas usando **`Geolocation.watchPosition()`**

Sintaxis
--------


```js
clearWatch(id)
```

### Parámetros

`id`

 El ID numérico es devuelto cuando se agrega una función para el monitoreo de la ubicación
 usando el método `Geolocation.watchPosition()`

### Valor devuelto

Ninguno (`undefined`).

Ejemplos
--------


```js
let id;
let target;
let options;

function success(pos) {
  const crd = pos.coords;

  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log("Felicidades, has llegado a tu destino.");
    navigator.geolocation.clearWatch(id);
  }
}

function error(err) {
  console.error(`ERROR(${err.code}): ${err.message}`);
}

target = {
  latitude: 0,
  longitude: 0,
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0,
};

id = navigator.geolocation.watchPosition(success, error, options);
```

Especificaciones
----------------

| Specification |
| --- |
| Geolocation API # clearwatch-method |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Véase también
-------------

* Usando la API de Geolocalización (en-US)
* `Geolocation`
* `Geolocation.watchPosition()`
* `Geolocation.getCurrentPosition()`
Geolocation.getCurrentPosition()
================================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

El método **`Geolocation.getCurrentPosition()`** es usado para obtener la ubicación actual del dispositivo.

Sintaxis
--------


```js
getCurrentPosition(success)
getCurrentPosition(success, error)
getCurrentPosition(success, error, options)
```

### Parámetros

`success`

La función devuelta tiene como único parámetro de entrada un objeto de tipo `GeolocationPosition`.

`error` Opcional

La función opcional devuelta tiene como parámetro de entrada un objeto de tipo `GeolocationPositionError` (en-US).

`options` Opcional

Un objeto opcional que puede incluir las siguientes propiedades:

`maximumAge`

Un valor positivo de tipo `long` que indica el tiempo máximo en milisegundos que una posible ubicación almacenada en caché puede ser devuelta. Si se establece en 0, eso significa que el dispositivo no podrá usar la ubicación almacenada en caché y debe intentar recuperar la ubicación real y actual. Si se establece como `Infinity` el dispositivo deberá regresar la ubicación almacenada en caché independientemente de su antigüedad. Predeterminado: 0.

`timeout`

Un valor positivo de tipo `long` que representa el tiempo máximo en milisegundos en que el dispositivo tiene permitido recuperar la ubicación. El valor predeterminado es `Infinity`, esto significa que `getCurrentPosition()` regresará un valor hasta que la ubicación este disponible.

`enableHighAccuracy`

Un valor de tipo `boolean` que indica que a la aplicación le gustaría obtener el resultado más preciso posible. Si es `true` y el dispositivo es capaz de proveer una ubicación más precisa, lo hará. Tenga en cuenta que este resultado puede necesitar de más tiempo de respuesta o incrementar el consumo de energía (con un chip GPS en un dispositivo móvil por ejemplo). Por otro lado, si es `false`, el dispositivo puede tomarse la libertad de usar menos recursos y responder más rápido y/o usando menos energía. Predeterminado: `false`


### Valor devuelto

Ninguno (`undefined`).

Ejemplos
--------


```js
const options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 0,
};

function success(pos) {
  const crd = pos.coords;

  console.log("Tu ubicación actual es:");
  console.log(`Latitud : ${crd.latitude}`);
  console.log(`Longitud: ${crd.longitude}`);
  console.log(`Más o menos ${crd.accuracy} metros.`);
}

function error(err) {
  console.warn(`ERROR(${err.code}): ${err.message}`);
}

navigator.geolocation.getCurrentPosition(success, error, options);
```

Especificaciones
----------------

| Specification |
| --- |
| Geolocation API # getcurrentposition-method |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Véase también
-------------

* Usando la API de Geolocalización (en-US)
* `Navigator.geolocation`
Geolocation.watchPosition()
===========================

**Contexto seguro:** Esta función está disponible solo en contextos seguros (en-US) (HTTPS), en algunos o todos los navegadores que lo soportan.

El método **`watchPosition()`** de `Geolocation` se usa para registrar una función que será llamada automáticamente cada vez que el dispositivo cambie de ubicación. También puede, opcionalmente, especificar una función que maneje los errores.

Sintaxis
--------


```js
watchPosition(success)
watchPosition(success, error)
watchPosition(success, error, options)
```

### Parámetros

`success`

La función devuelta tiene como parámetro de entrada un objeto de tipo `GeolocationPosition`.

`error` Opcional

La función opcional devuelta tiene como parámetro de entrada un objeto de tipo `GeolocationPositionError` (en-US).

`options` Opcional

 Un objeto opcional que provee de configuraciones a la monitorización de la ubicación.
 Consulte `Geolocation.getCurrentPosition()` para obtener más detalles acerca de las posibles opciones.


### Valor devuelto

 Un valor numérico ID que identifica a la función que se encuentra monitoreando la ubicación.
 Este ID puede ser pasado al método `Geolocation.clearWatch()` para detener el monitoreo de la ubicación.

Ejemplos
--------


```js
let id;
let target;
let options;

function success(pos) {
  const crd = pos.coords;

  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log("Felicidades, has llegado a tu destino.");
    navigator.geolocation.clearWatch(id);
  }
}

function error(err) {
  console.error(`ERROR(${err.code}): ${err.message}`);
}

target = {
  latitude: 0,
  longitude: 0,
};

options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0,
};

id = navigator.geolocation.watchPosition(success, error, options);
```

Especificaciones
----------------

| Specification |
| --- |
| Geolocation API # watchposition-method |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Véase también
-------------

* Usando la API de Geolocalización (en-US)
* La interfaz pertenece a `Geolocation`, y puede ser accedida mediante `Navigator.geolocation`.
* La operación contraria: `Geolocation.clearWatch()`
* Un método similar: `Geolocation.getCurrentPosition()`