HTMLScriptElement
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
HTML ã® <script> è¦ç´ 㯠HTMLScriptElement ã¤ã³ã¿ã¼ãã§ã¤ã¹ãå
¬éãã¦ãã¾ãããã㯠<script> è¦ç´ ã®åä½ãå®è¡ãæä½ããããã®ç¹å¥ãªããããã£ãã¡ã½ãããï¼é常㮠HTMLElement ããç¶æ¿ã«ãã£ã¦å©ç¨ã§ãããã®ã«å ãã¦ï¼æä¾ãã¾ãã
JavaScript ãã¡ã¤ã«ã¯ text/javascript ã® MIME ã¿ã¤ãã§æä¾ããã¾ãããããããã©ã¦ã¶ã¼ã¯å¯å¤§ã§ãããã¹ã¯ãªãããç»åå (image/*)ãåç»å (video/*)ãé³å£°å (audio/*)ãã¾ã㯠text/csv ã§æä¾ããã¦ããå ´åã®ã¿ãããã¯ããã¾ããã¹ã¯ãªããããããã¯ãããå ´åããã®è¦ç´ 㯠error ã¤ãã³ããåãåãã¾ãããã以å¤ã®å ´åã¯ãload ã¤ãã³ããåãåãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
親ã§ãã HTMLElement ããç¶æ¿ããããããã£ãããã¾ãã
HTMLScriptElement.attributionSrcå®å ¨ãªã³ã³ããã¹ãç¨-
<script>è¦ç´ ã®attributionsrc屿§ãããã°ã©ã ã§åå¾ã»è¨å®ãããã®å±æ§å¤ãåæ ãã¾ããattributionsrcã¯ãã©ã¦ã¶ã¼ã«ã¹ã¯ãªãããªã½ã¼ã¹ãªã¯ã¨ã¹ãã¨ä¸ç·ã«Attribution-Reporting-Eligibleãããã¼ãéä¿¡ãããã¨ãæå®ãã¾ãããµã¼ãã¼å´ã§ã¯ãããã¯ã¬ã¹ãã³ã¹ã§Attribution-Reporting-Register-Sourceã¾ãã¯Attribution-Reporting-Register-Triggerãããã¼ãéä¿¡ããããªã¬ã¼ã¨ãã¦ç¨ãããããããã JavaScript ãã¼ã¹ã®å¸°å±ã½ã¼ã¹ã¾ãã¯å¸°å±ããªã¬ã¼ãç»é²ãã¾ãã HTMLScriptElement.async-
ã¹ã¯ãªããã®å®è¡æ¹æ³ãè«çå¤ã§å¶å¾¡ãã¾ããã¯ã©ã·ãã¯ã¹ã¯ãªããã®å ´åã
asyncããããã£ãtrueã«è¨å®ããã¨ãæ§æè§£æã¨ä¸¦åã«å¤é¨ã¹ã¯ãªãããåå¾ãããå©ç¨ã§ããããã«ãªãã¨ããã«è©ä¾¡ããã¾ããã¢ã¸ã¥ã¼ã«ã¹ã¯ãªããã®å ´åãasyncããããã£ãtrueã«è¨å®ããã¨ãã¹ã¯ãªããã¨ãã®ä¾åé¢ä¿ããã¹ã¦ä¸¦åã«åå¾ãããå©ç¨ã§ããããã«ãªãã¨ããã«è©ä¾¡ããã¾ãã HTMLScriptElement.blocking-
ã¹ã¯ãªãããåå¾ããéã«ç¹å®ã®æä½ãå®è¡ããªããã¨ã示ãæååã§ããããã¯
<script>è¦ç´ ã®blocking屿§ãåæ ãã¦ãã¾ãã HTMLScriptElement.charset-
æååã§ãå¤é¨ã¹ã¯ãªããã®æåã¨ã³ã³ã¼ãã£ã³ã°ã表ãã¾ããããã¯
charset屿§ãåæ ãã¾ãã HTMLScriptElement.crossOrigin-
æååã§ã script è¦ç´ ã® CORS è¨å® ãåæ ãã¾ããä»ã®ãªãªã¸ã³ã®ã¹ã¯ãªããã«ã¤ãã¦ã¯ãã¨ã©ã¼æ å ±ãå ¬éããããã©ãããå¶å¾¡ãã¾ãã
HTMLScriptElement.defer-
ã¹ã¯ãªããã®å®è¡æ¹æ³ãè«çå¤ã§å¶å¾¡ãã¾ããã¯ã©ã·ãã¯ã¹ã¯ãªããã®å ´åã
deferããããã£ãtrueã«è¨å®ããã¨ãå¤é¨ã¹ã¯ãªããã¯ææ¸ãæ§æè§£æãããå¾ãDOMContentLoadedã¤ãã³ããçºè¡ããåã«å®è¡ããã¾ããã¢ã¸ã¥ã¼ã«ã¹ã¯ãªããã®å ´åãdeferããããã£ã¯ä½ã®å¹æãããã¾ããã HTMLScriptElement.event-
æååã§ãã HTML ææ¸ã§è¦ç´ ã«ã¤ãã³ããã³ãã©ã¼ãè¨å®ããããã®å»æ¢ãããæ¹æ³ã§ãã
HTMLScriptElement.fetchPriority-
ãªãã·ã§ã³ã®æååã§ããã©ã¦ã¶ã¼ãå¤é¨ã¹ã¯ãªããã®åå¾ãä»ã®å¤é¨ã¹ã¯ãªããã¨æ¯è¼ãã¦ã©ã®ããã«åªå ãããã¹ããã®ãã³ãã表ãã¾ãããã®å¤ãæå®ããå ´åã¯ã許å¯ãããå¤ã®ããããã§ãªããã°ãªãã¾ãããé«ãåªå 度ã§åå¾ããå ´åã¯
highãä½ãåªå 度ã§åå¾ããå ´åã¯lowãåªå 度ããªãå ´åã¯autoï¼æ¢å®å¤ï¼ã¨ãªãã¾ããããã¯<script>è¦ç´ ã®fetchpriority屿§ãåæ ãããã®ã§ãã HTMLScriptElement.integrity-
åå¾ããããªã½ã¼ã¹ãäºæãã¬æ¹å¤ãªãã«é ä¿¡ããããã¨ã確èªããããã«ãã©ã¦ã¶ã¼ã使ç¨ãããã¨ãã§ãããã¤ã³ã©ã¤ã³ã¡ã¿ãã¼ã¿ãæ ¼ç´ããæååã§ããããã¯
<script>è¦ç´ ã®integrity屿§ãåæ ãããã®ã§ãã HTMLScriptElement.noModule-
è«çå¤ã§ã true ãªãã° ES ã¢ã¸ã¥ã¼ã«ã«å¯¾å¿ãããã©ã¦ã¶ã¼ã«ããã¦ã¹ã¯ãªããã®å®è¡ã忢ãã¾ãã â JavaScript ã¢ã¸ã¥ã¼ã«ã«å¯¾å¿ãã¦ããªãå¤ããã©ã¦ã¶ã¼ã§ä»£æ¿ã¹ã¯ãªãããå®è¡ããããã«ä½¿ç¨ãã¾ãã
HTMLScriptElement.referrerPolicy-
æååã§ã HTML 屿§
referrerPolicyãåæ ããã¹ã¯ãªãããåå¾ããéããã®ã¹ã¯ãªããã®åå¾ãå®äºããæã«ã©ã®ãªãã¡ã©ã¼ã使ç¨ãããã示ãã¾ãã HTMLScriptElement.src-
æååã§ãå¤é¨ã¹ã¯ãªããã® URL ã表ãã¾ããããã¯
src屿§ãåæ ãã¾ããããã¯<script>è¦ç´ ã®src屿§ãåæ ãããã®ã§ãã HTMLScriptElement.text-
ãã®
<script>è¦ç´ ã®ä¸ã«ãããã¹ã¦ã®Textãã¼ãï¼ã³ã¡ã³ããªã©ã®ä»ã®ãã¼ããé¤ãï¼ã®å 容ãããªã¼é ã§é£çµããæååã§ããè¨å®ããå ´åã¯ãNode.textContentããããã£ã¨åæ§ã«åä½ãã¾ããã¡ã¢:
Document.write()ã¡ã½ããã§æ¿å ¥ãããå ´åã<script>è¦ç´ ã¯ï¼ãµã¤ãåæçã«ï¼å®è¡ããã¾ãããElement.innerHTMLã¾ãã¯Element.outerHTMLã使ç¨ãã¦æ¿å ¥ãããå ´åã¯å®è¡ããã¾ããã HTMLScriptElement.type-
æååã§ãã¹ã¯ãªããã® MIME ã¿ã¤ãã表ãã¾ããããã¯
<script>è¦ç´ ã®type屿§ãåæ ãããã®ã§ãã
éçã¡ã½ãã
HTMLScriptElement.supports_static-
ãã©ã¦ã¶ã¼ãæå®ããã種é¡ã®ã¹ã¯ãªããã«å¯¾å¿ãã¦ããå ´åã¯
trueãããã以å¤ã®å ´åã¯falseãè¿ãã¾ãã ãã®ã¡ã½ããã¯ãã¹ã¯ãªããé¢é£ã®æ©è½æ¤åºã®ããã®ã·ã³ãã«ã§çµ±ä¸ãããæ¹æ³ãæä¾ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
ç¬èªã®ã¡ã½ããã¯ããã¾ããã親ã§ãã HTMLElement ããã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
ã¤ãã³ã
ç¬èªã®ã¤ãã³ãã¯ããã¾ããã親ã§ãã HTMLElement ããã¤ãã³ããç¶æ¿ãã¦ãã¾ãã
ä¾
>ã¹ã¯ãªããã®åçãªã¤ã³ãã¼ã
ææ¸å
ã®æ°ããã¹ã¯ãªãããã¤ã³ãã¼ããã颿°ã使ãã¾ããããæ¬¡ã®ã³ã¼ãããã¹ããã <script> ã®ç´åã« <script> ãã¼ãã使ãã¾ãï¼document.currentScript ã使ç¨ï¼ããããã®ã¹ã¯ãªããã¯éåæã§å®è¡ããã¾ãã詳細ã«ã¤ãã¦ã¯ã defer ããã³ async ããããã£ãåç
§ãã¦ãã ããã
function loadError(oError) {
throw new URIError(`ã¹ã¯ãªãã ${oError.target.src} ã¯æ£ããèªã¿è¾¼ã¾ãã¾ããã§ããã`);
}
function prefixScript(url, onloadFunction) {
const newScript = document.createElement("script");
newScript.onerror = loadError;
if (onloadFunction) {
newScript.onload = onloadFunction;
}
document.currentScript.parentNode.insertBefore(
newScript,
document.currentScript,
);
newScript.src = url;
}
次ã®é¢æ°ã¯ãæ°ããã¹ã¯ãªããã document.currentScript è¦ç´ ã®ç´åã«è¿½å ããã®ã§ã¯ãªãã <head> ã¿ã°ã®åã¨ãã¦è¿½å ãããã®ã§ãã
function loadError(oError) {
throw new URIError(`ã¹ã¯ãªãã ${oError.target.src} ã¯æ£ããèªã¿è¾¼ã¾ãã¾ããã§ããã`);
}
function affixScriptToHead(url, onloadFunction) {
const newScript = document.createElement("script");
newScript.onerror = loadError;
if (onloadFunction) {
newScript.onload = onloadFunction;
}
document.head.appendChild(newScript);
newScript.src = url;
}
ãµã³ãã«ã®ä½¿ç¨æ³ã¯æ¬¡ã®éãã§ãã
affixScriptToHead("myScript1.js");
affixScriptToHead("myScript2.js", () => {
alert('ã¹ã¯ãªãã "myScript2.js" ã¯æ£ããèªã¿è¾¼ã¾ãã¾ããã');
});
ããã¹ã¯ãªãã種å¥ã«å¯¾å¿ãã¦ãããã©ããããã§ãã¯
HTMLScriptElement.supports_static ã¯ããã©ã¦ã¶ã¼ãç¹å®ã®ç¨®é¡ã®ã¹ã¯ãªããã«å¯¾å¿ãã¦ãããã©ããããã§ãã¯ããçµ±ä¸çãªä»çµã¿ãæè¦ãã¾ãã
以ä¸ã®ä¾ã§ã¯ã noModule 屿§ã®åå¨ã代æ¿ã¨ãã¦ä½¿ç¨ãã¦ãã¢ã¸ã¥ã¼ã«ã®å¯¾å¿ããã§ãã¯ããæ¹æ³ã示ãã¦ãã¾ãã
function checkModuleSupport() {
if ("supports" in HTMLScriptElement) {
return HTMLScriptElement.supports("module");
}
return "noModule" in document.createElement("script");
}
ã¯ã©ã·ãã¯ã¹ã¯ãªããã¯ãã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å¯¾å¿ãã¦ããã¨æ³å®ã§ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # htmlscriptelement > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- HTML ã®
<script>è¦ç´ - HTML ã®
<noscript>è¦ç´ document.currentScript- ã¦ã§ãã¯ã¼ã«ã¼ ï¼script ã¨ä¼¼ãã³ã¼ãã®æçã ããå¥ãªã°ãã¼ãã«ã³ã³ããã¹ãã§å®è¡ããããã®ï¼