<html> 正常的图片<br /> <img src="http://lh3.ggpht.com/_l8FcMjS-xnI/Sb3wh8kSk6I/AAAAAAAAExc/DMUyic7Odas/screenshot_003.jpg" /> <br /> 添加透明之后<br /> <img style="filter:alpha(opacity=100);" src="http://lh3.ggpht.com/_l8FcMjS-xnI/Sb3wh8kSk6I/AAAAAAAAExc/DMUyic7Odas/screenshot_003.jpg" /> </html>
Archives for 三月, 2009
ie6下filter造成图片出现白点
//g.test()
又火星了~
<html> <script> function log( str ) { if ( window.console ) { console.log( str ); } else { alert( str ); } } var reg = /^\s*$/g; log( reg.test( ' ' ) ); log( reg.test( ' ' ) ); var reg = /^\s*$/; log( reg.test( ' ' ) ); log( reg.test( ' ' ) ); </script> </html>
加了g参数后test的行为类似exec了
http://www.w3school.com.cn/js/jsref_obj_regexp.asp
js动态加载简记
适用:页面使用大量的js做交互和ajax,然而又不像gmail,一次加载之后不会刷新页面,所以如果引入大量js就会拖慢页面的加载速度。这时如果只加载每个页面都需要初始化的js,其他js只有当需要时才动态加载进来,就会大大提高页面加载速度。
动态加载的方法:
//示例代码 dynamicLoad = function( file ) { each( file.funcs , function( i , func ) { //为可能用到的函数声明一个同名的代理函数 window[ func ] = function() { var ars = arguments; //当页面中调用到此函数时,会首先把自己注销 window[ func ] = null; //加载相应的js文件 loadFile( file.file , function() { //js加载完成之后,调用js中声明的同名函数,完成动态加载 window[ func ].apply( null , ars ); }); }; }); }; dynamicLoad({ file : 'http://xxx.com/xxx.js', funcs : [ 'chatWith' , 'showProfile' ] });
通过dynamicLoad方法注册了一个需要动态加载的函数,参数的file为需要动态加载的文件,funcs为js中实现的函数,当页面中触发调用此函数时,将动态加载对应文件。
需要解决的问题:
1 避免重复加载
这个问题很好解决,只需要做一个数组来存储已经加载的脚本,页面onload的时标记页面中已经加载的js,动态加载时判断某一脚本是否已加载,没有则加载此文件并标记为已加载。
2 在一个js中加载另一js时如何解决版本号问题
开发时写在页面里的脚本可能是xxx.js?ver=$$$,更新之后$$$会替换成对应的svn版本号,然而在js中动态加载另一文件时如何获知该js的版本号呢?
我想到的一种方法:
<script vsrc="xxx.js?ver=$$$"></script>
把页面中需要动态加载的js的src属性改成vsrc,这样就可以得到该文件的版本号
shell:创建单独的样式hack文件
不管怎么说,通过”<!–[if lte IE 6]>”的形式单独加载patch文件是一种不错的做法,用ff的用户不用为这些为ie而做的恶心patch浪费流量,页面的渲染速度也许会有所提升。
下午靖威同学跟我说,可不可以写一个脚本可以提取样式表中的hack,生成单独的hack文件,这样可以大大减少单独维护hack文件的成本。感觉想法不错,难度也不是很大,参考了一下shell说明,写了几句,先备个忘,下周有时间测试一下。。
#!/bin/bash echo "$1/csspro/" find "$1/csspro/" -name *.css | grep -v "ie[67]" > /tmp/allcss.tmp cat /tmp/allcss.tmp | xargs -i sed -i '/^$/d;s/\\{\\s/\\{/;s/\\;\\s/\\;/;s/\\s\\}/\\}/;s/\/\*.*\*\///;/^[\t ]*\/\*/,/\*\/[\t ]*$/d' {} cat /tmp/allcss.tmp | xargs -i sed -n '/* *html/p' {} >> "$1/csspro/patch/ie6.css" cat /tmp/allcss.tmp | xargs -i sed -n '/*+html/p' {} >> "$1/csspro/patch/ie7.css" cat /tmp/allcss.tmp | xargs -i sed -i '/* *html/d;/*+html/d' {} rm /tmp/allcss.tmp