recursal/MDN huggingface dataset:
File.webkitRelativePath
=======================

**No estándar:** Esta característica no es parte de los estándares. No la uses en sitios Web en producción: no funcionará para todos los usuarios. Podrían haber también incompatibilidades considerables entre distintas implementaciones y el comportamiento podría cambiar en el futuro.

La propiedad **`File.webkitRelativePath`** de solo lectura contiene un `USVString` (en-US) el cual especifica la ruta relativa del archivo al directorio seleccionado por el usuario en un elemento `<input>` con su `webkitdirectory` atributo definido.

Sintaxis
--------


```js
var rulaRelativa = File.webkitRelativePath;
```

### Valor

Un `USVString` (en-US) conteniendo la ruta del archivo relativa al directorio padre seleccionado por el usuario.

Ejemplo
-------

En este ejemplo,un seleccionador de directorios es mostrado al usuario para permitirle seleccionar uno o mas directorios. Cuando el evento `change` (en-US) ocurre, una lista de todos los archivos contenidos dentro de la gerarquia de directorio seleccionado es generado y mostrado.

### HTML


```html
<input type="file" id="filepicker" name="fileList" webkitdirectory multiple />
<ul id="listing"></ul>
```

### JavaScript


```js
document.getElementById("filepicker").addEventListener(
  "change",
  function (event) {
    let output = document.getElementById("listing");
    let files = event.target.files;

    for (let i = 0; i < files.length; i++) {
      let item = document.createElement("li");
      item.innerHTML = files[i].webkitRelativePath;
      output.appendChild(item);
    }
  },
  false,
);
```

### Resultado

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

| Specification |
| --- |
| File and Directory Entries API # dom-file-webkitrelativepath |

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

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

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

* Entidades "Archivo" y "Directorio" en la API (en-US)
* `HTMLInputElement.webkitEntries` (en-US)
* `HTMLInputElement.webkitdirectory` (en-US)
File: Constructor File()
========================

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

El constructor **`File()`** crea una nueva instancia del objeto `File`.

Sintaxis
--------


```js
new File(fileBits, fileName)
new File(fileBits, fileName, options)
```

### Parámetros

`fileBits`

 Un objeto iterable como un `Array`, que tiene `ArrayBuffer`s,
 `TypedArray`s, `DataView` (en-US)s, `Blob`s, cadenas,
 o una mezcla de cualquiera de dichos elementos, que se pondrá dentro de `File`.
 Nota que las cadenas aquí están codificados como UTF-8, a diferencia de las cadenas UTF-16 de JavaScript habituales.


`fileName`

Una cadena que representa el nombre del archivo o ruta del archivo.

`options` Opcional

Un objeto de opciones que contiene los atributos para el archivo. Las opciones disponibles son los siguientes.

`type` Opcional

Una cadena que representa el tipo MIME del contenido que contendrá el archivo. El valor predeterminado es `""`

`endings` Opcional

Cómo interpretar los caracteres de salto de linea (`\n`) dentro del contenido, si el dato es texto. El valor predeterminado, `transparent`, copia caracteres de nueva línea en el blob sin cambiarlos. Para convertir nuevas líneas a la convención nativa del sistema anfitrión, especifica el valor `native`.

`lastModified` Opcional

Un número que representa el número de milisegundos entre la época de tiempo Unix y la última modificación del archivo. El valor predeterminado es `Date.now()`.


Ejemplos
--------


```js
const file = new File(["foo"], "foo.txt", {
  type: "text/plain",
});
```

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

| Specification |
| --- |
| File API # file-constructor |

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

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

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

* `FileReader`
* `Blob`
File.lastModifiedDate
=====================

**Obsoleto:** Esta característica ya no se recomienda. Aunque es posible que algunos navegadores aún lo admitan, probablemente ya se ha eliminado de los estándares web relevantes, está en proceso de eliminación o solo se conserva por motivos de compatibilidad. Evite usarlo y actualice el código existente si es posible; consulte la tabla de compatibilidad en la parte inferior de esta página para orientar su decisión. Tenga en cuenta que esta característica puede dejar de funcionar en cualquier momento.

La propiedad de solo lectura **`File.lastModifiedDate`** retorna la fecha de ultima modificación del archivo. Archivos sin una ultima fecha de modificación conocida retornan la fecha actual.

Sintaxis
--------


```js
var time = instanceOfFile.lastModifiedDate;
```

Valor
-----

Un objeto `Date`.

Ejemplo
-------


```js
// fileInput es un HTMLInputElement: <input type="file" multiple id="myfileinput">
var fileInput = document.getElementById("myfileinput");

// files es un objeto FileList (similar a NodeList)
var files = fileInput.files;

for (var i = 0; i < files.length; i++) {
  alert(
    files[i].name +
      " tiene una fecha de ultima modificacion el " +
      files[i].lastModifiedDate,
  );
}
```

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

*Aunque estaba presente en las primeras versiones de la especificacion de File API, esta propiedad ha sido eliminada de esta y ahora es no-estandar. Usar `File.lastModified` (en-US) como reemplazo.*

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

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

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

* `File`
HTMLInputElement.select()
=========================

El método **`HTMLInputElement.select()`** selecciona todo el texto en un elemento `<textarea>` o un elemento`<input>` con un campo de texto.

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

element.select()
```

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

| Specification |
| --- |
| HTML Standard # dom-textarea/input-select |

Notas
-----

Llamando a `element.select()` no necesariamente se enfoca el campo, por lo que suele utilizarse junto con `HTMLElement.focus()`.

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

* `<input>`
* `<textarea>`
* `HTMLInputElement`
* `HTMLInputElement.setSelectionRange` (en-US)
GlobalEventHandlers.onselect
============================

Un manejador de evento para el evento select en la ventana.Sintaxis
--------
```

window.onselect = funcRef;
```


* `funcRef` es una función
Ejemplo
-------


```html
<html>
  <head>
    <title>onselect test</title>

    <style type="text/css">
 .text1 {
 border: 2px solid red;
 }
 </style>

    <script type="text/javascript">
 window.onselect = selectText;

 function selectText() {
 alert("¡detectado evento select!");
 }
 </script>
  </head>

  <body>
    <textarea class="text1" cols="30" rows="3">
Resalte algo de este texto
con el puntero del ratón
para disparar el evento onselect.
</textarea
 >
  </body>
</html>
```

Notas
-----

El evento select sólo se genera cuando es seleccionado texto dentro de un control de entrada (INPUT) de tipo text o textarea. El evento es disparado *después* de que el texto haya sido seleccionado.

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

| Specification |
| --- |
| HTML Standard # event-select |
| HTML Standard # handler-onselect |
Evento invalid
==============

El evento **`invalid`** se dispara cuando se ha comprobado la validez de un elemento que se puede enviar y no satisface sus restricciones.

|  |  |
| --- | --- |
| Interfaz | `Event` |
| Burbujas | No |
| Cancelable | Sí |
| Objetivos | `Element` |
| Acción por defecto | Varía (puede prevenir que un formulario sea enviado) |

Este evento puede ser útil para desplegar un resumen de los problemas con un formulario al enviarlo. Cuando un formulario se envía, los eventos `invalid` son disparados en cada control del formulario que es inválido, y entonces en el mismo elemento `form`. La válidez de los elementos presentados se comprueba antes de enviar al propio `<form>`, o despúes del método `checkValidity()` (en-US) de un elemento o su propio `<form>` es llamado. No es revisada al perder el foco (on blur).

Ejemplo
-------

Si un formulario es enviado con un valor inválido, los elementos pressentados son revisados, y si un error es encontrado, el evento `invalid` se disparará en el elemento `invalid`. En este ejemplo, el valor inválido del input dispara un evento `invalid`, y el valor inválido es registrado.

### HTML


```html
<form action="#">
  <ul>
    <li>
      <label
 >Enter an integer between 1 and 10:
        <input type="number" min="0" max="10" required
 /></label>
    </li>
    <li><input type="submit" value="submit" /></li>
  </ul>
</form>
<p id="log"></p>
```

### JavaScript


```js
const input = document.querySelector("input");
const log = document.getElementById("log");

input.addEventListener("invalid", logValue);

function logValue(e) {
  log.textContent += e.srcElement.value;
}
```

### Resultado

(Funciona en la versión en inglés)

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

| Specification |
| --- |
| HTML Standard # event-invalid |

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

* `GlobalEventHandlers.oninvalid` (en-US)
* Elemento HTML `<form>`
* Evento relacionado: `submit` (en-US)
* CSS `:invalid` pseudo class
window.navigator.registerProtocolHandler
========================================

### Resumen

Permite que las páginas web se registren por si mismas como posibles manejadores para protocolos concretos.

### Sintaxis
```

window.navigator.registerProtocolHandler(protocol,uri,title);
```


* `protocol` es el protocolo que el sitio quiere manejar, especificado como una cadena.
* `uri` es la URI del manejador en forma de cadena. Puedes incluir "%s" para indicar dónde debe insertarse la URI (en formato escaped) del documento a manejar.
* `title` es el título del manejador presentado al usuario como una cadena.
### Ejemplo
```

navigator.registerProtocolHandler("mailto",
                                 "https://mail.google.com/mail?view=cm&tf=0&to=%s",
                                 "Google Mail");
```


Esto crea un nuevo manejador que permite a los enlaces de tipo "mailto:" dirigir al usuario a Google Mail, insertando la dirección de correo especificada en el enlace, en la URL.

### Especificación

| Specification |
| --- |
| HTML Standard # custom-handlers |

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

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

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

* Manejadores de protocolos basados en Web
* RegisterProtocolHandler Mejora de la web federada (Mozilla Webdev)
Navigator.clipboard
===================

La API de Portapapeles añade a la interfaz **`Navigator`** la propiedad **`clipboard`** de solo lectura, que devuelve el objeto `Clipboard` (en-US) utilizado para leer y escribir el contenido del portapapeles.

La API del Portapapeles se puede utilizar para implementar funciones de cortar, copiar y pegar dentro de una aplicación web.

El uso de los métodos asincrónicos de lectura y escritura del portapapeles requiere que el usuario otorgue permiso al sitio web o a la aplicación para acceder al portapapeles. Este permiso debe obtenerse de la API de Permisos (en-US) utilizando los permisos `"clipboard-read"` y/o `"clipboard-write"`.

Valor
-----

El objeto `Clipboard` (en-US) utilizado para acceder al portapapeles del sistema.

Ejemplo
-------

El siguiente código usa `navigator.clipboard` para acceder al portapapeles del sistema para leer el contenido del portapapeles.


```js
navigator.clipboard
  .readText()
  .then(
    (clipText) => (document.querySelector(".cliptext").innerText = clipText),
  );
```


Este fragmento reemplaza el contenido del elemento cuya clase es `"cliptext"` con el contenido de texto del portapapeles. Tal vez este código se esté utilizando en una extensión del navegador que muestra el contenido actual del portapapeles, actualizándose automáticamente periódicamente o cuando se activan eventos específicos.

Si el portapapeles está vacío o no contiene texto, el contenido del elemento `"cliptext"` se borra. Esto sucede porque `readText()` (en-US) devuelve una cadena vacía si el portapapeles está vacío o no contiene texto.

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

| Specification |
| --- |
| Clipboard API and events # navigator-clipboard |

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

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

 El método **`getBattery()`** provee información acerca de la
 batería del sistema. Retorna una promesa de batería, que es resuelta en un objeto
 `BatteryManager` proveyendo también algunos eventos nuevos que se pueden manejar
 para monitorear el estado de la batería. Esto implementa la API de Estado de Batería; ver esa
 documentación para detalles adicionales, una guía para usar la API, y código de ejemplo.

**Nota:** En algunos navegadores el acceso a esta característica está controlado por la directiva `Feature-Policy` (en-US): `battery` (en-US).

Sintaxis
--------


```js
getBattery();
```

### Parámetros

Ninguno.

### Valor de retorno

 Una `Promise` que, cuando finaliza, llama a su manejador de cumplimiento con un
 solo parámetro: un objeto `BatteryManager` que puede ser usado para obtener
 información acerca del estado de la batería.

### Excepciones

Este método no arroja excepciones reales; en su lugar, rechaza la promesa retornada, pasando dentro de ella una `DOMException` cuyo `name` (nombre) es uno de los siguientes:

`SecurityError`

El Agente de Usuario no expone información de batería a contextos inseguros y este método fue llamado de un contexto inseguro.

**Nota:** Versiones antiguas de algunos Agentes de Usuario pueden permitir el uso de esta característica en contextos inseguros.

`NotAllowedError`

Ningún Agente de Usuario arroja actualmente esta excepción, pero la especificación describe el siguiente comportamiento:

> 
> 
>  Este documento no tiene permitido el uso de esta característica.
>  Por ejemplo, puede no estar permitido o restringido explícitamente por medio de la característica `Feature-Policy` (en-US) `battery` (en-US).
>  
> 
> 
> 

Ejemplos
--------

 Este ejemplo obtiene el estado actual de carga de la batería y establece un
 manejador para el evento `chargingchange`, de manera tal que el estado de carga
 es grabado cuando cambia.


```js
let batteryIsCharging = false;

navigator.getBattery().then(function (battery) {
  batteryIsCharging = battery.charging;

  battery.addEventListener("chargingchange", function () {
    batteryIsCharging = battery.charging;
  });
});
```


Para más ejemplos y detalles, ver API de Estado de Batería.

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

| Specification |
| --- |
| Battery Status API # dom-navigator-getbattery |

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

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

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

* API de Estado de Batería
* Característica `Feature-Policy` `battery` (en-US)
window.navigator.vibrate
========================

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

Resumen
-------

Ejecuta la vibración por hardware en el dispositivo, si existe dicho hardware. Si el dispositivo no soporta vibración, este método no tendrá efecto. Si un patrón de vibración ya estaba en progreso cuando este método es ejecutado, el patrón anterior se detiene y en su lugar se iniciará el último patrón ejecutado.

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

window.navigator.vibrate(pattern);
```


* `pattern` proporciona un patrón de intervalos de vibración y pausas, como se describe a continuación.

pattern

Proporciona un patrón de intervalos de vibraciones y pausas. Cada valor indica el número de milisegundos que durará la vibración y la pausa, respectivamente. Se puede porporcionar un valor único (en cuyo caso la vibración se ejecutará una vez, con la duración especificada en milisegundos) o un arreglo de valores (array) para alternar vibraciones y pausas. Ver Vibration API (en-US) para más detalles.

Si se especifica el valor 0, un array vacío o un array que contenga todos los valores en 0, se cancelarán todos los patrones de vibración que se estén ejecutando.

Excepciones
-----------

Podrá producirse una excepción si el patrón de vibración especificado es demasiado largo o si cualquiera de sus elementos son demasiado grandes.

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

| Specification |
| --- |
| Vibration API (Second Edition) # dom-navigator-vibrate |

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

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

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

* Vibration API (en-US)
window.navigator.geolocation
============================


 La propiedad de sólo lectura **`Navigator.geolocation`** devuelve un objeto `Geolocation` que proporciona acceso web a la ubicación de un dispositivo. Esto permite ofrecer al sitio web o aplicación resultados personalizados basados en la ubicación del usuario.

**Nota:** Por motivos de seguridad, cuando una página web trata de acceder a la información de ubicación, se solicita permiso al usuario. Cada navegador tiene sus propias reglas sobre cómo y cuándo obtener dicho permiso.

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

geo = navigator.geolocation
```

Métodos
-------

`geolocation.getCurrentPosition()`

Utilizado para obtener la posición actual.

`geolocation.watchPosition()`

Utilizado para asignar un manejador para dar seguimiento a cualquier cambio de ubicación.

`geolocation.clearWatch()`

Utilizado para eliminar un manejador asignado a los cambios de ubicación.

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

| Specification |
| --- |
| Geolocation API # dom-navigator-geolocation |

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

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

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

* Utilizando la geolocalización
navigator.hardwareConcurrency
=============================

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

La propiedad **`navigator.hardwareConcurrency`** es de solo lectura navigator.hardwareConcurrency devuelve el número de procesadores lógicos disponibles para ejecutar subprocesos en la computadora del usuario.

Sintaxi
-------


```js
logicalProcessors = window.navigator.hardwareConcurrency;
```

Valor
-----

`Number` indica el número de núcleos de procesadores lógicos.

Las computadoras modernas tienen múltiples núcleos de procesadores físicos en su CPU (dos o cuatro núcleos son típicos), pero cada núcleo físico también puede ejecutar más de un subproceso a la vez utilizando técnicas avanzadas de programación. Por lo tanto, una CPU de cuatro núcleos puede ofrecer ocho núcleos de procesador lógico, por ejemplo. El número de núcleos de procesador lógico se puede utilizar para medir el número de subprocesos que se pueden ejecutar de manera efectiva a la vez sin que tengan que cambiar de contexto.

Sin embargo, el navegador puede optar por informar un número menor de núcleos lógicos para representar con mayor precisión el número de `Worker`s que pueden ejecutarse a la vez, así que no trate esto como una medida absoluta del número de núcleos en el sistema del usuario .

Ejemplos
--------

En este ejemplo, se crea un `Worker` para cada procesador lógico informado por el navegador y se crea un registro que incluye una referencia al nuevo worker, así como un valor booleano que indica si nosotros ' estoy usando ese worker todavía; Estos objetos, a su vez, se almacenan en una matriz para su uso posterior. Esto crea un grupo de workers que podemos usar para procesar solicitudes más adelante.


```js
let workerList = [];

for (let i = 0; i < window.navigator.hardwareConcurrency; i++) {
  let newWorker = {
    worker: new Worker("cpuworker.js"),
    inUse: false,
  };
  workerList.push(newWorker);
}
```

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

| Specification |
| --- |
| HTML Standard # dom-navigator-hardwareconcurrency-dev |

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

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

See also
--------

* `Navigator`
* `WorkerNavigator`
Navigator.doNotTrack
====================

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

Devuelve los ajustes de do-not-track del usuario. Esto es `"1"` si el usuario ha solicitado no ser rastreado por sitios web, contenidos, o anuncios.

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

dnt = navigator.doNotTrack;
```


El valor refleja el de la cabecera do-not-track, ej. valores de {"1", "0", "unspecified" }. Nota: Antes de Gecko 32, Gecko empleaba los valores { "yes", "no", "unspecified"} (bug 887703).

Ejemplo
-------


```js
console.log(navigator.doNotTrack);
// imprime "1" si DNT está habilitado; "0" si el usuario ha aceptado el rastreo; en caso contrario es "unspecified"
```

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

#### No specification found

No specification data found for `api.Navigator.doNotTrack`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

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

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

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

* Guía sobre el campo Do Not Track (en-US)
NavigatorLanguage.language
==========================

La propiedad de solo lectura **`Navigator.language`** devuelve un string representando el lenguaje predefinido del usuario, generalmente es el lenguaje configurado para la interfaz del navegador.

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

lang = globalObj.navigator.language
```

### Valores

`Un string que representa el código del lenguaje standard como se define en la` BCP 47. Ejemplos de códigos válidos de lenguaje incluyen: "en", "en-US", "fr", "es-ES", etc.

Ejemplo
-------


```js
if (window.navigator.language != "en") {
  doLangSelect(window.navigator.language);
}
```

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

| Specification |
| --- |
| HTML Standard # dom-navigator-language-dev |

Compatibilidad de Navegadores
-----------------------------

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

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

* `navigator.languages` (en-US)
* `navigator`