车把脚本为什么不在body tag之外起作用

问题描述 投票:0回答:1

我有一个带有一些handlebars模板脚本的index.html文件(和同一目录中的handlebars.js文件。 。它仅在其中起作用,为什么?是否因为此时尚未渲染DOM?

这有效(但如果将带有“ script id =“ quoteTemplate” .....的零件,直到document.getElementById(..)”放置在主体下,则不起作用...:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Handlebars Tutorial</title>
    <style type="text/css">
        .redText {color: red;}
        .blueText {color: blue;}
        .greenText {color: green;}

    </style>
    <script src="handlebars-v4.7.6.js"></script>

</head>
<body>
    <h1>First handlebars tutorial...</h1>
    <div id="marcData"></div>
    <br>
    <div id="quoteData"></div>


    <script id="quoteTemplate" type="text/x-handlebars-template">
        <h3>Favorite {{name}} Quotes</h3>
        <ol>
            {{#each quotes}}
            <li>{{quote}}</li>
            {{/each}}
        </ol>
    </script>
    <script type="text/javascript">
        let quoteInfo = document.getElementById("quoteTemplate").innerHTML;

        let template = Handlebars.compile(quoteInfo);

        let quoteData = template({
            name: "Yogi Berra",
            quotes: [
                { quote: "First quote" },
                { quote: "Second quote" },
                { quote: "Third quote" },
                { quote: "Fourth quote" },
                { quote: "Fifth quote" },
                { quote: "Sixth quote" }
            ]
        });

        document.getElementById("quoteData").innerHTML += quoteData;
    </script>

</body>
<script type="text/javascript" src="src/js/first.js"></script>
</html>
javascript html tags handlebars.js
1个回答
0
投票

我很确定这是您所认为的渲染效果。

[如果您将某物放置在主体之外/之后,浏览器会“思考”,则可能只是放错了位置,并尝试像在主体内部一样处理它。

© www.soinside.com 2019 - 2024. All rights reserved.