diff --git a/docs/es/README.md b/docs/es/README.md index e4f39899b2fe1c..abb734a7b01eb2 100644 --- a/docs/es/README.md +++ b/docs/es/README.md @@ -1,4 +1,4 @@ -# Bievenido a la localización de MDN en español +# Bienvenido a la localización de MDN en español Puedes comenzar en la siguiente [guía de contribución](https://developer.mozilla.org/es/docs/MDN/Contribute) @@ -14,10 +14,10 @@ Puedes comenzar en la siguiente [guía de contribución](https://developer.mozil > * ![Screenshot 2022-03-01 at 17-13-20 mdn translated-content All translated MDN content in raw form](https://user-images.githubusercontent.com/13079269/156264660-afcba14a-14a0-4c66-9a33-c1e2ad41737b.png) hacer Fork al repositorio en nuestra cuenta de GitHub. > * Clonar el repositorio de nuestra cuenta de GitHub `git clone git@github.com:TU_USUARIO/translated-content.git` > * `cd translated-content` #Entrar al directorio -> * `git checkout -b patch-error-on-123-issue` #Crear rama para trabajar +> * `git switch -c patch-error-on-123-issue` #Crear rama para trabajar > * Hacer nuestros cambios -> * `git add files/es/archivo.md` #Agregamos los arachivos modificados -> * `git rm files/es/archivo.html` #Removemos los archivos eliminados +> * `git add files/es/archivo.md` #Agregamos los archivos modificados +> * `git rm files/es/archivo.html` #Removemos los archivos eliminados (si los hubiera) > * `git commit -m "Corregido el error 123 [es]"` #Hacemos commit con una descripción de lo realizado y agregamos `[es]` > * `git push -u origin patch-error-on-123-issue` #Subimos nuestra rama a nuestro repositorio > * Ir a nuestro repositorio https://github.com/TU_USUARIO/translated-content y solicitar el Pull Request @@ -37,12 +37,15 @@ Digamos que desea traducir el contenido de la página que se observa en esta dir 2. Buscar la [versión en español](https://github.com/mdn/translated-content/blob/main/files/es/) del [documento](https://github.com/mdn/translated-content/blob/main/files/es/web/javascript/reference/global_objects/array/index.html) que desea traducir. En este caso la dirección seria [`files/es/web/javascript/reference/global_objects/array/index.{html|md}`](https://github.com/mdn/translated-content/blob/main/files/es/web/javascript/reference/global_objects/array/index.html) > NOTA: - > - Si el archivo no existe, deberá crearlo en formato `Markdown` imitando la ruta que tiene la versión en inglés. + > - Si el archivo no existe, deberá crearlo en formato `Markdown` imitando la ruta que tiene la versión en inglés. > > - Es posible que el archivo en la versión en español se encuentre en formato `HTML`, en cuyo caso tendrá que reemplazarlo por el formato `Markdown`. -3. Utilizar el texto y formato en inglés como guía para traducir al español. +3. Utilizar el texto y formato en inglés como guía para traducir al español. +## Arreglar "flaws" (defectos) + +Al usar `yarn start` en localhost para el repositorio `mdn/content`, es posible ver una previsualización en tu servidor local de los cambios que has hecho y como lucirán. Esto también es posible creando un PR, el bot se encargará de generar una "preview URL" donde puedes observar el mismo resultado. En ambas pantallas, podrás, en la parte superior del documento, mostrar los "flaws" que el motor indique, y que contendrá aquellos defectos detectados de manera automática para ser corregidos, y, en algunos casos, la corrección disponible con un clic, o una sugerencia. ## Convención en traducciones @@ -59,13 +62,13 @@ La comunidad de español sugiere utilizar las siguientes convenciones al traduci | Browser compatibility | Compatibilidad con navegadores | | HTML Content o HTML | HTML | | JavaScript Content o JavaScript | JavaScript | -| Warning | Advertencia | +| Warning | Advertencia | Actualmente trabajando en: https://github.com/mdn/translated-content/issues/6562 -Charla con nosotros: +## Charla con nosotros Telegram: https://t.me/+Dr6qKQCAepw4MjFj @@ -75,7 +78,7 @@ Matrix: https://chat.mozilla.org/#/room/#mdn-l10n-es:mozilla.org

Enlaces relevantes

Documentación por prioridad. -https://developer.mozilla.org/en-US/docs/MDN/Contribute/Documentation_priorities +https://developer.mozilla.org/en-US/docs/MDN/Contribute/Documentation_priorities Proyecto `ES` en GitHub https://github.com/mdn/translated-content/projects/7 diff --git a/files/es/_redirects.txt b/files/es/_redirects.txt index 378e0c474fcb5c..4881fdf8502956 100644 --- a/files/es/_redirects.txt +++ b/files/es/_redirects.txt @@ -1587,8 +1587,8 @@ /es/docs/Web/API/DocumentOrShadowRoot/pointerLockElement /es/docs/Web/API/Document/pointerLockElement /es/docs/Web/API/DocumentOrShadowRoot/styleSheets /es/docs/Web/API/Document/styleSheets /es/docs/Web/API/Element/accessKey /es/docs/Web/API/HTMLElement/accessKey -/es/docs/Web/API/Element/ongotpointercapture /es/docs/Web/API/GlobalEventHandlers/ongotpointercapture -/es/docs/Web/API/Element/onlostpointercapture /es/docs/Web/API/GlobalEventHandlers/onlostpointercapture +/es/docs/Web/API/Element/ongotpointercapture /es/docs/Web/API/Element/gotpointercapture_event +/es/docs/Web/API/Element/onlostpointercapture /es/docs/Web/API/Element/lostpointercapture_event /es/docs/Web/API/Element/onwheel /es/docs/conflicting/Web/API/Element/wheel_event /es/docs/Web/API/ElementosHTMLparaVideo /es/docs/Web/API/HTMLVideoElement /es/docs/Web/API/Event/createEvent /es/docs/Web/API/Document/createEvent @@ -1608,9 +1608,11 @@ /es/docs/Web/API/GlobalEventHandlers/onclick /es/docs/conflicting/Web/API/Element/click_event /es/docs/Web/API/GlobalEventHandlers/onclose /es/docs/Web/API/HTMLDialogElement/close_event /es/docs/Web/API/GlobalEventHandlers/onfocus /es/docs/Web/API/Window/focus_event +/es/docs/Web/API/GlobalEventHandlers/ongotpointercapture /es/docs/Web/API/Element/gotpointercapture_event /es/docs/Web/API/GlobalEventHandlers/oninput /es/docs/conflicting/Web/API/HTMLElement/input_event /es/docs/Web/API/GlobalEventHandlers/onkeydown /es/docs/conflicting/Web/API/Element/keydown_event /es/docs/Web/API/GlobalEventHandlers/onkeyup /es/docs/conflicting/Web/API/Element/keyup_event +/es/docs/Web/API/GlobalEventHandlers/onlostpointercapture /es/docs/Web/API/Element/lostpointercapture_event /es/docs/Web/API/GlobalEventHandlers/onresize /es/docs/Web/API/Window/resize_event /es/docs/Web/API/GlobalEventHandlers/onscroll /es/docs/Web/API/Element/scroll_event /es/docs/Web/API/GlobalEventHandlers/onselect /es/docs/Web/API/HTMLInputElement/select_event diff --git a/files/es/_wikihistory.json b/files/es/_wikihistory.json index ace9f528640446..1730229e2a0891 100644 --- a/files/es/_wikihistory.json +++ b/files/es/_wikihistory.json @@ -5788,6 +5788,12 @@ "cguimaraenz" ] }, + "Web/API/Element/gotpointercapture_event": { + "modified": "2019-03-23T22:25:49.346Z", + "contributors": [ + "SoftwareRVG" + ] + }, "Web/API/Element/hasAttribute": { "modified": "2019-03-23T22:12:50.721Z", "contributors": [ @@ -5852,6 +5858,12 @@ "SoftwareRVG" ] }, + "Web/API/Element/lostpointercapture_event": { + "modified": "2019-03-23T22:25:49.190Z", + "contributors": [ + "SoftwareRVG" + ] + }, "Web/API/Element/matches": { "modified": "2020-12-06T16:23:07.481Z", "contributors": [ @@ -6455,12 +6467,6 @@ "galegosimpatico" ] }, - "Web/API/GlobalEventHandlers/ongotpointercapture": { - "modified": "2019-03-23T22:25:49.346Z", - "contributors": [ - "SoftwareRVG" - ] - }, "Web/API/GlobalEventHandlers/onload": { "modified": "2019-03-23T23:33:14.527Z", "contributors": [ @@ -6469,12 +6475,6 @@ "ehecatl" ] }, - "Web/API/GlobalEventHandlers/onlostpointercapture": { - "modified": "2019-03-23T22:25:49.190Z", - "contributors": [ - "SoftwareRVG" - ] - }, "Web/API/HTMLAnchorElement": { "modified": "2019-03-18T21:42:27.257Z", "contributors": [ diff --git a/files/es/learn/common_questions/how_does_the_internet_work/index.html b/files/es/learn/common_questions/how_does_the_internet_work/index.html index 238ea2e5aeb4e3..23bd637cdce7e4 100644 --- a/files/es/learn/common_questions/how_does_the_internet_work/index.html +++ b/files/es/learn/common_questions/how_does_the_internet_work/index.html @@ -9,7 +9,7 @@ translation_of: Learn/Common_questions/How_does_the_Internet_work ---
-

En este artículo se describe lo que es Internet y cómo funciona.

+

En este artículo se describe qué es Internet y cómo funciona.

@@ -20,14 +20,14 @@ - +
Objetivo:Aprenderás lo básico de infraestructura técnica de la web y la diferencia entre Internet y Web.Aprenderás lo básico a cerca de la infraestructura técnica de la web y la diferencia entre Internet y la Web.

Resumen

-

Internet es la columna vertebral de la Web, la infraestructura técnica que la hace posible. En lo más básico, Internet es una gran red de computadoras que se comunican simultáneamente.

+

Internet es la columna vertebral de la Web, la infraestructura técnica que la hace posible. En su esencia, Internet es una gran red de computadoras que se comunican simultáneamente.

La historia de internet es algo oscura. Comenzó en la década de 1960 como un proyecto de investigación financiado por el ejercito de los EE.UU, y luego se convirtió en una infraestructura pública en la década de 1980 con el apoyo de muchas universidades públicas y empresas privadas. Las distintas tecnologías que soporta internet han evolucionado con el tiempo, pero la forma en que funciona no ha cambiado mucho: Internet es una forma de conectar las computadoras entre sí y asegurar que, pase lo que pase, encuentren una manera de mantenerse conectadas.

@@ -50,11 +50,11 @@

Una simple red

Dos computadoras conectadas entre sí

-

La red no se limita a dos ordenadores, se pueden conectar tantos como se deseen aunque siendo más complicado cada vez. Por ejemplo, para conectar diez ordenadores, se necesitarían 45 cables y unos nueve conectores por ordenador!

+

Una red no se limita a dos ordenadores, se pueden conectar tantos como se desee; sin embargo, rápidamente se volverá más compleja. Por ejemplo, para conectar diez ordenadores, se necesitarían ¡45 cables y unos nueve conectores por ordenador!

Diez ordenadores interconectados

-

Para resolver este problema, cada ordenador en una red está conectado a una pequeña computadora especial llamada enrutador o router (en inglés). Este enrutador cumple una función: tal como hace un señalizador en una estación de tren, el router se encarga de asegurar que el mensaje enviado desde un ordenador emisor llegue al destino correcto. Para que el ordenador B reciba un mensaje desde el ordenador A, este debe enviarlo primero al router, quien a su vez lo remite al ordenador B asegurándose que dicho mensaje no sea entregado a otro ordenador C.

+

Para resolver este problema, cada ordenador en una red está conectado a una pequeña computadora especial llamada enrutador o router (en inglés). Este enrutador cumple una única función: tal como hace un señalizador en una estación de tren, el router se encarga de asegurar que el mensaje enviado desde un ordenador emisor llegue al destino correcto. Para que el ordenador B reciba un mensaje desde el ordenador A, este último debe enviarlo primero al router, que a su vez lo remite al ordenador B asegurándose que dicho mensaje no sea entregado a otro ordenador C.

Una vez que agregamos un enrutador al sistema, nuestra red de 10 ordenadores solo requiere 10 cables: un enchufe para cada ordenador y un enrutador con 10 enchufes.

@@ -80,9 +80,9 @@

Una red de redes

Encontrando ordenadores

-

Si deseas enviar un mensaje a una computadora, debes especificar a cuál. Es por ello que todo ordenador conectado a una red cuenta con una dirección única que lo identifica, llamada “dirección IP” o Protocolo de Internet(IP de sus siglas en inglés Internet Protocol). Esta dirección está compuesta por una serie de cuatro números separados por puntos, por ejemplo: 192.168.2.10.

+

Si deseas enviar un mensaje a una computadora, debes especificar a cuál. Es por ello que todo ordenador conectado a una red cuenta con una dirección única que lo identifica, llamada “dirección IP” (siendo "IP" las siglas en inglés de Internet Protocol, o Protocolo de Internet). Esta dirección está compuesta por una serie de cuatro números separados por puntos, por ejemplo: 192.168.2.10.

-

Para los ordenadores es un identificador simple, pero los humanos tienen mayor dificultad a la hora de recordar y memorizar este tipo de dirección. Con el propósito de convertir esta serie numérica en algo que podamos asociar con mayor facilidad a la dirección IP se utiliza lo que conocemos como nombre de dominio. Por ejemplo, google.com es el nombre de dominio utilizado para sustituir la dirección IP 173.194.121.32. Así, usar un nombre de dominio es la manera más fácil para nosotros de identificar un ordenador a través de Internet.

+

Para los ordenadores es un identificador simple, pero los humanos tenemos mayor dificultad para recordar este tipo de direcciones. Con el propósito de convertir esta serie numérica en algo que podamos asociar con mayor facilidad a la dirección IP se utiliza lo que conocemos como nombre de dominio. Por ejemplo, google.com es el nombre de dominio utilizado para la dirección IP 173.194.121.32. Así, usar un nombre de dominio es la manera más fácil para nosotros de identificar un ordenador a través de Internet.

Mostrar cómo un nombre de dominio sirve como alias a una dirección IP

diff --git a/files/es/learn/common_questions/pages_sites_servers_and_search_engines/index.html b/files/es/learn/common_questions/pages_sites_servers_and_search_engines/index.html index 741efd415dde88..fd2509d24a707e 100644 --- a/files/es/learn/common_questions/pages_sites_servers_and_search_engines/index.html +++ b/files/es/learn/common_questions/pages_sites_servers_and_search_engines/index.html @@ -13,10 +13,10 @@ Prerrequisitos: - Debes saber ¿Cómo funciona internet?. + Debes saber ¿Cómo funciona internet?. - Objectivo: + Objetivo: Aprender la diferencia entre página web, un sitio web, un servidor web, y un motor de búsqueda. @@ -24,15 +24,15 @@

Resumen

-

Así como en cualquier área de conocimiento, la web viene con un montón de jerga. No te preocupes, no te abrumaremos con todo esto (tenemos un glosario por si tienes curiosidad). Sin embargo, hay un unos términos básicos que necesitas entender al principio, Ya que escuchará estas expresiones todo el tiempo mientras lee. A veces es fácil de confundir estos términos, puesto que hacen referencia a funcionalidades relacionadas pero diferentes. De hecho, a veces veras estos términos mal utilizados en las noticias y en otros lugares, por lo que llegar mezclarlos es entendible!

+

Así como en cualquier área de conocimiento, la web viene con un montón de jerga. No te preocupes, no te abrumaremos con todo esto (tenemos un glosario por si tienes curiosidad). Sin embargo, hay algunos términos básicos que necesitas entender desde el principio, ya que encontrarás estas expresiones todo el tiempo mientras lees. A veces es fácil de confundir estos términos, puesto que hacen referencia a funcionalidades relacionadas pero diferentes. De hecho, a veces veras estos términos mal utilizados en las noticias y en otros lugares, por lo que llegar mezclarlos es entendible!

Cubriremos estos términos y tecnologías con más detalle mientras exploramos más, pero estas definiciones rápidas serán un gran comienzo para ti:

Página web
-
 Un documento que se puede mostrar en un navegador web como Firefox, Google Chrome, Microsoft Internet Explorer o Edge, o Safary de Apple, A menudo también se puede denominar "páginas web" o simplemente "páginas".
+
 Un documento que se puede mostrar en un navegador web como Firefox, Google Chrome, Microsoft Internet Explorer o Edge, o Safary de Apple. A menudo se las denomina simplemente "páginas".
Sitio web
-
Es una colección de páginas web que se agrupan y normalmente se conectan de varias maneras. A menudo llamado un "sitio web" o simplemente "sitio".
+
Es una colección de páginas web agrupadas y que normalmente se conectan entre sí de varias maneras. A menudo llamados simplemente "sitios".
Servidor web
Una computadora que aloja un sitio web en Internet.
Motores de búsqueda
@@ -42,9 +42,9 @@

Resumen

    -
  1. Buscar en un índice de busqueda el título del libro que quiéres.
  2. +
  3. Buscar en un índice de busqueda el título del libro que quieres.
  4. Tomar nota del número de catálogo del libro.
  5. -
  6. Ir a la sección particular que contiene el libro, buscár el número de catálogo del libro y obtener el libro.
  7. +
  8. Ir a la sección particular que contiene el libro, buscar el número de catálogo del libro y obtener el libro.

Vamos a comparar la biblioteca con un servidor web:

@@ -71,7 +71,7 @@

Página web

diff --git a/files/es/learn/common_questions/thinking_before_coding/index.html b/files/es/learn/common_questions/thinking_before_coding/index.html index f675eb8d80b2f2..d167ff2e413e0f 100644 --- a/files/es/learn/common_questions/thinking_before_coding/index.html +++ b/files/es/learn/common_questions/thinking_before_coding/index.html @@ -18,7 +18,7 @@ Ninguno - Objectivo: + Objetivo: Aprender a definir metas para darle dirección a tu proyecto web. @@ -26,7 +26,7 @@

Resumen

-

Al comenzar con un proyecto web, muchas personas se enfocan en el aspecto técnico. Por supuesto, debes estar más familiarizado con la técnica de su oficio, pero lo que realmente importa es lo que quieres lograr. Sí, parece obvio, pero demasiados proyectos fallan, no por falta de conocimiento técnico sino por falta de objetivos y visión.

+

Al comenzar con un proyecto web, muchas personas se enfocan en el aspecto técnico. Por supuesto, debes estar más familiarizado con ese aspecto técnico, pero lo que realmente importa es lo que quieres lograr. Sí, parece obvio, pero demasiados proyectos fallan, no por falta de conocimiento técnico sino por falta de objetivos y visión.

Entonces cuando tienes una idea y quieres convertirla en un sitio web, hay un par de cuestiones que debes responder antes que alguna otra cosa:

@@ -36,19 +36,19 @@

Resumen

  • ¿Qué es necesario hacer, y en qué orden, para alcanzar mis metas?
  • -

    Todo esto es llamado idealización del proyecto y es un primer paso necesario para alcanzar tus metas, si eres un desarrollador principiante o experimentado.

    +

    Todo esto es llamado idealización del proyecto y es un primer paso necesario para alcanzar tus metas, sin importar si eres un desarrollador principiante o experimentado.

    Aprendizaje Activo

    -

    No hay aprendizaje activo todavía. Por favor, considere la posibilidad de contribuir.

    +

    No hay aprendizaje activo todavía. Por favor, considere la posibilidad de contribuir.

    Profundizando

    -

    Un proyecto nunca comienza por el lado técnico. Los músicos jamás compondrán ninguna música a menos que primero tengan la idea de lo quieren tocar, y eso también vale para los pintores, escritores y desarrolladores web. La técnica viene en segundo lugar.

    +

    Un proyecto nunca comienza por el lado técnico. Un músico jamás compondrá ninguna música, a menos que primero tenga una idea de lo quiere tocar, y eso mismo vale también para los pintores, escritores y desarrolladores web. La técnica viene en segundo lugar.

    -

    La técnica es crítica. Los músicos deben dominar su instrumento, pero los buenos músicos nunca producen buena música sin una idea. Por lo tanto, antes de saltar al lado técnico, por ejemplo código y herramientas, primero debes dar un paso atrás y decidir en detalle lo que deseas hacer.

    +

    La técnica es esencial. Los músicos necesitan dominar su instrumento. Pero los buenos músicos nunca producen buena música sin una idea. Por lo tanto, antes de saltar al aspecto técnico, por ejemplo código y herramientas, primero debes dar un paso atrás y decidir en detalle lo que deseas hacer.

    -

    Una discusión de horas con los amigos es un buen comienzo, pero inapropiado. Debes sentarte y estructurar tus ideas, para tener una visión clara sobre el camino que debes tomar para materializar tus ideas. Para hacer esto, sólo necesitas lápiz y papel y un tiempo para resolver al menos las siguientes preguntas.

    +

    Una discusión de horas con los amigos es un buen comienzo, pero inadecuado. Debes sentarte y estructurar tus ideas, para tener una visión clara sobre el camino que debes tomar para materializar tus ideas. Para hacer esto, sólo necesitas lápiz y papel y algo de tiempo para responder al menos las siguientes preguntas.

    Nota: Hay innumerables maneras de llevar a cabo la ideación del proyecto. No podemos presentarlas a todas aquí (un libro entero no sería suficiente). Lo que presentamos aquí es un método sencillo para manejar lo que los profesionales llaman Ideación de Proyectos, Planificación de Proyectos y Gestión de Proyectos.

    @@ -58,12 +58,12 @@

    ¿Qué es exactamente lo que

    Esta es la más importante pregunta a responder, ya que impulsa todo lo demás. Enumera todas la metas que deseas alcanzar. Puede ser cualquier cosa: vender bienes para ganar dinero, expresar opiniones políticas, conocer nuevos amigos, actuar con músicos, coleccionar imágenes de gatos o lo que quieras.

    -

    Supongamos que eres músico. Y puedes desear que:

    +

    Supongamos que eres músico. Y puedes desear:

    +
    +
    
    +  
    + +``` + +### CSS + +```css +.fx { + -webkit-display: flex; + display: flex; + margin-left: -20px; + margin-right: -20px; +} + +.fx > div { + padding-left: 20px; + padding-right: 20px; +} + +.fx > div:first-child { + width: 30%; +} + +.flex { + -webkit-flex: 1; + flex: 1; +} + +#test-target { + display: block; + width: 100%; + margin-bottom: 10px; +} +``` + +### JavaScript + +```js +let textarea = document.getElementById('test-target'), +consoleLog = document.getElementById('console-log'), +btnReset = document.getElementById('btn-reset'); + +function logMessage(message) { + consoleLog.innerHTML += message + "
    "; +} + +textarea.addEventListener('keydown', (e) => { + if (!e.repeat) + logMessage(`Key "${e.key}" pressed [event: keydown]`); + else + logMessage(`Key "${e.key}" repeating [event: keydown]`); +}); + +textarea.addEventListener('beforeinput', (e) => { + logMessage(`Key "${e.data}" about to be input [event: beforeinput]`); +}); + +textarea.addEventListener('input', (e) => { + logMessage(`Key "${e.data}" input [event: input]`); +}); + +textarea.addEventListener('keyup', (e) => { + logMessage(`Key "${e.key}" released [event: keyup]`); +}); + +btnReset.addEventListener('click', (e) => { + let child = consoleLog.firstChild; + while (child) { + consoleLog.removeChild(child); + child = consoleLog.firstChild; + } + textarea.value = '' +}); +``` + +### 結果 + +{{EmbedLiveSample('KeyboardEvent_sequence_example')}} + +> **Note:** {{domxref("HTMLElement/beforeinput_event", "beforeinput")}} と {{domxref("HTMLElement/input_event", "input")}} イベントで使用されている {{domxref("InputEvent")}} インターフェイスを完全に実装していないブラウザーでは、誤ったログ出力をする可能性があります。 + +### ケース 1 + +Shift キーが押されると、まず {{domxref("Element/keydown_event", "keydown")}} イベントが発行され、 `key` プロパティの値として文字列 `Shift` が設定されます。このキーを押し続けても、文字が発生しないので {{domxref("Element/keydown_event", "keydown")}} イベントが繰り返し発行され続けるわけではありません。 + +`2 キー`が押されると、この新しいキー押下に対して別の {{domxref("Element/keydown_event", "keydown")}} イベントが発行され、修飾キー `shift` が有効なので、このイベントの `key` プロパティ値には米国のキーボード型の場合は `@` 、英国のキーボード型の場合は `"` という文字列が設定されます。文字キーが生成されたので、次に {{domxref("HTMLElement/beforeinput_event", "beforeinput")}} と {{domxref("HTMLElement/input_event", "input")}} イベントが発行されます。 + +`2 キー`を離すと、{{domxref("Element/keyup_event", "keyup")}} イベントが発行され、`key` プロパティにはそれぞれ異なるキーボードレイアウト用の `@` と `"` という文字列が保持されるようになります。 + +最後に `shift` キーを離すと、別の {{domxref("Element/keyup_event", "keyup")}} イベントが発行され、 key 属性の値は `Shift` のまま残ります。 + +### ケース 2 + +Shift キーが押されると、まず {{domxref("Element/keydown_event", "keydown")}} イベントが発行され、`key` プロパティの値として文字列 `Shift` がセットされます。このキーを押し続けても、文字キーは生成されないので、 keydown イベントは繰り返し発行され続けることはありません。 + +`2 キー`が押されると、この新しいキー押下に対して別の {{domxref("Element/keydown_event", "keydown")}} イベントが発行され、修飾キー `shift` が有効になっているので、そのイベントの `key` プロパティの値は、米国キーボード型の場合は `@` 、英国キーボード型の場合は `"` という文字列に設定されています。文字が生成されたので、次に {{domxref("HTMLElement/beforeinput_event", "beforeinput")}} と {{domxref("HTMLElement/input_event", "input")}} イベントが発行されています。キーを押し続けると、{{domxref("Element/keydown_event", "keydown")}} イベントが繰り返し発行され、{{domxref("KeyboardEvent.repeat")}}プロパティは `true` にセットされています。同様に {{domxref("HTMLElement/beforeinput_event", "beforeinput")}} と {{domxref("HTMLElement/input_event", "input")}} イベントが繰り返し発行されています。 + +`Shift` キーを離すと、それに対して {{domxref("Element/keyup_event", "keyup")}} イベントが発行され、キー属性の値は `Shift` のままとなります。このとき、修飾キー `shift` は有効ではなくなるので、`2 キー`を押したときの keydown イベントを繰り返すための `key` プロパティの値が "2" になっていることに注目してください。同じことが {{domxref("HTMLElement/beforeinput_event", "beforeinput")}} と {{domxref("HTMLElement/input_event", "input")}} イベントの {{domxref("InputEvent.data")}} プロパティにも当てはまります。 + +最後に `2 キー`を離すと、{{domxref("Element/keyup_event", "keyup")}} イベントが発行されますが、修飾キー `shift` はもはやアクティブではないので、`key` プロパティはどちらのキーボードレイアウトでも、文字列値 `2` に設定されます。 + +## 例 + +この例では {{domxref("EventTarget.addEventListener()")}} を使用して {{domxref("Element/keydown_event", "keydown")}} イベントを待ち受けています。イベントが発生すると、キーの値がチェックされ、コードが関心を持つキーの一つであるかどうかが確認され、もしそうであれば、何らかの方法で処理されます(宇宙船の操縦や、スプレッドシートの選択セルの変更など)。 + +```js +window.addEventListener("keydown", function (event) { + if (event.defaultPrevented) { + return; // Do nothing if the event was already processed + } + + switch (event.key) { + case "Down": // IE/Edge specific value + case "ArrowDown": + // Do something for "down arrow" key press. + break; + case "Up": // IE/Edge specific value + case "ArrowUp": + // Do something for "up arrow" key press. + break; + case "Left": // IE/Edge specific value + case "ArrowLeft": + // Do something for "left arrow" key press. + break; + case "Right": // IE/Edge specific value + case "ArrowRight": + // Do something for "right arrow" key press. + break; + case "Enter": + // Do something for "enter" or "return" key press. + break; + case "Esc": // IE/Edge specific value + case "Escape": + // Do something for "esc" key press. + break; + default: + return; // Quit when this doesn't handle the key event. + } + + // Cancel the default action to avoid it being handled twice + event.preventDefault(); +}, true); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/keyboardevent/keyboardevent/index.md b/files/ja/web/api/keyboardevent/keyboardevent/index.md new file mode 100644 index 00000000000000..076cf110bd7c88 --- /dev/null +++ b/files/ja/web/api/keyboardevent/keyboardevent/index.md @@ -0,0 +1,71 @@ +--- +title: KeyboardEvent() +slug: Web/API/KeyboardEvent/KeyboardEvent +page-type: web-api-constructor +tags: + - API + - Constructor + - DOM + - KeyboardEvent + - Reference +browser-compat: api.KeyboardEvent.KeyboardEvent +translation_of: Web/API/KeyboardEvent/KeyboardEvent +--- +{{APIRef("UI Events")}} + +**`KeyboardEvent()`** コンストラクターは、新しい {{domxref("KeyboardEvent")}} オブジェクトを生成します。 + +## 構文 + +```js +new KeyboardEvent(type) +new KeyboardEvent(type, options) +``` + +### 引数 + +- `type` + - : イベントの名前を文字列で示します。 + 大文字と小文字の区別があり、ブラウザーは `keydown`, `keyup`, `keypress` の何れかに設定します。 +- `options` {{optional_inline}} + - : オブジェクトで、_{{domxref("UIEvent/UIEvent", "UIEvent()")}} で定義されているものに加え_、以下のプロパティを持つことができます。 + - `key` {{optional_inline}} + - : 文字列で、既定値は `""` であり、 {{domxref("KeyboardEvent.key")}} の値を設定します。 + - `code` {{optional_inline}} + - : 文字列で、既定値は `""` であり、 {{domxref("KeyboardEvent.code")}} の値を設定します。 + - `location` {{optional_inline}} + - : 文字列で、既定値は `0` であり、 {{domxref("KeyboardEvent.location")}} の値を設定します。 + - `repeat` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.repeat")}} の値を設定します。 + - `isComposing` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.isComposing")}} の値を設定します。 + - `charCode` {{optional_inline}} {{deprecated_inline}} + - : 数値で、既定値は `0` であり、非推奨の {{domxref("KeyboardEvent.charCode")}} の値を設定します。 + - `keyCode` {{optional_inline}} {{deprecated_inline}} + - : 数値で、既定値は `0` であり、非推奨の {{domxref("KeyboardEvent.keyCode")}} の値を設定します。 + - `which` {{optional_inline}} {{deprecated_inline}} + - : 数値で、既定値は `0` であり、非推奨の {{domxref("UIEvent.which")}} の値を設定します。 + - `ctrlKey` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.ctrlKey")}} の値を設定します。 + - `shiftKey` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.shiftKey")}} の値を設定します。 + - `altKey` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.altKey")}} の値を設定します。 + - `metaKey` {{optional_inline}} + - : 論理値で、既定値は `false` であり、 {{domxref("KeyboardEvent.metaKey")}} の値を設定します。 + +### 返値 + +新しい {{domxref("KeyboardEvent")}} オブジェクトです。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- 構築するオブジェクトのインターフェイスである {{domxref("KeyboardEvent")}} diff --git a/files/ja/web/api/keyboardevent/keycode/index.html b/files/ja/web/api/keyboardevent/keycode/index.html deleted file mode 100644 index 2103bafef1d45f..00000000000000 --- a/files/ja/web/api/keyboardevent/keycode/index.html +++ /dev/null @@ -1,3177 +0,0 @@ ---- -title: KeyboardEvent.keyCode -slug: Web/API/KeyboardEvent/keyCode -translation_of: Web/API/KeyboardEvent/keyCode ---- -

    {{APIRef("DOM Events")}}{{deprecated_header()}}

    - -

    非推奨の KeyboardEvent.keyCode 読み取り専用プロパティは、押されたキーの変更されていない値を識別するシステムおよび実装に依存する数値コードを表します。 これは通常、キーに対応する 10進 ASCII ({{RFC(20)}}) またはWindows 1252 コードです。キーを識別できない場合は、この値は 0 になります。

    - -

    これはしばらくの間、非推奨とされています。その代わりに、{{domxref("KeyboardEvent.code")}} が実装されている場合は、{{domxref("KeyboardEvent.code")}} を使うべきです。残念ながら、いくつかのブラウザはまだこれを持っていないので、すべてのターゲットブラウザでサポートされているものを使うように注意しなければなりません。

    - -
    -

    Web 開発者は、keydown 及び keyup イベントを扱う際に、印刷可能な文字に対して keyCode 属性を使用すべきではありません。上述したように、keyCode 属性は、印刷可能な文字、特に Shift キーや Alt キーが押された状態で入力された文字には有用ではありません。ショートカットキーハンドラを実装する場合、{{event("keypress")}} イベントの方が通常は良いでしょう (少なくとも Gecko が使用中のランタイムの場合)。詳細は Gecko Keypress Event を参照してください。

    -
    - -

    - -
    window.addEventListener("keydown", function (event) {
    -  if (event.defaultPrevented) {
    -    return; // デフォルトのアクションがキャンセルされている場合は何もしないようにします。
    -  }
    -
    -  var handled = false;
    -  if (event.key !== undefined) {
    -    // KeyboardEvent.key でイベントを処理し、handled を true に設定します。
    -  } else if (event.keyCode !== undefined) {
    -    // KeyboardEvent.keyCode でイベントを処理し、handled を true に設定します。
    -  }
    -
    -  if (handled) {
    -    // イベントが処理された場合、"ダブルアクション" を抑制する
    -    event.preventDefault();
    -  }
    -}, true);
    -
    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様書ステータスコメント
    {{SpecName('DOM3 Events','#widl-KeyboardEvent-keyCode','KeyboardEvent.keyCode')}}{{Spec2('DOM3 Events')}}初期定義; 非推奨として指定されています。
    - -

    ブラウザの互換性

    - -

    {{Compat("api.KeyboardEvent.keyCode")}}

    - -

    keyCodeの値

    - -

    標準位置で印刷可能なキー

    - -

    標準位置で印刷可能なキーを押したり離したりすることで発生するキーイベントの値は、ブラウザ間で互換性がありません。

    - -

    IE just exposes the native virtual keycode value as KeyboardEvent.keyCode.

    - -

    Google Chrome, Chromium and Safari must decide the value from the input character. If the inputting character can be inputted with the US keyboard layout, they use the keyCode value on the US keyboard layout.

    - -

    Starting in Firefox 15 {{geckoRelease("15.0")}}, Gecko gets keyCode values from ASCII characters inputtable by the key — even with shift modifiers or an ASCII capable keyboard layout. See the following rules for details:

    - -
      -
    1. If the system is Windows and the native keycode of the pressed key indicates that the key is a-z or 0-9, use a keycode for it.
    2. -
    3. If the system is Mac and the native keycode of the pressed key indicates that the key is 0-9, use a keycode for it.
    4. -
    5. If the pressed key inputs an ASCII alphabetic or numeric character with no modifier key, use a keycode for it.
    6. -
    7. If the pressed key inputs an ASCII alphabetic or numeric character with a Shift key modifier, use a keycode for it.
    8. -
    9. If the pressed key inputs a different ASCII character with no modifier key, use a keycode for it.
    10. -
    11. If the pressed key inputs a different ASCII character with a Shift key modifier, use a keycode for it.
    12. -
    13. Otherwise, i.e., pressed key inputs a unicode character: -
        -
      1. If the keyboard layout is ASCII-capable (i.e., can input ASCII alphabets), use 0 or compute with the following additional rules.
      2. -
      3. Otherwise, i.e., the keyboard layout isn't ASCII capable, use the ASCII capable keyboard layout installed on the environment with the highest priority: -
          -
        1. If the pressed key on the alternative keyboard layout inputs an ASCII alphabetic or numeric character, use a keycode for it.
        2. -
        3. Otherwise, use 0 or compute with the following additional rules.
        4. -
        -
      4. -
      -
    14. -
    - -

    Starting in Firefox 60 {{geckoRelease("60.0")}}, Gecko sets keyCode values of punctuation keys as far as possible (when points 7.1 or 7.2 in the above list are reached) with the following rules:

    - -
    -

    The purpose of these new additional rules is for making users whose keyboard layouts map unicode characters to punctuation keys in a US keyboard layout can use web applications which support Firefox only with ASCII-capable keyboard layouts or just with a US keyboard layout. Otherwise, the newly mapped keyCode values may be conflict with other keys. For example, if the active keyboard layout is Russian, the keyCode value of both the "Period" key and "Slash" key are 190 (KeyEvent.DOM_VK_PERIOD). If you need to distinguish those keys but you don't want to support all keyboard layouts in the world by yourself, you should probably use {{domxref("KeyboardEvent.code")}}.

    -
    - -
      -
    1. If running macOS or Linux: -
        -
      1. If the active keyboard layout is not ASCII-capable and an alternative ASCII-capable keyboard layout is available. -
          -
        1. If the alternative ASCII-capable keyboard layout produces an ASCII character via just the unmodified key, use a keyCode for the character.
        2. -
        3. If the alternative ASCII-capable keyboard layout produces an ASCII character with a Shift key modifier, use a keyCode for the shifted character.
        4. -
        5. Otherwise, use a keyCode for an ASCII character produced by the key when the US keyboard layout is active.
        6. -
        -
      2. -
      3. Otherwise, use a keyCode for an ASCII character produced by the key when the US keyboard layout is active.
      4. -
      -
    2. -
    3. If running on Windows: -
        -
      1. Use a keyCode value for an ASCII character produced by a key which is mapped to the same virtual keycode of Windows when the US keyboard layout is active.
      2. -
      -
    4. -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by printable keys in standard position
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    USJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreek
    {{domxref("KeyboardEvent.code")}}USJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreek
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "Digit1"0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)
    "Digit2"0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)
    "Digit3"0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)
    "Digit4"0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)
    "Digit5"0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)
    "Digit6"0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)
    "Digit7"0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)
    "Digit8"0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)
    "Digit9"0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)
    "Digit0"0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)
    "KeyA"0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)
    "KeyB"0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)
    "KeyC"0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)
    "KeyD"0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)
    "KeyE"0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)
    "KeyF"0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)
    "KeyG"0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)
    "KeyH"0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)
    "KeyI"0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)
    "KeyJ"0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)
    "KeyK"0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)
    "KeyL"0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)
    "KeyM"0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)
    "KeyN"0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)
    "KeyO"0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)
    "KeyP"0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)
    "KeyQ"0x51 (81)0x51 (81)0x51 (81)0x51 (81)0xBA (186)0x51 (81)0x51 (81)0xBA (186)0x51 (81)0x51 (81)0xBA (186)0x51 (81)0x51 (81)0x51 (81)0xBA (186)0x51 (81)
    "KeyR"0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)
    "KeyS"0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)
    "KeyT"0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)
    "KeyU"0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)
    "KeyV"0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)
    "KeyW"0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)
    "KeyX"0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)
    "KeyY"0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)
    "KeyZ"0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by printable keys in standard position (punctuations in US layout):
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)Windows (10.9)Mac (10.9)Linux (Ubuntu 14.04)
    USJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreek
    {{domxref("KeyboardEvent.code")}}USJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreekUSJapaneseGreek
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "Comma"0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)
    "Comma" with Shift
    "Period"0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)
    "Period" with Shift
    "Semicolon"0xBA (186)0xBB (187)0xBA (186)0xBA (186)0xBB (187)0xBA (186)0xBA (186)0xBA (186) *10xE5 (229) *20xBA (186)0xBA (186)0xE5 (229) *30xBA (186)0xBA (186) *10xE5 (229) *20x3B (59)0x3B (59)0x00 (0)0x3B (59)0x3B (59) *10x00 (0)0x3B (59)0x3B (59)0x00 (0)
    "Semicolon" with Shift0xBB (187) *10xBB (187)0xBB (187) *1
    "Quote"0xDE (222)0xBA (186)0xDE (222)0xDE (222)0xBA (186)0xDE (222)0xDE (222)0xBA (186) *10xDE (222)0xDE (222)0xBA (186)0xDE (222)0xDE (222)0xBA (186)  *10xDE (222)0xDE (222)0x3A (58)0xDE (222)0xDE (222)0x3A (58) *10xDE (222)0xDE (222)0x3A (58)0xDE (222)
    "Quote" with Shift0xDE (222) *10x38 (56)0xDE (222) *1
    "BracketLeft"0xDB (219)0xC0(192)0xDB (219)0xDB (219)0xC0(192)0xDB (219)0xDB (219)0xDB (219) *10xDB (219)0xDB (219)0x32 (50)0xDB (219)0xDB (219)0xDB (219) *1 0xDB (219)0xDB (219)0x40 (64)0xDB (219)0xDB (219)0x40 (64) *10xDB (219)0xDB (219)0x40 (64)0xDB (219)
    "BracketLeft" with Shift0xC0 (192) *10xC0 (192)0xC0 (192) *1
    "BracketRight"0xDD (221)0xDB (219)0xDD (221)0xDD (221)0xDB (219)0xDD (221)0xDD (221)0xDB (219) *10xDD (221)0xDD (221)0xDB (219)0xDD (221)0xDD (221)0xDB (219) *10xDD (221)0xDD (221)0xDB (219)0xDD (221)0xDD (221)0xDB (219) *10xDD (221)0xDD (221)0xDB (219)0xDD (221)
    "BracketRight" with Shift
    "Backquote"0xC0 (192)N/A0xC0 (192)0xC0 (192)N/A0xC0 (192)0xC0 (192)0xC0 (192)0xF4 (244)0xC0 (192)0xC0 (192)0xC0 (192)N/A0xC0 (192)0xC0 (192)0xC0 (192)0x00 (0)0xC0 (192)
    "Backquote" with Shift
    "Backslash"0xDC (220)0xDD (221)0xDC (220)0xDC (220)0xDD (221)0xDC (220)0xDC (220)0xDC (220)0xDD (221)0xDC (220)0xDC (220)0xDC (220)0xDD (221)0xDC (220)0xDC (220)0xDC (220)0xDD (221)0xDC (220)
    "Backslash" with Shift
    "Minus"0xBD (189)0xBD (189)0xBD (189)0xBD (189) *10xBD (189)0xBD (189)0xBD (189)0xBD (189)0xBD (189)0xBD (189) *10xBD (189)0xAD (173)0xAD (173)0xAD (173) *10xAD (173)0xAD (173)
    "Minus" with Shift0xBB (187) *10xBB (187)0xBD (189)0xBB (187) *10xBD (189)
    "Equal"0xBB (187)0xDE (222)0xBB (187)0xBB (187)0xDE (222)0xBB (187)0xBB (187)0xBB (187) *10xBB (187)0xBB (187)0x36 (54)0xBB (187)0xBB (187)0xBB (187) *10xBB (187)0x3D (61)0xA0 (160)0x3D (61)0x3D (61)0xA0 (160) *10x3D (61)0x3D (61)0xA0 (160)0x3D (61)
    "Equal" with Shift0xC0 (192) *10xC0 (192)0xBB (187)0xC0 (192) *10xBB (187)
    "IntlRo"0xC1 (193)0xE2 (226)0xC1 (193)0xC1 (193)0xE2 (226)0xC1 (193)0xBD (189)0xBD (189)0x00 (0)*40xDC (220)
    -  
    *40xBD (189)0xBD (189)0xE5 (229) *50x00 (0)0xDC (220)0x00 (0)0xA7 (167)0xA7 (167)0x00 (0)0x00 (0)0xDC (220)0x00 (0)
    "IntlRo" with Shift
    "IntlYen"0xFF (255)0xDC (220)0xFF (255)0xFF (255)0xDC (220)0xFF (255)0x00 (0)0x00 (0)0x00 (0)*40xDC (220)*40x00 (0)0x00 (0)0xE5 (229) *50x00 (0)0xDC (220)0x00 (0)0xDC (220)0xDC (220)0x00 (0)0x00 (0)0xDC (220)0x00 (0)
    "IntlYen" with Shift0xDC (220)0xDC (220)0xBD (189)0xDC (220)0xDC (220)
    - -

    *1 The value is input from JIS keyboard. When you use ANSI keyboard, the keyCode value and inputted character are what you select from the US keyboard layout.

    - -

    *2 The key is a dead key. The value of keyup event is 0xBA (186).

    - -

    *3 The key is a dead key. The value of keyup event is 0x10 (16).

    - -

    *4 No key events are fired.

    - -

    *5 The key isn't available with Greek keyboard layout (does not input any character). The value of keyup event is 0x00 (0).

    - -

    Non-printable keys (function keys)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by modifier keys:
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    {{domxref("KeyboardEvent.code")}}WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "AltLeft"0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)
    "AltRight"0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)
    "AltRight" when it's "AltGraph" key*1*1N/A0xE1 (225)N/A*1N/A0xE1 (225)
    "CapsLock"0x14 (20) *20x14 (20) *20x14 (20)0x14 (20)0x14 (20)0x14 (20) *20x14 (20)0x14 (20) *3
    "ControlLeft"0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)
    "ControlRight"0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)
    "OSLeft"0x5B (91)0x5B (91)0x5B (91)0x5B (91)0x5B (91)0x5B (91)0xE0 (224)0x5B (91)
    "OSRight"0x5C (92)0x5C (92)0x5D (93)0x5C (92)0x5D (93)0x5B (91)0xE0 (224)0x5B (91)
    "ShiftLeft"0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)
    "ShiftRight"0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)
    - -

    *1 On Windows, "AltGraph" key causes "ControlLeft" key event and "AltRight" key event.

    - -

    *2 When Japanese keyboard layout is active, "CapsLock" key without Shift causes 0xF0 (240). The key works as "Alphanumeric" key whose label is "英数".

    - -

    *3 When Japanese keyboard layout is active, "CapsLock" key without Shift causes 0x00 (0). The key works as "Alphanumeric" key whose label is "英数".

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by non-printable keys:
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    {{domxref("KeyboardEvent.code")}}WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "ContextMenu"0x5D (93)0x5D (93)0x00 (0) *10x5D (93)0x00 (0) *10x5D (93)0x5D (93)0x5D (93)
    "Enter"0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)
    "Space"0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)
    "Tab"0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)
    "Delete"0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)
    "End"0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)
    "Help"N/AN/A0x2D (45) *20x2F (47) *30x2D (45) *2N/A0x2D (45) *20x06 (6) *3
    "Home"0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)
    "Insert"0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)
    "PageDown"0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)
    "PageUp"0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)
    "ArrowDown"0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)
    "ArrowLeft"0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)
    "ArrowRight"0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)
    "ArrowUp"0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)
    "Escape"0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)
    "PrintScreen"0x2C (44) *40x2C (44) *40x7C (124)*50x2A (42)0x7C (124)*50x2C (44) *40x2C (44)0x2A (42)
    "ScrollLock"0x91 (145)0x91 (145)0x7D (125)*50x91 (145)0x7D (125)*50x91 (145)0x91 (145)0x91 (145)
    "Pause"0x13 (19) *60x13 (19) *60x7E (126)*50x13 (19)0x7E (126)*50x13 (19) *60x13 (19)0x13 (19)
    - -

    *1 keypress event is fired whose keyCode and charCode are 0x10 (16) but text isn't inputted into editor.

    - -

    *2 On Mac, "Help" key is mapped to "Insert" key of PC keyboard. These keyCode values are the same as the "Insert" key's keyCode value.

    - -

    *3 Tested on Fedora 20.

    - -

    *4 Only keyup event is fired.

    - -

    *5 PC's "PrintScreen", "ScrollLock" and "Pause" are mapped to Mac's "F13", "F14" and "F15". Chrome and Safari map same keyCode values with Mac's keys.

    - -

    *6 "Pause" key with Control causes 0x03 (3).

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by function keys:
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    {{domxref("KeyboardEvent.code")}}WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "F1"0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)
    "F2"0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)
    "F3"0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)
    "F4"0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)
    "F5"0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)
    "F6"0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)
    "F7"0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)
    "F8"0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)
    "F9"0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)
    "F10"0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)
    "F11"0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)
    "F12"0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)
    "F13"0x7C (124)0x7C (124)0x7C (124)0x7C (124) *10x7C (124)0x7C (124)0x2C (44) *20x00 (0) *3
    "F14"0x7D (125)0x7D (125)0x7D (125)0x7D (125) *10x7D (125)0x7D (125)0x91 (145) *20x00 (0) *3
    "F15"0x7E (126)0x7E (126)0x7E (126)0x7E (126) *10x7E (126)0x7E (126)0x13 (19) *20x00 (0) *3
    "F16"0x7F (127)0x7F (127)0x7F (127)0x7F (127) *10x7F (127)0x7F (127)0x7F (127)0x00 (0) *3
    "F17"0x80 (128)0x80 (128)0x80 (128)0x80 (128) *10x80 (128)0x80 (128)0x80 (128)0x00 (0) *3
    "F18"0x81 (129)0x81 (129)0x81 (129)0x81 (129) *10x81 (129)0x81 (129)0x81 (129)0x00 (0) *3
    "F19"0x82 (130)0x82 (130)0x82 (130)N/A *40x82 (130)0x82 (130)0x82 (130)0x00 (0) *3
    "F20"0x83 (131)0x83 (131)0x83 (131)N/A *40xE5 (229) *50x83 (131)0x00 (0)N/A *6
    "F21"0x84 (132)0x84 (132)0x00 (0) *7N/A *40x00 (0) *70x84 (132)N/A *8N/A *6
    "F22"0x85 (133)0x85 (133)0x00 (0) *7N/A *40x00 (0) *70x85 (133)N/A *8N/A *6
    "F23"0x86 (134)0x86 (134)0x00 (0) *7N/A *40x00 (0) *70x86 (134)N/A *8N/A *6
    "F24"0x87 (135)0x87 (135)0x00 (0) *7N/A *40x00 (0) *70x87 (135)N/A *80x00 (0) *3
    - -

    *1 Tested on Fedora 20.

    - -

    *2 PC's "PrintScreen", "ScrollLock" and "Pause" are mapped to Mac's "F13", "F14" and "F15". Firefox maps same keyCode values with PC's keys.

    - -

    *3 Tested on Fedora 20. The keys don't cause GDK_Fxx keysyms. If the keys cause proper keysyms, these values must be same as IE.

    - -

    *4 Tested on Fedora 20. The keys don't cause DOM key events on Chromium.

    - -

    *5 keyUp event's keyCode value is 0x83 (131).

    - -

    *6 Tested on Fedora 20. The keys don't cause DOM key events on Firefox.

    - -

    *7 Only keydown event is fired.

    - -

    *8 No DOM key events are fired on Firefox.

    - -

    Numpad keys

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by keys in numpad in NumLock state
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    {{domxref("KeyboardEvent.code")}}WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    "NumLock"0x90 (144)0x90 (144)0x0C (12) *10x90 (144)0x0C (12) *10x90 (144)0x0C (12) *10x90 (144)
    "Numpad0"0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)
    "Numpad1"0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)
    "Numpad2"0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)
    "Numpad3"0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)
    "Numpad4"0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)
    "Numpad5"0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)
    "Numpad6"0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)
    "Numpad7"0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)
    "Numpad8"0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)
    "Numpad9"0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)
    "NumpadAdd"0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)
    "NumpadComma" inputting ","0xC2 (194)0xC2 (194)0xBC (188)Always inputs "."0xBC (188)0xC2 (194)0x6C (108)Always inputs "."
    "NumpadComma" inputting "." or empty string0xC2 (194)0xC2 (194)0xBE (190)0x6E (110)0xBE (190)0xC2 (194)0x6C (108)0x6E (110)
    "NumpadDecimal" inputting "."0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)
    "NumpadDecimal" inputting ","0x6E (110)0x6E (110)0x6E (110)0x6C (108)0x6E (110)0x6E (110)0x6E (110)0x6C (108)
    "NumpadDivide"0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)
    "NumpadEnter"0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)
    "NumpadEqual"0x0C (12)0x0C (12)0xBB (187)0xBB (187)0xBB (187)0x0C (12)0x3D (61)0x3D (61)
    "NumpadMultiply"0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)
    "NumpadSubtract"0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)
    - -

    *1 "NumLock" key works as "Clear" key on Mac.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    keyCode values of each browser's keydown event caused by keys in numpad without NumLock state
    {{domxref("KeyboardEvent.code")}}Internet Explorer 11Google Chrome 34Chromium 34Gecko 29
    WindowsWindowsLinux (Ubuntu 14.04)WindowsLinux (Ubuntu 14.04)
    {{domxref("KeyboardEvent.code")}}WindowsWindowsLinux (Ubuntu 14.04)WindowsLinux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Gecko 29
    "Numpad0" ("Insert")0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)
    "Numpad1" ("End")0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)
    "Numpad2" ("ArrowDown")0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)
    "Numpad3" ("PageDown")0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)
    "Numpad4" ("ArrowLeft")0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)
    "Numpad5"0x0C (12)0x0C (12)0x0C (12)0x0C (12)0x0C (12)
    "Numpad6" ("ArrowRight")0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)
    "Numpad7" ("Home")0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)
    "Numpad8" ("ArrowUp")0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)
    "Numpad9" ("PageUp")0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)
    "NumpadDecimal" ("Delete")0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)
    - -

    * Recent Mac doesn't have "NumLock" key and state. Therefore, unlocked state isn't available.

    - -

    Constants for keyCode value

    - -

    Gecko defines a lot of keyCode values in KeyboardEvent for making the mapping table explicitly. These values are useful for add-on developers of Firefox, but not so useful in public web pages.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ConstantValueDescription
    DOM_VK_CANCEL0x03 (3)Cancel key.
    DOM_VK_HELP0x06 (6)Help key.
    DOM_VK_BACK_SPACE0x08 (8)Backspace key.
    DOM_VK_TAB0x09 (9)Tab key.
    DOM_VK_CLEAR0x0C (12)"5" key on Numpad when NumLock is unlocked. Or on Mac, clear key which is positioned at NumLock key.
    DOM_VK_RETURN0x0D (13)Return/enter key on the main keyboard.
    DOM_VK_ENTER0x0E (14)Reserved, but not used. {{obsolete_inline(30)}} (Dropped, see {{bug(969247)}}.)
    DOM_VK_SHIFT0x10 (16)Shift key.
    DOM_VK_CONTROL0x11 (17)Control key.
    DOM_VK_ALT0x12 (18)Alt (Option on Mac) key.
    DOM_VK_PAUSE0x13 (19)Pause key.
    DOM_VK_CAPS_LOCK0x14 (20)Caps lock.
    DOM_VK_KANA0x15 (21)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_HANGUL0x15 (21)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_EISU0x 16 (22)"英数" key on Japanese Mac keyboard. {{gecko_minversion_inline("15.0")}}
    DOM_VK_JUNJA0x17 (23)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_FINAL0x18 (24)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_HANJA0x19 (25)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_KANJI0x19 (25)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_ESCAPE0x1B (27)Escape key.
    DOM_VK_CONVERT0x1C (28)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_NONCONVERT0x1D (29)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_ACCEPT0x1E (30)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_MODECHANGE0x1F (31)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_SPACE0x20 (32)Space bar.
    DOM_VK_PAGE_UP0x21 (33)Page Up key.
    DOM_VK_PAGE_DOWN0x22 (34)Page Down key.
    DOM_VK_END0x23 (35)End key.
    DOM_VK_HOME0x24 (36)Home key.
    DOM_VK_LEFT0x25 (37)Left arrow.
    DOM_VK_UP0x26 (38)Up arrow.
    DOM_VK_RIGHT0x27 (39)Right arrow.
    DOM_VK_DOWN0x28 (40)Down arrow.
    DOM_VK_SELECT0x29 (41)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_PRINT0x2A (42)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_EXECUTE0x2B (43)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_PRINTSCREEN0x2C (44)Print Screen key.
    DOM_VK_INSERT0x2D (45)Ins(ert) key.
    DOM_VK_DELETE0x2E (46)Del(ete) key.
    DOM_VK_00x30 (48)"0" key in standard key location.
    DOM_VK_10x31 (49)"1" key in standard key location.
    DOM_VK_20x32 (50)"2" key in standard key location.
    DOM_VK_30x33 (51)"3" key in standard key location.
    DOM_VK_40x34 (52)"4" key in standard key location.
    DOM_VK_50x35 (53)"5" key in standard key location.
    DOM_VK_60x36 (54)"6" key in standard key location.
    DOM_VK_70x37 (55)"7" key in standard key location.
    DOM_VK_80x38 (56)"8" key in standard key location.
    DOM_VK_90x39 (57)"9" key in standard key location.
    DOM_VK_COLON0x3A (58)Colon (":") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_SEMICOLON0x3B (59)Semicolon (";") key.
    DOM_VK_LESS_THAN0x3C (60)Less-than ("<") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_EQUALS0x3D (61)Equals ("=") key.
    DOM_VK_GREATER_THAN0x3E (62)Greater-than (">") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_QUESTION_MARK0x3F (63)Question mark ("?") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_AT0x40 (64)Atmark ("@") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_A0x41 (65)"A" key.
    DOM_VK_B0x42 (66)"B" key.
    DOM_VK_C0x43 (67)"C" key.
    DOM_VK_D0x44 (68)"D" key.
    DOM_VK_E0x45 (69)"E" key.
    DOM_VK_F0x46 (70)"F" key.
    DOM_VK_G0x47 (71)"G" key.
    DOM_VK_H0x48 (72)"H" key.
    DOM_VK_I0x49 (73)"I" key.
    DOM_VK_J0x4A (74)"J" key.
    DOM_VK_K0x4B (75)"K" key.
    DOM_VK_L0x4C (76)"L" key.
    DOM_VK_M0x4D (77)"M" key.
    DOM_VK_N0x4E (78)"N" key.
    DOM_VK_O0x4F (79)"O" key.
    DOM_VK_P0x50 (80)"P" key.
    DOM_VK_Q0x51 (81)"Q" key.
    DOM_VK_R0x52 (82)"R" key.
    DOM_VK_S0x53 (83)"S" key.
    DOM_VK_T0x54 (84)"T" key.
    DOM_VK_U0x55 (85)"U" key.
    DOM_VK_V0x56 (86)"V" key.
    DOM_VK_W0x57 (87)"W" key.
    DOM_VK_X0x58 (88)"X" key.
    DOM_VK_Y0x59 (89)"Y" key.
    DOM_VK_Z0x5A (90)"Z" key.
    DOM_VK_WIN0x5B (91)Windows logo key on Windows. Or Super or Hyper key on Linux. {{gecko_minversion_inline("15.0")}}
    DOM_VK_CONTEXT_MENU0x5D (93)Opening context menu key.
    DOM_VK_SLEEP0x5F (95)Linux support for this keycode was added in Gecko 4.0.
    DOM_VK_NUMPAD00x60 (96)"0" on the numeric keypad.
    DOM_VK_NUMPAD10x61 (97)"1" on the numeric keypad.
    DOM_VK_NUMPAD20x62 (98)"2" on the numeric keypad.
    DOM_VK_NUMPAD30x63 (99)"3" on the numeric keypad.
    DOM_VK_NUMPAD40x64 (100)"4" on the numeric keypad.
    DOM_VK_NUMPAD50x65 (101)"5" on the numeric keypad.
    DOM_VK_NUMPAD60x66 (102)"6" on the numeric keypad.
    DOM_VK_NUMPAD70x67 (103)"7" on the numeric keypad.
    DOM_VK_NUMPAD80x68 (104)"8" on the numeric keypad.
    DOM_VK_NUMPAD90x69 (105)"9" on the numeric keypad.
    DOM_VK_MULTIPLY0x6A (106)"*" on the numeric keypad.
    DOM_VK_ADD0x6B (107)"+" on the numeric keypad.
    DOM_VK_SEPARATOR0x6C (108)
    DOM_VK_SUBTRACT0x6D (109)"-" on the numeric keypad.
    DOM_VK_DECIMAL0x6E (110)Decimal point on the numeric keypad.
    DOM_VK_DIVIDE0x6F (111)"/" on the numeric keypad.
    DOM_VK_F10x70 (112)F1 key.
    DOM_VK_F20x71 (113)F2 key.
    DOM_VK_F30x72 (114)F3 key.
    DOM_VK_F40x73 (115)F4 key.
    DOM_VK_F50x74 (116)F5 key.
    DOM_VK_F60x75 (117)F6 key.
    DOM_VK_F70x76 (118)F7 key.
    DOM_VK_F80x77 (119)F8 key.
    DOM_VK_F90x78 (120)F9 key.
    DOM_VK_F100x79 (121)F10 key.
    DOM_VK_F110x7A (122)F11 key.
    DOM_VK_F120x7B (123)F12 key.
    DOM_VK_F130x7C (124)F13 key.
    DOM_VK_F140x7D (125)F14 key.
    DOM_VK_F150x7E (126)F15 key.
    DOM_VK_F160x7F (127)F16 key.
    DOM_VK_F170x80 (128)F17 key.
    DOM_VK_F180x81 (129)F18 key.
    DOM_VK_F190x82 (130)F19 key.
    DOM_VK_F200x83 (131)F20 key.
    DOM_VK_F210x84 (132)F21 key.
    DOM_VK_F220x85 (133)F22 key.
    DOM_VK_F230x86 (134)F23 key.
    DOM_VK_F240x87 (135)F24 key.
    DOM_VK_NUM_LOCK0x90 (144)Num Lock key.
    DOM_VK_SCROLL_LOCK0x91 (145)Scroll Lock key.
    DOM_VK_WIN_OEM_FJ_JISHO0x92 (146)An OEM specific key on Windows. This was used for "Dictionary" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_FJ_MASSHOU0x93 (147)An OEM specific key on Windows. This was used for "Unregister word" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_FJ_TOUROKU0x94 (148)An OEM specific key on Windows. This was used for "Register word" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_FJ_LOYA0x95 (149)An OEM specific key on Windows. This was used for "Left OYAYUBI" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_FJ_ROYA0x96 (150)An OEM specific key on Windows. This was used for "Right OYAYUBI" key on Fujitsu OASYS. {{gecko_minversion_inline("21.0")}}
    DOM_VK_CIRCUMFLEX0xA0 (160)Circumflex ("^") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_EXCLAMATION0xA1 (161)Exclamation ("!") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_DOUBLE_QUOTE0xA3 (162)Double quote (""") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_HASH0xA3 (163)Hash ("#") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_DOLLAR0xA4 (164)Dollar sign ("$") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_PERCENT0xA5 (165)Percent ("%") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_AMPERSAND0xA6 (166)Ampersand ("&") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_UNDERSCORE0xA7 (167)Underscore ("_") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_OPEN_PAREN0xA8 (168)Open parenthesis ("(") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_CLOSE_PAREN0xA9 (169)Close parenthesis (")") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_ASTERISK0xAA (170)Asterisk ("*") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_PLUS0xAB (171)Plus ("+") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_PIPE0xAC (172)Pipe ("|") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_HYPHEN_MINUS0xAD (173)Hyphen-US/docs/Minus ("-") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_OPEN_CURLY_BRACKET0xAE (174)Open curly bracket ("{") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_CLOSE_CURLY_BRACKET0xAF (175)Close curly bracket ("}") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_TILDE0xB0 (176)Tilde ("~") key. {{gecko_minversion_inline("15.0")}}
    DOM_VK_VOLUME_MUTE0xB5 (181)Audio mute key. {{gecko_minversion_inline("21.0")}}
    DOM_VK_VOLUME_DOWN0xB6 (182)Audio volume down key {{gecko_minversion_inline("21.0")}}
    DOM_VK_VOLUME_UP0xB7 (183)Audio volume up key {{gecko_minversion_inline("21.0")}}
    DOM_VK_COMMA0xBC (188)Comma (",") key.
    DOM_VK_PERIOD0xBE (190)Period (".") key.
    DOM_VK_SLASH0xBF (191)Slash ("/") key.
    DOM_VK_BACK_QUOTE0xC0 (192)Back tick ("`") key.
    DOM_VK_OPEN_BRACKET0xDB (219)Open square bracket ("[") key.
    DOM_VK_BACK_SLASH0xDC (220)Back slash ("\") key.
    DOM_VK_CLOSE_BRACKET0xDD (221)Close square bracket ("]") key.
    DOM_VK_QUOTE0xDE (222)Quote (''') key.
    DOM_VK_META0xE0 (224)Meta key on Linux, Command key on Mac.
    DOM_VK_ALTGR0xE1 (225)AltGr key (Level 3 Shift key or Level 5 Shift key) on Linux. {{gecko_minversion_inline("15.0")}}
    DOM_VK_WIN_ICO_HELP0xE3 (227)An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_ICO_000xE4 (228)An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_ICO_CLEAR0xE6 (230)An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_RESET0xE9 (233)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_JUMP0xEA (234)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_PA10xEB (235)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_PA20xEC (236)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_PA30xED (237)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_WSCTRL0xEE (238)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_CUSEL0xEF (239)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_ATTN0xF0 (240)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_FINISH0xF1 (241)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_COPY0xF2 (242)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_AUTO0xF3 (243)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_ENLW0xF4 (244)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_BACKTAB0xF5 (245)An OEM specific key on Windows. This was used for Nokia/Ericsson's device.{{gecko_minversion_inline("21.0")}}
    DOM_VK_ATTN0xF6 (246)Attn (Attention) key of IBM midrange computers, e.g., AS/400. {{gecko_minversion_inline("21.0")}}
    DOM_VK_CRSEL0xF7 (247)CrSel (Cursor Selection) key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}
    DOM_VK_EXSEL0xF8 (248)ExSel (Extend Selection) key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}
    DOM_VK_EREOF0xF9 (249)Erase EOF key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}
    DOM_VK_PLAY0xFA (250)Play key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}
    DOM_VK_ZOOM0xFB (251)Zoom key. {{gecko_minversion_inline("21.0")}}
    DOM_VK_PA10xFD (253)PA1 key of IBM 3270 keyboard layout. {{gecko_minversion_inline("21.0")}}
    DOM_VK_WIN_OEM_CLEAR0xFE (254)Clear key, but we're not sure the meaning difference from DOM_VK_CLEAR. {{gecko_minversion_inline("21.0")}}
    - -

    OEM specific keys on Windows

    - -

    On Windows, some values of virtual keycode are defined (reserved) for OEM specific key. They are available for special keys on non-standard keyboard. In other words, some values are used for different meaning by two or more vendors (or hardware).

    - -

    Starting Gecko 21 (and older than 15), OEM specific key values are available on the keyCode attribute only on Windows. So they are not useful for usual web applications. They are useful only for intranet applications or in similar situations.

    - -

    See "Manufacturer-specific Virtual-Key Codes (Windows CE 5.0)" in MSDN for the detail.

    diff --git a/files/ja/web/api/keyboardevent/keycode/index.md b/files/ja/web/api/keyboardevent/keycode/index.md new file mode 100644 index 00000000000000..c6693e001cfca8 --- /dev/null +++ b/files/ja/web/api/keyboardevent/keycode/index.md @@ -0,0 +1,3285 @@ +--- +title: KeyboardEvent.keyCode +slug: Web/API/KeyboardEvent/keyCode +page-type: web-api-instance-property +tags: + - API + - DOM + - DOM Events + - Deprecated + - KeyboardEvent + - Property + - Read-only + - Reference + - keyCode +browser-compat: api.KeyboardEvent.keyCode +translation_of: Web/API/KeyboardEvent/keyCode +--- +{{APIRef("UI Events")}}{{Deprecated_Header}} + +非推奨の **`KeyboardEvent.keyCode`** 読み取り専用プロパティは、押されたキーの変更されていない値を識別するシステムおよび実装に依存する数値コードを表します。 + +これは通常、キーに対応する 10 進数の ASCII ({{RFC(20)}}) または Windows 1252 コードです。キーを識別できない場合は、この値は `0` になります。 + +これはしばらく非推奨となっていますので、できれば使用しないようにしてください。代わりに、もし実装されていれば {{domxref("KeyboardEvent.code")}} を使用してください。残念ながら、まだ実装されていないブラウザーもありますので、対象となるすべてのブラウザーで対応するものを使用するように注意する必要があります。 + +> **Note:** ウェブ開発者は `keydown` と `keyup` イベントを処理する際に、表示可能な文字に対して `keyCode` 属性を使用するべきではありません。前述のように、`keyCode` 属性は表示可能な文字、特に ShiftAlt キーが押された状態での文字に対しては有用ではありません。ショートカットキーハンドラーを実装する場合、通常は {{domxref("Element/keypress_event", "keypress")}} イベントの方がよいでしょう(少なくとも Gecko を使用するランタイムではそうでしょう)。 + +## 例 + +```js +window.addEventListener("keydown", function (event) { + if (event.defaultPrevented) { + return; // 既定のアクションがキャンセルされている場合は何もしないようにします。 + } + + let handled = false; + if (event.key !== undefined) { + // KeyboardEvent.key でイベントを処理し、handled を true に設定します。 + handled = true; + } else if (event.keyCode !== undefined) { + // KeyboardEvent.keyCode でイベントを処理し、handled を true に設定します。 + handled = true; + } + + if (handled) { + // イベントが処理された場合、"ダブルアクション" を抑制する + event.preventDefault(); + } +}, true); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## keyCode の値 + +### 標準位置で表示可能なキー + +標準位置で表示可能なキーを押したり離したりすることで発生するキーイベントの値は、ブラウザー間で互換性がありません。 + +IE はネイティブの仮想キーコードの値を `KeyboardEvent.keyCode` として公開するだけです。 + +Google Chrome、Chromium、Safari は入力された文字から値を決定する必要があります。入力文字が US キーボードレイアウトで入力できる場合、 US キーボードレイアウトの `keyCode` 値を使用します。 + +Firefox 15 {{geckoRelease("15.0")}} からは、 Gecko はキーによって入力可能な ASCII 文字から `keyCode` 値を取得します。 shift 修飾子や ASCII 対応キーボードレイアウトであった場合も含みます。詳しくは以下のルールを参照してください。 + +1. システムが Windows で、押されたキーのネイティブキーコードが a-z または 0-9 であることを示す場合、そのキーコードを使用します。 +2. システムが Mac で、押されたキーのネイティブキーコードが 0-9 である場合、そのキーコードを使用します。 +3. 押されたキーが ASCII のアルファベットまたは数字を修飾キーなしで入力する場合、それに対応するキーコードを使用します。 +4. 押されたキーが、 ASCII アルファベットまたは数字を Shift キーで修飾して入力する場合、そのキーコードを使用します。 +5. 押されたキーが、別の ASCII 文字を修飾キーなしで入力する場合、それに対応するキーコードを使用します。 +6. 押されたキーが、別の ASCII文字を Shift キー修飾で入力する場合、それに対応するキーコードを使用します。 +7. それ以外の場合、すなわち、押されたキーが Unicode 文字を入力する場合は以下の通り。 + + 1. キーボードレイアウトが ASCII 対応の(ASCII アルファベットを入力できる)場合、 0 を使用するか、[下記の追加ルール](#keycode_of_punctuation_keys_on_some_keyboard_layout)で計算します。 + 2. それ以外の場合、つまりキーボードレイアウトが ASCII に対応していない場合は、最も優先度の高い環境にインストールされている ASCII に対応したキーボードレイアウトを使用します。 + + 1. 代替キーボードレイアウトで押されたキーが ASCII のアルファベットまたは数字を入力する場合、そのキーコードを使用します。 + 2. それ以外の場合、 0 を使用するか、[下記の追加ルール](#keycode_of_punctuation_keys_on_some_keyboard_layout)で計算します。 + +Firefox 60 {{geckoRelease("60.0")}} からは、 Gecko は区切り記号キーの `keyCode` 値を、できる限り以下の規則で設定します(上記のリストのポイント 7.1 または 7.2 に到達したとき)。 + +> **Warning:** これらの新しい追加ルールの目的は、米国式キーボードレイアウトの区切り記号キーに unicode 文字をマッピングしているユーザーが、 Firefox に対応したウェブアプリケーションを ASCII に対応したキーボードレイアウトのみ、または米国式キーボードレイアウトのみで使用できるようにするためです。そうでなければ、新しく割り当てられた `keyCode` 値が他のキーと衝突する可能性があります。例えば、アクティブなキーボードレイアウトがロシア語の場合、 `"Period"` キーと `"Slash"` キーの `keyCode` 値は**どちらも** `190` (`KeyEvent.DOM_VK_PERIOD`) になります。もし、これらのキーを区別する必要があるが、世界中の全てのキーボードレイアウトに自分で対応したくない場合は、おそらく {{domxref("KeyboardEvent.code")}} を使用した方が良いでしょう。 + +1. macOS または Linux を使用している場合 + + 1. アクティブなキーボードレイアウトが ASCII に対応したものではなく、代替の ASCII 対応のキーボードレイアウトが利用可能な場合。 + + 1. もし、 ASCII に対応したキーボードレイアウトが、修飾されていないキーだけで ASCII 文字を生成する場合、その文字の `keyCode` を使用します。 + 2. もし、代替の ASCII に対応したキーボードレイアウトで、 Shift キーで修飾した ASCII 文字が生成された場合、シフトされた文字の `keyCode`を使用します。 + 3. それ以外の場合は、 US キーボードレイアウトがアクティブなときにキーが生成する ASCII 文字を `keyCode` に使用します。 + + 2. それ以外の場合は、 US キーボードレイアウトがアクティブなときにキーが生成する ASCII 文字を `keyCode` に使用します。 + +2. Windows を使用している場合 + + 1. US キーボードレイアウトがアクティブなときに Windows の同じ仮想キーコードに割り当てられたキーによって生成される ASCII 文字を `keyCode` 値に使用します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 標準的な位置にある表示可能なキーによって発生する keydown イベントのブラウザーごとの keyCode 値 +
    {{domxref("KeyboardEvent.code")}}IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語
    "Digit1"0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)0x31 (49)
    "Digit2"0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)0x32 (50)
    "Digit3"0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)0x33 (51)
    "Digit4"0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)0x34 (52)
    "Digit5"0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)0x35 (53)
    "Digit6"0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)0x36 (54)
    "Digit7"0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)0x37 (55)
    "Digit8"0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)0x38 (56)
    "Digit9"0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)0x39 (57)
    "Digit0"0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)0x30 (48)
    "KeyA"0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)0x41 (65)
    "KeyB"0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)0x42 (66)
    "KeyC"0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)0x43 (67)
    "KeyD"0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)0x44 (68)
    "KeyE"0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)0x45 (69)
    "KeyF"0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)0x46 (70)
    "KeyG"0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)0x47 (71)
    "KeyH"0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)0x48 (72)
    "KeyI"0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)0x49 (73)
    "KeyJ"0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)0x4A (74)
    "KeyK"0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)0x4B (75)
    "KeyL"0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)0x4C (76)
    "KeyM"0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)0x4D (77)
    "KeyN"0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)0x4E (78)
    "KeyO"0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)0x4F (79)
    "KeyP"0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)0x50 (80)
    "KeyQ"0x51 (81)0x51 (81)0x51 (81)0x51 (81)0xBA (186)⚠️0x51 (81)0x51 (81)0xBA (186)⚠️0x51 (81)0x51 (81)0xBA (186)⚠️0x51 (81)0x51 (81)0x51 (81)0xBA (186)⚠️0x51 (81)
    "KeyR"0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)0x52 (82)
    "KeyS"0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)0x53 (83)
    "KeyT"0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)0x54 (84)
    "KeyU"0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)0x55 (85)
    "KeyV"0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)0x56 (86)
    "KeyW"0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)0x57 (87)
    "KeyX"0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)0x58 (88)
    "KeyY"0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)0x59 (89)
    "KeyZ"0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)0x5A (90)
    + {{domxref("KeyboardEvent.code")}} + 米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 標準的な位置(US レイアウトでは区切り記号)にある表示可能なキーによって発生する keydown イベントのブラウザー別の keyCode の値。 +
    {{domxref("KeyboardEvent.code")}}IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)Windows (10.9)Mac (10.9)Linux (Ubuntu 14.04)
    米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語
    "Comma"0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)0xBC (188)
    Shift + "Comma"
    "Period"0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)0xBE (190)
    Shift + "Period"
    "Semicolon"0xBA (186)0xBB (187)⚠️0xBA (186)0xBA (186)0xBB (187)⚠️0xBA (186)0xBA (186)0xBA (186) [1]0xE5 (229)⚠️ [2]0xBA (186)0xBA (186)0xE5 (229)⚠️ [3]0xBA (186)0xBA (186) [1]0xE5 (229)⚠️ [2]0x3B (59)0x3B (59)0x00 (0)⚠️0x3B (59)0x3B (59) [1]0x00 (0)⚠️0x3B (59)0x3B (59)0x00 (0)⚠️
    Shift + "Semicolon"0xBB (187)⚠️ [1]0xBB (187)⚠️0xBB (187)⚠️ [1]
    "Quote"0xDE (222)0xBA (186)⚠️0xDE (222)0xDE (222)0xBA (186)⚠️0xDE (222)0xDE (222)0xBA (186)⚠️ [1]0xDE (222)0xDE (222)0xBA (186)⚠️0xDE (222)0xDE (222)0xBA (186)⚠️ [1]0xDE (222)0xDE (222)0x3A (58)⚠️0xDE (222)0xDE (222)0x3A (58)⚠️ [1]0xDE (222)0xDE (222)0x3A (58)⚠️0xDE (222)
    Shift + "Quote"0xDE (222)⚠️ [1]0x38 (56)⚠️0xDE (222)⚠️ [1]
    "BracketLeft"0xDB (219)0xC0(192)⚠️0xDB (219)0xDB (219)0xC0(192)⚠️0xDB (219)0xDB (219)0xDB (219) [1]0xDB (219)0xDB (219)0x32 (50)⚠️0xDB (219)0xDB (219)0xDB (219) [1]0xDB (219)0xDB (219)0x40 (64)⚠️0xDB (219)0xDB (219)0x40 (64)⚠️ [1]0xDB (219)0xDB (219)0x40 (64)⚠️0xDB (219)
    Shift + "BracketLeft"0xC0 (192)⚠️ [1]0xC0 (192)⚠️0xC0 (192)⚠️ [1]
    "BracketRight"0xDD (221)0xDB (219)⚠️0xDD (221)0xDD (221)0xDB (219)⚠️0xDD (221)0xDD (221)0xDB (219)⚠️ [1]0xDD (221)0xDD (221)0xDB (219)⚠️0xDD (221)0xDD (221)0xDB (219)⚠️ [1]0xDD (221)0xDD (221)0xDB (219)⚠️0xDD (221)0xDD (221)0xDB (219)⚠️ [1]0xDD (221)0xDD (221)0xDB (219)⚠️0xDD (221)
    Shift + "BracketRight"
    "Backquote"0xC0 (192)❌ N/A0xC0 (192)0xC0 (192)❌ N/A0xC0 (192)0xC0 (192)0xC0 (192)0xF4 (244)⚠️0xC0 (192)0xC0 (192)0xC0 (192)❌ N/A0xC0 (192)0xC0 (192)0xC0 (192)0x00 (0)0xC0 (192)
    Shift + "Backquote"
    "Backslash"0xDC (220)0xDD (221)⚠️0xDC (220)0xDC (220)0xDD (221)⚠️0xDC (220)0xDC (220)0xDC (220)0xDD (221)⚠️0xDC (220)0xDC (220)0xDC (220)0xDD (221)⚠️0xDC (220)0xDC (220)0xDC (220)0xDD (221)⚠️0xDC (220)
    Shift + "Backslash"
    "Minus"0xBD (189)0xBD (189)0xBD (189)0xBD (189) [1]0xBD (189)0xBD (189)0xBD (189)0xBD (189)0xBD (189)0xBD (189) [1]0xBD (189)0xAD (173)0xAD (173)0xAD (173)[1]0xAD (173)0xAD (173)
    Shift + "Minus"0xBB (187)⚠️ [1]0xBB (187)⚠️0xBD (189)0xBB (187)⚠️ [1]0xBD (189)
    "Equal"0xBB (187)0xDE (222)⚠️0xBB (187)0xBB (187)0xDE (222)⚠️0xBB (187)0xBB (187)0xBB (187) [1]0xBB (187)0xBB (187)0x36 (54)⚠️0xBB (187)0xBB (187)0xBB (187)[1]0xBB (187)0x3D (61)0xA0 (160)⚠️0x3D (61)0x3D (61)0xA0 (160)⚠️ [1]0x3D (61)0x3D (61)0xA0 (160)⚠️0x3D (61)
    Shift + "Equal"0xC0 (192)⚠️ [1]0xC0 (192)⚠️0xBB (187)0xC0 (192)⚠️ [1]0xBB (187)
    "IntlRo"0xC1 (193)0xE2 (226)⚠️0xC1 (193)0xC1 (193)0xE2 (226)⚠️0xC1 (193)0xBD (189)0xBD (189)0x00 (0)⚠️[4]0xDC (220)⚠️[4]0xBD (189)0xBD (189)0xE5 (229)⚠️ [5]0x00 (0)0xDC (220)⚠️0x00 (0)0xA7 (167)0xA7 (167)0x00 (0)0x00 (0)0xDC (220)⚠️0x00 (0)
    Shift + "IntlRo"
    "IntlYen"0xFF (255)0xDC (220)⚠️0xFF (255)0xFF (255)0xDC (220)⚠️0xFF (255)0x00 (0)⚠️0x00 (0)⚠️0x00 (0)⚠️[4]0xDC (220)⚠️[4]0x00 (0)⚠️0x00 (0)⚠️0xE5 (229)⚠️ [5]0x00 (0)⚠️0xDC (220)⚠️0x00 (0)⚠️0xDC (220)0xDC (220)0x00 (0)⚠️0x00 (0)⚠️0xDC (220)⚠️0x00 (0)⚠️
    Shift + "IntlYen"0xDC (220)0xDC (220)0xBD (189)⚠️0xDC (220)0xDC (220)
    + {{domxref("KeyboardEvent.code")}} + 米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語米国日本語ギリシャ語
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    Internet Explorer 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + +\[1] JIS キーボードから入力される値です。 ANSI キーボードを使用すると、 US キーボードレイアウトから選択した keyCode 値と入力文字になります。 + +\[2] このキーはデッドキーです。イベント `keyup` の値は `0xBA (186)` です。 + +\[3] このキーはデッドキーです。イベント `keyup` の値は `0x10 (16)` です。 + +\[4] キーイベントは発行されない。 + +\[5] ギリシャ語キーボードレイアウトでは、そのキーは使用できません(いかなる文字も入力しません)。イベント `keyup` の値は `0x00 (0)` です。 + +### 非表示キー(機能キー) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 修飾キーによって発生する keydown イベントのブラウザー別の keyCode の値 +
    + {{domxref("KeyboardEvent.code")}} + IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    "AltLeft"0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)
    "AltRight"0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)0x12 (18)
    + "AltRight""AltGraph" キーであった場合) + [1][1]❌N/A0xE1 (225)⚠️❌ N/A[1]❌ N/A0xE1 (225)⚠️
    "CapsLock"0x14 (20) [2]0x14 (20) [2]0x14 (20)0x14 (20)0x14 (20)0x14 (20) [2]0x14 (20)0x14 (20) [3]
    "ControlLeft"0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)
    "ControlRight"0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)0x11 (17)
    "OSLeft"0x5B (91)0x5B (91)0x5B (91)0x5B (91)0x5B (91)0x5B (91)0xE0 (224)⚠️0x5B (91)
    "OSRight"0x5C (92)0x5C (92)0x5D (93)⚠️0x5C (92)0x5D (93)⚠️0x5B (91)⚠️0xE0 (224)⚠️0x5B (91)⚠️
    "ShiftLeft"0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)
    "ShiftRight"0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)0x10 (16)
    + {{domxref("KeyboardEvent.code")}} + WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + +\[1] Windows では、 AltGraph キーを押すと `"ControlLeft"` と `"AltRight"` の両方のキーイベントを発行します。 + +\[2] 日本語キーボードレイアウトがアクティブである場合、 CapsLock キーを Shift なしで押すと `0xF0 (240)` が発生します。このキーは Alphanumeric キー (`"英数"`) として動作します。 + +\[3] 日本語キーボードレイアウトがアクティブである場合、 CapsLock キーを Shift なしで押すと `0x00 (0)` が発生します。このキーは Alphanumeric キー (`"英数"`) として動作します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 非表示キーによって発生した keydown イベントのブラウザー別の keyCode の値 +
    + {{domxref("KeyboardEvent.code")}} + IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    "ContextMenu"0x5D (93)0x5D (93)0x00 (0)⚠️ [1]0x5D (93)0x00 (0)⚠️ [1]0x5D (93)0x5D (93)0x5D (93)
    "Enter"0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)
    "Space"0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)0x20 (32)
    "Tab"0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)0x09 (9)
    "Delete"0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)
    "End"0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)
    "Help"❌ N/A❌ N/A0x2D (45)
    ⚠️ [2]
    0x2F (47)
    ⚠️ [3]
    0x2D (45)
    ⚠️ [2]
    ❌ N/A0x2D (45)
    ⚠️ [2]
    0x06 (6)
    ⚠️ [3]
    "Home"0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)
    "Insert"0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)
    "PageDown"0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)
    "PageUp"0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)
    "ArrowDown"0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)
    "ArrowLeft"0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)
    "ArrowRight"0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)
    "ArrowUp"0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)
    "Escape"0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)0x1B (27)
    "PrintScreen"0x2C (44) [4]0x2C (44) [4]0x7C (124)
    ⚠️ [5]
    0x2A (42)⚠️0x7C (124)
    ⚠️ [5]
    0x2C (44) [4]0x2C (44)0x2A (42)⚠️
    "ScrollLock"0x91 (145)0x91 (145)0x7D (125)
    ⚠️ [5]
    0x91 (145)0x7D (125)
    ⚠️ [5]
    0x91 (145)0x91 (145)0x91 (145)
    "Pause"0x13 (19) [6]0x13 (19) [6]0x7E (126)
    ⚠️ [5]
    0x13 (19)0x7E (126)
    ⚠️ [5]
    0x13 (19) [6]0x13 (19)0x13 (19)
    + {{domxref("KeyboardEvent.code")}} + WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + +\[1] `keypress` イベントが発行され、その `keyCode` と `charCode` は `0x10 (16)` になりますが、実際にはテキストはエディターに入力されません。 + +\[2] Mac では、 Help キーは PC のキーボードの Insert キーに割り当てられています。これらの `keyCode` 値は Insert キーの `keyCode` 値と同じです。 + +\[3] Fedora 20 でテストしました。 + +\[4] `keyup` イベントのみが発生します。 + +\[5] PC の PrintScreen, ScrollLock, Pause はそれぞれ Mac の F13, F14, F15 に割り当てられます。 Chrome と Safari はこれらを Mac のキーと同じ `keyCode` 値に割り当てています。 + +\[6] Pause キーを Control 付きで推すと `0x03 (3)` を生成します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 機能キーによる keydown イベントのブラウザー別の keyCode の値 +
    + {{domxref("KeyboardEvent.code")}} + IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    "F1"0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)0x70 (112)
    "F2"0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)0x71 (113)
    "F3"0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)0x72 (114)
    "F4"0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)0x73 (115)
    "F5"0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)0x74 (116)
    "F6"0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)0x75 (117)
    "F7"0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)0x76 (118)
    "F8"0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)0x77 (119)
    "F9"0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)0x78 (120)
    "F10"0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)0x79 (121)
    "F11"0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)0x7A (122)
    "F12"0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)0x7B (123)
    "F13"0x7C (124)0x7C (124)0x7C (124)0x7C (124) [1]0x7C (124)0x7C (124)0x2C (44) ⚠️ [2]0x00 (0)⚠️ [3]
    "F14"0x7D (125)0x7D (125)0x7D (125)0x7D (125) [1]0x7D (125)0x7D (125)0x91 (145) ⚠️ [2]0x00 (0)⚠️ [3]
    "F15"0x7E (126)0x7E (126)0x7E (126)0x7E (126) [1]0x7E (126)0x7E (126)0x13 (19) ⚠️ [2]0x00 (0)⚠️ [3]
    "F16"0x7F (127)0x7F (127)0x7F (127)0x7F (127) [1]0x7F (127)0x7F (127)0x7F (127)0x00 (0)⚠️ [3]
    "F17"0x80 (128)0x80 (128)0x80 (128)0x80 (128) [1]0x80 (128)0x80 (128)0x80 (128)0x00 (0)⚠️ [3]
    "F18"0x81 (129)0x81 (129)0x81 (129)0x81 (129) [1]0x81 (129)0x81 (129)0x81 (129)0x00 (0)⚠️ [3]
    "F19"0x82 (130)0x82 (130)0x82 (130)N/A [4]0x82 (130)0x82 (130)0x82 (130)0x00 (0)⚠️ [3]
    "F20"0x83 (131)0x83 (131)0x83 (131)N/A [4]0xE5 (229)⚠️ [5]0x83 (131)0x00 (0)⚠️N/A [6]
    "F21"0x84 (132)0x84 (132)0x00 (0)⚠️ [7]N/A [4]0x00 (0)⚠️ [7]0x84 (132)N/A [8]N/A [6]
    "F22"0x85 (133)0x85 (133)0x00 (0)⚠️ [7]N/A [4]0x00 (0)⚠️ [7]0x85 (133)N/A [8]N/A [6]
    "F23"0x86 (134)0x86 (134)0x00 (0)⚠️ [7]N/A [4]0x00 (0)⚠️ [7]0x86 (134)N/A [8]N/A [6]
    "F24"0x87 (135)0x87 (135)0x00 (0)⚠️ [7]N/A [4]0x00 (0)⚠️ [7]0x87 (135)N/A [8]0x00 (0)⚠️ [3]
    + {{domxref("KeyboardEvent.code")}} + WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + +\[1] Fedora 20 でテストしました。 + +\[2] PC では、PrintScreenScrollLockPause はそれぞれ Mac の F13F14F15 に割り当てられています。Firefox はそれらに、PC のキーと同じ `keyCode` 値を設定します。 + +\[3] Fedora 20 でテストしました。 このキーは `GDK_Fxx` の keysyms を発生させません。キーが適切な keysyms を発生させる場合、これらの値は IE と同じでなければなりません。 + +\[4] Fedora 20 でテストしました。 Chromium では、このキーは DOM キーイベントを発生させません。 + +\[5] `keyUp` イベントの `keyCode` の値は `0x83 (131)` です。 + +\[6] Fedora 20 でテストしました。 Firefox では、このキーは DOM キーイベントを発生させません。 + +\[7] `keydown` イベントのみが発行されます。 + +\[8] Firefox では、 DOM キーイベントは発行されません。 + +### テンキー + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + NumLock 状態のテンキーで発生した keydown イベントのそれぞれのブラウザーの keyCode の値 +
    + {{domxref("KeyboardEvent.code")}} + IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    "NumLock"0x90 (144)0x90 (144)0x0C (12)⚠️ [1]0x90 (144)0x0C (12)⚠️ [1]0x90 (144)0x0C (12)⚠️ [1]0x90 (144)
    "Numpad0"0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)0x60 (96)
    "Numpad1"0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)0x61 (97)
    "Numpad2"0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)0x62 (98)
    "Numpad3"0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)0x63 (99)
    "Numpad4"0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)0x64 (100)
    "Numpad5"0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)0x65 (101)
    "Numpad6"0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)0x66 (102)
    "Numpad7"0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)0x67 (103)
    "Numpad8"0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)0x68 (104)
    "Numpad9"0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)0x69 (105)
    "NumpadAdd"0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)0x6B (107)
    "NumpadComma""," を入力)0xC2 (194)0xC2 (194)0xBC (188)⚠️常に "." を入力0xBC (188)⚠️0xC2 (194)0x6C (108)⚠️常に "." を入力
    + "NumpadComma""." または空文字列を入力) + 0xC2 (194)0xC2 (194)0xBE (190)⚠️0x6E (110)⚠️0xBE (190)⚠️0xC2 (194)0x6C (108)⚠️0x6E (110)⚠️
    + "NumpadDecimal""." を入力) + 0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)0x6E (110)
    + "NumpadDecimal""," を入力) + 0x6E (110)0x6E (110)0x6E (110)0x6C (108)⚠️0x6E (110)0x6E (110)0x6E (110)0x6C (108)⚠️
    "NumpadDivide"0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)0x6F (111)
    "NumpadEnter"0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)0x0D (13)
    "NumpadEqual"0x0C (12)0x0C (12)0xBB (187)⚠️0xBB (187)⚠️0xBB (187)⚠️0x0C (12)0x3D (61)⚠️0x3D (61)⚠️
    "NumpadMultiply"0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)0x6A (106)
    "NumpadSubtract"0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)0x6D (109)
    + {{domxref("KeyboardEvent.code")}} + WindowsWindowsMac (10.9)Linux (Ubuntu 14.04)Mac (10.9)WindowsMac (10.9)Linux (Ubuntu 14.04)
    IE 11Google Chrome 34Chromium 34Safari 7Gecko 29
    + +\[1] `"NumLock"` キーは Mac では `"Clear"` キーとして動作します。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + NumLock 状態でないテンキーで発生した keydown イベントのブラウザー別の keyCode の値 +
    + {{domxref("KeyboardEvent.code")}} + IE 11Google Chrome 34Chromium 34Gecko 29
    WindowsWindowsLinux (Ubuntu 14.04)WindowsLinux (Ubuntu 14.04)
    "Numpad0" ("Insert")0x2D (45)0x2D (45)0x2D (45)0x2D (45)0x2D (45)
    "Numpad1" ("End")0x23 (35)0x23 (35)0x23 (35)0x23 (35)0x23 (35)
    "Numpad2" ("ArrowDown")0x28 (40)0x28 (40)0x28 (40)0x28 (40)0x28 (40)
    "Numpad3" ("PageDown")0x22 (34)0x22 (34)0x22 (34)0x22 (34)0x22 (34)
    "Numpad4" ("ArrowLeft")0x25 (37)0x25 (37)0x25 (37)0x25 (37)0x25 (37)
    "Numpad5"0x0C (12)0x0C (12)0x0C (12)0x0C (12)0x0C (12)
    "Numpad6" ("ArrowRight")0x27 (39)0x27 (39)0x27 (39)0x27 (39)0x27 (39)
    "Numpad7" ("Home")0x24 (36)0x24 (36)0x24 (36)0x24 (36)0x24 (36)
    "Numpad8" ("ArrowUp")0x26 (38)0x26 (38)0x26 (38)0x26 (38)0x26 (38)
    "Numpad9" ("PageUp")0x21 (33)0x21 (33)0x21 (33)0x21 (33)0x21 (33)
    "NumpadDecimal" ("Delete")0x2E (46)0x2E (46)0x2E (46)0x2E (46)0x2E (46)
    + {{domxref("KeyboardEvent.code")}} + WindowsWindowsLinux (Ubuntu 14.04)WindowsLinux (Ubuntu 14.04)
    IE 11Google Chrome 34Chromium 34Gecko 29
    + +> **Note:** 最近の Mac には NumLock キーがないので、状態が分かりません。そのため、ロック解除の状態が利用できません。 + +## keyCode 値の定数 + +Gecko は、対応表を明示的に作成するために、`KeyboardEvent` に多くの `keyCode` 値を定義しています。これらの値は、Firefox のアドオン開発者にとっては便利ですが、一般的なウェブページではあまり有用ではありません。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    定数説明
    DOM_VK_CANCEL0x03 (3)キャンセルキー。
    DOM_VK_HELP0x06 (6)Help キー。
    DOM_VK_BACK_SPACE0x08 (8)Backspace キー。
    DOM_VK_TAB0x09 (9)Tab キー。
    DOM_VK_CLEAR0x0C (12) + NumLock を解除した状態における、テンキーの "5" キー。 Mac の場合は、 NumLock キーと同じ位置にあるクリアキーを押します。 +
    DOM_VK_RETURN0x0D (13)メインキーボードのリターン/エンターキー。
    DOM_VK_ENTER0x0E (14) + 予約済みですが、使用されていません。 {{deprecated_inline}} (削除。 + {{bug(969247)}} を参照) +
    DOM_VK_SHIFT0x10 (16)Shift キー。
    DOM_VK_CONTROL0x11 (17)Control キー。
    DOM_VK_ALT0x12 (18)Alt (Mac では Option)キー。
    DOM_VK_PAUSE0x13 (19)Pause キー。
    DOM_VK_CAPS_LOCK0x14 (20)Caps lock。
    DOM_VK_KANA0x15 (21)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_HANGUL0x15 (21)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_EISU0x 16 (22)日本語の Mac キーボードの "英数" キー。
    DOM_VK_JUNJA0x17 (23)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_FINAL0x18 (24)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_HANJA0x19 (25)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_KANJI0x19 (25)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_ESCAPE0x1B (27)Escape キー。
    DOM_VK_CONVERT0x1C (28)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_NONCONVERT0x1D (29)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_ACCEPT0x1E (30)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_MODECHANGE0x1F (31)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_SPACE0x20 (32)スペースバー。
    DOM_VK_PAGE_UP0x21 (33)Page Up キー。
    DOM_VK_PAGE_DOWN0x22 (34)Page Down キー。
    DOM_VK_END0x23 (35)End キー。
    DOM_VK_HOME0x24 (36)Home キー。
    DOM_VK_LEFT0x25 (37)左矢印。
    DOM_VK_UP0x26 (38)上矢印。
    DOM_VK_RIGHT0x27 (39)右矢印。
    DOM_VK_DOWN0x28 (40)下矢印。
    DOM_VK_SELECT0x29 (41)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_PRINT0x2A (42)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_EXECUTE0x2B (43)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_PRINTSCREEN0x2C (44)Print Screen キー。
    DOM_VK_INSERT0x2D (45)Ins(ert) キー。
    DOM_VK_DELETE0x2E (46)Del(ete) キー。
    DOM_VK_00x30 (48)"0" キー(メインキー)。
    DOM_VK_10x31 (49)"1" キー(メインキー)。
    DOM_VK_20x32 (50)"2" キー(メインキー)。
    DOM_VK_30x33 (51)"3" キー(メインキー)。
    DOM_VK_40x34 (52)"4" キー(メインキー)。
    DOM_VK_50x35 (53)"5" キー(メインキー)。
    DOM_VK_60x36 (54)"6" キー(メインキー)。
    DOM_VK_70x37 (55)"7" キー(メインキー)。
    DOM_VK_80x38 (56)"8" キー(メインキー)。
    DOM_VK_90x39 (57)"9" キー(メインキー)。
    DOM_VK_COLON0x3A (58)コロン (":") キー。
    DOM_VK_SEMICOLON0x3B (59)セミコロン (";") キー。
    DOM_VK_LESS_THAN0x3C (60)小なり ("<") キー。
    DOM_VK_EQUALS0x3D (61)等号 ("=") キー。
    DOM_VK_GREATER_THAN0x3E (62)大なり (">") キー。
    DOM_VK_QUESTION_MARK0x3F (63)疑問符 ("?") キー。
    DOM_VK_AT0x40 (64)アットマーク ("@") キー。
    DOM_VK_A0x41 (65)"A" キー。
    DOM_VK_B0x42 (66)"B" キー。
    DOM_VK_C0x43 (67)"C" キー。
    DOM_VK_D0x44 (68)"D" キー。
    DOM_VK_E0x45 (69)"E" キー。
    DOM_VK_F0x46 (70)"F" キー。
    DOM_VK_G0x47 (71)"G" キー。
    DOM_VK_H0x48 (72)"H" キー。
    DOM_VK_I0x49 (73)"I" キー。
    DOM_VK_J0x4A (74)"J" キー。
    DOM_VK_K0x4B (75)"K" キー。
    DOM_VK_L0x4C (76)"L" キー。
    DOM_VK_M0x4D (77)"M" キー。
    DOM_VK_N0x4E (78)"N" キー。
    DOM_VK_O0x4F (79)"O" キー。
    DOM_VK_P0x50 (80)"P" キー。
    DOM_VK_Q0x51 (81)"Q" キー。
    DOM_VK_R0x52 (82)"R" キー。
    DOM_VK_S0x53 (83)"S" キー。
    DOM_VK_T0x54 (84)"T" キー。
    DOM_VK_U0x55 (85)"U" キー。
    DOM_VK_V0x56 (86)"V" キー。
    DOM_VK_W0x57 (87)"W" キー。
    DOM_VK_X0x58 (88)"X" キー。
    DOM_VK_Y0x59 (89)"Y" キー。
    DOM_VK_Z0x5A (90)"Z" キー。
    DOM_VK_WIN0x5B (91)Windows では Windows ロゴキー。 Linux ではスーパー/ハイパーキー。
    DOM_VK_CONTEXT_MENU0x5D (93)コンテキストメニューを開くキー。
    DOM_VK_SLEEP0x5F (95)このキーコードの Linux 対応は Gecko 4.0 で追加されました。
    DOM_VK_NUMPAD00x60 (96)"0" キー(テンキー)。
    DOM_VK_NUMPAD10x61 (97)"1" キー(テンキー)。
    DOM_VK_NUMPAD20x62 (98)"2" キー(テンキー)。
    DOM_VK_NUMPAD30x63 (99)"3" キー(テンキー)。
    DOM_VK_NUMPAD40x64 (100)"4" キー(テンキー)。
    DOM_VK_NUMPAD50x65 (101)"5" キー(テンキー)。
    DOM_VK_NUMPAD60x66 (102)"6" キー(テンキー)。
    DOM_VK_NUMPAD70x67 (103)"7" キー(テンキー)。
    DOM_VK_NUMPAD80x68 (104)"8" キー(テンキー)。
    DOM_VK_NUMPAD90x69 (105)"9" キー(テンキー)。
    DOM_VK_MULTIPLY0x6A (106)"*" キー(テンキー)。
    DOM_VK_ADD0x6B (107)"+" キー(テンキー)。
    DOM_VK_SEPARATOR0x6C (108)
    DOM_VK_SUBTRACT0x6D (109)"-" キー(テンキー)。
    DOM_VK_DECIMAL0x6E (110)テンキーの浮動小数点キー。
    DOM_VK_DIVIDE0x6F (111)"/" キー(テンキー)。
    DOM_VK_F10x70 (112)F1 キー。
    DOM_VK_F20x71 (113)F2 キー。
    DOM_VK_F30x72 (114)F3 キー。
    DOM_VK_F40x73 (115)F4 キー。
    DOM_VK_F50x74 (116)F5 キー。
    DOM_VK_F60x75 (117)F6 キー。
    DOM_VK_F70x76 (118)F7 キー。
    DOM_VK_F80x77 (119)F8 キー。
    DOM_VK_F90x78 (120)F9 キー。
    DOM_VK_F100x79 (121)F10 キー。
    DOM_VK_F110x7A (122)F11 キー。
    DOM_VK_F120x7B (123)F12 キー。
    DOM_VK_F130x7C (124)F13 キー。
    DOM_VK_F140x7D (125)F14 キー。
    DOM_VK_F150x7E (126)F15 キー。
    DOM_VK_F160x7F (127)F16 キー。
    DOM_VK_F170x80 (128)F17 キー。
    DOM_VK_F180x81 (129)F18 キー。
    DOM_VK_F190x82 (130)F19 キー。
    DOM_VK_F200x83 (131)F20 キー。
    DOM_VK_F210x84 (132)F21 キー。
    DOM_VK_F220x85 (133)F22 キー。
    DOM_VK_F230x86 (134)F23 キー。
    DOM_VK_F240x87 (135)F24 キー。
    DOM_VK_NUM_LOCK0x90 (144)Num Lock キー。
    DOM_VK_SCROLL_LOCK0x91 (145)Scroll Lock キー。
    DOM_VK_WIN_OEM_FJ_JISHO0x92 (146) + Windows の OEM 固有キー。 + これは富士通の OASYS で「辞書」キーに使われていました。 +
    DOM_VK_WIN_OEM_FJ_MASSHOU0x93 (147) + Windows の OEM 固有キー。 + これは富士通の OASYS で「単語登録解除」キーに使われていました。 +
    DOM_VK_WIN_OEM_FJ_TOUROKU0x94 (148) + Windows の OEM 固有キー。 + これは富士通の OASYS で「単語登録」キーに使われていました。 +
    DOM_VK_WIN_OEM_FJ_LOYA0x95 (149) + Windows の OEM 固有キー。 + これは富士通の OASYS で「左親指シフト」キーに使われていました。 +
    DOM_VK_WIN_OEM_FJ_ROYA0x96 (150) + An + Windows の OEM 固有キー。 + これは富士通の OASYS で「右親指シフト」キーに使われていました。 +
    DOM_VK_CIRCUMFLEX0xA0 (160)サーカムフレックス ("^") キー。
    DOM_VK_EXCLAMATION0xA1 (161)感嘆符 ("!") キー。
    DOM_VK_DOUBLE_QUOTE0xA3 (162)二重引用符 (""") キー。
    DOM_VK_HASH0xA3 (163)ハッシュ ("#") キー。
    DOM_VK_DOLLAR0xA4 (164)ドル記号 ("$") キー。
    DOM_VK_PERCENT0xA5 (165)パーセント ("%") キー。
    DOM_VK_AMPERSAND0xA6 (166)アンパーサンド ("&") キー。
    DOM_VK_UNDERSCORE0xA7 (167)アンダースコア ("_") キー。
    DOM_VK_OPEN_PAREN0xA8 (168)開き括弧 ("(") キー。
    DOM_VK_CLOSE_PAREN0xA9 (169)閉じ括弧 (")") キー。
    DOM_VK_ASTERISK0xAA (170)アスタリスク ("*") キー。
    DOM_VK_PLUS0xAB (171)正記号 ("+") キー。
    DOM_VK_PIPE0xAC (172)パイプ ("|") キー。
    DOM_VK_HYPHEN_MINUS0xAD (173)ハイフン/マイナス ("-") キー。
    DOM_VK_OPEN_CURLY_BRACKET0xAE (174)開き波括弧 ("{") キー。
    DOM_VK_CLOSE_CURLY_BRACKET0xAF (175)閉じ波括弧 ("}") キー。
    DOM_VK_TILDE0xB0 (176)チルダ ("~") キー。
    DOM_VK_VOLUME_MUTE0xB5 (181)消音キー。
    DOM_VK_VOLUME_DOWN0xB6 (182)音量下げキー
    DOM_VK_VOLUME_UP0xB7 (183)音量上げキー
    DOM_VK_COMMA0xBC (188)カンマ (",") キー。
    DOM_VK_PERIOD0xBE (190)ピリオド (".") キー。
    DOM_VK_SLASH0xBF (191)スラッシュ ("/") キー。
    DOM_VK_BACK_QUOTE0xC0 (192)逆引用符 ("`") キー。
    DOM_VK_OPEN_BRACKET0xDB (219)開き角括弧 ("[") キー。
    DOM_VK_BACK_SLASH0xDC (220)バックスラッシュ ("\") キー。
    DOM_VK_CLOSE_BRACKET0xDD (221)閉じ角括弧 ("]") キー。
    DOM_VK_QUOTE0xDE (222)単一引用符 (''') キー。
    DOM_VK_META0xE0 (224)Linux の Meta キー、 Mac の Command キー。
    DOM_VK_ALTGR0xE1 (225)Linux の AltGr キー (Level 3 Shift キーまたは Level 5 Shift キー)。
    DOM_VK_WIN_ICO_HELP0xE3 (227) + Windows の OEM 固有キー。 + これは Olivetti ICO キーボードで使われています(いました?) +
    DOM_VK_WIN_ICO_000xE4 (228) + Windows の OEM 固有キー。 + これは Olivetti ICO キーボードで使われています(いました?) +
    DOM_VK_WIN_ICO_CLEAR0xE6 (230) + Windows の OEM 固有キー。 + これは Olivetti ICO キーボードで使われています(いました?) +
    DOM_VK_WIN_OEM_RESET0xE9 (233) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_JUMP0xEA (234) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_PA10xEB (235) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_PA20xEC (236) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_PA30xED (237) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_WSCTRL0xEE (238) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_CUSEL0xEF (239) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_ATTN0xF0 (240) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_FINISH0xF1 (241) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_COPY0xF2 (242) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_AUTO0xF3 (243) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_ENLW0xF4 (244) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_WIN_OEM_BACKTAB0xF5 (245) + Windows の OEM 固有キー。 + これは Nokia/Ericsson の端末で使用されていました。 +
    DOM_VK_ATTN0xF6 (246)IBM ミッドレンジコンピューター(AS/400 など)の Attn (Attention) キー。
    DOM_VK_CRSEL0xF7 (247)IBM 3270 キーボードレイアウトの CrSel (カーソル選択)キー。
    DOM_VK_EXSEL0xF8 (248)IBM 3270 キーボードレイアウトの ExSel (拡張選択)キー。
    DOM_VK_EREOF0xF9 (249)IBM 3270 キーボードレイアウトの Erase EOF キー。
    DOM_VK_PLAY0xFA (250)IBM 3270 キーボードレイアウトの Play キー。
    DOM_VK_ZOOM0xFB (251)Zoom キー。
    DOM_VK_PA10xFD (253)IBM 3270 キーボードレイアウトの PA1 キー。
    DOM_VK_WIN_OEM_CLEAR0xFE (254) + クリアキーです。ただし、 DOM_VK_CLEAR との違いは分かりません。 +
    + +### Windows の OEM 固有キー + +Windows では、仮想キーコードのいくつかの値は、 OEM の特定のキー用に定義(予約)されています。これらは、非標準のキーボードの特殊なキーで利用可能です。言い換えれば、いくつかの値は、2 つ以上のベンダー(またはハードウェア)によって異なる意味で使用されています。 + +Gecko 21 (および 15 より古いバージョン)では、OEM 固有のキー値は Windows 上でのみ keyCode 属性で利用可能です。そのため、通常のウェブアプリケーションでは使用できません。それらはイントラネットのアプリケーション、または同様の状況においてのみ使用されます。 + +詳しくは MSDN の "[Manufacturer-specific Virtual-Key Codes (Windows CE 5.0)](https://docs.microsoft.com/en-us/previous-versions/windows/embedded/aa452679(v=msdn.10))" を参照してください。 diff --git a/files/ja/web/api/keyboardevent/keyidentifier/index.md b/files/ja/web/api/keyboardevent/keyidentifier/index.md new file mode 100644 index 00000000000000..3ea112b64a456b --- /dev/null +++ b/files/ja/web/api/keyboardevent/keyidentifier/index.md @@ -0,0 +1,26 @@ +--- +title: KeyboardEvent.keyIdentifier +slug: Web/API/KeyboardEvent/keyIdentifier +page-type: web-api-instance-property +tags: + - API + - DOM + - Deprecated + - Non-standard + - Property + - Reference + - events +browser-compat: api.KeyboardEvent.keyIdentifier +translation_of: Web/API/KeyboardEvent/keyIdentifier +--- +{{APIRef("UI Events")}}{{non-standard_header}}{{deprecated_header}} + +非推奨の **`KeyboardEvent.keyIdentifier`** は読み取り専用のプロパティで、どのキーが押されたかを特定することができる「キー識別子」文字列を返します。非推奨でない置き替え先は {{domxref("KeyboardEvent.key")}} です。 + +## 仕様書 + +_現在の仕様書には含まれていません。_ このプロパティは [DOM Level 3 Events 仕様書の古い草稿](https://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent-keyIdentifier)に含まれていましたが、後の草稿で取り除かれ、 {{domxref("KeyboardEvent.key")}} に置き換えられました。 + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/keyboardevent/location/index.md b/files/ja/web/api/keyboardevent/location/index.md new file mode 100644 index 00000000000000..526cba3aee55dd --- /dev/null +++ b/files/ja/web/api/keyboardevent/location/index.md @@ -0,0 +1,129 @@ +--- +title: KeyboardEvent.location +slug: Web/API/KeyboardEvent/location +page-type: web-api-instance-property +tags: + - API + - DOM + - KeyboardEvent + - Property + - Read-only + - Reference +browser-compat: api.KeyboardEvent.location +translation_of: Web/API/KeyboardEvent/location +--- +{{APIRef("UI Events")}} + +**`KeyboardEvent.location`** は読み取り専用のプロパティで、キーボードやその他の入力機器上のキーの位置を表す `unsigned long` を返します。 + +取りうる値は以下の通りです。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    定数説明
    DOM_KEY_LOCATION_STANDARD0 + このキーは 1 つしかない、または左右の区別がつかないもので、テンキーやキーパッドの一部とみなされるキーで押されたものではありません。 +
    DOM_KEY_LOCATION_LEFT1 + このキーは、左側のキーです。例えば、標準的な 101 キーの US キーボードでは、左側の Control キーが押されたことになります。この値は、キーボード上に 2 つ以上の位置にある可能性があるキーにのみ使用されます。 +
    DOM_KEY_LOCATION_RIGHT2 + このキーは、右側のキーです。例えば、標準的な 101 キーの US キーボードでは、右側の Control キーが押されたことになります。この値は、キーボード上に 2 つ以上の位置にある可能性があるキーにのみ使用されます。 +
    DOM_KEY_LOCATION_NUMPAD3 +

    + キーがテンキーにあるか、テンキーに対応する仮想キーコードを持っています。 +

    +
    +

    + メモ: NumLock がロックされているとき、Gecko はテンキーのキーに対して常に DOM_KEY_LOCATION_NUMPAD を返します。一方、NumLock がロックされていない場合、キーボードに実際にテンキーがある場合にも、 Gecko は常に DOM_KEY_LOCATION_NUMPAD を返します。一方、ノートパソコンのようにキーボードにテンキーがない場合、 NumLock がロックされたときだけテンキーとなるキーがあります。このようなキーがキーイベントを発行する場合、 location 属性の値はキーに依存します。つまり、 DOM_KEY_LOCATION_NUMPAD になることはありません。 +

    +
    +
    +

    + メモ: NumLock キーのキーイベントは、 Gecko と Internet Explorer の両方で DOM_KEY_LOCATION_STANDARD となります。 +

    +
    +
    + DOM_KEY_LOCATION_MOBILE + {{Non-standard_inline()}}{{deprecated_inline}} + 4 +

    + キーはモバイル機器にあります。これは物理的なキーパッドでも仮想キーボードでもかまいません。 +

    +
    +

    + Note: Gecko では DOM_KEY_LOCATION_MOBILE を Android (18 以前)、Maemo、Boot to Geckoで常に返します。しかし、 {{gecko("38")}} では、これは削除されました。 +

    +
    +
    + DOM_KEY_LOCATION_JOYSTICK {{Non-standard_inline()}} + {{deprecated_inline}} + 5 +

    + このキーは、ゲーム機のコントローラーのボタンやモバイル機器のジョイスティックです。 +

    +
    +

    + メモ: Gecko は Android 以外では DOM_KEY_LOCATION_JOYSTICK を持つ信頼されるイベントを発行しません。 18 からは、Android 上のネイティブのキーイベントがこの値を持つ可能性があります。しかし、 {{gecko("38")}} で、この値は削除されました。 +

    +
    +
    + +## 値 + +数値です。 + +## 例 + +```js +function keyEvent(event) { + console.log("押されたキーの位置: " + event.location); +} +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{domxref("KeyboardEvent")}} diff --git a/files/ja/web/api/keyboardevent/metakey/index.md b/files/ja/web/api/keyboardevent/metakey/index.md new file mode 100644 index 00000000000000..016f9f04fc9774 --- /dev/null +++ b/files/ja/web/api/keyboardevent/metakey/index.md @@ -0,0 +1,55 @@ +--- +title: KeyboardEvent.metaKey +slug: Web/API/KeyboardEvent/metaKey +page-type: web-api-instance-property +tags: + - API + - DOM + - MouseEvent + - Property + - Read-only + - Reference +browser-compat: api.KeyboardEvent.metaKey +translation_of: Web/API/KeyboardEvent/metaKey +--- +{{APIRef("UI Events")}} + +**`KeyboardEvent.metaKey`** は読み取り専用のプロパティで、 プロパティは、イベントが発生したときに Meta キーが押されていたか (`true`) あるいは押されていなかった (`false`) かを示す論理値を返します。オペレーティングシステムによっては、キーが検出されないように遮蔽されることがあります。 + +> **Note:** Macintosh のキーボードでは、これは ⌘ Command キーです。 + +> **Warning:** 少なくとも Firefox 48 の時点では、 ⊞ Windows キーは "Meta" キーとみなされなくなりました。⊞ Windows キーが押されたとき `KeyboardEvent.metaKey` は `false` になります。 + +## 値 + +論理値です。 + +## 例 + +```html + + +

    +``` + +```js +function ismetaKey(e) { + document.querySelector("#output").textContent = "metaKey pressed? " + e.metaKey; +} +``` + +#### 結果 + +{{ EmbedLiveSample('Examples', 400, 90) }} + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{ domxref("KeyboardEvent") }} diff --git a/files/ja/web/api/keyboardevent/repeat/index.md b/files/ja/web/api/keyboardevent/repeat/index.md new file mode 100644 index 00000000000000..468436f740a4e3 --- /dev/null +++ b/files/ja/web/api/keyboardevent/repeat/index.md @@ -0,0 +1,29 @@ +--- +title: KeyboardEvent.repeat +slug: Web/API/KeyboardEvent/repeat +page-type: web-api-instance-property +tags: + - API + - DOM + - KeyboardEvent + - Property + - Read-only + - Reference +browser-compat: api.KeyboardEvent.repeat +translation_of: Web/API/KeyboardEvent/repeat +--- +{{APIRef("UI Events")}} + +**`repeat`** は {{domxref("KeyboardEvent")}} インターフェイスの読み取り専用プロパティで、 このキーが押しっぱなしになって自動反復している場合、 `true` の論理値を返します。 + +## 値 + +論理値です。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/keyboardevent/shiftkey/index.md b/files/ja/web/api/keyboardevent/shiftkey/index.md new file mode 100644 index 00000000000000..9baeaaaa57dc4c --- /dev/null +++ b/files/ja/web/api/keyboardevent/shiftkey/index.md @@ -0,0 +1,61 @@ +--- +title: KeyboardEvent.shiftKey +slug: Web/API/KeyboardEvent/shiftKey +page-type: web-api-instance-property +tags: + - API + - DOM + - KeyboardEvent + - Property + - Read-only + - Reference +browser-compat: api.KeyboardEvent.shiftKey +translation_of: Web/API/KeyboardEvent/shiftKey +--- +{{APIRef("UI Events")}} + +**`KeyboardEvent.shiftKey`** は読み取り専用プロパティで、このイベントが発生したときに shift キーが押されていたか (`true`) いなかったか (`false`) を示す論理値を返します。 + +## 値 + +論理値です。 + +## 例 + +```js + + +シフトキーの例 + + + + + +

    SHIFT キーを押しながら、または押さずに、任意の文字キーを押してください。
    +SHIFT キーと ALT キーを併用することもできます。

    + + +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{ domxref("KeyboardEvent") }} diff --git a/files/ja/web/api/mediastreamtrack/enabled/index.html b/files/ja/web/api/mediastreamtrack/enabled/index.html deleted file mode 100644 index e0c0e721e6cffd..00000000000000 --- a/files/ja/web/api/mediastreamtrack/enabled/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: MediaStreamTrack.enabled -slug: Web/API/MediaStreamTrack/enabled -translation_of: Web/API/MediaStreamTrack/enabled ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.enabled プロパティは {{domxref("Boolean")}}型の値を返します。このトラックが有効な場合はtrueを返し、メディアソースストリームによって処理されることが許可されます。このトラックが無効な場合は falseを返し、 メディアソースストリームによって処理されることはありません。トラックが切り離されている場合は、この値の変更は何の影響もありません。

    - -

    文法

    - -
    var bool = track.enabled;
    -track.enabled = [true | false];
    - -

    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#dom-mediastreamtrack-enabled', 'enabled') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.enabled")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/enabled/index.md b/files/ja/web/api/mediastreamtrack/enabled/index.md new file mode 100644 index 00000000000000..7aacddf9c35ac2 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/enabled/index.md @@ -0,0 +1,72 @@ +--- +title: MediaStreamTrack.enabled +slug: Web/API/MediaStreamTrack/enabled +page-type: web-api-instance-property +tags: + - Media + - Media Capture and Streams + - MediaStreamTrack + - Muting a Media Track + - Muting a Track + - Property + - Reference + - WebRTC + - enabled +browser-compat: api.MediaStreamTrack.enabled +translation_of: Web/API/MediaStreamTrack/enabled +--- +{{APIRef("Media Capture and Streams")}} + +**`enabled`** は {{domxref("MediaStreamTrack")}} インターフェイスのプロパティで、このトラックがソースストリームから出力が許可されている場合は `true`、そうでない場合は `false` となる論理値です。これは意図的にトラックをミュートするために使用することができます。 + +有効な場合、トラックのデータはソースから出力先に出力され、そうでない場合は空のフレームが出力されます。 + +音声の場合、無効なトラックは無音の(つまり、すべてのサンプルの値が 0 であるフレーム)を生成します。動画トラックでは、すべてのフレームが黒いピクセルで完全に埋められます。 + +一方 {{domxref("MediaStreamTrack.muted", "muted")}} プロパティは、トラックが一時的にデータを出力できない状態(転送中にフレームが失われた場合など)を示しています。 + +> **Note:** トラックが接続されていない場合でも、このプロパティの値は変更可能ですが、効果はありません。 + +## 値 + +`true` の場合、 `enabled` はそのトラックが実際のメディアを出力にレンダリングすることが許可されていることを示します。 `enabled` が `false` に設定されている場合、トラックは空のフレームのみを生成します。 + +空のオーディオフレームは、すべてのサンプルの値が 0 に設定されます。空のビデオフレームは、すべてのピクセルが黒に設定されます。 + +> **Note:** ミュート/ミュート解除機能を実装する場合は、 `enabled` プロパティを使用してください。 + +## 使用上のメモ + +この {{domxref("MediaStreamTrack")}} がカメラからの動画入力を表している場合、 `enabled` を `false` に設定してトラックを無効にすると、カメラが現在録画やストリーミングをしていないことを示すデバイスアクティビティインジケーターも更新されます。例えば、 iMac や MacBook コンピューターでは、この方法でトラックをミュートしている間、カメラの横にある緑の「使用中」ランプが消灯します。 + +## 例 + +この例では、一時停止ボタンの {{domxref("Element/click_event", "click")}} イベントハンドラーの使用例を示しています。 + +```js +pauseButton.onclick = function(evt) { + const newState = !myAudioTrack.enabled; + + pauseButton.innerHTML = newState ? "▶️" : "⏸️"; + myAudioTrack.enabled = newState; +} +``` + +これは、現在の `enabled` の値と逆の値である `newState` という変数を作成し、それを使用して、一時停止ボタンの要素の新しい {{domxref("Element.innerHTML", "innerHTML")}} として "play" アイコンまたは "pause" アイコン用の絵文字を選択するものです。 + +最後に、新しい値を `enabled` に保存し、変更が有効になります。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [MediaStream API](/ja/docs/Web/API/Media_Streams_API) +- {{domxref("MediaStream")}} +- {{domxref("MediaStreamTrack")}} +- [WebRTC](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/mediastreamtrack/ended_event/index.html b/files/ja/web/api/mediastreamtrack/ended_event/index.html deleted file mode 100644 index b5a1bb7a2a5cec..00000000000000 --- a/files/ja/web/api/mediastreamtrack/ended_event/index.html +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: MediaStreamTrack.onended -slug: Web/API/MediaStreamTrack/ended_event -translation_of: Web/API/MediaStreamTrack/onended -original_slug: Web/API/MediaStreamTrack/onended ---- -

    {{ APIRef("Media Capture and Streams") }}

    - -

    MediaStreamTrack.onended イベントハンドラはendedイベントが発生した時に実行するEventHandlerの関数です。このイベントは、MediaStreamTrackオブジェクトのソースが、これ以上データを提供することがないか、ユーザーの操作によって許可が無効になったか、ソースデバイスが取り出されたか、リモートのピアがデータの送信を停止した時に発生します。

    - -

    文法

    - -
    MediaStreamTrack.onended = function;
    -
    - -

    - -

    {{event("ended")}}イベントが発生した時の実行する処理の関数を{{event("Event_handlers", "event handler")}}として設定します。このイベントハンドラーの関数は1つのパラメータ持ちます。このパラメータはイベントオブジェクトであり、単純な{{domxref("Event")}}のオブジェクトです。

    - -

    - -

    この例では、endedイベントのイベントハンドラを設定しています。このイベントハンドラでは、トラックがアクティブでない状態を示すために画面上のアイコンを変更します。

    - -
    track.onended = function(event) {
    -  let statusElem = document.getElementById("status-icon");
    -
    -  statusElem.src = "/images/stopped-icon.png";
    -}
    -
    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-onended', 'MediaStreamTrack.onended') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.onended")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/ended_event/index.md b/files/ja/web/api/mediastreamtrack/ended_event/index.md new file mode 100644 index 00000000000000..7075e49457bd03 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/ended_event/index.md @@ -0,0 +1,86 @@ +--- +title: 'MediaStreamTrack: ended イベント' +slug: Web/API/MediaStreamTrack/ended_event +page-type: web-api-event +tags: + - Audio + - Event + - HTML DOM + - HTMLMediaElement + - Media + - Media Streams API + - Reference + - Video + - Web Audio API + - ended +browser-compat: api.MediaStreamTrack.ended_event +translation_of: Web/API/MediaStreamTrack/ended_event +original_slug: Web/API/MediaStreamTrack/onended +--- +{{DefaultAPISidebar("Media Capture and Streams")}} + +**`ended`** は {{domxref("MediaStreamTrack")}} インターフェイスのイベントで、メディアの終端に到達したため、あるいはそれ以上のデータが利用できないために再生やストリーミングが停止したときに発行さ れます。 + +このイベントはキャンセル不可で、バブリングしません。 + +## 構文 + +このイベント名を {{domxref("EventTarget.addEventListener", "addEventListener()")}} のようなメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。 + +```js +addEventListener('ended', event => { }); + +onended = event => { }; +``` + +## イベント型 + +一般的な {{domxref("Event")}} です。 + +## 使用上のメモ + +`ended` イベントは、メディアストリームトラックのソースがストリームのデータ送信を恒久的に停止したときに発行されます。これが起こるには、以下のような様々な方法があります。 + +- 送信できるデータが残っていない。 +- ユーザーがデータ送信に必要な権限を剥奪した。 +- 送信元データを生成していたハードウェアが取り外されたか、排出された。 +- リモート通信相手がデータの送信を永久に停止した。メディアを + +## 例 + +この例では、 `ended` イベントのイベントハンドラーを設定しています。このイベントハンドラーでは、トラックがアクティブでない状態を示すために画面上のアイコンを変更します。 + +```js +track.addEventListener('ended', () => { + let statusElem = document.getElementById("status-icon"); + statusElem.src = "/images/stopped-icon.png"; +}) +``` + +`onended` プロパティを使用してイベントハンドラーを設定することもできます。 + +```js +track.onended = function() { + let statusElem = document.getElementById("status-icon"); + + statusElem.src = "/images/stopped-icon.png"; +} +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- HTMLMediaElement の {{domxref("HTMLMediaElement.playing_event", 'playing')}} イベント +- HTMLMediaElement の {{domxref("HTMLMediaElement.waiting_event", 'waiting')}} イベント +- HTMLMediaElement の {{domxref("HTMLMediaElement.seeking_event", 'seeking')}} イベント +- {{HTMLElement("audio")}} +- {{HTMLElement("video")}} +- HTMLMediaElement の {{domxref("HTMLMediaElement.ended_event", 'ended')}} イベント +- AudioScheduledSourceNode の {{domxref("AudioScheduledSourceNode.ended_event", 'ended')}} イベント diff --git a/files/ja/web/api/mediastreamtrack/id/index.html b/files/ja/web/api/mediastreamtrack/id/index.html deleted file mode 100644 index 611849c20857d2..00000000000000 --- a/files/ja/web/api/mediastreamtrack/id/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: MediaStreamTrack.id -slug: Web/API/MediaStreamTrack/id -translation_of: Web/API/MediaStreamTrack/id ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.id は読み取り専用のプロパティであり、このトラックのための固有識別子(GUID)を含む{{domxref("DOMString")}}を返します。この値はブラウザによって生成されるものです。

    - -

    文法

    - -
     var id = track.id;
    - -

    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-id', 'MediaStreamTrack.id') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - - - -

    {{Compat("api.MediaStreamTrack.id")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/id/index.md b/files/ja/web/api/mediastreamtrack/id/index.md new file mode 100644 index 00000000000000..00c48c7e93ea95 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/id/index.md @@ -0,0 +1,35 @@ +--- +title: MediaStreamTrack.id +slug: Web/API/MediaStreamTrack/id +page-type: web-api-instance-property +tags: + - Media Capture and Streams + - MediaStreamTrack + - Property + - Read-only + - Reference + - WebRTC +browser-compat: api.MediaStreamTrack.id +translation_of: Web/API/MediaStreamTrack/id +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack.id`** は読み取り専用のプロパティであり、このトラックのための固有識別子 (GUID)を含む文字列を返します。この値は{{glossary("user agent", "ユーザーエージェント")}}によって生成されます。 + +## 構文 + +```js +const id = track.id +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebRTC](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/mediastreamtrack/index.html b/files/ja/web/api/mediastreamtrack/index.html deleted file mode 100644 index 4f7cac8258c6a4..00000000000000 --- a/files/ja/web/api/mediastreamtrack/index.html +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: MediaStreamTrack -slug: Web/API/MediaStreamTrack -tags: - - API - - Audio - - Interface - - Media - - Media Capture and Streams API - - Media Streams API - - MediaStreamTrack - - Reference - - Video - - WebRTC - - インターフェイス -translation_of: Web/API/MediaStreamTrack ---- -
    {{APIRef("Media Capture and Streams")}}
    - -

    MediaStreamTrack インターフェイスは、ストリームに含まれる一つのメディアトラックを表現します。一般的に、オーディオやビデオのトラックですが、他の種類のトラックも存在することができます。

    - -

    プロパティ

    - -

    以下に示すプロパティに加えて、 MediaStreamTrack は制約可能なプロパティを持っています。これらのプロパティは、 {{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}} によって設定でき、 {{domxref("MediaStreamTrack.getConstraints", "getConstraints()")}} と {{domxref("MediaStreamTrack.getSettings", "getSettings()")}} によって取得できます。制約可能なプロパティを用いて適切に動作させるためにはどのようにすればいいかを知りたい場合は、 Capabilities, constraints, and settings を見てください。適切に動作させなかった場合の結果として、あなたが作成したコードは信頼できないものになります。

    - -
    -
    {{domxref("MediaStreamTrack.contentHint")}}
    -
    文字列で、 API 利用者がどのように扱うかをガイドするために、トラックが含んでいるものコンテンツの種類が何であるかのヒントを提供するためにウェブアプリケーションが使用します。
    -
    {{domxref("MediaStreamTrack.enabled")}}
    -
    論理型で、トラックが有効の場合は true の値になり、メディアソースストリームを描画することができます。トラックが無効の場合は false の値になり、メディアソースストリームに描画されません。トラックの接続が解除された場合、この値は変更することはできますが影響を与えることはありません。 -
    メモ: 標準的なミュート (消音) 機能を実装するには enabledfalse にします。 muted プロパティは技術的な問題でメディアがない状態を表します。
    -
    -
    {{domxref("MediaStreamTrack.id")}} {{readonlyInline}}
    -
    トラックの固有識別子 (GUID) を含む {{domxref("DOMString")}} を返します。この識別子はブラウザーによって生成されます。
    -
    {{domxref("MediaStreamTrack.isolated")}} {{readonlyInline}}
    -
    Returns a Boolean value which is true if the track is isolated; that is, the track cannot be accessed by the document that owns the MediaStreamTrack. This happens when the {{domxref("MediaStreamTrack.peerIdentity", "peerIdentity")}} property is set, or if the track comes from a cross-origin source.
    -
    {{domxref("MediaStreamTrack.kind")}} {{readonlyInline}}
    -
    {{domxref("DOMString")}}を返します。このトラックがオーディオトラックの場合は"audio"が設定され、ビデオトラックの場合は"video"が設定されます。ソースからの関連付けが解除された場合、この値が変更されることはありません。
    -
    {{domxref("MediaStreamTrack.label")}} {{readonlyInline}}
    -
    "internal microphone"のようなトラックソースを識別するユーザエージェントによって割り当てられたラベルを含む{{domxref("DOMString")}}を返します。この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。
    -
    {{domxref("MediaStreamTrack.muted")}} {{readonlyInline}}
    -
    Booleanの値を返します。トラックがミュートであるかどうかを示します。 -
    Note: You can implement standard "mute" functionality by setting enabled to false, and unmute the media by setting it back to true again.
    -
    -
    {{domxref("MediaStreamTrack.readonly")}} {{readonlyInline}}
    -
    Booleanの値を返します。トラックが読み取り専用の場合(ビデオファイルソースやカメラなどの設定を変更することができないもののような)はtrueを返し、それ以外の場合はfalseを返します。
    -
    {{domxref("MediaStreamTrack.readyState")}} {{readonlyInline}}
    -
    トラックの状態を表す列挙型の値を返します。この値は次のどれかになります。 - -
    -
    {{domxref("MediaStreamTrack.remote")}} {{obsolete_inline("")}} {{readonlyInline}}
    -
    Booleanの値を返します。トラックのソースが{{domxref("RTCPeerConnection")}}の場合はtrueであり、それ以外はfalseです。
    -
    - -

    メソッド

    - -
    -
    {{domxref("MediaStreamTrack.applyConstraints()")}}
    -
    MediaStreamTrackの有効な制約可能な値についての許容できる値の範囲を指定します。
    -
    {{domxref("MediaStreamTrack.clone()")}}
    -
    MediaStreamTrackの複製を返します。
    -
    {{domxref("MediaStreamTrack.getCapabilities()")}}
    -
    MediaStreamTrackで有効な制約可能なプロパティの一覧を返します。
    -
    {{domxref("MediaStreamTrack.getConstraints()")}}
    -
    トラックに設定されている制約を含む{{domxref('MediaTrackConstraints')}}を返します。戻り値は、最後に{{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}}を用いて設定した制約に一致します。
    -
    {{domxref("MediaStreamTrack.getSettings()")}}
    -
    MediaStreamTrackの制約可能なプロパティの値を含む{{domxref("MediaTrackSettings")}}オブジェクトを返します。
    -
    {{domxref("MediaStreamTrack.stop()")}}
    -
    トラックに関連付けられたソースの再生を停止し、ソースとトラックの関連付けを解除します。トラックの状態はendedに設定されます。
    -
    - -

    イベント

    - -

    これらのイベントを待ち受けするには、 {{domxref("EventTarget.addEventListener", "addEventListener()")}} を使用するか、イベントリスナーをこのインターフェイスの onイベント名 プロパティに代入するかします。

    - -
    -
    {{domxref("MediaStreamTrack/ended_event", "ended")}}
    -
    Sent when playback of the track ends (when the value {{domxref("MediaStreamTrack.readyState", "readyState")}} changes to ended).
    - Also available using the {{domxref("MediaStreamTrack/onended", "onended")}} event handler property.
    -
    {{domxref("MediaStreamTrack/mute_event", "mute")}}
    -
    Sent to the MediaStreamTrack when the value of the {{domxref("MediaStreamTrack.muted", "muted")}} property is changed to true, indicating that the track is unable to provide data temporarily (such as when the network is experiencing a service malfunction).
    - Also available using the {{domxref("MediaStreamTrack/onmute", "onmute")}} event handler property.
    -
    {{domxref("MediaStreamTrack/isolationchange_event", "isolationchange")}}
    -
    Sent whenever the value of the {{domxref("MediaStreamTrack.isolated", "isolated")}} property changes due to the document gaining or losing permission to access the track.
    - Also available through the {{domxref("MediaStreamTrack/onisolationchange", "onisolationchange")}} event handler property.
    -
    {{domxref("MediaStreamTrack/overconstrained_event", "overconstrained")}} {{deprecated_inline}}
    -
    Sent when the constraints specified for the track cause the track to be incompatible and therefore to not be used.
    - Also available through the {{domxref("MediaStreamTrack/onoverconstrained", "onoverconstrained")}} event handler property.
    -
    {{domxref("MediaStreamTrack/unmute_event", "unmute")}}
    -
    Sent to the track when data becomes available again, ending the muted state.
    - Also available through the {{domxref("MediaStreamTrack/onunmute", "onunmute")}} event handler property.
    -
    - -

    仕様書

    - - - - - - - - - - - - - - - - - - - - - -
    仕様書状態備考
    {{SpecName("WebRTC Identity", "#isolated-track", "Isolated tracks")}}{{Spec2("WebRTC Identity")}}独立トラック対応のための追加プロパティ
    {{SpecName('Media Capture', '#mediastreamtrack', 'MediaStreamTrack')}}{{Spec2('Media Capture')}}初回定義
    - -

    ブラウザーの互換性

    - -

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

    - -

    関連情報

    - - diff --git a/files/ja/web/api/mediastreamtrack/index.md b/files/ja/web/api/mediastreamtrack/index.md new file mode 100644 index 00000000000000..30f0d33f0e49e8 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/index.md @@ -0,0 +1,98 @@ +--- +title: MediaStreamTrack +slug: Web/API/MediaStreamTrack +page-type: web-api-interface +tags: + - API + - Audio + - Interface + - Media + - Media Capture and Streams API + - Media Streams API + - MediaStreamTrack + - Reference + - Video + - WebRTC +browser-compat: api.MediaStreamTrack +translation_of: Web/API/MediaStreamTrack +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack`** インターフェイスは、ストリームに含まれる一つのメディアトラックを表現します。一般的に、音声や動画のトラックですが、他の種類のトラックも存在することがあります。 + +{{InheritanceDiagram}} + +## プロパティ + +以下に示すプロパティに加えて、 `MediaStreamTrack` は制約可能なプロパティを持っています。これらのプロパティは、 {{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}} によって設定でき、 {{domxref("MediaStreamTrack.getConstraints", "getConstraints()")}} と {{domxref("MediaStreamTrack.getSettings", "getSettings()")}} によって取得できます。制約可能なプロパティを用いて適切に動作させるためにはどのようにすればいいかを知りたい場合は、[能力と制約と設定](/ja/docs/Web/API/Media_Streams_API/Constraints)を見てください。適切に動作させなかった場合の結果として、あなたが作成したコードは信頼できないものになります。 + +- {{domxref("MediaStreamTrack.contentHint")}} + - : 文字列で、ウェブアプリケーションが、トラックがどのような種類のコンテンツを含んでいるかについてのヒントを提供し、 API 利用者がどのように扱うべきかをガイドするために使用することがあります。 +- {{domxref("MediaStreamTrack.enabled")}} + + - : 論理型で、トラックが有効の場合は `true` の値になり、メディアソースストリームを出力することができます。トラックが無効な場合は `false` の値になり、メディアソースストリームに出力されません。トラックの接続が解除された場合、この値は変更することはできますが、影響を与えることはありません。 + + > **Note:** 標準的な「ミュート」(消音)機能は `enabled` を `false` に設定することで実装できます。 `muted` プロパティは技術的な問題でメディアがない状態を表します。 + +- {{domxref("MediaStreamTrack.id")}} {{readonlyInline}} + - : トラックの固有識別子 (GUID) を含む文字列を返します。この識別子はブラウザーによって生成されます。 +- {{domxref("MediaStreamTrack.kind")}} {{readonlyInline}} + - : このトラックが音声トラックの場合は `"audio"` が設定され、動画トラックの場合は `"video"` が設定される文字列を返します。ソースからの関連付けが解除された場合、この値が変更されることはありません。 +- {{domxref("MediaStreamTrack.label")}} {{readonlyInline}} + - : ユーザーエージェントによって割り当てられた、 `"internal microphone"` のようなトラックソースを識別するラベルを含む文字列を返します。この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。 +- {{domxref("MediaStreamTrack.muted")}} {{readonlyInline}} + + - : 技術的な問題でこのトラックがメディアデータを提供できないかどうかを示す論理値を返します。 + + > **Note:** 標準的な「ミュート」(消音)機能は `enabled` を `false` に設定することで実装でき、再び `true` に設定することでメディアのミュートを解除することができます。 + +- {{domxref("MediaStreamTrack.readyState")}} {{readonlyInline}} + + - : トラックの状態を表す列挙型の値を返します。この値は次のいずれかになります。 + + - `"live"` は入力機器が接続されており、ベストエフォートでリアルタイムなデータを提供することを表します。この状態では、 {{domxref("MediaStreamTrack.enabled", "enabled")}} 属性を用いることで、データの出力のオンとオフを切り替えることができます。 + - `"ended"` は入力機器がこれ以上データを提供することがなく、新しいデータも一切提供されないことを示します。 + +- {{domxref("MediaStreamTrack.remote")}} {{readonlyInline}} {{deprecated_inline}} + - : トラックのソースが {{domxref("RTCPeerConnection")}} の場合は `true` であり、それ以外は `false` となる論理値を返します。 + +## メソッド + +- {{domxref("MediaStreamTrack.applyConstraints()")}} + - : `MediaStreamTrack` の制約可能なプロパティについて、理想的な値や許容される値の範囲を指定することができます。 +- {{domxref("MediaStreamTrack.clone()")}} + - : `MediaStreamTrack` の複製を返します。 +- {{domxref("MediaStreamTrack.getCapabilities()")}} + - : `MediaStreamTrack` で利用できる制約可能なプロパティの一覧を返します。 +- {{domxref("MediaStreamTrack.getConstraints()")}} + - : トラックに設定されている制約を含む {{domxref('MediaTrackConstraints')}} を返します。返値は、最後に {{domxref("MediaStreamTrack.applyConstraints", "applyConstraints()")}} を用いて設定した制約に一致します。 +- {{domxref("MediaStreamTrack.getSettings()")}} + - : `MediaStreamTrack` の制約可能なプロパティの値を含む {{domxref("MediaTrackSettings")}} オブジェクトを返します。 +- {{domxref("MediaStreamTrack.stop()")}} + - : トラックに関連付けられたソースの再生を停止し、ソースとトラックの関連付けを解除します。トラックの状態は `ended` に設定されます。 + +## イベント + +これらのイベントを待ち受けするには、 {{domxref("EventTarget.addEventListener", "addEventListener()")}} を使用するか、イベントリスナーをこのインターフェイスの `onイベント名` プロパティに代入するかしてください。。 + +- {{domxref("MediaStreamTrack/ended_event", "ended")}} + - : トラックの再生が終わったとき({{domxref("MediaStreamTrack.readyState", "readyState")}} の値が `ended` に変化したとき)に送られます +- {{domxref("MediaStreamTrack/mute_event", "mute")}} + - : そのトラックが一時的にデータを提供できなくなったこと(ネットワークに異常が発生した場合など)を示すために {{domxref("MediaStreamTrack.muted", "muted")}} プロパティの値が `true` になったときに `MediaStreamTrack` に送られます。 +- {{domxref("MediaStreamTrack/overconstrained_event", "overconstrained")}} {{deprecated_inline}} + - : トラックに指定された制約により、トラックに互換性がなくなり、その結果として使用できない場合に送信されます。 +- {{domxref("MediaStreamTrack/unmute_event", "unmute")}} + - : データが再び利用可能になり、 `muted` 状態が終わったときにトラックに送信されます。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [メディアキャプチャとストリーム API](/ja/docs/Web/API/Media_Streams_API) +- {{domxref("MediaStream")}} diff --git a/files/ja/web/api/mediastreamtrack/kind/index.html b/files/ja/web/api/mediastreamtrack/kind/index.html deleted file mode 100644 index 13ee87a7d70a1f..00000000000000 --- a/files/ja/web/api/mediastreamtrack/kind/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: MediaStreamTrack.kind -slug: Web/API/MediaStreamTrack/kind -translation_of: Web/API/MediaStreamTrack/kind ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.kindは読み取り専用のプロパティであり、トラックの種類を示す{{domxref("DOMString")}}を返します。トラックがオーディオトラックの場合は"audio"を返し、ビデオトラックの場合は"video"を返します。トラックがソースから切り離されている場合は、何も変更されません。

    - -

    文法

    - -
     var type = track.kind;
    - -

    - -

    以下に示す{{domxref("DOMString")}}型の値を取ります。

    - - - -

    - -
    
    -
    -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-kind', 'MediaStreamTrack.kind') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - - - -

    {{Compat("api.MediaStreamTrack.kind")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/kind/index.md b/files/ja/web/api/mediastreamtrack/kind/index.md new file mode 100644 index 00000000000000..d010ab54cd8af9 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/kind/index.md @@ -0,0 +1,37 @@ +--- +title: MediaStreamTrack.kind +slug: Web/API/MediaStreamTrack/kind +page-type: web-api-instance-property +tags: + - Media Capture and Streams + - MediaStreamTrack + - NeedsExample + - Property + - Read-only + - Reference + - WebRTC +browser-compat: api.MediaStreamTrack.kind +translation_of: Web/API/MediaStreamTrack/kind +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack.kind`** は読み取り専用のプロパティであり、トラックの種類を示す文字列を返します。トラックが音声トラックの場合は `"audio"` を返し、映像トラックの場合は `"video"` を返します。トラックがソースから切り離されている場合は、何も変更されません。 + +## 値 + +有効な値は、以下のいずれかの値を取る文字列です。 + +- `"audio"`: このトラックは音声トラックです。 +- `"video"`: このトラックは映像トラックです。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebRTC](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/mediastreamtrack/label/index.html b/files/ja/web/api/mediastreamtrack/label/index.html deleted file mode 100644 index 14bcb3b21187fb..00000000000000 --- a/files/ja/web/api/mediastreamtrack/label/index.html +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: MediaStreamTrack.label -slug: Web/API/MediaStreamTrack/label -translation_of: Web/API/MediaStreamTrack/label ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.label は読み取り専用のプロパティであり、 "internal microphone"のようなトラックソースを識別するユーザエージェントによって割り当てられたラベルを含むDOMStringを返します。この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。

    - -

    文法

    - -
     var name = track.label;
    - -

    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-label', 'MediaStreamTrack.label') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.label")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/label/index.md b/files/ja/web/api/mediastreamtrack/label/index.md new file mode 100644 index 00000000000000..a3c8b1c76f065a --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/label/index.md @@ -0,0 +1,38 @@ +--- +title: MediaStreamTrack.label +slug: Web/API/MediaStreamTrack/label +page-type: web-api-instance-property +tags: + - Media Capture and Streams + - MediaStreamTrack + - NeedsExample + - Property + - Read-only + - Reference + - WebRTC +browser-compat: api.MediaStreamTrack.label +translation_of: Web/API/MediaStreamTrack/label +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack.label`** は読み取り専用のプロパティであり、トラックのソースを識別するために{{glossary("user agent", "ユーザーエージェント")}}によって割り当てられたラベルを含む文字列を返します。例えば `"internal microphone"` などです。 + +この文字列は空になることもあり、ソースが接続されていないと空になります。トラックのソースとの関連付けが解除されても、このラベルは変更されません。 + +## 構文 + +```js +const label = track.label +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebRTC](/ja/docs/Web/API/WebRTC_API) diff --git a/files/ja/web/api/mediastreamtrack/mute_event/index.html b/files/ja/web/api/mediastreamtrack/mute_event/index.html deleted file mode 100644 index 6e93386edbcf92..00000000000000 --- a/files/ja/web/api/mediastreamtrack/mute_event/index.html +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: 'MediaStreamTrack: mute イベント' -slug: Web/API/MediaStreamTrack/mute_event -tags: - - API - - Audio - - Event - - Media - - Media Capture and Streams - - MediaStreamTrack - - Reference - - Video - - mute - - イベント -translation_of: Web/API/MediaStreamTrack/mute_event ---- -
    {{APIRef("Media Capture and Streams")}}
    - -

    mute イベントは、トラックのソースが一時的にメディアデータを提供することができなくなったときに {{domxref("MediaStreamTrack")}} へ送られます。トラックがメディア出力可能になると、 {{domxref("MediaStreamTrack/unmute_event", "unmute")}} が送られます。

    - -

    mute イベントと unmute イベントとの間、トラックの {{domxref("MediaStreamTrack.muted", "muted")}} プロパティの値は true になります。

    - -
    -

    メモ: 多くの人が「ミュート」と考える状態 (すなわち、トラックを無音にすることをユーザーが制御できる方法) は実際には {{domxref("MediaStreamTrack.enabled")}} プロパティを使用して管理され、こちらではイベントが発生しません。

    -
    - - - - - - - - - - - - - - - - - - - - -
    バブリングなし
    キャンセル不可
    インターフェイス{{domxref("Event")}}
    イベントハンドラープロパティ{{domxref("MediaStreamTrack.onmute", "onmute")}}
    - -

    - -

    この例では、イベントハンドラーを mute および {{domxref("MediaStreamTrack/unmute_event", "unmute")}} の各イベントに設定し、 {{domxref("MediaStreamTrack")}} が入った変数 musicTrack のソースからメディアが流れていない場合を検出しています。

    - -
    musicTrack.addEventListener("mute", event => {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
    -}, false);
    -
    -musicTrack.addEventListener("unmute", event => {
    - document.getElementById("timeline-widget").style.backgroundColor = "#fff";
    -}, false);
    -
    - -

    これらのイベントハンドラーのある場面で、トラック musicTrack が {{domxref("MediaStreamTrack.muted", "muted")}} の状態になったとき、 timeline-widget の ID を持った要素の背景色が #aaa に変化します。トラックのミュート状態を抜けたことを — unmute イベントが到着したことによって — 検出すると、背景色は白に戻ります。

    - -

    {{domxref("MediaStreamTrack.onmute", "onmute")}} イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 {{domxref("MediaStreamTrack.onunmute", "onunmute")}} イベントハンドラープロパティが unmute イベントを設定するために利用できます。以下の例ではこれを示しています。

    - -
    musicTrack.onmute = event => {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
    -}
    -
    -musicTrack.mute = event = > {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#fff";
    -}
    -
    - -

    仕様書

    - - - - - - - - - - - - - - - - -
    仕様書状態備考
    {{SpecName('Media Capture', '#event-mediastreamtrack-unmute', 'unmute')}}{{Spec2('Media Capture')}}初回定義
    - -

    ブラウザーの互換性

    - -

    {{Compat("api.MediaStreamTrack.mute_event")}}

    - -

    関連情報

    - - diff --git a/files/ja/web/api/mediastreamtrack/mute_event/index.md b/files/ja/web/api/mediastreamtrack/mute_event/index.md new file mode 100644 index 00000000000000..df7acb4d07d040 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/mute_event/index.md @@ -0,0 +1,109 @@ +--- +title: 'MediaStreamTrack: mute イベント' +slug: Web/API/MediaStreamTrack/mute_event +page-type: web-api-event +tags: + - API + - Audio + - Event + - Media + - Media Capture and Streams + - MediaStreamTrack + - Reference + - Video + - mute +browser-compat: api.MediaStreamTrack.mute_event +translation_of: Web/API/MediaStreamTrack/mute_event +--- +{{APIRef("Media Capture and Streams")}} + +**`mute`** イベントは、トラックのソースが一時的にメディアデータを提供することができなくなったときに {{domxref("MediaStreamTrack")}} へ送られます。 + +トラックがメディア出力可能になると、 {{domxref("MediaStreamTrack/unmute_event", "unmute")}} が送られます。 + +`mute` イベントと `unmute` イベントとの間で、トラックの {{domxref("MediaStreamTrack.muted", "muted")}} プロパティの値は `true` になります。 + +> **Note:** 多くの人が「ミュート」と考える状態(すなわち、トラックを無音にすることをユーザーが制御できる方法)は実際には {{domxref("MediaStreamTrack.enabled")}} プロパティを使用して管理され、こちらではイベントが発生しません。 + +このイベントはキャンセル不可で、バブリングしません。 + +## 構文 + +このイベント名を {{domxref("EventTarget.addEventListener", "addEventListener()")}} のようなメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。 + +```js +addEventListener('mute', event => { }); + +onmute = event => { }; +``` + +## イベント型 + +一般的な {{domxref("Event")}} です。 + +## 例 + +この例では、イベントハンドラーを `mute` および {{domxref("MediaStreamTrack/unmute_event", "unmute")}} の各イベントに設定し、 {{domxref("MediaStreamTrack")}} が入った変数 `musicTrack` のソースからメディアが流れていない場合を検出しています。 + +```js +musicTrack.addEventListener("mute", event => { + document.getElementById("timeline-widget").style.backgroundColor = "#aaa"; +}, false); + +musicTrack.addEventListener("unmute", event => { + document.getElementById("timeline-widget").style.backgroundColor = "#fff"; +}, false); +``` + +これらのイベントハンドラーのある場面で、トラック `musicTrack` が {{domxref("MediaStreamTrack.muted", "muted")}} の状態になったとき、 `timeline-widget` の ID を持った要素の背景色が `#aaa` に変化します。トラックのミュート状態を抜けたことを — `unmute` イベントが到着したことによって — 検出すると、背景色は白に戻ります。 + +`onmute` イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 {{domxref("MediaStreamTrack.unmute_event", "onunmute")}} イベントハンドラープロパティが `unmute` イベントを設定するために利用できます。以下の例ではこれを示しています。 + +```js +musicTrack.onmute = event => { + document.getElementById("timeline-widget").style.backgroundColor = "#aaa"; +} + +musicTrack.onunmute = event = > { + document.getElementById("timeline-widget").style.backgroundColor = "#fff"; +} +``` + +### レシーバーによるトラックのミュート + +次の例は、レシーバーを使用してトラックをミュートする方法です。 + +```js +// Peer 1 (Receiver) +audioTrack.addEventListener('mute', event => { + // Do something in UI +}); + +videoTrack.addEventListener('mute', event => { + // Do something in UI +}); + +// Peer 2 (Sender) +const transceivers = peer.getTransceivers(); + +const audioTrack = transceivers[0]; +audioTrack.direction = 'recvonly'; + +const videoTrack = transceivers[1]; +videoTrack.direction = 'recvonly'; +``` + +`transceivers` は {{domxref("RTCRtpTransceiver")}} の配列で、送受信される音声または映像トラックを見つけることができます。詳しくは {{domxref("RTCRtpTransceiver.direction", "direction")}} の記事を参照してください。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{domxref("MediaStreamTrack/unmute_event", "unmute")}} イベント +- {{domxref("RTCRtpTransceiver.direction", "direction")}} diff --git a/files/ja/web/api/mediastreamtrack/muted/index.html b/files/ja/web/api/mediastreamtrack/muted/index.html deleted file mode 100644 index 3343727d597cad..00000000000000 --- a/files/ja/web/api/mediastreamtrack/muted/index.html +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: muted -slug: Web/API/MediaStreamTrack/muted -translation_of: Web/API/MediaStreamTrack/muted ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.mutedは読み取り専用のプロパティであり、トラックがミュートであるかどうかを示すBooleanの値を返します。

    - -

    文法

    - -
    var bool = track.muted;
    - -

    - -

    {{jsxref('Boolean')}}型の値。

    - -

    - -
    // TBD
    - -

    仕様

    - - - - - - - - - - - - - - -
    仕様状況コメント
    {{SpecName('Media Capture', '#dom-mediastreamtrack-muted', 'muted')}}{{Spec2('Media Capture')}}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.muted")}}

    diff --git a/files/ja/web/api/mediastreamtrack/muted/index.md b/files/ja/web/api/mediastreamtrack/muted/index.md new file mode 100644 index 00000000000000..6c1d79c9ab8f3f --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/muted/index.md @@ -0,0 +1,49 @@ +--- +title: MediaStreamTrack.muted +slug: Web/API/MediaStreamTrack/muted +page-type: web-api-instance-property +tags: + - API + - Media Capture and Streams + - MediaStreamTrack + - Property + - Read-only + - Reference + - muted +browser-compat: api.MediaStreamTrack.muted +translation_of: Web/API/MediaStreamTrack/muted +--- +{{APIRef("Media Capture and Streams")}} + +**`muted`** は {{domxref("MediaStreamTrack")}} 読み取り専用のプロパティであり、トラックが現在メディア出力を提供できない状態であるかどうかを示します。 + +> **Note:** ユーザーがトラックをミュート/ミュート解除する方法を実装するには、{{domxref("MediaStreamTrack.enabled", "enabled")}} プロパティを使用してください。 `enabled` を `false` に設定してトラックを無効にすると、空のフレーム(すべてのサンプルが 0 である音声フレーム、またはすべてのピクセルが黒である映像フレーム)だけが生成されます。 + +## 値 + +論理値で、トラックが現在ミュートされている場合は `true` となり、ミュートされていない場合は `false` となります。 + +> **Note:** 可能であれば、`muted` をポーリングしてトラックのミュート状態を監視することは避けてください。 +> 代わりに、 {{domxref("MediaStreamTrack.mute_event", "mute")}} と {{domxref("MediaStreamTrack.unmute_event", "unmute")}} イベントに対するイベントリスナーを追加してください。 + +## 例 + +この例では、 {{domxref("MediaStreamTrack")}} オブジェクトの配列の中で、現在ミュートされているトラックの数を数えます。 + +```js +let mutedCount = 0; + +trackList.forEach((track) => { + if (track.muted) { + mutedCount += 1; + } +}); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/mediastreamtrack/overconstrained_event/index.html b/files/ja/web/api/mediastreamtrack/overconstrained_event/index.html deleted file mode 100644 index e141ad3ac900e8..00000000000000 --- a/files/ja/web/api/mediastreamtrack/overconstrained_event/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: MediaStreamTrack.onoverconstrained -slug: Web/API/MediaStreamTrack/overconstrained_event -translation_of: Web/API/MediaStreamTrack/onoverconstrained -original_slug: Web/API/MediaStreamTrack/onoverconstrained ---- -

    {{ APIRef("Media Capture and Streams") }}

    - -

    MediaStreamTrack.onoverconstrainedイベントハンドラは、{{event("overconstrained")}}イベントを受け取った時に呼び出されるプロパティです。このイベントは、影響を受けた各トラック(複数のトラックが同一のソースを共有している時)で発生します。このイベントは、ユーザエージェントが与えられたソースに対して現在の制約を評価し、与えられた制約でソースを設定することができない時に発生します。 過制約のため、ユーザエージェントは影響をうけた各トラックをミュートにします。影響を受けたトラックは、現在のソースの有効な能力に配慮してアプリケーションが制約を調整するまでmutedの状態を維持します。

    - -

     

    - -

    文法

    - -
    track.onoverconstrained = function;
    -
    - -

    - - - -

    - -
    dc.onoverconstrained = function(ev) { alert("overconstrained event detected!"); };
    -
    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-onoverconstrained', 'MediaStreamTrack.onoverconstrained') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.onoverconstrained")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/overconstrained_event/index.md b/files/ja/web/api/mediastreamtrack/overconstrained_event/index.md new file mode 100644 index 00000000000000..8dae9ed5355566 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/overconstrained_event/index.md @@ -0,0 +1,42 @@ +--- +title: 'MediaStreamTrack: overconstrained イベント' +slug: Web/API/MediaStreamTrack/overconstrained_event +page-type: web-api-event +tags: + - API + - Deprecated + - Event Handler + - Event + - Reference + - WebRTC +browser-compat: api.MediaStreamTrack.overconstrained_event +translation_of: Web/API/MediaStreamTrack/overconstrained_event +original_slug: Web/API/MediaStreamTrack/onoverconstrained +--- +{{ APIRef("Media Capture and Streams") }}{{deprecated_header}} + +**`overconstrained`** イベントは、トラックに制約の競合が多く発生しすぎたときに発行されます。 + +## 構文 + +このイベント名を {{domxref("EventTarget.addEventListener", "addEventListener()")}} のようなメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。 + +```js +addEventListener('overconstrained', event => { }); + +onoverconstrained = event => { }; +``` + +## イベント型 + +一般的な {{domxref("Event")}} です。 + +## 例 + +```js +dc.onoverconstrained = function() { alert("overconstrained event detected!"); }; +``` + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/mediastreamtrack/readystate/index.html b/files/ja/web/api/mediastreamtrack/readystate/index.html deleted file mode 100644 index 10c94f8cf4e71d..00000000000000 --- a/files/ja/web/api/mediastreamtrack/readystate/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: MediaStreamTrack.readyState -slug: Web/API/MediaStreamTrack/readyState -translation_of: Web/API/MediaStreamTrack/readyState ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    MediaStreamTrack.readyStateは読み取り専用のプロパティであり、トラックの状態を表す値を返します。

    - -

    文法

    - -
     var state = track.readyState;
    - -

    - -

    以下の値のどれかを取ります。

    - - - -

    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-readystate', 'MediaStreamTrack.readyState') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.readyState")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/readystate/index.md b/files/ja/web/api/mediastreamtrack/readystate/index.md new file mode 100644 index 00000000000000..5a9eee2ad62a2a --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/readystate/index.md @@ -0,0 +1,39 @@ +--- +title: MediaStreamTrack.readyState +slug: Web/API/MediaStreamTrack/readyState +page-type: web-api-instance-property +tags: + - API + - Media Capture and Streams + - MediaStreamTrack + - NeedsExample + - Property + - Read-only + - Reference +browser-compat: api.MediaStreamTrack.readyState +translation_of: Web/API/MediaStreamTrack/readyState +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack.readyState`** は読み取り専用のプロパティであり、トラックの状態を表す列挙値を返します。 + +## 値 + +以下の値の何れかを取ります。 + +- `"live"` は、入力が接続され、リアルタイムなデータがベストエフォートで提供されている状態を示します。この状態では、データの出力は、 {{domxref("MediaStreamTrack.enabled")}} プロパティを用いて、オン/オフを切り替えることができます。 +- `"ended"` は、入力がこれ以上データを提供せず、新しいデータも提供しないことを示します。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [Media Stream API](/ja/docs/Web/API/Media_Streams_API) +- [WebRTC](/ja/docs/Web/API/WebRTC_API) +- {{domxref("MediaStreamTrack.ended_event", "ended")}} イベント diff --git a/files/ja/web/api/mediastreamtrack/remote/index.md b/files/ja/web/api/mediastreamtrack/remote/index.md index dc8f04a5adeb60..e98678d05cc396 100644 --- a/files/ja/web/api/mediastreamtrack/remote/index.md +++ b/files/ja/web/api/mediastreamtrack/remote/index.md @@ -3,24 +3,22 @@ title: MediaStreamTrack.remote slug: Web/API/MediaStreamTrack/remote page-type: web-api-instance-property tags: - - 非推奨 + - Deprecated - MediaStreamTrack - - プロパティ - - 読み取り専用 - - リファレンス + - Property + - Read-only + - Reference - WebRTC browser-compat: api.MediaStreamTrack.remote translation_of: Web/API/MediaStreamTrack/remote --- {{APIRef("Media Capture and Streams")}}{{deprecated_header}} -**`MediaStreamTrack.remote`** は読み取り専用のプロパティで、 JavaScript 上で、 WebRTC の MediaStreamTrack がリモートソースであるかローカルソースであるかを知ることができます。返値は論理値で、 `true` であればソースがリモートであること(すなわち {{domxref("RTCPeerConnection")}} を起源としていること)を、 `false` はソースがローカルであることを表します。 +**`MediaStreamTrack.remote`** は読み取り専用のプロパティであり、 JavaScript 上で、 WebRTC の MediaStreamTrack がリモートソースであるかローカルソースであるかを知ることができます。返値は論理値で、 `true` であればソースがリモートであること(すなわち {{domxref("RTCPeerConnection")}} を起源としていること)を、 `false` はソースがローカルであることを表します。 -## 構文 +## 値 -```js -var bool = track.remote; -``` +論理値です。 ## ブラウザーの互換性 diff --git a/files/ja/web/api/mediastreamtrack/stop/index.html b/files/ja/web/api/mediastreamtrack/stop/index.html deleted file mode 100644 index 9f09313d32a27d..00000000000000 --- a/files/ja/web/api/mediastreamtrack/stop/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: MediaStreamTrack.stop() -slug: Web/API/MediaStreamTrack/stop -translation_of: Web/API/MediaStreamTrack/stop ---- -

    {{APIRef("Media Capture and Streams")}}

    - -

    {{domxref("MediaStreamTrack")}}のstop()はトラックを停止します。

    - -

    文法

    - -
    MediaStreamTrack.stop();
    -
    - -

    stop() の呼び出しは、 {{glossary("user agent")}}へ、トラックのソース(ファイル、ネットワークストリーム、ローカルカメラやマイク)がこれ以上MediaStreamTrackで必要とされないことを伝えます。複数のトラックが同じソースを使用すること(例えば、2つのタブがデバイスのマイクを使っている場合など)もあるため、ソースが必ずしも直ぐに停止させられる必要はありません。その代わり、トラックからの関連付けが解除され、そのトラックオブジェクトが停止されます。ソースからメディアトラックが使用されなくなると、ソースは実際に完全に停止させられるでしょう。

    - -

    stop()を呼び出した直後に、{{domxref("MediaStreamTrack.readyState", "track")}}の状態はendedになります。

    - -

    - -

    In this example, we see a function which stops a streamed video by calling stop() on every track on a given {{HTMLElement("video")}}.

    - -

    この例では、与えられた{{HTMLElement("video")}}の各トラックのstop()を呼び出すことで、ストリーミングされているビデオを停止する関数を定義しています。

    - -
    function stopStreamedVideo(videoElem) {
    -  let stream = videoElem.srcObject;
    -  let tracks = stream.getTracks();
    -
    -  tracks.forEach(function(track) {
    -    track.stop();
    -  });
    -
    -  videoElem.srcObject = null;
    -}
    - -

    {{domxref("HTMLMediaElement.srcObject", "srcObject")}}プロパティからビデオ要素のストリームを取得することで機能しています。次に、{{domxref("MediaStream.getTracks", "getTracks()")}}メソッドを呼び出すことで、ストリームのトラックリストを取得しています。ここから、{{jsxref("Array.forEach", "forEach()")}}を使ってトラックリストから各トラックを繰り返し呼び出し、それぞれのトラックでstop()メソッドを呼び出しています。

    - -

    最後に、{{domxref("MediaStream")}}オブジェクトへの参照を解くためにsrcObjectnullを設定することで、このオブジェクトは解放できるようになります。

    - -

    仕様

    - - - - - - - - - - - - - - - - -
    仕様状況コメント
    {{ SpecName('Media Capture', '#widl-MediaStreamTrack-stop', 'MediaStreamTrack.stop()') }}{{ Spec2('Media Capture') }}初版
    - -

    ブラウザ互換性

    - -

    {{Compat("api.MediaStreamTrack.stop")}}

    - -

    関連項目

    - - diff --git a/files/ja/web/api/mediastreamtrack/stop/index.md b/files/ja/web/api/mediastreamtrack/stop/index.md new file mode 100644 index 00000000000000..638615c544737e --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/stop/index.md @@ -0,0 +1,78 @@ +--- +title: MediaStreamTrack.stop() +slug: Web/API/MediaStreamTrack/stop +page-type: web-api-instance-method +tags: + - API + - Media + - Media Capture and Streams API + - Media Streams API + - MediaStreamTrack + - Method + - Reference + - Streams + - WebRTC + - stop +browser-compat: api.MediaStreamTrack.stop +translation_of: Web/API/MediaStreamTrack/stop +--- +{{APIRef("Media Capture and Streams")}} + +**`MediaStreamTrack.stop()`** メソッドは、トラックを停止します。 + +## 構文 + +```js +stop() +``` + +### 引数 + +なし。 + +### 返値 + +なし ({{jsxref("undefined")}})。 + +## 解説 + +`stop()` の呼び出しは、{{glossary("user agent", "ユーザーエージェント")}}へ、トラックのソース(ファイル、ネットワークストリーム、ローカルカメラやマイク)がこれ以上この {{domxref("MediaStreamTrack")}} で必要とされないことを伝えます。複数のトラックが同じソースを使用すること(例えば、 2 つのタブが端末のマイクを使っている場合など)もあるため、ソースが必ずしも直ぐに停止させられる必要はありません。その代わり、トラックからの関連付けが解除され、そのトラックオブジェクトが停止されます。ソースからメディアトラックが使用されなくなると、ソースは実際に完全に停止させられるでしょう。 + +`stop()` を呼び出した直後に、 {{domxref("MediaStreamTrack.readyState", "readyState")}} の状態は `ended` になります。なお、この場合は [`ended`](/ja/docs/Web/API/MediaStreamTrack/ended_event) イベントは発生しません。 + +## 例 + +### 映像ストリームの停止 + +この例では、この {{HTMLElement("video")}} の各トラックで `stop()` を呼び出すことで、ストリーミングされている映像を停止する関数を定義しています。 + +```js +function stopStreamedVideo(videoElem) { + const stream = videoElem.srcObject; + const tracks = stream.getTracks(); + + tracks.forEach(function(track) { + track.stop(); + }); + + videoElem.srcObject = null; +} +``` + +{{domxref("HTMLMediaElement.srcObject", "srcObject")}} プロパティから video 要素のストリームを取得することで機能しています。次に、 {{domxref("MediaStream.getTracks", "getTracks()")}} メソッドを呼び出すことで、ストリームのトラックリストを取得しています。ここから、 {{jsxref("Array.forEach", "forEach()")}} を使ってトラックリストから各トラックを繰り返し呼び出し、それぞれのトラックで `stop()` メソッドを呼び出しています。 + +最後に、 `srcObject` に `null` を設定することで、この {{domxref("MediaStream")}} オブジェクトへの参照を解き、解放できるようにします。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- このメソッドが属する {{domxref("MediaStreamTrack")}} インターフェイス +- {{domxref("MediaStreamTrack.readyState")}} +- {{domxref("MediaStreamTrack/ended_event", "ended")}} diff --git a/files/ja/web/api/mediastreamtrack/unmute_event/index.html b/files/ja/web/api/mediastreamtrack/unmute_event/index.html deleted file mode 100644 index d720f299e49ce4..00000000000000 --- a/files/ja/web/api/mediastreamtrack/unmute_event/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: 'MediaStreamTrack: unmute イベント' -slug: Web/API/MediaStreamTrack/unmute_event -tags: - - Audio - - Event - - Media - - Media Capture and Streams - - Media Streams - - MediaStreamTrack - - Reference - - Video - - unmute - - イベント -translation_of: Web/API/MediaStreamTrack/unmute_event ---- -
    {{APIRef("Media Capture and Streams")}}
    - -

    unmute イベントは、トラックのソースが休止時間の後、再びメディアデータを提供するようになると一度発生します。これは {{domxref("MediaStreamTrack/mute_event", "mute")}} で始まった {{domxref("MediaStreamTrack.muted", "muted")}} の状態を終了します。

    - - - - - - - - - - - - - - - - - - - - -
    バブリングなし
    キャンセル不可
    インターフェイス{{domxref("Event")}}
    イベントハンドラープロパティ{{domxref("MediaStreamTrack.onunmute", "onunmute")}}
    - -
    -

    メモ: 多くの人が「ミュート」と考える状態 (すなわち、トラックを無音にすることをユーザーが制御できる方法) は実際には {{domxref("MediaStreamTrack.enabled")}} プロパティを使用して管理され、こちらではイベントが発生しません。

    -
    - -

    - -

    この例では、イベントハンドラーを {{domxref("MediaStreamTrack/mute_event", "mute")}} および unmute の各イベントに設定し、 {{domxref("MediaStreamTrack")}} が入った変数 musicTrack のソースからメディアが流れていない場合を検出しています。

    - -
    musicTrack.addEventListener("mute", event => {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
    -}, false);
    -
    -musicTrack.addEventListener("unmute", event => {
    - document.getElementById("timeline-widget").style.backgroundColor = "#fff";
    -}, false);
    -
    - -

    これらのイベントハンドラーのある場面で、トラック musicTrack が {{domxref("MediaStreamTrack.muted", "muted")}} の状態になったとき、 timeline-widget の ID を持った要素の背景色が #aaa に変化します。トラックのミュート状態を抜けたことを — unmuted イベントが到着したことによって — 検出すると、背景色は白に戻ります。

    - -

    {{domxref("MediaStreamTrack.onunmute", "onunmute")}} イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 {{domxref("MediaStreamTrack.onmute", "onmute")}} イベントハンドラープロパティが mute イベントを設定するために利用できます。以下の例ではこれを示しています。

    - -
    musicTrack.onmute = event => {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#aaa";
    -}
    -
    -musicTrack.mute = event = > {
    -  document.getElementById("timeline-widget").style.backgroundColor = "#fff";
    -}
    -
    - -

    仕様書

    - - - - - - - - - - - - - - - - -
    仕様書状態備考
    {{SpecName('Media Capture', '#event-mediastreamtrack-unmute', 'unmute')}}{{Spec2('Media Capture')}}初回定義
    - -

    ブラウザーの互換性

    - -

    {{Compat("api.MediaStreamTrack.unmute_event")}}

    - -

    関連情報

    - - diff --git a/files/ja/web/api/mediastreamtrack/unmute_event/index.md b/files/ja/web/api/mediastreamtrack/unmute_event/index.md new file mode 100644 index 00000000000000..7bfdd45ead8e13 --- /dev/null +++ b/files/ja/web/api/mediastreamtrack/unmute_event/index.md @@ -0,0 +1,106 @@ +--- +title: 'MediaStreamTrack: unmute イベント' +slug: Web/API/MediaStreamTrack/unmute_event +page-type: web-api-event +tags: + - Audio + - Event + - Media + - Media Capture and Streams + - Media Streams + - MediaStreamTrack + - Reference + - Video + - unmute +browser-compat: api.MediaStreamTrack.unmute_event +translation_of: Web/API/MediaStreamTrack/unmute_event +--- +{{APIRef("Media Capture and Streams")}} + +**`unmute`** イベントは、トラックのソースが休止時間の後、再びメディアデータを提供するようになると {{domxref("MediaStreamTrack")}} に送られます。 + +これは {{domxref("MediaStreamTrack/mute_event", "mute")}} で始まった {{domxref("MediaStreamTrack.muted", "muted")}} の状態を終了します。 + +> **Note:** 多くの人が「ミュート」と考える状態(すなわち、トラックを無音にすることをユーザーが制御できる方法)は実際には {{domxref("MediaStreamTrack.enabled")}} プロパティを使用して管理され、こちらではイベントが発生しません。 + +このイベントはキャンセル不可で、バブリングしません。 + +## 構文 + +このイベント名を {{domxref("EventTarget.addEventListener", "addEventListener()")}} のようなメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。 + +```js +addEventListener('unmute', event => { }); + +onunmute = event => { }; +``` + +## イベント型 + +一般的な {{domxref("Event")}} です。 + +## 例 + +この例では、イベントハンドラーを {{domxref("MediaStreamTrack/mute_event", "mute")}} および `unmute` の各イベントに設定し、 {{domxref("MediaStreamTrack")}} が入った変数 `musicTrack` のソースからメディアが流れていない場合を検出しています。 + +```js +musicTrack.addEventListener("mute", event => { + document.getElementById("timeline-widget").style.backgroundColor = "#aaa"; +}, false); + +musicTrack.addEventListener("unmute", event => { + document.getElementById("timeline-widget").style.backgroundColor = "#fff"; +}, false); +``` + +これらのイベントハンドラーのある場面で、トラック `musicTrack` が {{domxref("MediaStreamTrack.muted", "muted")}} の状態になったとき、 `timeline-widget` の ID を持った要素の背景色が `#aaa` に変化します。トラックのミュート状態を抜けたことを — `unmuted` イベントが到着したことによって — 検出すると、背景色は白に戻ります。 + +`onunmute` イベントハンドラープロパティを使用してこのイベントのハンドラーを設定することもできます。同様に、 {{domxref("MediaStreamTrack.mute_event", "onmute")}} イベントハンドラープロパティを `mute` イベントを設定するために利用できます。以下の例ではこれを示しています。 + +```js +musicTrack.onmute = event => { + document.getElementById("timeline-widget").style.backgroundColor = "#aaa"; +} + +musicTrack.mute = event = > { + document.getElementById("timeline-widget").style.backgroundColor = "#fff"; +} +``` + +### レシーバーでトラックのミュートを解除する + +次の例は、レシーバーを使用してトラックのミュートを解除する方法です。 + +```js +// Peer 1 (Receiver) +audioTrack.addEventListener('unmute', event => { + // Do something in UI +}); + +videoTrack.addEventListener('unmute', event => { + // Do something in UI +}); + +// Peer 2 (Sender) +const transceivers = peer.getTransceivers(); + +const audioTrack = transceivers[0]; +audioTrack.direction = 'sendrecv'; + +const videoTrack = transceivers[1]; +videoTrack.direction = 'sendrecv'; +``` + +`transceivers` は {{domxref("RTCRtpTransceiver")}} の配列で、送受信される音声または映像トラックを見つけることができます。詳しくは {{domxref("RTCRtpTransceiver.direction", "direction")}} の記事を参照してください。 + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{domxref("MediaStreamTrack/mute_event", "mute")}} イベント diff --git a/files/ja/web/css/using_css_custom_properties/index.html b/files/ja/web/css/using_css_custom_properties/index.html index 6571a2ed14c255..c6f87b0dcaf31e 100644 --- a/files/ja/web/css/using_css_custom_properties/index.html +++ b/files/ja/web/css/using_css_custom_properties/index.html @@ -14,7 +14,7 @@ ---
    {{cssref}}
    -

    カスタムプロパティ (CSS 変数カスケード変数と呼ばれることもあります) は、 CSS の作者によって作成され、文書全体で再利用可能な特定の値を含むエンティティです。それらは、カスタムプロパティ記法 (たとえば、--main-color: black;) によって設定し、 var() 関数 (たとえば、 color: var(--main-color);) を使ってアクセスします。

    +

    カスタムプロパティ (CSS 変数カスケード変数と呼ばれることもあります) は、 CSS の作者によって作成され、文書全体で再利用可能な特定の値を含むエンティティです。それらは、カスタムプロパティ記法 (たとえば、--main-color: black;) によって設定し、 var() 関数 (たとえば、 color: var(--main-color);) を使ってアクセスします。

    複雑なウェブサイトには、膨大な量の CSS があり、しばしば同じ値が使われています。たとえば、同じ色が異なる場所で数百使われており、色を変更する場合、グローバルに検索し、置き換えをしなくてはなりません。カスタムプロパティを使えば、一ヶ所に値を保存しておき、複数の場所から参照することができます。更なるメリットとして、意味的な識別をしやすくなります。たとえば、 --main-text-color#00ff00 より、とりわけ同じ色がさまざまな文脈で使われる場合は理解しやすいでしょう。

    @@ -100,7 +100,7 @@

    +

    {{EmbedLiveSample("sample1",600,180)}}

    CSS 中に同じ宣言が繰り返し出てくることに注意してください。いろいろな場所で背景色が brown に設定されています。 CSS の宣言によっては、カスケードの上流でこれを宣言し、 CSS の継承によってこの問題を自然に解決することもできます。些末なプロジェクトを除いて、常にこの手法が使えるわけではありません。 {{cssxref(":root")}} 擬似クラスでカスタムプロパティを宣言し、文書内の必要な場所で使用することで、繰り返して書く必要性を減らすことができるのです。

    diff --git a/files/ja/web/javascript/reference/global_objects/boolean/index.md b/files/ja/web/javascript/reference/global_objects/boolean/index.md index 09d38a307ec684..431d8a5fb3baa5 100644 --- a/files/ja/web/javascript/reference/global_objects/boolean/index.md +++ b/files/ja/web/javascript/reference/global_objects/boolean/index.md @@ -54,7 +54,7 @@ var myString = new String('Hello'); // 文字列オブジェクト var s = Boolean(myString); // 初期値は true ``` -`Boolean` プリミティブの代わりに `Boolean` オブジェクト使用しないでください。 +`Boolean` プリミティブの代わりに `Boolean` オブジェクトを使用しないでください。 > **Note:** 標準外の [`document.all`](/ja/docs/Web/API/Document#properties) プロパティがこのコンストラクターの引数として使用された場合、結果は `Boolean` オブジェクトで値は `false` となります。このプロパティは古く、標準外で、使用するべきではありません。 diff --git a/files/ja/webassembly/text_format_to_wasm/index.html b/files/ja/webassembly/text_format_to_wasm/index.html index 0c2d98658e1f1d..165312b117f4b2 100644 --- a/files/ja/webassembly/text_format_to_wasm/index.html +++ b/files/ja/webassembly/text_format_to_wasm/index.html @@ -40,7 +40,7 @@

    https://github.com/webassembly/wabt に行って、今ページに従ってツールの設定をします。 +
  • このテキスト表現をブラウザが実際に読み込んで利用可能なアセンブリ言語にアセンブルする必要があります。 このために wabt ツールを使用することができます。これは WebAssembly のテキスト表現から wasm 変換する、または逆に変換するコンパイラ(加えてもう少し別のツール)が含まれます。https://github.com/webassembly/wabt に行って、そのページの説明に従ってツールの設定をします。
  • ツールをビルドしたら、システム PATH/wabt/out ディレクトリを追加します。
  • 次に、wast2wasm プログラムを実行します。入力ファイルパス、続いて -o パラメータ、出力ファイルパスを指定します:
    wat2wasm simple.wat -o simple.wasm
    diff --git a/files/ko/learn/javascript/asynchronous/index.md b/files/ko/learn/javascript/asynchronous/index.md index 6306930248a211..cb98bcfd9733b4 100644 --- a/files/ko/learn/javascript/asynchronous/index.md +++ b/files/ko/learn/javascript/asynchronous/index.md @@ -19,39 +19,39 @@ translation_of: Learn/JavaScript/Asynchronous --- {{LearnSidebar}} -In this module we take a look at {{Glossary("asynchronous")}} {{Glossary("JavaScript")}}, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources from a server. +이 과정에서 우리는 {{Glossary("asynchronous")}} {{Glossary("JavaScript")}}와 이것이 중요한 이유, 서버에서 리소스를 가져오는 것과 같은 잠재적 블로킹 연산을 어떻게 효과적으로 다룰 수 있을지에 대해 살펴봅니다. > **Callout:** > -> #### Looking to become a front-end web developer? +> #### 프론트엔드 웹 개발자가 되고싶으신가요? > -> We have put together a course that includes all the essential information you need to -> work towards your goal. +> 목표를 향해 나아가기 위해 필요한 모든 필수 정보를 포함한 교육과정을 준비했습니다. > -> [**Get started**](/en-US/docs/Learn/Front-end_web_developer) +> [**시작하기**](/ko/docs/Learn/Front-end_web_developer) -## Prerequisites +## 필요한 사전 지식 -Asynchronous JavaScript is a fairly advanced topic, and you are advised to work through [JavaScript first steps](/en-US/docs/Learn/JavaScript/First_steps) and [JavaScript building blocks](/en-US/docs/Learn/JavaScript/Building_blocks) modules before attempting this. +Asynchronous Javascript는 상당히 고급 주제에 속하고, 시도해보기 전에 [JavaScript 첫걸음](/ko/docs/Learn/JavaScript/First_steps)과 [JavaScript 구성요소](/ko/docs/Learn/JavaScript/Building_blocks) 과정을 거치는것이 좋습니다. -> **Note:** If you are working on a computer/tablet/other device where you don't have the ability to create your own files, you can try out (most of) the code examples in an online coding program such as [JSBin](https://jsbin.com/) or [Glitch](https://glitch.com). +> **참고:** 만약 파일을 만들 수 없는 컴퓨터/테블릿/기타 장치를 사용하고 있다면, [JSBin](https://jsbin.com/)이나 [Glitch](https://glitch.com)와 같은 온라인 코딩 프로그램에서 (대부분의) 예제 코드를 사용해볼 수 있습니다. -## Guides -- [Introducing asynchronous JavaScript](/en-US/docs/Learn/JavaScript/Asynchronous/Introducing) - - : In this article we'll see what **synchronous** and **asynchronous** programming are, why we often need to use asynchronous techniques, how asynchronous functions have historically been implemented in JavaScript, and what their problems are. -- [How to use promises](/en-US/docs/Learn/JavaScript/Asynchronous/Promises) - - : Here we'll introduce promises and show how to use promise-based APIs. We'll also introduce the `async` and `await` keywords. -- [Implementing a promise-based API](/en-US/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API) - - : This article outlines how to implement your own promise-based API. -- [Introducing workers](/en-US/docs/Learn/JavaScript/Asynchronous/Introducing_workers) - - : Workers enable you to run certain tasks in a separate thread, to keep your main code responsive. In this article we'll rewrite a long-running synchronous function to use a worker. +## 가이드 -## Assessments +- [Introducing asynchronous JavaScript](/ko/docs/Learn/JavaScript/Asynchronous/Introducing) + - : **동기**와 **비동기** 프로그램이 무엇인지, 비동기 기술을 자주 사용해야하는 이유, 역사적으로 Javascript에서 비동기 함수가 구현된 방식 및 문제를 살펴봅니다. +- [How to use promises](/ko/docs/Learn/JavaScript/Asynchronous/Promises) + - : 프로미스와 프로미스 기반 API를 어떻게 사용하는지 알아봅니다. 또한 `async`와 `await` 키워드를 소개합니다. +- [Implementing a promise-based API](/ko/docs/Learn/JavaScript/Asynchronous/Implementing_a_promise-based_API) + - : 자신만의 프로미스 기반 API를 구현하는 방법을 간략하게 설명합니다. +- [Introducing workers](/ko/docs/Learn/JavaScript/Asynchronous/Introducing_workers) + - : workers를 사용하면 별도의 스레드에서 특정 작업을 실행하여 메인 코드의 응답성을 유지할 수 있습니다. 이 글에서는 workers를 사용하도록 장기 실행 동기 함수를 다시 작성합니다. -- [Sequencing animations](/en-US/docs/Learn/JavaScript/Asynchronous/Sequencing_animations) - - : The assessment asks you to use promises to play a set of animations in a particular sequence. +## 평가 -## See also +- [Sequencing animations](/ko/docs/Learn/JavaScript/Asynchronous/Sequencing_animations) + - : 프로미스를 사용하여 특정 시퀀스에서 애니메이션 세트를 재생하는 평가입니다. -- [Asynchronous Programming](https://eloquentjavascript.net/11_async.html) from the fantastic [Eloquent JavaScript](https://eloquentjavascript.net/) online book by Marijn Haverbeke. +## 같이 보기 + +- Marijn Haverbeke의 환상적인 [Eloquent JavaScript](https://eloquentjavascript.net/) 온라인 책 [Asynchronous Programming](https://eloquentjavascript.net/11_async.html). diff --git a/files/ko/web/accessibility/index.md b/files/ko/web/accessibility/index.md index 5d1f0d4c970740..c158029300f120 100644 --- a/files/ko/web/accessibility/index.md +++ b/files/ko/web/accessibility/index.md @@ -51,4 +51,3 @@ MDN은(는) [접근성 학습 영역](/ko/docs/Learn/Accessibility) 접근성에 - [WAI Interest Group](https://www.w3.org/WAI/IG/) - [개발자 가이드](/ko/docs/Web/Guide) -- [접근성 그리고 Mozilla](/ko/docs/Mozilla/Accessibility) diff --git a/files/ko/web/http/basics_of_http/mime_types/index.html b/files/ko/web/http/basics_of_http/mime_types/index.html index 9b2ee96c875ab4..cda1b2ba536433 100644 --- a/files/ko/web/http/basics_of_http/mime_types/index.html +++ b/files/ko/web/http/basics_of_http/mime_types/index.html @@ -294,7 +294,7 @@

    정확한 MIME 타입 설정

    MIME 스니핑

    -

    MIME 타입이 없을 때, 혹은 클라이언트가 타입이 잘못 설정됐다고 판단한 어떤 다른 경우에, 브라우저들은 MIME 스니핑을 시도할 수도 있는데, 이는 리소스를 훑어보고 정확한 MIME 타입을 추축해내는 것입니다. 각각의 브라우저들은 이런 과정을 다른 방식으로, 다른 환경 속에서 처리해냅니다. 이런 과정에 관한 몇 가지 보안 관련 사항들이 있는데, 몇몇 MIME 타입들은 실행 가능한 컨텐츠를 나타내고 다른 타입들은 그렇지 않기 때문입니다. 서버들은 {{HTTPHeader("Content-Type")}} 중에 {{HTTPHeader("X-Content-Type-Options")}}를 전송하여 이런 MIME 스니핑을 차단할 수 있습니다.

    +

    MIME 타입이 없을 때, 혹은 클라이언트가 타입이 잘못 설정됐다고 판단한 어떤 다른 경우에, 브라우저들은 MIME 스니핑을 시도할 수도 있는데, 이는 리소스를 훑어보고 정확한 MIME 타입을 추측 해내는 것입니다. 각각의 브라우저들은 이런 과정을 다른 방식으로, 다른 환경 속에서 처리해냅니다. 이런 과정에 관한 몇 가지 보안 관련 사항들이 있는데, 몇몇 MIME 타입들은 실행 가능한 컨텐츠를 나타내고 다른 타입들은 그렇지 않기 때문입니다. 서버들은 {{HTTPHeader("Content-Type")}} 중에{{HTTPHeader("X-Content-Type-Options")}}를 전송하여 이런 MIME 스니핑을 차단할 수 있습니다.

    함께 참고할 내용

    diff --git a/files/pt-br/_redirects.txt b/files/pt-br/_redirects.txt index 2feb005bc5998c..ba40917c83b0e9 100644 --- a/files/pt-br/_redirects.txt +++ b/files/pt-br/_redirects.txt @@ -573,6 +573,7 @@ /pt-BR/docs/Web/API/GlobalEventHandlers/oncontextmenu /pt-BR/docs/Web/API/Element/contextmenu_event /pt-BR/docs/Web/API/GlobalEventHandlers/onfocus /pt-BR/docs/Web/API/Window/focus_event /pt-BR/docs/Web/API/GlobalEventHandlers/onkeyup /pt-BR/docs/conflicting/Web/API/Element/keyup_event +/pt-BR/docs/Web/API/GlobalEventHandlers/onlostpointercapture /pt-BR/docs/Web/API/Element/lostpointercapture_event /pt-BR/docs/Web/API/GlobalEventHandlers/onscroll /pt-BR/docs/Web/API/Element/scroll_event /pt-BR/docs/Web/API/HTMLContentElement/Seletor /pt-BR/docs/Web/API/HTMLContentElement/select /pt-BR/docs/Web/API/History_API/Exemplo /pt-BR/docs/Web/API/History_API/Example diff --git a/files/pt-br/_wikihistory.json b/files/pt-br/_wikihistory.json index c44863e3ae310c..5b5ff6d56700c3 100644 --- a/files/pt-br/_wikihistory.json +++ b/files/pt-br/_wikihistory.json @@ -4420,6 +4420,12 @@ "thaynacoelho" ] }, + "Web/API/Element/lostpointercapture_event": { + "modified": "2020-10-15T22:22:03.373Z", + "contributors": [ + "mdeamf" + ] + }, "Web/API/Element/matches": { "modified": "2019-03-23T22:20:51.438Z", "contributors": [ @@ -4982,12 +4988,6 @@ "jeanonline" ] }, - "Web/API/GlobalEventHandlers/onlostpointercapture": { - "modified": "2020-10-15T22:22:03.373Z", - "contributors": [ - "mdeamf" - ] - }, "Web/API/HTMLCanvasElement": { "modified": "2019-03-23T22:03:54.461Z", "contributors": [ diff --git a/files/pt-br/learn/css/css_layout/responsive_design/index.html b/files/pt-br/learn/css/css_layout/responsive_design/index.html index bc554e45378a36..db8c49b27418d0 100644 --- a/files/pt-br/learn/css/css_layout/responsive_design/index.html +++ b/files/pt-br/learn/css/css_layout/responsive_design/index.html @@ -90,7 +90,7 @@

    Media Queries

    } -

    Você pode adicionar múltiplos media queries dentro de uma folha de de estilo, ajustando inteiramente seu layout ou partes dele que melhor se adequem a vários tamanhos de tela. Os pontos em quem uma Media Query é introduzida e o layout alterado são conhecidos como breakpoints.

    +

    Você pode adicionar múltiplos media queries dentro de uma folha de estilo, ajustando inteiramente seu layout ou partes dele que melhor se adequem a vários tamanhos de tela. Os pontos em quem uma Media Query é introduzida e o layout alterado são conhecidos como breakpoints.

    Uma abordagem comum ao utilizar Media Queries é criar um layout de única coluna para dispositivos de telas pequenas (e.g smartphones), então fazer a checagem para telas maiores e implementar um layout de múltiplas colunas quando houver largura suficiente. Esse design é frequentemente descrito como mobile first.

    diff --git a/files/pt-br/learn/getting_started_with_the_web/javascript_basics/index.html b/files/pt-br/learn/getting_started_with_the_web/javascript_basics/index.html index 5bd53a33185975..7cb70b0518d1d2 100644 --- a/files/pt-br/learn/getting_started_with_the_web/javascript_basics/index.html +++ b/files/pt-br/learn/getting_started_with_the_web/javascript_basics/index.html @@ -335,10 +335,10 @@

    Adicionando um modificador de imag minhaImagem.onclick = function() { let meuSrc = minhaImagem.getAttribute('src'); - if(meuSrc === 'imagens/firefox-icon.png') { - minhaImagem.setAttribute ('src','imagens/firefox2.png'); + if(meuSrc === 'images/firefox-icon.png') { + minhaImagem.setAttribute ('src','images/firefox2.png'); } else { - minhaImagem.setAttribute ('src','imagens/firefox-icon.png'); + minhaImagem.setAttribute ('src','images/firefox-icon.png'); } }

  • diff --git a/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.md b/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.md new file mode 100644 index 00000000000000..f2ddeeab0a7ed8 --- /dev/null +++ b/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecache/index.md @@ -0,0 +1,95 @@ +--- +title: browsingData.removeCache() +slug: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache +tags: + - API + - Add-ons + - Extensions + - Method + - Reference + - WebExtensions + - browsingData + - removeCache +browser-compat: webextensions.api.browsingData.removeCache +translation-of: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCache +--- +{{AddonSidebar()}} + +Limpa o cache do navegador. + +Note que apesar desta função receber um objeto {{WebExtAPIRef("browsingData.RemovalOptions")}}, ele será ignorado. Todo o cache sempre será limpo usando esta função. + +Esta é uma função assíncrona que retorna uma [`Promise`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise). + +## Sintaxe + +```js +let removing = browser.browsingData.removeCache( + removalOptions // objeto RemovalOptions +) +``` + +### Parâmetros + +- `removalOptions`{{optional_inline}} + - : `object`. Um objeto {{WebExtAPIRef("browsingData.RemovalOptions")}}. Este parâmetro não tem efeito. + +### Valor retornado + +Uma [`Promise`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise) que será realizada sem argumentos quando a remoção for finalizada. Se ocorrer qualquer erro, a promise será rejeitada com uma mensagem de erro. + +## Exemplos + +Limpar o cache do navegador: + +```js +function onRemoved() { + console.log("removido"); +} + +function onError(error) { + console.error(error); +} + +browser.browsingData.removeCache({}). +then(onRemoved, onError); +``` + +## Compatibilidade com navegadores + +{{Compat}} + +{{WebExtExamples}} + +> **Nota:** Esta API é baseada na API do Chromium [`chrome.browsingData`](https://developer.chrome.com/docs/extensions/reference/browsingData/). +> +> A compatibilidade dos dados do Microsoft Edge é fornecida pela Microsoft Corporation e é incluída aqui sob a licença Creative Commons Attribution 3.0 United States. + + \ No newline at end of file diff --git a/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecookies/index.md b/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecookies/index.md new file mode 100644 index 00000000000000..1350626066ed20 --- /dev/null +++ b/files/pt-br/mozilla/add-ons/webextensions/api/browsingdata/removecookies/index.md @@ -0,0 +1,125 @@ +--- +title: browsingData.removeCookies() +slug: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCookies +tags: + - API + - Add-ons + - Extensions + - Method + - Reference + - WebExtensions + - browsingData + - removeCookies +browser-compat: webextensions.api.browsingData.removeCookies +translation-of: Mozilla/Add-ons/WebExtensions/API/browsingData/removeCookies +--- +{{AddonSidebar()}} + +Limpa os cookies do navegador. + +Você pode usar o parâmetro `removalOptions`, em que é um objeto {{WebExtAPIRef("browsingData.RemovalOptions")}}, para: + +- limpar apenas os cookies criados em determinado tempo. +- controlar se limpar os cookies apenas de uma página web normal ou limpa os cookies de um app e extensões hospedados. + +Esta é uma função assíncrona que retorna uma [`Promise`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise). + +## Sintaxe + +```js +let removing = browser.browsingData.removeCookies( + removalOptions // objeto RemovalOptions +) +``` + +### Parâmetros + +- `removalOptions` + - : `object`. Um objeto {{WebExtAPIRef("browsingData.RemovalOptions")}}, que pode ser usado para limpar apenas cookies criados depois de determinado tempo, e limpa os cookies apenas de uma página web normal ou limpa os cookies de apps e extensões hospedados. + +### Valor retornado + +Uma [`Promise`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise) que será realizada sem argumentos quando a remoção for finalizada. Se ocorrer qualquer erro, a promise será rejeitada com uma mensagem de erro. + +## Exemplos + +Remove cookies criados na última semana: + +```js +function onRemoved() { + console.log("removido"); +} + +function onError(error) { + console.error(error); +} + +function weekInMilliseconds() { + return 1000 * 60 * 60 * 24 * 7; +} + +let oneWeekAgo = (new Date()).getTime() - weekInMilliseconds(); + +browser.browsingData.removeCookies( + {since: oneWeekAgo}). +then(onRemoved, onError); +``` + +Remove todos os cookies: + +> **Warning:** Usar a API para remover todos os cookies irá, simultâneamente, limpar todos os objetos local storage (incluindo aqueles de outras extensões) +> +> Se você quer limpar todos os cookies sem alterar as informações do local storage, use [browser.cookies](/pt-BR/docs/Mozilla/Add-ons/WebExtensions/API/cookies) para percorrer and remover os conteúdos de todos os cookies armazenados + +```js +function onRemoved() { + console.log("removido"); +} + +function onError(error) { + console.error(error); +} + +browser.browsingData.removeCookies({}). +then(onRemoved, onError); +``` + +## Compatibilidade com navegadores + +{{Compat}} + +{{WebExtExamples}} + + +> **Note:** Esta API é baseada na API do Chromium [`chrome.browsingData`](https://developer.chrome.com/docs/extensions/reference/browsingData/). +> +> A compatibilidade dos dados do Microsoft Edge é fornecida pela Microsoft Corporation e é incluída aqui sob a licença Creative Commons Attribution 3.0 United States. + + diff --git a/files/pt-br/web/api/globaleventhandlers/onlostpointercapture/index.html b/files/pt-br/web/api/element/lostpointercapture_event/index.html similarity index 95% rename from files/pt-br/web/api/globaleventhandlers/onlostpointercapture/index.html rename to files/pt-br/web/api/element/lostpointercapture_event/index.html index dcae0e708196ff..849043d943a671 100644 --- a/files/pt-br/web/api/globaleventhandlers/onlostpointercapture/index.html +++ b/files/pt-br/web/api/element/lostpointercapture_event/index.html @@ -1,6 +1,6 @@ --- title: GlobalEventHandlers.onlostpointercapture -slug: Web/API/GlobalEventHandlers/onlostpointercapture +slug: Web/API/Element/lostpointercapture_event tags: - API - DOM @@ -12,6 +12,7 @@ - events - onlostpointercapture translation_of: Web/API/GlobalEventHandlers/onlostpointercapture +original_slug: Web/API/GlobalEventHandlers/onlostpointercapture ---
    {{ApiRef("HTML DOM")}}
    diff --git a/files/pt-br/web/css/_doublecolon_-webkit-scrollbar/index.md b/files/pt-br/web/css/_doublecolon_-webkit-scrollbar/index.md new file mode 100644 index 00000000000000..3765f17d4d8e3f --- /dev/null +++ b/files/pt-br/web/css/_doublecolon_-webkit-scrollbar/index.md @@ -0,0 +1,135 @@ +--- +title: '::-webkit-scrollbar' +slug: Web/CSS/::-webkit-scrollbar +tags: + - '::-webkit-scrollbar' + - CSS + - CSS Selectors + - CSS:WebKit Extensions + - Non-standard + - Pseudo-element + - Reference + - Selector +--- +{{CSSRef}}{{Non-standard_Header}} + +O pseudo-elemento CSS `:-webkit-scrollbar` afeta o estilo de um elemento referente a barra de rolagem quando se tem por definido `overflow:scroll;`. + +> **Nota:** Se o `overflow:scroll;` não estiver definido nenhuma barra de rolagem será exibida. + +> **Nota:** `::-webkit-scrollbar` está disponível somente em navegadores baseados em [Blink](https://www.chromium.org/blink) - e [WebKit](https://webkit.org) - (Chrome, Edge, Opera, Safari, todos os navegadores para iOS, e [outros](https://en.wikipedia.org/wiki/List_of_web_browsers#WebKit-based)). Um método padronizado para estilização de barras de rolagem está disponível com {{cssxref("scrollbar-color")}} e {{cssxref("scrollbar-width")}}. + +## Seletores CSS da Barra de Rolagem + +Você pode usar os seguintes pseudo-elementos para customizar diversas partes da barra de rolagem para navegadores baseados em webkit: + +- `::-webkit-scrollbar` — a barra de rolagem inteira. +- `::-webkit-scrollbar-button` — os botões na barra (setas para cima e para baixo no qual rolam uma linha de cada vez). +- `::-webkit-scrollbar-thumb` — a barra arrastável de rolagem. +- `::-webkit-scrollbar-track` — o caminho (barra de progresso) da barra de rolagem onde há uma barra cinza encima de uma barra branca. +- `::-webkit-scrollbar-track-piece` — a parte do caminho (barra de progresso) não coberto por uma barra. +- `::-webkit-scrollbar-corner` — o canto inferior da barra de rolagem, onde ambas barras horizontal e vertical se encontram. Muitas das vezes o canto inferior direito da janela do navegador. +- `::-webkit-resizer` — a barra redimensionável que aparece no canto inferior de alguns elementos. + +## Exemplos + +### CSS + +```CSS +.visible-scrollbar, .invisible-scrollbar, .mostly-customized-scrollbar { + display: block; + width: 10em; + overflow: auto; + height: 2em; +} + +.invisible-scrollbar::-webkit-scrollbar { + display: none; +} + +/* Demonstração de uma barra de rolagem personalizada + * (não será visível ao menos que a largura/altura seja especificada) */ +.mostly-customized-scrollbar::-webkit-scrollbar { + width: 5px; + height: 8px; + background-color: #aaa; /* ou que isso seja adicionado ao "caminho" da barra */ +} + +/* Adiciona a barra arrastável */ +.mostly-customized-scrollbar::-webkit-scrollbar-thumb { + background: #000; +} +``` + +### HTML + +```HTML +
    + Etiam sagittis sem sed lacus laoreet, eu fermentum eros auctor. + Proin at nulla elementum, consectetur ex eget, commodo ante. + Sed eros mi, bibendum ut dignissim et, maximus eget nibh. Phasellus + blandit quam turpis, at mollis velit pretium ut. Nunc consequat + efficitur ultrices. Nullam hendrerit posuere est. Nulla libero + sapien, egestas ac felis porta, cursus ultricies quam. Vestibulum + tincidunt accumsan sapien, a fringilla dui semper in. Vivamus + consectetur ipsum a ornare blandit. Aenean tempus at lorem sit + amet faucibus. Curabitur nibh justo, faucibus sed velit cursus, + mattis cursus dolor. Pellentesque id pretium est. Quisque + convallis nisi a diam malesuada mollis. Aliquam at enim ligula. +
    + +
    +Estaéumapalavramuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuitolonga +
    + +
    +Estaéumapalavramuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuitolonga
    +E bem alta
    +com uma barra de rolagem estranha.
    +Quem diria que barras de rolagem poderiam ser estraaaanhas? +
    +``` +### Resultado + +{{EmbedLiveSample("Examples")}} + +## Especificações + +Não é parte de nenhum padrão. + +## Compatibilidade entre navegadores + +### `::-webkit-scrollbar` + +{{Compat("css.selectors.-webkit-scrollbar")}} + +### `::-webkit-scrollbar-button` + +{{Compat("css.selectors.-webkit-scrollbar-button")}} + +### `::-webkit-scrollbar-thumb` + +{{Compat("css.selectors.-webkit-scrollbar-thumb")}} + +### `::-webkit-scrollbar-track` + +{{Compat("css.selectors.-webkit-scrollbar-track")}} + +### `::-webkit-scrollbar-track-piece` + +{{Compat("css.selectors.-webkit-scrollbar-track-piece")}} + +### `::-webkit-scrollbar-corner` + +{{Compat("css.selectors.-webkit-scrollbar-corner")}} + +### `::-webkit-resizer` + +{{Compat("css.selectors.-webkit-resizer")}} + +## Veja Também + +- WebKit blog em [Estilizando barras de rolagem](https://webkit.org/blog/363/styling-scrollbars/) +- [Testando WebKit](https://trac.webkit.org/export/41842/trunk/LayoutTests/scrollbars/overflow-scrollbar-combinations.html) para os estilos da barra de rolagem mencionados acima +- {{CSSxRef("scrollbar-width")}} +- {{CSSxRef("scrollbar-color")}} diff --git a/files/pt-br/web/http/status/302/index.html b/files/pt-br/web/http/status/302/index.html index 0e210de5f64c64..476fdfe93b12a4 100644 --- a/files/pt-br/web/http/status/302/index.html +++ b/files/pt-br/web/http/status/302/index.html @@ -46,6 +46,6 @@

    Veja também

    diff --git a/files/pt-br/web/javascript/reference/global_objects/object/create/index.html b/files/pt-br/web/javascript/reference/global_objects/object/create/index.html index 8444c19174b368..5a954602478371 100644 --- a/files/pt-br/web/javascript/reference/global_objects/object/create/index.html +++ b/files/pt-br/web/javascript/reference/global_objects/object/create/index.html @@ -104,8 +104,8 @@

    Usando argumento get: function() { return 10; }, set: function(value) { console.log('Setting `o.bar` to', value); } /* com os ES5 Accessors nosso código pode ser escrito como: - get function() { return 10; }, - set function(value) { console.log('setting `o.bar` to', value); } */ + get() { return 10; }, + set(value) { console.log('setting `o.bar` to', value); } */ } }); diff --git a/files/ru/web/css/css_grid_layout/relationship_of_grid_layout/index.html b/files/ru/web/css/css_grid_layout/relationship_of_grid_layout/index.html index 1e8690d0adc14f..d53bc51c413db0 100644 --- a/files/ru/web/css/css_grid_layout/relationship_of_grid_layout/index.html +++ b/files/ru/web/css/css_grid_layout/relationship_of_grid_layout/index.html @@ -16,7 +16,7 @@

    wrap . Это приведёт к тому, что если свободного пространства в нашем контейнере будет не хватать для размещения элемента в 200px, наши элементы спокойно перейдут на новую строку. 

    diff --git a/files/ru/web/css/css_transitions/using_css_transitions/index.html b/files/ru/web/css/css_transitions/using_css_transitions/index.html index cc8122e59b52e9..395fe0aa741e12 100644 --- a/files/ru/web/css/css_transitions/using_css_transitions/index.html +++ b/files/ru/web/css/css_transitions/using_css_transitions/index.html @@ -9,7 +9,7 @@

    Анимации, составляющие переход между двумя состояниями, часто называют неявными переходами, так как промежуточные состояния в период между начальным и конечным состоянием неявно определяются браузером.A CSS transition tells the browser to draw the intermediate states between the initial and final states, showing the user a smooth transitions.

    -

    CSS переходы позволяют вам решить какие свойства нужно анимировать (перечислением их явно), когда анимация начнётся (установкой задержки), как долго переход будет выполняться (установкой  продолжительности), а также как она будет запущена (определением функции по времени, например линейно или быстро в начале, медленно в конце).

    +

    CSS переходы позволяют вам решить какие свойства нужно анимировать (перечислением их явно), когда анимация начнётся (установкой задержки), как долго переход будет выполняться (установкой продолжительности), а также как она будет запущена (определением функции по времени, например линейно или быстро в начале, медленно в конце).

    Замечание: CSS переходы могут использоваться без префиксов, однако спецификация только недавно достигла стабильности, префиксы по-прежнему необходимы для браузеров на WebKit. Они также необходимы для поддержки старых версий браузеров (таких как: Firefox 15, Opera 12 и более ранних). Таблица совместимости приведена внизу страницы с ещё большим количеством информации.
    diff --git a/files/ru/web/html/element/em/index.html b/files/ru/web/html/element/em/index.html index 1c459f81179388..900febb6eea34e 100644 --- a/files/ru/web/html/element/em/index.html +++ b/files/ru/web/html/element/em/index.html @@ -50,7 +50,7 @@

    < i> против <em>

    Новые разработчики часто путаются, видя несколько элементов, которые дают аналогичные результаты. <em> и <i> являются общим примером, поскольку они оба выделяют текст курсивом. Какая разница? Что вы должны использовать?

    -

    По умолчанию визуальный результат тот же. Однако смысловое значение здесь другое. Элемент <em> представляет ударение на его содержании, в то время как элемент <i> представляет текст, который отличается от обычной прозы, например, иностранное слово, изречения вымышленного персонажа или когда текст ссылается на определение слова вместо представления его семантического значения. (Для названия произведения, например названия книги или фильма, следует использовать  <cite>.)

    +

    По умолчанию визуальный результат тот же. Однако смысловое значение здесь другое. Элемент <em> представляет ударение на его содержании, в то время как элемент <i> представляет текст, который отличается от обычной прозы, например, иностранное слово, изречения вымышленного персонажа или когда текст ссылается на определение слова вместо представления его семантического значения. (Для названия произведения, например названия книги или фильма, следует использовать <cite>.)

    Это означает, что правильное использование зависит от ситуации. Ни для чисто декоративных целей, это то, для чего предназначен CSS-стиль.

    diff --git a/files/zh-cn/_redirects.txt b/files/zh-cn/_redirects.txt index 9768f75d6a2102..26db662a01e7aa 100644 --- a/files/zh-cn/_redirects.txt +++ b/files/zh-cn/_redirects.txt @@ -1198,9 +1198,6 @@ /zh-CN/docs/Server-sent_events/EventSource/onerror /zh-CN/docs/Web/API/EventSource/error_event /zh-CN/docs/Server-sent_events/EventSource/onopen /zh-CN/docs/Web/API/EventSource/open_event /zh-CN/docs/Server-sent_events/Using_server-sent_events /zh-CN/docs/Web/API/Server-sent_events/Using_server-sent_events -/zh-CN/docs/Site_Compatibility_for_Firefox_19 /zh-CN/docs/Mozilla/Firefox/Releases/19/Site_compatibility -/zh-CN/docs/Site_Compatibility_for_Firefox_21 /zh-CN/docs/Mozilla/Firefox/Releases/21/Site_compatibility -/zh-CN/docs/Site_Compatibility_for_Firefox_24 /zh-CN/docs/Mozilla/Firefox/Releases/24/Site_compatibility /zh-CN/docs/Tips_for_Authoring_Fast-loading_HTML_Pages /zh-CN/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages /zh-CN/docs/Tools https://firefox-source-docs.mozilla.org/devtools-user/index.html /zh-CN/docs/Tools-840092-dup/Remote_Debugging https://firefox-source-docs.mozilla.org/devtools-user/remote_debugging/index.html @@ -1480,10 +1477,13 @@ /zh-CN/docs/Web/API/GlobalEventHandlers/onended /zh-CN/docs/conflicting/Web/API/HTMLMediaElement/ended_event /zh-CN/docs/Web/API/GlobalEventHandlers/onfocus /zh-CN/docs/conflicting/Web/API/Window/focus_event /zh-CN/docs/Web/API/GlobalEventHandlers/onformdata /zh-CN/docs/Web/API/HTMLFormElement/formdata_event +/zh-CN/docs/Web/API/GlobalEventHandlers/ongotpointercapture /zh-CN/docs/Web/API/Element/gotpointercapture_event /zh-CN/docs/Web/API/GlobalEventHandlers/oninput /zh-CN/docs/conflicting/Web/API/HTMLElement/input_event +/zh-CN/docs/Web/API/GlobalEventHandlers/oninvalid /zh-CN/docs/conflicting/Web/API/HTMLInputElement/invalid_event /zh-CN/docs/Web/API/GlobalEventHandlers/onkeydown /zh-CN/docs/conflicting/Web/API/Element/keydown_event /zh-CN/docs/Web/API/GlobalEventHandlers/onkeypress /zh-CN/docs/conflicting/Web/API/Element/keypress_event /zh-CN/docs/Web/API/GlobalEventHandlers/onkeyup /zh-CN/docs/conflicting/Web/API/Element/keyup_event +/zh-CN/docs/Web/API/GlobalEventHandlers/onlostpointercapture /zh-CN/docs/Web/API/Element/lostpointercapture_event /zh-CN/docs/Web/API/GlobalEventHandlers/onmousedown /zh-CN/docs/conflicting/Web/API/Element/mousedown_event /zh-CN/docs/Web/API/GlobalEventHandlers/onmouseenter /zh-CN/docs/conflicting/Web/API/Element/mouseenter_event /zh-CN/docs/Web/API/GlobalEventHandlers/onmouseleave /zh-CN/docs/conflicting/Web/API/Element/mouseleave_event @@ -2244,8 +2244,8 @@ /zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy__by_cnvoid/sandbox /zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox /zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy__by_cnvoid/upgrade-insecure-requests /zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests /zh-CN/docs/Web/HTTP/Headers/Cookie2 /zh-CN/docs/Web/HTTP/Headers/Cookie -/zh-CN/docs/Web/HTTP/Headers/Public-Key-Pins /zh-CN/docs/conflicting/Web/HTTP/Headers/Expect-CT -/zh-CN/docs/Web/HTTP/Headers/Public-Key-Pins-Report-Only /zh-CN/docs/conflicting/Web/HTTP/Headers/Expect-CT_63e560324d2c47190db4456d746ba07b +/zh-CN/docs/Web/HTTP/Headers/Public-Key-Pins /zh-CN/docs/Web/HTTP/Headers/Expect-CT +/zh-CN/docs/Web/HTTP/Headers/Public-Key-Pins-Report-Only /zh-CN/docs/Web/HTTP/Headers/Expect-CT /zh-CN/docs/Web/HTTP/Headers/Set-Cookie2 /zh-CN/docs/Web/HTTP/Headers/Set-Cookie /zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file /zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file /zh-CN/docs/Web/HTTP/Public_Key_Pinning /zh-CN/docs/Web/Security/Certificate_Transparency diff --git a/files/zh-cn/_wikihistory.json b/files/zh-cn/_wikihistory.json index 2a30de6ed9415a..2df4774223f791 100644 --- a/files/zh-cn/_wikihistory.json +++ b/files/zh-cn/_wikihistory.json @@ -1937,6 +1937,15 @@ "micblo" ] }, + "Glossary/Safe/HTTP": { + "modified": "2020-02-12T10:37:33.808Z", + "contributors": [ + "RainSlide", + "shersty", + "joy-yu", + "maicss" + ] + }, "Glossary/Same-origin_policy": { "modified": "2020-06-01T19:24:49.887Z", "contributors": [ @@ -2383,15 +2392,6 @@ "mySoul" ] }, - "Glossary/safe": { - "modified": "2020-02-12T10:37:33.808Z", - "contributors": [ - "RainSlide", - "shersty", - "joy-yu", - "maicss" - ] - }, "Glossary/speculative_parsing": { "modified": "2019-03-23T22:46:26.910Z", "contributors": [ @@ -6353,13 +6353,6 @@ "ziyunfei" ] }, - "Mozilla/Firefox/Releases/19/Site_compatibility": { - "modified": "2019-01-16T17:00:07.852Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/20": { "modified": "2019-01-16T16:54:50.861Z", "contributors": [ @@ -6376,13 +6369,6 @@ "ethertank" ] }, - "Mozilla/Firefox/Releases/21/Site_compatibility": { - "modified": "2019-01-16T17:20:04.063Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/22": { "modified": "2019-01-16T17:05:04.663Z", "contributors": [ @@ -6399,13 +6385,6 @@ "ziyunfei" ] }, - "Mozilla/Firefox/Releases/24/Site_compatibility": { - "modified": "2019-01-16T17:27:30.001Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/25": { "modified": "2019-01-16T17:41:39.671Z", "contributors": [ @@ -6413,13 +6392,6 @@ "ziyunfei" ] }, - "Mozilla/Firefox/Releases/25/Site_Compatibility": { - "modified": "2019-01-16T17:41:38.257Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/26": { "modified": "2019-01-16T17:45:32.245Z", "contributors": [ @@ -6427,13 +6399,6 @@ "ziyunfei" ] }, - "Mozilla/Firefox/Releases/26/Site_Compatibility": { - "modified": "2019-01-16T17:48:36.057Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/27": { "modified": "2019-01-16T17:56:24.955Z", "contributors": [ @@ -6449,13 +6414,6 @@ "Zefling" ] }, - "Mozilla/Firefox/Releases/28/Site_Compatibility": { - "modified": "2019-01-16T18:02:00.053Z", - "contributors": [ - "wbamberg", - "ziyunfei" - ] - }, "Mozilla/Firefox/Releases/3": { "modified": "2019-03-23T23:59:15.526Z", "contributors": [ @@ -11547,6 +11505,12 @@ "Topppy" ] }, + "Web/API/Element/gotpointercapture_event": { + "modified": "2019-03-23T22:20:50.816Z", + "contributors": [ + "876843240" + ] + }, "Web/API/Element/hasAttribute": { "modified": "2019-03-23T23:09:36.135Z", "contributors": [ @@ -11658,6 +11622,13 @@ "joeliu926" ] }, + "Web/API/Element/lostpointercapture_event": { + "modified": "2019-03-18T21:41:59.901Z", + "contributors": [ + "SphinxKnight", + "jvua" + ] + }, "Web/API/Element/matches": { "modified": "2020-10-15T21:06:49.284Z", "contributors": [ @@ -13302,18 +13273,6 @@ "KingMario" ] }, - "Web/API/GlobalEventHandlers/ongotpointercapture": { - "modified": "2019-03-23T22:20:50.816Z", - "contributors": [ - "876843240" - ] - }, - "Web/API/GlobalEventHandlers/oninvalid": { - "modified": "2020-10-15T22:15:01.666Z", - "contributors": [ - "chenqingyue" - ] - }, "Web/API/GlobalEventHandlers/onload": { "modified": "2019-03-23T23:15:22.431Z", "contributors": [ @@ -13349,13 +13308,6 @@ "EdwinChanFullStack" ] }, - "Web/API/GlobalEventHandlers/onlostpointercapture": { - "modified": "2019-03-18T21:41:59.901Z", - "contributors": [ - "SphinxKnight", - "jvua" - ] - }, "Web/API/GlobalEventHandlers/onpause": { "modified": "2020-10-15T22:17:32.669Z", "contributors": [ @@ -45911,6 +45863,12 @@ "ziyunfei" ] }, + "conflicting/Web/API/HTMLInputElement/invalid_event": { + "modified": "2020-10-15T22:15:01.666Z", + "contributors": [ + "chenqingyue" + ] + }, "conflicting/Web/API/HTMLInputElement/select_event": { "modified": "2019-03-24T00:16:24.778Z", "contributors": [ @@ -46663,20 +46621,6 @@ "ziyunfei" ] }, - "conflicting/Web/HTTP/Headers/Expect-CT": { - "modified": "2020-10-15T21:55:02.367Z", - "contributors": [ - "shevacjs", - "WayneCui" - ] - }, - "conflicting/Web/HTTP/Headers/Expect-CT_63e560324d2c47190db4456d746ba07b": { - "modified": "2020-10-15T22:04:11.647Z", - "contributors": [ - "ujsxn", - "shevacjs" - ] - }, "conflicting/Web/HTTP/Status": { "modified": "2019-01-16T13:20:30.376Z", "contributors": [ diff --git a/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html b/files/zh-cn/conflicting/web/api/htmlinputelement/invalid_event/index.html similarity index 82% rename from files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html rename to files/zh-cn/conflicting/web/api/htmlinputelement/invalid_event/index.html index c7b61a02ba6c50..99d199de0e82d8 100644 --- a/files/zh-cn/web/api/globaleventhandlers/oninvalid/index.html +++ b/files/zh-cn/conflicting/web/api/htmlinputelement/invalid_event/index.html @@ -1,6 +1,6 @@ --- title: GlobalEventHandlers.oninvalid -slug: Web/API/GlobalEventHandlers/oninvalid +slug: conflicting/Web/API/HTMLInputElement/invalid_event tags: - API - GlobalEventHandlers @@ -8,12 +8,13 @@ - 属性 - 引用 translation_of: Web/API/GlobalEventHandlers/oninvalid +original_slug: Web/API/GlobalEventHandlers/oninvalid ---
    {{ ApiRef("HTML DOM") }}
    -

    {{domxref("GlobalEventHandlers")}} 混合的oninvalid属性 是 {{event("Event_handlers", "event handler")}} 处理{{event("invalid")}} 事件。

    +

    {{domxref("GlobalEventHandlers")}} 混合的oninvalid属性 是 {{event("Event_handlers", "event handler")}} 处理{{event("invalid")}} 事件。

    -

    invalid 事件被触发当一个从属元素被勾选 checked 并且与之前的选中方式不同。 有效的从属元素在表单之前被选中,或者在 checkValidity() 方法之后它自己的表单被调用。

    +

    invalid 事件被触发当一个从属元素被勾选 checked 并且与之前的选中方式不同。 有效的从属元素在表单之前被选中,或者在 checkValidity() 方法之后它自己的表单被调用。

    语法

    diff --git a/files/zh-cn/conflicting/web/http/headers/expect-ct/index.html b/files/zh-cn/conflicting/web/http/headers/expect-ct/index.html deleted file mode 100644 index c0ab8325426654..00000000000000 --- a/files/zh-cn/conflicting/web/http/headers/expect-ct/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Public-Key-Pins -slug: conflicting/Web/HTTP/Headers/Expect-CT -tags: - - 中间人攻击 - - 公钥 - - 响应首部 - - 安全性 -translation_of: Web/HTTP/Headers/Public-Key-Pins -original_slug: Web/HTTP/Headers/Public-Key-Pins ---- -
    {{HTTPSidebar}}
    - -

    Public-Key-Pins 是一个响应首部,其包含该 Web 服务器用来进行加密的 public {{glossary('key')}}(公钥)信息 ,以此来降低使用伪造证书进行 {{Glossary("MITM")}}  (中间人攻击)的风险。如果锚定的加密串与服务器返回的公钥不匹配,那么浏览器将会认定响应不合法,并且不会将结果展示给用户。

    - -

    更多相关信息请参考 HTTP Public Key Pinning 这篇文章。

    - - - - - - - - - - - - -
    Header type{{Glossary("Response header")}}
    {{Glossary("Forbidden header name")}}no
    - -

    语法

    - -
    Public-Key-Pins: pin-sha256="<pin-value>";
    -                 max-age=<expire-time>;
    -                 includeSubDomains;
    -                 report-uri="<uri>"
    - -

    指令

    - -
    -
    pin-sha256="<pin-value>"
    -
    引号里面的是内容是以 Base64 编码的 {{Glossary("SPKI")}}(公钥) 指纹。你可以为多个不同的公钥都设定对应的 pins。 一些浏览器将来可能也支持非 SHA-256 的哈希算法。
    -
    max-age=<expire-time>
    -
    指定以秒为单位的时间,在这段时间内,浏览器应该记住,该站点只能以这些指定的密钥进行访问
    -
    includeSubDomains {{optional_inline}}
    -
    如果该选项被指定,该规则也会应用到网站的所有子域名
    -
    report-uri="<uri>" {{optional_inline}}
    -
    如果该可选项被指定,一旦 pin 校验失败,就会发送此相关异常信息给该 URL
    -
    - -

    示例

    - -
    -

    如果设置不合理,HPKP 可能会使得用户长时间不能访问网站。因此建议也同时固定备用证书或者 CA 证书。

    -
    - -
    Public-Key-Pins:
    -  pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=";
    -  pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=";
    -  max-age=5184000; includeSubDomains;
    -  report-uri="https://www.example.org/hpkp-report"
    - -

    在这个例子里面,pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" 固定了该服务器的公钥。第二个声明pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=" 也固定了服务器的备用公钥. max-age=5184000 则是让客户端 (浏览器) 将该固定扩展信息存储两个月,这个是 IETF RFC 建议时间。同时通过includeSubDomains 的声明使得该设置对所有子域名都生效;最后, report-uri="https://www.example.org/hpkp-report" 则是定义了验证失败时异常信息发送的服务器地址。

    - -

    规范

    - - - - - - - - - - - - -
    SpecificationTitle
    {{RFC("7469", "Public-Key-Pins", "2.1")}}Public Key Pinning Extension for HTTP
    - -

    浏览器兼容性

    - -

    {{Compat("http.headers.Public-Key-Pins")}}

    - -

    相关内容

    - - diff --git a/files/zh-cn/conflicting/web/http/headers/expect-ct_63e560324d2c47190db4456d746ba07b/index.html b/files/zh-cn/conflicting/web/http/headers/expect-ct_63e560324d2c47190db4456d746ba07b/index.html deleted file mode 100644 index a06afc9c5433ba..00000000000000 --- a/files/zh-cn/conflicting/web/http/headers/expect-ct_63e560324d2c47190db4456d746ba07b/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Public-Key-Pins-Report-Only -slug: conflicting/Web/HTTP/Headers/Expect-CT_63e560324d2c47190db4456d746ba07b -tags: - - HPKP - - HTTP - - 头部 - - 安全 -translation_of: Web/HTTP/Headers/Public-Key-Pins-Report-Only -original_slug: Web/HTTP/Headers/Public-Key-Pins-Report-Only ---- -
    HTTP 响应头部Public-Key-Pins-Report-Only用于设置在公钥固定不匹配时,发送错误信息到report-uri。 但和{{HTTPHeader("Public-Key-Pins")}}不同的是,即便公钥固定异常,其允许浏览器继续访问服务器。
    - -

     

    - -

    更多信息可以查看{{HTTPHeader("Public-Key-Pins")}}参考页面和HTTP Public Key Pinning文章

    - -

     

    - - - - - - - - - - - - -
    Header type{{Glossary("Response header")}}
    {{Glossary("Forbidden header name")}}no
    - -

    语法

    - -
    Public-Key-Pins-Report-Only: pin-sha256="<pin-value>";
    -                             max-age=<expire-time>;
    -                             includeSubDomains;
    -                             report-uri="<uri>"
    - -

    指令

    - -
    -
    pin-sha256="<pin-value>"
    -
    引号里面的是内容是以 Base64 编码的 {{Glossary("SPKI")}}(公钥) 指纹。你可以为多个不同的公钥都设定对应的 pins。 一些浏览器将来可能也支持非 SHA-256 的哈希算法。
    -
    max-age=<expire-time>
    -
    该指令对 Public-Key-Pins-Report-Only 无效,客户端会忽略也不会缓存此头部。
    -
     
    -
    includeSubDomains {{optional_inline}}
    -
    如果该选项被指定,该规则也会应用到网站的所有子域名
    -
    report-uri="<uri>"
    -
    - -

         设置 Pin 验证失败报告的 URL 地址。这个指令应该和该头部一起使用,否则这个头部将是一个空操作。

    - -
    -
     
    -
    - -

    例子

    - -
    Public-Key-Pins-Report-Only:
    -  pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=";
    -  pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=";
    -  includeSubDomains;
    -  report-uri="https://www.example.org/hpkp-report"
    - -

    在这个例子里面,pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=" 固定了该服务器的公钥.。第二个声明pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=" 也固定了服务器的备用公钥。同时通过includeSubDomains 的声明使得该设置对所有子域名都生效。最后, report-uri="https://www.example.org/hpkp-report" 则是定义了在验证失败时将异常信息发送到该服务器。

    - -

    标准

    - - - - - - - - - - - - -
    SpecificationTitle
    {{RFC("7469", "Public-Key-Pins-Report-Only", "2.1")}}Public Key Pinning Extension for HTTP
    - -

    浏览器兼容

    - -

    {{Compat("http.headers.Public-Key-Pins-Report-Only")}}

    - -

    更多

    - - diff --git a/files/zh-cn/games/index.md b/files/zh-cn/games/index.md index 18637d4eafba41..ea9838ce97b1ae 100644 --- a/files/zh-cn/games/index.md +++ b/files/zh-cn/games/index.md @@ -57,8 +57,6 @@ translation_of: Games - [HTML5 Game Devs Forum](http://www.html5gamedevs.com/) - : 开发者,架构师,发布者的论坛。提出问题,获得帮助,帮助他人。 - - - [HTML5 游戏引擎](http://html5gameengine.com/) - : 眼下最流行的 HTML5 游戏框架列表,包含评分,特色和案例。 - [JSBreakouts](http://www.jsbreakouts.org/) diff --git a/files/zh-cn/games/introduction_to_html5_game_development/index.md b/files/zh-cn/games/introduction_to_html5_game_development/index.md index 660449b9067025..074558d6475694 100644 --- a/files/zh-cn/games/introduction_to_html5_game_development/index.md +++ b/files/zh-cn/games/introduction_to_html5_game_development/index.md @@ -50,8 +50,6 @@ original_slug: Games/Introduction_to_HTML5_Game_Gevelopment_(summary) - [Typed Arrays](/en-US/docs/JavaScript/Typed_arrays) - : 从 JavaScript 中访问原始二进制数据; 操纵 GL 纹理,游戏数据或其他任何东西。 - - - [Web Audio API](/en-US/docs/Web_Audio_API) - : 实时控制音频的播放,合成和操纵。 - [WebGL](/en-US/docs/WebGL) diff --git a/files/zh-cn/glossary/cross_axis/index.md b/files/zh-cn/glossary/cross_axis/index.md index 4ba59b3d32b1e7..66ea7f76db6fc0 100644 --- a/files/zh-cn/glossary/cross_axis/index.md +++ b/files/zh-cn/glossary/cross_axis/index.md @@ -31,8 +31,6 @@ original_slug: Glossary/交叉轴 - CSS 弹性容器指南:_[Aligning items in a flex container](/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout/Aligning_Items_in_a_Flex_Container)_ - CSS 弹性容器指南:_[Mastering wrapping of flex items](/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items)_ - - - [MDN Web Docs Glossary](/zh-CN/docs/Glossary) - {{Glossary("Cross Axis")}} diff --git a/files/zh-cn/glossary/flexbox/index.md b/files/zh-cn/glossary/flexbox/index.md index 80b7cf4b076573..e602b0326e7c97 100644 --- a/files/zh-cn/glossary/flexbox/index.md +++ b/files/zh-cn/glossary/flexbox/index.md @@ -37,8 +37,6 @@ Flexbox 还可以对齐主轴或交叉轴上的项目,从而提供对一组项 - CSS Flexbox Guide: _[Mastering wrapping of flex items](/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout/Mastering_Wrapping_of_Flex_Items)_ - CSS Flexbox Guide: _[Typical use cases of flexbox](/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout/Typical_Use_Cases_of_Flexbox)_ - - - [MDN Web Docs Glossary](/zh-CN/docs/Glossary) - {{Glossary("Flex")}} diff --git a/files/zh-cn/glossary/fork/index.md b/files/zh-cn/glossary/fork/index.md index 2ad1b154865a47..8cdf737ca0d3f6 100644 --- a/files/zh-cn/glossary/fork/index.md +++ b/files/zh-cn/glossary/fork/index.md @@ -20,8 +20,6 @@ Fork 在自由和开源软件的开发中很常见。因为使用 Git 或 Github - [Node.js and io.js (which have been merged together back)](https://nodejs.org/en/blog/announcements/foundation-v4-announce/) - [LibreOffice, a fork of OpenOffice](https://www.libreoffice.org/about-us/who-are-we/) - - - 基本知识 - {{interwiki("wikipedia", "Fork_(software_development)","Fork")}} on Wikipedia diff --git a/files/zh-cn/glossary/iife/index.md b/files/zh-cn/glossary/iife/index.md index 34ea41eb08ed4e..3b8c9861dc14f6 100644 --- a/files/zh-cn/glossary/iife/index.md +++ b/files/zh-cn/glossary/iife/index.md @@ -54,8 +54,6 @@ result; // "Barry" - {{interwiki("wikipedia", "Immediately-invoked function expression", "IIFE")}} 维基百科 - - - [相关术语](/zh-CN/docs/Glossary) - {{Glossary("Function")}} diff --git a/files/zh-cn/glossary/safe/http/index.md b/files/zh-cn/glossary/safe/http/index.md new file mode 100644 index 00000000000000..b67fd07b342d24 --- /dev/null +++ b/files/zh-cn/glossary/safe/http/index.md @@ -0,0 +1,39 @@ +--- +title: 安全(HTTP 方法) +slug: Glossary/Safe/HTTP +tags: + - Glossary + - HTTP + - 术语 +translation_of: Glossary/safe +--- +如果说一个 HTTP 方法是`安全`的,是指这是个不会修改服务器的数据的方法。也就是说,这是一个对服务器只读操作的方法。这些方法是安全的:{{HTTPMethod("GET")}},{{HTTPMethod("HEAD")}} 和 {{HTTPMethod("OPTIONS")}}。所有安全的方法都是{{glossary("idempotent", "幂等")}}的,但并非所有幂等方法都是安全的,例如,{{HTTPMethod("PUT")}} 和 {{HTTPMethod("DELETE")}} 都是幂等的,但不是安全的。 + +就算方法具有只读的语义,服务器也能更改它自己的数据,比如:记录这次请求的日志或者数据分析。安不安全的定义是这个方法需不需要服务器修改数据。客户端不需要服务端修改数据,也就不会给服务端造成不必要的负担。浏览器调用安全的方法不用考虑会给服务端造成什么危害,这样,服务端就能允许客户端预加载资源。网络爬虫也是依赖于安全的 HTTP 方法。 + +安全的方法并不意味着只是对服务端的静态文件的请求,服务端可以在请求的时候即时生成资源返回,只要生成资源的脚本保证是安全的即可:也就是说生成资源的时候没有额外的影响。就像在一个电商网站添加删除购物车里的物品一样。 + +服务端有正确响应安全请求动作的义务,但是像 Apache、nginx 和 IIS,并没有关于此项的强制规定。再次强调,任何应用都不应让 {{HTTPMethod("GET")}} 请求修改服务端的状态(数据)。 + +安全的请求,不会改变服务端的状态(数据): + + GET /pageX.html HTTP/1.1 + +非安全的请求方式,可能会引起服务端状态的改变: + + POST /pageX.html HTTP/1.1 + +一个幂等(idempotent)但是不安全的方法: + + DELETE /idX/delete HTTP/1.1 + +## 更多 + +### 一般了解 + +- HTTP 规范中的 [安全](https://tools.ietf.org/html/rfc7231#section-4.2.1) 定义。 + +### 技术规范 + +- 安全方法的详细解释:{{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("OPTIONS")}} +- 非安全方法的详细解释:{{HTTPMethod("PUT")}}, {{HTTPMethod("DELETE")}}, {{HTTPMethod("POST")}} diff --git a/files/zh-cn/glossary/safe/index.md b/files/zh-cn/glossary/safe/index.md index 3a3b5af74ce9a5..60e5530c6aa4f0 100644 --- a/files/zh-cn/glossary/safe/index.md +++ b/files/zh-cn/glossary/safe/index.md @@ -1,39 +1,8 @@ --- title: Safe(安全) -slug: Glossary/safe -tags: - - Glossary - - HTTP - - 术语 +slug: Glossary/Safe translation_of: Glossary/safe --- -如果说一个 HTTP 方法是`安全`的,是指这是个不会修改服务器的数据的方法。也就是说,这是一个对服务器只读操作的方法。这些方法是安全的:{{HTTPMethod("GET")}},{{HTTPMethod("HEAD")}} 和 {{HTTPMethod("OPTIONS")}}。所有安全的方法都是{{glossary("idempotent", "幂等")}}的,但并非所有幂等方法都是安全的,例如,{{HTTPMethod("PUT")}} 和 {{HTTPMethod("DELETE")}} 都是幂等的,但不是安全的。 +**安全**一词根据上下文的不同会具有不同的含义。它可以指: -就算方法具有只读的语义,服务器也能更改它自己的数据,比如:记录这次请求的日志或者数据分析。安不安全的定义是这个方法需不需要服务器修改数据。客户端不需要服务端修改数据,也就不会给服务端造成不必要的负担。浏览器调用安全的方法不用考虑会给服务端造成什么危害,这样,服务端就能允许客户端预加载资源。网络爬虫也是依赖于安全的 HTTP 方法。 - -安全的方法并不意味着只是对服务端的静态文件的请求,服务端可以在请求的时候即时生成资源返回,只要生成资源的脚本保证是安全的即可:也就是说生成资源的时候没有额外的影响。就像在一个电商网站添加删除购物车里的物品一样。 - -服务端有正确响应安全请求动作的义务,但是像 Apache、nginx 和 IIS,并没有关于此项的强制规定。再次强调,任何应用都不应让 {{HTTPMethod("GET")}} 请求修改服务端的状态(数据)。 - -安全的请求,不会改变服务端的状态(数据): - - GET /pageX.html HTTP/1.1 - -非安全的请求方式,可能会引起服务端状态的改变: - - POST /pageX.html HTTP/1.1 - -一个幂等(idempotent)但是不安全的方法: - - DELETE /idX/delete HTTP/1.1 - -## 更多 - -### 一般了解 - -- HTTP 规范中的 [安全](https://tools.ietf.org/html/rfc7231#section-4.2.1) 定义。 - -### 技术规范 - -- 安全方法的详细解释:{{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("OPTIONS")}} -- 非安全方法的详细解释:{{HTTPMethod("PUT")}}, {{HTTPMethod("DELETE")}}, {{HTTPMethod("POST")}} +{{GlossaryDisambiguation}} diff --git a/files/zh-cn/glossary/statement/index.md b/files/zh-cn/glossary/statement/index.md index 515205bd793ed7..31a028688d401e 100644 --- a/files/zh-cn/glossary/statement/index.md +++ b/files/zh-cn/glossary/statement/index.md @@ -14,5 +14,3 @@ translation_of: Glossary/Statement ### 技术参考 - [JavaScript statements and declarations](/zh-CN/docs/Web/JavaScript/Reference/Statements) - - diff --git a/files/zh-cn/learn/css/building_blocks/a_cool_looking_box/index.html b/files/zh-cn/learn/css/building_blocks/a_cool_looking_box/index.html index 40d4491f8e3104..b10d159e010c4b 100644 --- a/files/zh-cn/learn/css/building_blocks/a_cool_looking_box/index.html +++ b/files/zh-cn/learn/css/building_blocks/a_cool_looking_box/index.html @@ -47,13 +47,13 @@

    一般任务

    样式化盒子

    -

    给{{htmlelement("p")}}添加样式:

    +

    给 {{htmlelement("p")}} 添加样式: