2016-11-05 5 views
0

Ich benutze EJS als Template-Engine und frage mich, wie ich ein Skript einfügen würde, das nur auf einer Seite am Ende des Seitenlayouts benötigt wird.EJS enthalten Skript am Anfang/Ende des Seitenlayouts

Beispiel:

Layout:

<head> 
    //Scripts and stuff 
</head> 
<body> 
    <article> 
    <%-body%> // Render page here 
    </article> 
</body> 

Seite:

//This script needs to go within the head of the layout 
    //Or before the closing </body> tag in the layout, but only 
    //when this particular page is loaded. 
    <script src="onlyRequiredOnThisPageWithinTheLayout.js"></script> 
    <p>Page content</p> 

Dank!

Antwort

0

Fügen Sie Ihre Modulseite in das Artikel-Tag ein. <%- include("page.ejs") %>

innerhalb head-Tag des Layouts ein Skript schreiben <script></script> Tag zum head Tag

layout.ejs

<head> 
    <script> 
    function clean(){ 
     sc=document.querySelectorAll(".pagescript"); 
     head=document.getElementsByTagName("head"); 

     for(s=0;s<sc.length;s++){ 

      head[0].appendChild(sc[s]); 
     } 
     } 
    document.addEventListener("DOMContentLoaded", clean, false); 

    </script>  
    </head> 
    <body> 
     <article> 
     <%- include("page.ejs") %> // Render page here 
     </article> 
    </body> 

Ihre page.ejs

<script class="pagescript" src="onlyRequiredOnThisPageWithinTheLayout.js"></script> 
    <p>Page content</p> 

Ich habe genommen anhängen Schleife, um Skript-Tags anzufügen, verwenden Sie sc[0], wenn Sie nur ein Skript-Tag haben.