EJS包含页面布局开始/结束时的脚本

时间:2016-11-05 00:38:15

标签: javascript templates ejs

我正在使用EJS作为模板引擎,我想知道如何在页面布局结束时在一个页面上包含一个脚本。

示例:

布局:

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

页:

    //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>

谢谢!

1 个答案:

答案 0 :(得分:0)

在文章标记中包含您的模块页面。<%- include("page.ejs") %>

布局的head标记内写一个脚本,将<script></script>标记附加到head标记

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>

你的page.ejs

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

我已经使用循环来附加脚本标记,如果只有一个脚本标记,则使用sc[0]