
Macã®ãã·ã§ãŒãã«ãããã®ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã®æŠèŠ
ã»ãšãã©ã®WebããŒãžã§ã¯JavaScriptã䜿ã£ãŠã¹ã¯ãªãããèšè¿°ãããŠããŸããJavaScriptã¯ãã¢ãã¡ãŒã·ã§ã³ãã€ã³ã¿ã©ã¯ãã£ãã¡ãã¥ãŒããããªåçãªã©ã®åçãªãšãã§ã¯ããäœãåºãããã°ã©ãã³ã°èšèªã§ããéåžžãWebãµã€ãã®è¡šç€ºäžã«JavaScriptããŠãŒã¶ã«è¡šç€ºãããããšã¯ãããŸããããã ãããWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ãå«ãã·ã§ãŒãã«ãããæ§ç¯ããŠSafari ã¢ããªããå®è¡ãããšãWebããŒãžã®JavaScriptãå¶åŸ¡ã§ããŸãã
WebããŒãžã§ã«ã¹ã¿ã ã®JavaScriptãå®è¡ããã·ã§ãŒãã«ããã«ã¯ãããŸããŸãªçšéããããŸããäŸãã°ãææ¥ã®æéå²ãæœåºããŠã«ã¬ã³ããŒã¢ããªã«è¿œå ããããœãŒã·ã£ã«ã¡ãã£ã¢ã°ã«ãŒãã®ã¡ã³ããŒããŒã¿ãæžãåºããŠã¹ãã¬ããã·ãŒãã«è¿œå ãããªã©ãWebããŒãžããç¹å®ã®ããŒã¿ãååŸããŠã¿ã¹ã¯ã«çµã¿èŸŒãã·ã§ãŒãã«ãããäœæã§ããŸãã
ãŸããWebããŒãžã®ããã¹ãã®ãã©ã³ãã倿Žããããããªã®åçé床ã倿Žãããªã©ãWebããŒãžã倿Žã§ããã·ã§ãŒãã«ãããäœæã§ããŸããã·ã§ãŒãã«ããããJavaScriptãå®è¡ããåã«ãèšå®ãæå¹ã«ããå¿ èŠããããŸããMacã®ãã·ã§ãŒãã«ãããã§ã®é«åºŠãªãã©ã€ãã·ãŒããã³ã»ãã¥ãªãã£èšå®ãåç §ããŠãã ããã
WebããŒãžã§JavaScriptãå®è¡ããã·ã§ãŒãã«ããã®äœ¿ãæ¹ã«ã€ããŠã¯ãMacã®ãã·ã§ãŒãã«ãããã®ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã䜿ããåç §ããŠãã ããã
WebããŒãžã®ããŒã¿ã®ååŸã«ã€ããŠ
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã§ã¯ãç¹å®ã®æ¡ä»¶ã«äžèŽãããã¹ãŠã®èŠçŽ ãåã蟌ãã§ãããããããç¹°ãè¿ãåŠçããŠããŒã¿ã§ã¿ã¹ã¯ãå®è¡ïŒãŸãã¯ããããããã«èª¿æ»ïŒããããšã§ãWebããŒãžããããŒã¿ãååŸã§ããŸãã
äŸãã°ãWebããŒãžã®ãã¹ãŠã®ç»åèŠçŽ ã®ãªã¹ããäœæããã«ã¯ã以äžã®ã¹ã¯ãªããã䜿çšããŸã:
var elements = document.querySelectorAll("img");
ãã1ã€ã®äŸãšããŠãclassããpostãã®ãã¹ãŠã®èŠçŽ ãååŸããã«ã¯ã以äžã®ã¹ã¯ãªããã䜿çšããŸã:
var elements = document.querySelectorAll(".post");
NodeListãäœæãããããšã以äžã®ãããªã¹ã¯ãªããã䜿ã£ãŠããããã®èŠçŽ ãç¹°ãè¿ãåŠçã§ããŸãïŒèŠçŽ ãããã«çµã蟌ãã ããèŠçŽ ãããŒã¿æ§é ã«è¿œå ãããããŸãïŒã
var elements = ...;
for (let element of elements) {
// ...
}
WebããŒãžã®åŠççµæã®ã¯ãšãªãŒã«ã€ããŠè©³ããã¯ãhttps://developer.mozilla.org/Selectorsããã³https://developer.mozilla.org/SelectorAllãåç §ããŠãã ããã
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã®å ¥å
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ãžã®å ¥åã¯ãã¢ã¯ãã£ããªSafariã®WebããŒãžã§ããå¿ èŠããããŸããã€ãŸããå ±æã·ãŒãïŒSafariã§ã¯å ·äœçã«SFSafariViewControllerãŸãã¯ASWebAuthenticationSessionïŒããã·ã§ãŒãã«ãããå®è¡ããå¿ èŠããããŸãã
å ±æã·ãŒãããã·ã§ãŒãã«ãããå®è¡ããããšãSafari ã¢ããªããã®å ¥åãã·ã§ãŒãã«ããã®æåã®ã¢ã¯ã·ã§ã³ã«æž¡ãããŸãã
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ãžã®å ¥åã¯Safariã®WebããŒãžã§ããå¿ èŠããããŸãããããžãã¯å€æ°ã䜿ã£ãŠã¢ã¯ã·ã§ã³ã«è¿œå ããŒã¿ãæ¿å ¥ããããšãã§ããŸããäŸãã°ãïŒã®ã£ã©ãªãŒã«ããïŒåç»ã®åçé床ã倿Žããã·ã§ãŒãã«ããã«ã¯ãWebããŒãžäžã®åç»ã倿ŽãããWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ãå«ãŸããŸãããããªã®åçé床ããé床ã倿°ã«ãã£ãŠå¶åŸ¡ãããŸãã
Safariããã·ã§ãŒãã«ãããå®è¡ããæ¹æ³ã«ã€ããŠã¯ãMacã§äœæ¥äžã«ã·ã§ãŒãã«ãããå®è¡ãããåç §ããŠãã ããã
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã®åºå
ããŒã¿ãè¿ãã«ã¯ãJavaScriptã§å®äºãã³ãã©ïŒcompletion(result)
ãªã©ïŒãåŒã³åºãå¿
èŠããããŸããéåžžãJavaScriptã¯éåæãã¿ãŒã³ã§äœ¿çšãããããããã®åŒã³åºãã¯æå³çã«åæçã§ã¯ãããŸããããã®æ¹æ³ã«ãããã¢ã¯ã·ã§ã³ãéåæçã«å®äºã§ããŸããäŸãã°ã以äžã®ã¹ã¯ãªããã¯æå¹ã§ã:
window.setTimeout(function() {
completion(true);
}, 1000);
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã®åºåã¯ã以äžãå«ãæå¹ãªJSONããŒã¿åã§ã:
String
Number
ããŒã«å€ïŒç/åœïŒ
é åïŒã»ãã®ä»»æã®æå¹ãªJSONåãå«ãïŒ
èŸæžïŒã»ãã®ä»»æã®æå¹ãªJSONåãå«ãïŒ
Null
æªå®çŸ©
ãã·ã§ãŒãã«ãããã§ã¯ãJavaScriptãšã·ã§ãŒãã«ããã¢ããªã®éã§éä¿¡ããããã«ãæ»ãå€ãå
éšã§èªåçã«ãšã³ã³ãŒããããããã³ãŒãããããããŸããã€ãŸããå®äºãã³ãã©ãåŒã³åºãåã«JSON.stringify(result)
ãåŒã³åºãå¿
èŠã¯ãããŸããã
æ»ãå€ã¯JSONã§ãããããæ»ãå€ãé©åã«æ©èœããªãããšããããŸããäŸãã°ã颿°ãNodeã«ã¯JSONãšã³ã³ãŒããããå®çšçãªè¡šçŸãå«ãŸããŸããããã®å Žåã¯ãå¿ èŠãªJSONäºæã®å€ãå«ãé åãŸãã¯èŸæžãäœæããããšãããããããŸãã
泚èš: JavaScriptã®ãªããžã§ã¯ãã¯åã«èŸæžãªã®ã§ãåºæ¬ãªããžã§ã¯ãã¯é©åã«JSONã«å€æãããŸãã
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ããããŒã¿ãè¿ããããªãå Žåã¯ã颿°ã®åŒæ°ãæå®ããã«completion()
ãåŒã³åºãããšãã§ããŸãïŒundefined
ã¯æå¹ãªåºåã§ããããïŒãããã¯ãcompletion(undefined)
ã®åŒã³åºããšåçã§ãã
JSONã«ã€ããŠè©³ããã¯ãMacã®ãã·ã§ãŒãã«ãããã§ã®JSON䜿çšã®æŠèŠãåç §ããŠãã ããã
Nodeã«ã€ããŠè©³ããã¯ãhttps://developer.mozilla.org/Nodeãåç §ããŠãã ããã
颿°ã«ã€ããŠè©³ããã¯ãhttps://developer.mozilla.org/Functionsãåç §ããŠãã ããã
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã®æéå¶é
ãWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã¯ãSafariã®ãã¹ãŠã®JavaScriptæ©èœæ¡åŒµãšåæ§ã«æéå¶éãé©çšããããããã§ããã ãçŽ æ©ãå®äºããå¿ èŠããããŸããåæé¢æ°ã䜿çšãã以äžã®ãããªJavaScriptã¯ãæéå ã«å®äºããªãå ŽåããããŸã:
window.alert()
window.prompt()
window.confirm()
2ç§ä»¥äžã®ã¿ã€ã ã¢ãŠããäŸ:
window.setTimeout(function() { completion(); }, 5000);
JavaScriptãæéå¶éãè¶ ãããšãã·ã§ãŒãã«ãããå®è¡ããŠãå®äºããããJavaScriptã¿ã€ã ã¢ãŠãããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
æ§æãšå®è¡æãšã©ãŒã®åŠç
Safariã§ãµããŒããããä»»æã®æ§æã䜿ã£ãŠããWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³å ã§JavaScriptãèšè¿°ã§ããŸãã
ã·ã§ãŒãã«ããã¢ããªã§ã¯ãSafariæ©èœæ¡åŒµããã·ã§ãŒãã«ãããå®è¡ããåã«ããWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã§åºæ¬çãªæ§æãã§ãã¯ãå®è¡ããŠãšã©ãŒãæ€åºã§ããŸãã
ããã¹ããã£ãŒã«ããžã®ã¹ã¯ãªããã®å ¥åäžã«ãæ§æã®åŒ·èª¿è¡šç€ºã«ãã£ãŠãèšè¿°äžã®JavaScriptãæå¹ã§ããããšã確èªã§ããŸããäŸãã°ãæååã®æ«å°Ÿã«åŒçšç¬Šãå ¥ãå¿ãããšããã®æååã®åŸãã«ãããã¹ãŠã®ããã¹ãã匷調衚瀺ãããŸãã
ã¹ã¯ãªããã®æ§æãæå¹ã§ãå®è¡æãšã©ãŒãå«ãŸããå Žåã¯ããWebããŒãžã§JavaScriptãå®è¡ãã¢ã¯ã·ã§ã³ã«ãã£ãŠäŸå€ããã£ããããã衚瀺ãããŸããäŸãã°ãååšããªã倿°ãŸãã¯é¢æ°ïŒshortcuts.completion()
ãªã©ïŒãã¹ã¯ãªããã§åç
§ãããŠããå Žåã¯ãå®è¡æã«ãšã©ãŒã衚瀺ãããŸãã