&h..." />
標籤:

<script type="text/template">是幹什麼的,為什麼要把html寫在js中? 這是什麼編程語言風格,都能這樣用嗎?

這段代碼是我在別人的網站上看到的,很奇怪,誰能解釋一下,為什麼要這麼寫,這樣寫有什麼好處。

&

http://xxxx/css/$1.0.67/login.css" rel="stylesheet"/&>

&

http://xxxx.org/css/$1.0.67/ie6.css" rel="stylesheet"/&>

&

&

&

&

&&


這一段存放了一個模板。

在js裡面,經常需要使用js往頁面中插入html內容。比如這樣:

var number = 123;
$("#d").append("&"+number+"&")

如果html很短還好說,但是遇到描述裡面的這麼大段,直接用字元串存儲會很困難,因為不光要處理單引號,還需要很多「+」號把字元串一個個連接起來,十分的不方便。

給&設置type="text/template",標籤裡面的內容不會被執行,也不會顯示在頁面上,但是可以在另一個script裡面通過獲取,然後再通過相關的模板工具進行處理,插入到頁面中。這樣就把大段的HTML操作從js裡面分離開了。


其實這裡最主要的是為什麼會選用這個標籤吧

其實以前也有用textarea的,但是要設置隱藏,否則會被輸出

用script標籤的好處是默認不會顯示在頁面上,而且可以放置除script標籤以外所有的標籤,而顯然模板里一般不會出現script標籤,設置了type後又能保證瀏覽器不去執行它導致報錯


前端模板, 比連接字元串好用多了, 還可以使用循環判斷等語句, 減少工作量


谷歌開發者網站也是用的這種方式。

一個副產品是爬蟲爬起來稍微麻煩一點。


在ES6支持多行字元串之後,

這種寫法可以被丟進歷史了


miroshnikov/jsmart · GitHub

還蠻好用的


推薦閱讀:

程序員寫程序都是盲打,基本不用滑鼠的么?
關於現在再學WPF還有沒有必要的問題?
如何寫個GUI的windows程序?
網路傳輸中二進位數據怎麼還原為位元組?
MacBook Pro適合編程嗎?

TAG:JavaScript | 編程 |