小记:iPhone网页上有用的两段代码
[ 2008-10-06 by CNLEI ]
iPhone尺寸:
320x480
限制页面宽度:
自动滚屏隐藏地址栏:
参考网站:
http://MoAge.com
320x480
限制页面宽度:
<meta id="viewport" name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
自动滚屏隐藏地址栏:
<script type="application/x-javascript">
addEventListener("load",function() {
setTimeout(hideURLbar, 0);
}, false);
function hideURLbar(){
window.scrollTo(0, 1);
}
</script>
addEventListener("load",function() {
setTimeout(hideURLbar, 0);
}, false);
function hideURLbar(){
window.scrollTo(0, 1);
}
</script>
参考网站:
http://MoAge.com
SWF 防反翻译的一段代码
[ 2008-09-12 by CNLEI ]
用SWFDecompiler进行反翻译时,不断弹出浏览器窗口,然后导致SWFDecompiler出错被强行关闭
if (_root._url.indexOf("www.cnlei.com") == -1) {
setInterval(function(){
getURL("http://www.cnlei.com", "_blank");
}, 10);//每10毫秒弹窗一次
}
setInterval(function(){
getURL("http://www.cnlei.com", "_blank");
}, 10);//每10毫秒弹窗一次
}
如果你没有足够的时间远游,那么在京郊或市内转转也不错。以下是北京18个区县的众多景点,供参考。
关于JS中变量的显式申明和隐式申明
[ 2008-09-06 by CNLei ]
当我们使用访问一个没有声明的变量时,JS会报错;
而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量。
示例一:
附注:
JS中变量申明分显式申明和隐式申明。
在函数中使用var关键字进行显式申明的变量是做为局部变量;
而没有用var关键字,使用直接赋值方式声明的是全局变量。
而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量。
示例一:
<script type="text/javascript">
<!--
function Hello(){
alert(msg); //访问未声明的变量msg, JS会报错
}
Hello();
//-->
</script>
示例二:<!--
function Hello(){
alert(msg); //访问未声明的变量msg, JS会报错
}
Hello();
//-->
</script>
<script type="text/javascript">
<!--
function Hello(){
msg="Hi,I\'m LEI."; //隐式申明变量msg, JS不会报错
alert(msg);
}
Hello();
//-->
</script>
<!--
function Hello(){
msg="Hi,I\'m LEI."; //隐式申明变量msg, JS不会报错
alert(msg);
}
Hello();
//-->
</script>
附注:
JS中变量申明分显式申明和隐式申明。
在函数中使用var关键字进行显式申明的变量是做为局部变量;
而没有用var关键字,使用直接赋值方式声明的是全局变量。
CSS代码压缩与格式化
[ 2008-09-06 by CNLei ]
呵呵,发现只要几行JS代码就可实现。
应用演示:
http://www.cnlei.com/lab/lCSSCoder/
打包下截:
http://www.cnlei.com/lab/lCSSCoder/lCSSCoder.rar
var lCSSCoder={
format : function(s){//格式化代码
s=s.replace(/\s*([\{\}\:\;\,])\s*/g,"$1");
s=s.replace(/\,[\s\.\#\d]*{/g,"{");
s=s.replace(/([^\s])\{([^\s])/g,"$1 {\n\t$2");
s=s.replace(/([^\s])\}([^\n]*)/g,"$1\n}\n$2");
s=s.replace(/([^\s]);([^\s\}])/g,"$1;\n\t$2");
s=s.replace(/;\s*;/g,";");//清除连续分号
return s;
},
pack :function(s){//压缩代码
s=s.replace(/\/\*(.|\n)*?\*\//g,"");//删除注释
s=s.replace(/\s*([\{\}\:\;\,])\s*/g,"$1");
s=s.replace(/\,[\s\.\#\d]*\{/g,"{");//容错处理
s=s.replace(/;\s*;/g,";");//清除连续分号
return s;
}
};
format : function(s){//格式化代码
s=s.replace(/\s*([\{\}\:\;\,])\s*/g,"$1");
s=s.replace(/\,[\s\.\#\d]*{/g,"{");
s=s.replace(/([^\s])\{([^\s])/g,"$1 {\n\t$2");
s=s.replace(/([^\s])\}([^\n]*)/g,"$1\n}\n$2");
s=s.replace(/([^\s]);([^\s\}])/g,"$1;\n\t$2");
s=s.replace(/;\s*;/g,";");//清除连续分号
return s;
},
pack :function(s){//压缩代码
s=s.replace(/\/\*(.|\n)*?\*\//g,"");//删除注释
s=s.replace(/\s*([\{\}\:\;\,])\s*/g,"$1");
s=s.replace(/\,[\s\.\#\d]*\{/g,"{");//容错处理
s=s.replace(/;\s*;/g,";");//清除连续分号
return s;
}
};
应用演示:
http://www.cnlei.com/lab/lCSSCoder/
打包下截:
http://www.cnlei.com/lab/lCSSCoder/lCSSCoder.rar
Google浏览器之初体验
[ 2008-09-03 by CNLei ]
很早之前就听说Google在开发浏览器,今天终于看到对外发布了。于是马上下载了一个下来体验,刚一打开就发现很喜欢这款设计风格上简洁大方的浏览器:
除了“前进”、“后退”、“刷新”常用按钮外,其余非常的按钮统统隐藏起来,尽可能地使可视区最大化了。
不管是浏览器也好,还是其它产品开发也罢,往往都会提供非常多的功能,而实际上用户真正常用的很少。
而在设计界面时,只需把用户最常用的功能体现出来就行;
至于非常用的功能,用户要用的话他会自己去找--设计者只需要提供相应的入口。
呵呵,刚下载还没多久,仅仅是从视觉感官上的一些体验;话又说回来,每多出来一种浏览器,对于网站开发者尤其是前面开发者而言,就需要多兼容一种,也就意味着开发成本的提高。在JS兼容性方面的差异还有待以后的观察体验了:)
说了这么多,看一下我的截图效果吧:
需要说一下的,Google浏览器在加载图片(尤其是大图片)的方式是边加载边显示,而不是像IE、FireFox等等是全部加载完后再显示出图片,在加载过程中可以极大地缓和用户因等待而不耐烦的情绪
大家可以通过下面这个地址对比一下Google浏览器与IE加载图片的显示过程:
http://www.cnlei.com/naruto/comic/01/
除了“前进”、“后退”、“刷新”常用按钮外,其余非常的按钮统统隐藏起来,尽可能地使可视区最大化了。
不管是浏览器也好,还是其它产品开发也罢,往往都会提供非常多的功能,而实际上用户真正常用的很少。
而在设计界面时,只需把用户最常用的功能体现出来就行;
至于非常用的功能,用户要用的话他会自己去找--设计者只需要提供相应的入口。
呵呵,刚下载还没多久,仅仅是从视觉感官上的一些体验;话又说回来,每多出来一种浏览器,对于网站开发者尤其是前面开发者而言,就需要多兼容一种,也就意味着开发成本的提高。在JS兼容性方面的差异还有待以后的观察体验了:)
说了这么多,看一下我的截图效果吧:
需要说一下的,Google浏览器在加载图片(尤其是大图片)的方式是边加载边显示,而不是像IE、FireFox等等是全部加载完后再显示出图片,在加载过程中可以极大地缓和用户因等待而不耐烦的情绪
大家可以通过下面这个地址对比一下Google浏览器与IE加载图片的显示过程:
http://www.cnlei.com/naruto/comic/01/








