Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

偶然看到一个项目,script标签里面嵌入html标签,没接触过这样的,哪位老哥解释一下这种...

        <script type="text/itpl" id="tpl_readonly">
                <div class="field_line">
                    <div class="field_key"><%=data.key%>:</div>
                    <div class="field_content readonly test">
                        <%if(data.type == 'text' || data.type == 'textarea'){%>
                            <span class="editable" dbk="<%=data.dbk%>"><%=data.html%></span>
                        <%}else{%>
                            <%=data.html%>
                        <%}%>
                    </div>
                    <div class="clear"></div>
                </div>
        </script> 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
309 views
Welcome To Ask or Share your Answers For Others

1 Answer

当script标签写了type且不是JavaScript对应type的时候,就相当于一个自定义的不可见标签,内容不会展示,但是dom是存在的,这种特性经常用来作为字符串模板引擎,放置模板的地方。就跟在js里面定义一个

string = script.innerHTML //直接把字符串写在这里或者引入dom的innerHTML是一样的。

主要历史原因是:
以前的js中没有类似与字符串模板 `` 这样的多行字符串标识,你要在js里面定义多行字符串很麻烦,要么在每行结尾加转义符,要么用引号和 + 来拼接,而且有时候还会有一些特殊字符需要转移,可读性和可维护性都很差。 这样把这种需要频繁修改维护的字符串模板放在一个更合适的地方就有必要了。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...