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模板。

这种写法在某些场合可能存在一些风险,就是被代码压缩工具强奸掉。

posted @ 2013-08-04 09:20  懒人日记  阅读(3226)  评论(0编辑  收藏  举报