äžè¬æ å ±
Chromeéçºè ããŒã«ã䜿çšããŠã³ãŒãããããã°ããŸãã

éçºè ããŒã«ãéãã³ãã³ã
ã³ã³ãœãŒã«ããã«ã«ç§»åããŠãã³ã³ãœãŒã«ã®æ©èœã䜿çšããŠããã°ã©ã ãåºåããããŒã¿ã調ã¹ãå ŽåããããŸãã[èŠçŽ ]ããã«ãèŠãŠãDOMèŠçŽ ã®ã¹ã¿ã€ã«èšå®ã«äœ¿çšãããCSSã確èªããããšããããŸãã

ã³ã³ãœãŒã«ããã«
ããããChromeéçºè ããŒã«ãããç¥ã£ãŠããŸããïŒå®éãçç£æ§ãå€§å¹ ã«åäžãããããšãã§ãã匷åãªæ©èœã¯ãããããããŸãããããŸãç¥ãããŠããªãæ©èœããããŸãã
ããã§ã¯ãããªãã圹ç«ã€ãšæãæã䟿å©ãªæ©èœã«ã€ããŠèª¬æããŸãã
1.ã¡ãã¥ãŒé ç®å®è¡ã³ãã³ã
ãŸããRunã³ãã³ããšããéçºè ããŒã«ã®ã¡ãã¥ãŒé ç®ã«ã€ããŠç°¡åã«èª¬æããŸããChromeã®ãã®ã¡ãã¥ãŒé ç®ã¯ãLinuxã®ã·ã§ã«ã®ãããªãã®ã§ããChromeãå¶åŸ¡ããã³ãã³ããå ¥åã§ããŸãã
ãã®ã¡ãã¥ãŒé ç®ã«ã¢ã¯ã»ã¹ããã«ã¯ãéçºè ããŒã«ãéããŸãããã®åŸãé©åãªããŒããŒãã·ã§ãŒãã«ãããããã«äœ¿çšã§ããŸãã
- Windowsã®å Žå-
Ctrl + Shift + Pã - MacOSã§ã¯-
Cmd + Shift + Pã
ãŸãã¯ãéçºè ããŒã«ã®ããããŒé åã®å³åŽã«ãã3ã€ã®ããããã¯ãªãã¯ããŠã衚瀺ãããã¡ãã¥ãŒãã[ã³ãã³ãã®å®è¡]ãéžæããããšãã§ããŸãã

ã³ãã³ãã¡ãã¥ãŒé ç®ã®å®è¡
ãã®åŸãã³ãã³ãããã«ãéããŸããããã«ã¯ãå€ãã®è峿·±ãããšãå®è¡ã§ããå€ãã®ã³ãã³ãããããŸãã

ã³ãã³ãããã«
ãã®ããã«ããã®ããã€ãã®ã³ãã³ãã«ã€ããŠè©±ããŸãããã
2.ã¹ã¯ãªãŒã³ã·ã§ãããäœæããããã®é«åºŠãªã¡ã«ããºã
Webéçºè ã¯ãç»é¢ã®äžéšã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãå¿ èŠãããå ŽåããããŸãããã®åé¡ã解決ããããã®éåžžã«äŸ¿å©ãªããã°ã©ã ããã§ã«ãããšæããŸããã¹ã¯ãªãŒã³ã·ã§ãããæ®ãããã®å žåçãªã¿ã¹ã¯ã®ããã€ããæ¬¡ã«ç€ºããŸãã
- ããŒãžå šäœã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ããŸãããã©ãŠã¶ãŠã£ã³ããŠã«è¡šç€ºãããŠããªãéšåãå«ããŸãã
- ç¹å®ã®DOMèŠçŽ ã«åºæã®ç»é¢é åã®ã³ããŒããã£ããã£ããŸãã
ãããã¯äžè¬çãªã¿ã¹ã¯ã§ãããããããçš®é¡ã®ã¹ã¯ãªãŒã³ã·ã§ãããœãããŠã§ã¢ã§ç°¡åã«å®è¡ã§ããããã§ã¯ãããŸããããããã«å¯ŸåŠããããã«ãäžèšã®å®è¡ã³ãã³ãã¡ãã¥ãŒã³ãã³ãã®æ©èœã䜿çšã§ããŸããç¹ã«ã次ã®ã³ãã³ãã«ã€ããŠè©±ããŸãã
- ã¹ã¯ãªãŒã³ã·ã§ãããã«ãµã€ãºã®ã¹ã¯ãªãŒã³ã·ã§ããããã£ããã£
- ã¹ã¯ãªãŒã³ã·ã§ãããã£ããã£ããŒãã®ã¹ã¯ãªãŒã³ã·ã§ãã
âäŸ
æã人æ°ã®ããJavaScriptã³ã³ãã³ãã®[äž]ã»ã¯ã·ã§ã³ ãªã©ã®ããŒãžãéããŸãã
ã³ãã³ãããŒãéãããã®äžã®ã³ãã³ããéžæããŸã
Screenshot Capture full size screenshotã

ããŒãžå šäœã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãã³ãã³ãããŒãžå šäœ
ã®ã¹ã¯ãªãŒã³ã·ã§ããããããããŠã³ããŒããã©ã«ããŒã«ç§»åããŸãã

ããŒãžå šäœã®ã¹ã¯ãªãŒã³ã·ã§ããã芧ã®
ãšãããç»åã¯éåžžã«é«ããªã£ãŠããŸãã䟿å®äžãããã§ã¯æžãããŸãããå®éãããã¯é«å質ã®ç»åã§ãã
åæ§ã«ãDOMèŠçŽ ã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãå¿ èŠãããå Žåã¯ããµãŒãããŒãã£ã®ããã°ã©ã ã䜿çšã§ããŸãããç®çã®èŠçŽ ã«æ£ç¢ºã«é¢é£ããç»åãååŸããããšã¯ã§ããŸãããããŒã ã¯ç§ãã¡ããã®åé¡ã解決ããã®ãæäŒã£ãŠãããŸã
Screenshot Capture node screenshotã
圌ãã¯ãããæ¬¡ã®ããã«äœ¿çšããŸãïŒæåã«ãèŠçŽ ããã«ã§ç®çã®èŠçŽ ãéžæããŠãããã³ãã³ããå®è¡ããŸãã

ç¹å®ã®DOMèŠçŽ ã«é¢é£ä»ããããç»é¢ã®é åã®ã¹ã¯ãªãŒã³ã·ã§ããããã£ããã£ãã
ããã¯ãåã®ã¢ãã¡ãŒã·ã§ã³ç»åã§æ®åœ±ãããšãã®ã¹ã¯ãªãŒã³ã·ã§ããã®å€èгã§ãã

DOMèŠçŽ ã®ã¹ã¯ãªãŒã³ã·ã§ãã
3.ã³ã³ãœãŒã«ã§æåŸã®æäœã®çµæãåç §ãã
ã³ã³ãœãŒã«ã¯ãã³ãŒãã®ãããã°ã«ãã䜿çšãããŸããJavaScriptã䜿çšããŠæååãéã«ããæ¹æ³ãåŠã¶å¿ èŠããããšæ³åããŠãã ãããã€ã³ã¿ãŒããããæ€çŽ¢ããŠã次ã®ã³ãŒããèŠã€ããŸããã
'abcde'.split('').reverse().join('')
ãã®ã³ãŒããã³ã³ãœãŒã«ã§å®è¡ããããšããŸããããæ£ããæ©èœããŠããããã§ãã

ã³ã³ãœãŒã«ã§ã³ãŒãããã§ãã¯ãã
ãããã£ãŠããã®ã³ãŒãã¯è¡ããå転ããããŸããããããããªãã¯ã©ã®ããã«ã«ã€ããŠæ··ä¹±ããŠãã
split()ãreverse()ããã³ã¡ãœããã®ä»äºjoin()ãã©ã€ã³ããå転ããããäžé段éã§ãããããæ£ç¢ºã«äœãåŠçãããã¯ããããŸããããããã£ãŠããã®ã³ãŒããã¹ãããã¹ã«ãŒããããšã«ããŸããæåã®ã¡ãœããããå§ããŠããã®çµæãååŸãããã®çµæã«å¯ŸããŠ2çªç®ã®ã¡ãœãããå®è¡ããŸãã

ã³ãŒãã®æ¢çŽ¢
ãããã®å®éšãå®äºãããšãå ã®ã³ãŒããã©ã®ããã«æ©èœããããçè§£ããããšãã§ããŸãã
ãããããã®ã¹ã¿ã€ã«ã§ã®äœæ¥ã«ã¯ãå€ãã®äžèŠãªã¢ã¯ã·ã§ã³ã䌎ããŸããããã§ééããç¯ãå¯èœæ§ããããããã¯ãã¹ãŠããªãåä»ã«èŠããŸããç¶æ³ãæ¹åããã«ã¯ãéçºè ããŒã«ã³ã³ãœãŒã«
$_ã§ãæåŸã«å®è¡ãããæäœã®çµæãåç
§ã§ãããããžãã¯ã倿°ã䜿çšã§ããããšãç¥ã£ãŠããã ãã§ååã§ãã

$ _ã®äœ¿çš
ã芧ã®ãšããã
$_ããã¯ç¹å¥ãªå€æ°ã§ããããã®å€ã¯åžžã«ã³ã³ãœãŒã«ã§å®è¡ãããæåŸã®æäœã®çµæãšçãããªããŸãããã®å€æ°ã¯ãã³ãŒãããããã°ãããšãã«éåžžã«åœ¹ç«ã¡ãŸãã

$ _ã®äœ¿çšäŸ
4.XHRãªã¯ãšã¹ãã®éä¿¡ãç¹°ãè¿ããŸã
ããã³ããšã³ããããžã§ã¯ãã§äœæ¥ããå ŽåãããŒã¿ãååŸããããã«ããã¯ãšã³ãã«ãªã¯ãšã¹ããéä¿¡ããããã«XHRAPIã䜿çšããå¿ èŠãããããšããããããŸãããã§ã«éä¿¡ãããXHRãªã¯ãšã¹ããåéä¿¡ããå¿ èŠãããå Žåã¯ã©ããªããŸããïŒ
åå¿è ã®éçºè ããã®åé¡ã解決ããå Žåã圌ã¯åã«ããŒãžãæŽæ°ããŸãããã ãããªã¯ãšã¹ããåéä¿¡ããããã«ããŒãžãçµ¶ããæŽæ°ãããšãæéãããããããå¯èœæ§ããããŸããå®éããããã¯ãŒã¯ããã«ã®ããŒã«ã䜿çšããŠã¯ãšãªãæäœã§ããŸãã

XHRèŠæ±å詊è¡ã³ãã³ã
ãã§ã«éä¿¡ãããXHRèŠæ±ãåå®è¡ããã«ã¯ãæ¬¡ã®æé ã«åŸããŸãã
- ãããã¯ãŒã¯ããã«ãéããŸãã
- XHRãã¿ã³ãã¯ãªãã¯ããŸãã
- ç¹°ãè¿ããªã¯ãšã¹ãã®ã³ã³ããã¹ãã¡ãã¥ãŒãåŒã³åºããŸãã
- ã¡ãã¥ãŒãã[XHRã®åç]ãéžæããŸãã
äžèšã®æé ã®ã¢ãã¡ãŒã·ã§ã³äŸã次ã«ç€ºããŸãã

XHRãªã¯ãšã¹ãã®å詊è¡
5.ããŒãžã®èªã¿èŸŒã¿ãç£èŠãã
ãã®ããã»ã¹ã®æåããæåŸãŸã§ãããŒãžãå®å šã«èªã¿èŸŒãŸãããŸã§ã«10ç§ä»¥äžãããå ŽåããããŸããããŒãžã®èªã¿èŸŒã¿äžã«æ£ç¢ºã«äœãèµ·ããããç¥ãããã«ããã®ããã»ã¹ã®ç£èŠãæŽçã§ããŸãã
Chromeéçºè ããŒã«ã§ã¯ã[ãããã¯ãŒã¯]ããã«ã®[ã¹ã¯ãªãŒã³ã·ã§ããããã£ããã£]ãã©ã°ãèšå®ããããšã§ãèªã¿èŸŒã¿ã®ããŸããŸãªæç¹ã§ããŒãžã®ã¹ã¯ãªãŒã³ã·ã§ãããæ®ãããšãã§ããŸãã

ã¹ã¯ãªãŒã³ã·ã§ããã®ãã£ããã£ãã©ã°ãšããŒãžã®èªã¿èŸŒã¿ã®ç£èŠã¹ã¯ãªãŒã³ã·ã§ããã
ã¯ãªãã¯ãããšã察å¿ããæç¹ã§å®è¡ããããªã¯ãšã¹ãã衚瀺ã§ããŸããããŒãžã®èªã¿èŸŒã¿ããã»ã¹ãèŠèŠçã«è¡šçŸããããšã§ãããŒãžã®èªã¿èŸŒã¿ã§äœãèµ·ãã£ãŠãããã以åãããæ£ç¢ºã«çè§£ã§ããããã«ãªããŸãã

ããŒãžè² è·åæ
6.JavaScript倿°ã®ã³ã³ãã³ããã³ããŒãã
JavaScript倿°ã®å€ãã³ããŒããŠãåŸã§ãã®å€ã䜿çšããããšã¯ã§ããŸããïŒãã®ãããªäœæ¥ã¯äžå¯èœã«æãããããããŸããããChromeã³ã³ãœãŒã«
copy()ã§ã¯ã倿°ã®å
容ãã¯ãªããããŒãã«ã³ããŒã§ããç¹å¥ãªã³ãã³ãã䜿çšã§ããŸãã

JS倿°ã³ã³ãã³ãã®ã³ããŒ
ãã®æ©èœã¯ãECMAScriptæšæºã§ã¯äœ¿çšã§ããŸãããChromeã®ãããã§å©çšã§ããŸãã
7.ç»åãããŒã¿URLãšããŠã³ããŒãã
WebããŒãžã«è¡šç€ºãããç»åãæäœããæ¹æ³ã¯2ã€ãããŸããæåã®æ¹æ³ã¯ãå€éšãœãŒã¹ããç»åãããŒãããããšã§ãã 2ã€ç®ã¯ãããããããŒã¿URLã®åœ¢åŒã§ç»åããšã³ã³ãŒãããããšã§ãã MDNã§ãããŒã¿URLãæ¥é èŸïŒdataã®ä»ããURLã§ããããšãããããŸãããã®ãããªURLã䜿çšãããšãå°ããªãã¡ã€ã«ãããã¥ã¡ã³ãã«çŽæ¥åã蟌ãããšãã§ããŸãã WHATWGããã®ååãåé€ãããŸã§ããããã¯ãããŒã¿URIããšåŒã°ããŠããŸããã
å°ããªç»åãããŒã¿URLãšããŠå€æããããããããŒãžã³ãŒãã«çŽæ¥åã蟌ããšãããŒãžã®èªã¿èŸŒã¿æã«è¡ãå¿ èŠã®ããHTTPãªã¯ãšã¹ãã®æ°ãæžããŸãããã®çµæãããŒãžã®èªã¿èŸŒã¿ãé«éåã§ããŸãã
Chromeã䜿çšããŠç»åãããŒã¿URLã«å€æããã«ã¯ã©ãããã°ããã§ããïŒ
以äžã¯ããã®ããã»ã¹ã®ã¢ãã¡ãŒã·ã§ã³ãã¢ã§ãã

ç»åãããŒã¿URLãšããŠã³ããŒãã
8.ãªããžã§ã¯ãã®é åã®äŸ¿å©ãªè¡šçŸ
ãªããžã§ã¯ãã®é åããããšæ³åããŠãã ãããããšãã°-ãã®ããã«ïŒ
let users = [{name: 'Jon', age: 22},
{name: 'bitfish', age: 30},
{name: 'Alice', age: 33}]
ã³ã³ãœãŒã«ã«è¡šç€ºããŠã¿ãŸãããã

ã³ã³ãœãŒã«ã«è¡šç€ºããããªããžã§ã¯ãã®é å
ã芧ã®ãšããããã®åœ¢åŒã§è¡šç€ºãããŠãããšãã«è¡šç€ºããã®ã¯ããŸã䟿å©ã§ã¯ãããŸããããããŠããã®ãããªé åãããé·ããããã«å«ãŸããèŠçŽ ãããè€éãªæ§é ãæã£ãŠããå Žåããããæ±ãããšã¯ããã«å°é£ã«ãªããŸãã
幞ããªããšã«ãChromeã«ã¯ã
table()ãªããžã§ã¯ãã®é
åããã©ãŒãããã§ããç¹å¥ãªæ©èœããããŸãã

ãªããžã§ã¯ãã®ãã©ãŒããããããé å
ãã®é¢æ°ã¯ãå€ãã®å Žåéåžžã«äŸ¿å©ã§ãã
9.èŠçŽ ããã«ã§ãªããžã§ã¯ãããã©ãã°ããŸã
å Žåã«ãã£ãŠã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¹ãäžã«ãããŒãžã®äžéšã®DOMèŠçŽ ã®äœçœ®ã倿Žããå¿ èŠããããŸãããããè¡ãããã«ãããŒãžã³ãŒãå ã®ä»»æã®HTMLèŠçŽ ãç§»åããèŠçŽ ããã«ã®æ©èœã䜿çšã§ããŸãã

èŠçŽ
ã®ãã©ãã°äžèšã®ã¢ãã¡ãŒã·ã§ã³ã¯
<div>ãèŠçŽ ããã«ã§èŠçŽ ããã©ãã°ããŠãWebããŒãžäžã®ãã®èŠçŽ ã®äœçœ®ã倿Žããæ¹æ³ã瀺ããŠããŸãã
10.ã³ã³ãœãŒã«ããçŸåšéžæãããŠããã¢ã€ãã ãåç §ãã
ã³ã³ãœãŒã«ã§äœ¿çšã§ãããã1ã€ã®ãéæ³ã®ã倿°ã«ã€ããŠè©±ããŸããããããã¯å€æ°ã§ã
$0ãããã«ãããã³ã³ãœãŒã«ãã[èŠçŽ ]ããã«ã§åŒ·èª¿è¡šç€ºãããŠããèŠçŽ ã«ã¢ã¯ã»ã¹ã§ããŸãã

$ 0ã®èŠçŽ ãåç §ãã
11.ç䌌ã¯ã©ã¹ã®èª¿æ»
ã§MDNãæ¬¡ã®çšåºŠã®æ¬äŒŒã¯ã©ã¹ãåŠã¶ããšãã§ããŸãïŒ
æ¬äŒŒã¯ã©ã¹ã¯ãã¹ã¿ã€ã«ã«èœåãæäŸïŒäŸïŒèšªåïŒãªã©ã®èšªåã®æŽå²ãªã©ã®å€éšèŠå ã«åºã¥ããŠãããªãã ãã§DOMããªãŒå ã®é¢ä¿ã«åºã¥ããŠèŠçŽ ããããªã©ã®ã³ã³ãã³ãã®ç¶æ ïŒïŒããã€ãã®èŠçŽ ã§ç¢ºèªåœ¢ç¶ïŒãŸãã¯ããŠã¹ã«ãŒãœã«ã®äœçœ®ïŒäŸïŒãããŒã¯ãããŠã¹ã«ãŒãœã«ãèŠçŽ ã®äžã«ãããã©ãããæ±ºå®ããŸãïŒã
èŠçŽ ã«ã¯ãããŸããŸãªç䌌ã¯ã©ã¹ã«é¢é£ããã¹ã¿ã€ã«ãæäŸã§ããŸãããããã®ã¹ã¿ã€ã«ããã¹ãããããã«ãç䌌ã¯ã©ã¹ãèŠçŽ ããã«ããçŽæ¥æäœã§ããŸãã

ç䌌ã¯ã©ã¹ã®ç®¡ç
âäŸ
WebããŒãžã®ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{
font-size: 150px;
}
div:hover{
color: red;
}
div:active{
color: blue;
}
div:focus{
color: brown;
}
</style>
</head>
<body>
<div>hello world</div>
</body>
</html>
ç䌌ã¯ã©ã¹ã®ã¹ã¿ã€ã«ã確èªããå¿ èŠããããŸãããããè¡ãã«ã¯ãèŠçŽ ããã«ã䜿çšã§ããŸãã

ç䌌ã¯ã©ã¹ã¹ã¿ã€ã«ã®èª¿æ»
12.ã¯ã€ãã¯é衚瀺èŠçŽ
ããŒãžã¹ã¿ã€ã«ããããã°ãããšããå€ãã®å ŽåãèŠçŽ ãé衚瀺ã«ããå¿ èŠããããŸãããããã§ããã ãæ©ãè¡ãã«ã¯ãèŠçŽ ãéžæããŠããŒããŒãã®ããŒãæŒãã ã
Hã§ãã

èŠçŽ ããã°ããé衚瀺
ãã
visibility: hidden !important;ã«ããã察å¿ããèŠçŽ ã«ã¹ã¿ã€ã«ã远å ãããŸãã
13.DOMèŠçŽ ãžã®åç §ãäžæã°ããŒãã«å€æ°ã«ä¿åãã
ã³ã³ãœãŒã«ã§DOMèŠçŽ ãžã®åç §ããã°ããååŸããå¿ èŠãããå Žåã¯ã次ã®äžé£ã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããŸãã
- ã¢ã€ãã ãäžã€éžã¹ã
- ãããå³ã¯ãªãã¯ããŠãã³ã³ããã¹ãã¡ãã¥ãŒã衚瀺ããŸãã
- ã¡ãã¥ãŒãã[ã°ããŒãã«å€æ°ãšããŠä¿å]ã³ãã³ããéžæããŸãã

DOMèŠçŽ åç §ãäžæçãªã°ããŒãã«å€æ°ãšããŠä¿åãã
Chromeéçºè ããŒã«ã®ããŸãç¥ãããŠããªãæ©èœã®ãã¡ã䜿çšããŠãããã®ã¯äœã§ããã
