ã¯ãªãããã¼ã API
ã¯ãªãããã¼ã API ã¯ãã¯ãªãããã¼ãã®ã³ãã³ã (åãåããã³ãã¼ãè²¼ãä»ã) ã«å¿çããæ©è½ããã·ã¹ãã ã¯ãªãããã¼ãã®éåæã®èªã¿åããæ¸ãè¾¼ã¿ãè¡ãæ©è½ãæä¾ãã¾ãã
ã¡ã¢:
ã¯ãªãããã¼ãã«ã¢ã¯ã»ã¹ããã«ã¯ãéæ¨å¥¨ã® document.execCommand() ã¡ã½ããããããã® API ãåªå
ãã¦ä½¿ç¨ãã¦ãã ããã
ã¡ã¢:
ãã® API ã¯ã¦ã§ãã¯ã¼ã«ã¼ã§ã¯å©ç¨ã§ãã¾ãããï¼WorkerNavigator ã«å
¬éããã¦ãã¾ããï¼ã
æ¦å¿µã¨ä½¿ç¨æ³
ã·ã¹ãã ã¯ãªãããã¼ãã¯ããã©ã¦ã¶ã¼ãåä½ãã¦ãããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã«å±ãããã¼ã¿ãããã¡ã¼ã§ãããçæéã®ãã¼ã¿ä¿åãææ¸ã¾ãã¯ã¢ããªã±ã¼ã·ã§ã³éã®ãã¼ã¿è»¢éã«ä½¿ç¨ãã¾ãã é常ãç¡åã§ä¸æçãªãã¼ã¿ãããã¡ã¼ã¨ãã¦å®è£ ããã¦ããããã¼ã¹ããããã¡ã¼ã¨å¼ã°ãããã¨ãããã¾ããç°å¢å ã®ã»ã¨ãã©ã¾ãã¯ãã¹ã¦ã®ããã°ã©ã ããå®ç¾©ãããããã°ã©ãã³ã°ã¤ã³ã¿ã¼ãã§ã¤ã¹ãéãã¦ã¢ã¯ã»ã¹å¯è½ã§ãã
ã¯ãªãããã¼ã API ã使ãã¨ãã¦ã¼ã¶ã¼ã¯ä¿è·ãããã³ã³ããã¹ãã®ä¸ã§ãã»ãã¥ãªãã£ã«é¢ããèæ ®äºé ã§æå®ãããæ¡ä»¶ãæç«ããéããããã¹ããä»ã«ãæ§ã ãªç¨®é¡ã®ãã¼ã¿ãã¯ãªãããã¼ãã«ããã°ã©ã ã§èªã¿æ¸ããããã¨ãã§ãã¾ãã
ã¤ãã³ãã¯åãåã (cut)ãã³ãã¼ (copy)ãè²¼ãä»ã (paste) æä½ãã¯ãªãããã¼ãã夿´ããçµæã¨ãã¦çºè¡ããã¾ãã
ã¤ãã³ãã«ã¯æ¢å®ã®ã¢ã¯ã·ã§ã³ããããä¾ãã° copy ã¢ã¯ã·ã§ã³ã¯æ¢å®ã§ã¯ç¾å¨ã®é¸æé¨åãã·ã¹ãã ã¯ãªãããã¼ãã«ã³ãã¼ãã¾ãã
æ¢å®ã®ã¢ã¯ã·ã§ã³ã¯ã¤ãã³ããã³ãã©ã¼ã§ä¸æ¸ããããã¨ãã§ãã¾ãã詳細ã¯åã¤ãã³ããåç
§ãã¦ãã ããã
ã¤ã³ã¿ã¼ãã§ã¤ã¹
Clipboardå®å ¨ãªã³ã³ããã¹ãç¨-
ã·ã¹ãã ã¯ãªãããã¼ãã«å¯¾ãã¦ããã¹ãããã¼ã¿ãèªã¿æ¸ãããã¤ã³ã¿ã¼ãã§ã¤ã¹ãæä¾ãã¾ãã ããã¯ä»æ§æ¸ã§ã¯ãéåæã¯ãªãããã¼ã APIãã¨å¼ã°ãã¦ãã¾ãã
ClipboardEvent-
ã¯ãªãããã¼ãã®å¤æ´ã«é¢ããæ å ±ãæä¾ããã¤ãã³ããããªãã¡
cut,copy,pasteã¤ãã³ãã表ãã¾ããããã¯ä»æ§æ¸ã§ã¯ãã¯ãªãããã¼ãã¤ãã³ã APIãã¨å¼ã°ãã¦ãã¾ãã ClipboardItemå®å ¨ãªã³ã³ããã¹ãç¨-
ãã¼ã¿ã®èªã¿æ¸ãã®éã«ä½¿ç¨ããåä¸é ç®å½¢å¼ã表ãã¾ãã
ä»ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¸ã®æ¡å¼µ
ã¯ãªãããã¼ã API ã¯ä»¥ä¸ã® API ãæ¡å¼µããæ²è¼ããã¦ããæ©è½ã追å ãã¦ãã¾ãã
-
ã·ã¹ãã ã¯ãªãããã¼ãã¸ã®èªã¿æ¸ãã¢ã¯ã»ã¹ãæä¾ãã
Clipboardãªãã¸ã§ã¯ããè¿ãã¾ãã Element: copyã¤ãã³ã-
ã¦ã¼ã¶ã¼ãã³ãã¼æä½ãè¡ããã³ã«çºè¡ãããã¤ãã³ãã§ãã
Element: cutã¤ãã³ã-
ã¦ã¼ã¶ã¼ãåãåãæä½ãè¡ããã³ã«çºè¡ãããã¤ãã³ãã§ãã
Element: pasteã¤ãã³ã-
ã¦ã¼ã¶ã¼ãè²¼ãä»ãæä½ãè¡ããã³ã«çºè¡ãããã¤ãã³ãã§ãã
ã»ãã¥ãªãã£ã®èæ ®
ã¯ãªãããã¼ã API ã¯ãã¦ã¼ã¶ã¼ãä¿è·ãããã³ã³ããã¹ãã®ã·ã¹ãã ã¯ãªãããã¼ãã¨ã®éã§ãããã¹ããä»ã®ç¨®é¡ã®ãã¼ã¿ãããã°ã©ã ã§èªã¿æ¸ããããã¨ãã§ããããã«ãã¾ãã
ãã®ä»æ§ã§ã¯ãã¯ãªãããã¼ãããèªã¿åãããã«ãã¦ã¼ã¶ã¼ãæè¿ãã¼ã¸ãæä½ãããã¨ãè¦æ±ããã¾ã (åçºã®ã¦ã¼ã¶ã¼ã®æ´»æ§åãå¿
è¦ã§ã)ã
ããã«ãèªã¿åãå¦çããã©ã¦ã¶ã¼ã OS ã®ãè²¼ãä»ãè¦ç´ ã(ãã¤ãã£ãã®ã³ã³ããã¹ãã¡ãã¥ã¼ã«ãããè²¼ãä»ãããé¸ã¶ãªã©) ã¨ã®ã¦ã¼ã¶ã¼å¯¾è©±ã«ãã£ã¦çºçãããã¨ãè¦æ±ããã¾ãã
å®éã¯ããã©ã¦ã¶ã¼ã¯ãããã®æ¡ä»¶ãæºãããªãã¦ãèªã¿åãå¦çã許å¯ãã䏿¹ã§ããããã«ä»ã®è¦æ± (権éããå¦çã®ãã³ã«ç¢ºèªãããªã©) ããããã¨ãå¤ãã§ãã
ã¯ãªãããã¼ãã«æ¸ãè¾¼ãå ´åã仿§æ¸ã§ã¯ãã¼ã¸ã権é API ã® clipboard-write 権éãæã¤ãã¨ãæå¾
ãããã©ã¦ã¶ã¼ã¯åçºã®ã¦ã¼ã¶ã¼æ´»æ§åãè¦æ±ããããããã¾ããã
ãã©ã¦ã¶ã¼ã¯ã¯ãªãããã¼ãã«ã¢ã¯ã»ã¹ããã¡ã½ããã使ç¨ããéã«ãããã«å¶éãå ããããããã¾ããã
ãã©ã¦ã¶ã¼ã®å®è£ ã¯ä»æ§ããä¹é¢ãã¦ãã¾ãã ãã®éãã¯ãã©ã¦ã¶ã¼ã®äºææ§ã®ç¯ã«ã¾ã¨ãããã¦ãããç¾å¨ã®ç¶æ ã®æ¦è¦ã¯ä¸è¨ã®éãã§ãã
Chromium ç³»ã®ãã©ã¦ã¶ã¼:
- 仿§ä¸èªã¿åãã許ããããææ¸ã«ãã©ã¼ã«ã¹ãããã¨ãã¯ã権é API ã®
clipboard-read権éãè¦æ±ãã(ã¦ã¼ã¶ã¼ã許å¯ããããæ¢ã«è¨±å¯ããã¦ãããã§) 権éã許å¯ãããå ´åã¯èªã¿åãã«æåãã¾ãã - æ¸ãè¾¼ã¿ã«ã¯
clipboard-write権éã¾ãã¯åçºã®æ´»æ§åãè¦æ±ããã¾ãã æ¨©éãä»ä¸ãããå ´åããã®æ¨©éã¯ç¶æããããã以ä¸ã®åçºã®æ´»æ§åã¯è¦æ±ããã¾ããã - ã¯ãªãããã¼ãã«ã¢ã¯ã»ã¹ãã
<iframe>è¦ç´ ã«ã¯ãHTTP ã® Permissions-Policy ã®clipboard-readã¨clipboard-writeã®æ¨©éã許å¯ããªããã°ãªãã¾ããã
Firefox ããã³ Safari:
- 仿§ä¸èªã¿åãã許ããã¦ããªãããåçºã®æ´»æ§åãè¡ãããå ´åã¯ã(1 ç§å¾ã«æå¹åããã)ãè²¼ãä»ããã®é¸æè¢ã®ã¿ãæã¤ä¸æçãªã³ã³ããã¹ãã¡ãã¥ã¼ã®å½¢ã§ã¦ã¼ã¶ã¼ã«ç¢ºèªãè¡ããã¦ã¼ã¶ã¼ããã®é¸æè¢ã鏿ããã¨èªã¿åãã«æåãã¾ãã
- æ¸ãè¾¼ã¿ã«ã¯åçºã®æ´»æ§åãè¦æ±ããã¾ãã
- åããªãªã¸ã³ã®ã¯ãªãããã¼ãã®ã³ã³ãã³ããèªã¿è¾¼ãå ´åãpaste-prompt ã¯æå¶ããã¾ããããªãªã¸ã³éã®ã³ã³ãã³ãã§ã¯æå¶ããã¾ããã
clipboard-readã¨clipboard-write権é㯠Firefox ã Safari ã§ã¯å¯¾å¿ãã¦ãã¾ãã (対å¿ããäºå®ãããã¾ãã)ã
Firefox ã® Web Extensions:
- ããã¹ãã®èªã¿è¾¼ã¿ã¯ãWeb Extension
clipboardRead権éãæã¤æ¡å¼µæ©è½ã§ã®ã¿å©ç¨ã§ãã¾ãã ãã®æ¨©éãããã°ãæ¡å¼µæ©è½ã¯åçºã®æ´»æ§åãè²¼ãä»ãã®ããã³ãããè¦æ±ããã¾ããã - ããã¹ãã®æ¸ãè¾¼ã¿ã¯ãä¿è·ãããã³ã³ããã¹ãã¨åçºã®æ´»æ§åã§å©ç¨ã§ãã¾ãã
Web Extension ã®
clipboardWrite権éã§ã¯ãåçºã®æ´»æ§åã¯è¦æ±ããã¾ããã
ä¾
>ã¯ãªãããã¼ãã¸ã®ã¢ã¯ã»ã¹
ã·ã¹ãã ã¯ãªãããã¼ãã«ã¯ãã°ãã¼ãã«ã® Navigator.clipboard ãéãã¦ã¢ã¯ã»ã¹ãã¾ãã
ãã®ã¹ããããã¯ã¯ãªãããã¼ãããããã¹ããèªã¿åããæåã«è¦ã¤ãã£ã editor ã¯ã©ã¹ãæã¤è¦ç´ ã«è¿½å ãã¾ãã
readText() ã¯ã¯ãªãããã¼ãã«ããã¹ãããªãã¨ãã«ã¯ç©ºæååãè¿ãã®ã§ããã®ã³ã¼ãã¯å®å
¨ã§ãã
navigator.clipboard
.readText()
.then(
(clipText) => (document.querySelector(".editor").innerText += clipText),
);
仿§æ¸
| Specification |
|---|
| Clipboard API and events > # clipboard-interface > |
| Clipboard API and events > # clipboard-event-interfaces > |
| Clipboard API and events > # clipboarditem > |