JS中的HTML片段
f2er们经常在js里面写一些html模板,但是由于语法不同,没有办法啊直接将html黏贴在js中。
大部分人会这么干
var html = "<!DOCTYPE html>"+
"<html>"+
" <body>"+
" <h1>Hello, world!</h1>"+
" </body>"+
"</html>";
这种写法如果没有特殊编辑器支持,还真是让人蛋疼。
还有人这么写
var html = "<!DOCTYPE html>\ <html>\ <body>\ <h1>Hello, world!</h1>\ </body>\ </html>";
工作量减少了很多,但是还是比较麻烦,要为每行末尾加一个转义符。
这里介绍另一个方法,比较来说算是最友好的。
var html = (function () {/* <!DOCTYPE html> <html> <body> <h1>Hello, world!</h1> </body> </html> */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
利用function的toString方法,使用正则表达式过滤出html模板。
这种写法在某些场合可能存在一些风险,就是被代码压缩工具强奸掉。