2010-07-13 47 views
14

我被檢查出一個HTML頁面的源和過這個html腳本標記不使用類型javascript <script type =「text/html」>?

<script id="searchItemTemplate" type="text/html"> 
    <# var rows = Math.floor((Model.RecordsPerPage - 1)/3 + 1); 
     for (var i = 0; i < rows; ++i){ 
     var startIdx = i * 3; 
     var endIdx = startIdx + 3; 
    #> 
//etc .... 
</script> 

我以前從未見過這來了。什麼是腳本type="text/html"。我不知道它是否有所作爲,但是這是在.aspx頁面上。

這是某種形式的佔位符被解析和eval()以後?
有誰知道這是什麼?
有誰可以使用這種方法解釋好處?

回答

17

具有未知內容類型的腳本元素被忽略,在這種情況下,瀏覽器不知道如何執行text/html腳本。

這是一些JavaScript模板引擎常用的技術。

參見:

+0

BTW,[Processing.js](http://processingjs.org/)也使用這種技術。 – CMS 2010-07-13 21:00:50

4

這是一個把戲,我第一次在約翰Resig的博客中看到。它被用於像拿着一個模板的東西以後被擴展。瀏覽器不會嘗試執行它。

「好處」?那麼,它比直接在Javascript代碼中保留一個字符串要好得多。因爲你在Javascript中沒有多行字符串,所以定義一個像這樣的模板是很麻煩的。

編輯 —哈哈是的,CMS已經在他的回答中鏈接了博客文章!

相關問題