在JavaScript里嵌入大量字符串常量的实现方法_javascript技巧
var html =
'
'
Hello
' +'
World'
' +'
这还好,要是字符串里有不少双引号单引号,那就更麻烦了,各种转义字符看的眼花缭乱。
其实有个不怎么起眼的小技巧,就能解决这个问题。大家总认为字符串必须在"..."或'...'里面,这点没错。但还有一个地方的字符串也能当非代码语义保存下来,那就是一个function的toString,把整个函数的代码当字符串输出——其中的注释部分当然也是保留的!
所以我们写个空函数,里面就一个/**/注释,其中就是我们想要的常量内容。toString后加一个正则就可以提取我们想要的!
马上试试:
var RES_CODE = _TEXT(function(){/*
#include
int main()
{
std::cout return 0;
}
*/});
var RES_POEM = _TEXT(function(){/*
更吹落,星如雨。
宝马雕车香满路。
凤箫声动,玉壶光转,一夜鱼龙舞。
蛾儿雪柳黄金缕,
笑语盈盈暗香去。
众里寻他千百度,
蓦然回首,那人却在灯火阑珊处。
*/});
var RES_XML = _TEXT(function(){/*
*/});
function _TEXT(wrap) {
return wrap.toString().match(/\/\*\s([\s\S]*)\s\*\//)[1];
}
alert(RES_CODE);
alert(RES_POEM);
alert(RES_XML);
OK!就是Chrome里把注释每行前面的Tab去掉了,如果仅仅是放代码的话问题也不大~ 当然有个前提是字符里不能出现*/
值得注意的是,压缩代码的时会过滤注释,需要手动排除一部分。
推荐阅读
-
Android中在WebView里实现Javascript调用Java类的方法
-
js 未结束的字符串常量错误解决方法_javascript技巧
-
js实现类似jquery里animate动画效果的方法_javascript技巧
-
在光标处插入字符串的实现代码 兼容IE,Firefox_javascript技巧
-
js将字符串转成正则表达式的实现方法_javascript技巧
-
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)_javascript技巧
-
js实现类似jquery里animate动画效果的方法_javascript技巧
-
js将字符串转成正则表达式的实现方法_javascript技巧
-
JavaScript在IE和Firefox上的差异及相互替代的实现方法_javascript技巧
-
JavaScript通过字符串调用函数的实现方法_javascript技巧