Include html

HTML Imports ±â´ÉÀ» »ç¿ëÇÏ°í ½ÍÁö¸¸ ÃֽŠ¹öÀü¿¡¼­´Â À̱â´ÉÀº Áö¿øÇÏÁö ¾Ê´Â´Ù.
JQuery Load³ª W3SchoolÀÇ IncludeHTMLÀº ¿û¼­¹öÇÏ¿¡¼­¸¸ ½ÇÇàÀÌ µÈ´Ù.
À¥¼­¹ö¾øÀÌ µ¹¾Æ°¡´Â HTML Imports ±â´ÉÀ» Èä³»³»º¸ÀÚ.

¹®ÀÚ¿­¿¡ Ŭ·¡½º ½ºÅ¸ÀÏ°ú HTML Äڵ带 ´ëÀÔ ÈÄ,  HTML ÄÚµåÀÇ Property¿¡ Ãß°¡ÈÄ ÀÚ¹Ù½ºÅ©¸³Æ® includeHTMLÀ» ½ÇÇàÇÏ¸é ¹®ÀÚ¿­À» HTML Äڵ忡 Ãß°¡ÇÑ´Ù.

¹®Àå¿­À» Ŭ·¡½º ½ºÅ¸ÀÏ·Î ¸¸µå´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö´Â writeStylesÀÌ´Ù.
¹®Àå¿­À» HTML ¿ä¼Ò ÄÚµå·Î ¸¸µå´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö´Â includeHTMLÀÌ´Ù.

¸ÕÀú »ç¿ë ¹æ¹ýºÎÅÍ º¸ÀÚ.

< »ç¿ë ¹æ¹ý >

1. include-html ¼Ó¼º¿¡ Ãß°¡ÇÒ ¹®ÀÚ¿­ º¯¼ö¸¦ ÁöÁ¤ÇÑ´Ù.
<div>ÀÏÀº ÇϳªÀÌ´Ù</div>
<div include-html="markup">ÀÌ´Â µÑÀÌ´Ù</div>
<div>»ïÀº ¼ÂÀÌ´Ù</div>

2. includeHTML( ) ÇÔ¼ö°¡ ÀÖ´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÆÄÀÏÀ» Æ÷ÇÔ ½ÃŲ´Ù.
<script src="mytemplate.js"></script> 

3. markup¿¡¼­ »ç¿ëÇÒ Å¬·¡½º¸¦ writeStyles( ) ÇÔ¼ö·Î ÁöÁ¤ÇÑ´Ù.
includeHTML( ) ÇÔ¼ö´Â "include-html" ¼Ó¼ºÀ¸·Î ÁöÁ¤µÈ ¸ðµç ¼Ó¼ºÀ» ã¾Æ¼­ HTMLÀ» Ãß°¡ÇÑ´Ù.
HTML Ãß°¡´Â innerHTML¿¡ ÀÇÇØ Ãß°¡ÇÑ´Ù.
writeStyles('book_style_id', bookStyle);
includeHTML();

4. Ŭ·¡½º ½ºÅ¸ÀÏÀ» ¹®ÀÚ¿­·Î ÁöÁ¤

const bookStyle = `
    .book-style {
        display: block;
        width: 300px;
        background-color: gold;
    }
`;

5. HTML Äڵ带 ¹®ÀÚ¿­·Î ÁöÁ¤

¼Ó¼ºÀÇ ¹®ÀÚ¿­À» innerText¿¡ ´ëÀÔÇϱâ À§ÇØ varTableÀ» ¸¸µé¾î¾ß ÇÑ´Ù.
varTable¿¡ µ¿ÀÏÇÑ º¯¼öÀ̸§ÀÇ ¼Ó¼ºÀ» ¸¸µé°í º¯¼ö¸¦ ÁöÁ¤ÇÑ´Ù.

const book = {
    index: 777,
    title: 'C++ master',
    price: '30000 won'
}
const markup = `
 <div class="book-style">
    <h2>${book.title}</h2>
    <p>index = ${book.index}</p>
    <p>price = ${book.price}</p>
 </div>
`;

let varTable = {};
varTable.markup = markup;

<ÀÚ¼¼ÇÑ ÄÚµå >

writeStyles ÇÔ¼ö
function writeStyles(styleNameId, cssText) {
    var styleElement = document.getElementById(styleNameId);
    if (styleElement)
        document.getElementsByTagName('head')[0].removeChild(styleElement);
    styleElement = document.createElement('style');
    styleElement.type = 'text/css';
    styleElement.id = styleNameId;
    styleElement.innerHTML = cssText;
    document.getElementsByTagName('head')[0].appendChild(styleElement);
}

includeHTML ÇÔ¼ö
function includeHTML() {
  list = document.getElementsByTagName("*");
  for (n = 0; n < list.length; n++) {
    let element = list[n];
    let attr = element.getAttribute("include-html");
    if(attr) {
        if(varTable[attr])
            element.innerHTML = varTable[attr];
        else
            element.innerHTML = "includeHTML error: " + attr;
    }
  }
}

½ÇÇà:

"ÀÌ´Â µÑÀÌ´Ù" ¶óÀÎÀÌ markup ¹®ÀÚ¿­ÀÇ html ÄÚµå·Î ´ëüµÈ´Ù.




Å×½ºÆ® ÄÚµå:
mytemplate.js
template_test.html