浏览模式: 标准 | 列表Tag:javascript
Submitted by gouki on 2008, September 30, 10:55 PM
关于new Date().getTime()的简写方式.
原文来自cssrain,只取了其中的一小部分。http://www.cssrain.cn/demo/3/newDate.html
小结:
(1)getTime(new Date.getTime 方法)
返回指定的 Date 对象自 1970 年 1 月 1 日午夜(通用时间)以来的毫秒数。当比较两个或更多个 Date 对象时,使用此方法表示某一特定时刻。
返回值类型:Number -- 一个整数。
(2)
function now(){
return +new Date;
}
jQuery 源代码里就是使用的 +new Date ;
(3)
用来判断 google 浏览器:
if( !isNaN(Date.parse("1970.01.01")) ){
alert("This is Google Chrome!");
}else{
alert("This is NOT!");
}
结果:1和2的结果是一样的。但这个number是13位的number,和PHP中的时间戳并非同一个意义
Tags: time, jquery, gettime, date
Javascript | 评论:0
| 阅读:25931
Submitted by gouki on 2008, August 22, 9:33 AM
以前我写过一篇测试播放器的文章,当然,在我自己的网站是正常了。正好遇到一朋友需要在supesite下面为每篇文章增加不同的背景音乐,于是调试了一下。由于supesite的编辑器会自动过滤一些标签,最终我的处理方案如下:
1、先选中编辑器状态栏中的“源代码”,点击后,输入
| <div id='audio_file' style="display:none">aaa.mp3</div> |
其中,aaa.mp3就是你要播放的音乐文件,默认在根目录下的music目录里,如果你在里面建立了目录hongkong来存放香港歌英,则aaa.mp3就变成了hongkong/aaa.mp3,即在文件名前要加上目录路径,id=audio_file不能被改变,
2、取消选中源代码,继续编辑你的文章,这时候刚才的 aaa.mp3 会显示在内容里,不用理会他,成功后不会影响文件的编辑的。或者,你也可以在文件内容编辑完毕后,再选中源代码,在源代码的最上面加入这一行就行了。
3、在模版里加上相应的代码
XML/HTML代码
- <script language="JavaScript" src="http://www.xxxx.com/public/audioplayer.js"></script>
- <script>
- try
- {
- var audio = document.getElementById('audio_file');
- if(audio.innerText != ''){
- var audio_flash = 'http://www.xxxxx.com/public/player.swf';
- var audio_vars = {};
- audio_vars.soundFile = 'http://www.xxxxx.com/music/' + audio.innerText;
- audio_vars.loop = 'yes';
- audio_vars.autostart = 'yes';
- set_audioplayer( audio_flash , audio_vars );
- }
- }
- catch (e){}
-
- </script>
4、成功……现在测试
具体的代码就不提供了。网上应该是有的下载。。。。只是提供这个解决方法。
演示地址:http://www.l2foto.com/s/?action-viewnews-itemid-4
Tags: supesite, 背景音乐, mp3播放器
Software | 评论:2
| 阅读:23273
Submitted by gouki on 2008, August 17, 10:16 AM
国内很多软件开发在叫嚣着开源,但,有几个是真正做到的?最初的discuz,直到现在还是有一些目录是加密的,主要是一些API,现在又看到不少自称是开源的。请你们扪心自问,你们做到了吗?
虽然国内开发人员的素质参差不齐,但靠欺骗的手段来达到听引人的目录,你们对得起自己的良心吗??
什么是开源???看看吧。。。
开放源代码并不仅仅意味着对源代码的访问权。开放源代码软件的发布条款必须满足以下条件:
1. 自由地再发布
如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。
许可证不得从此项销售中索取使用费或其它任何费用。(理由)
2. 源代码
程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支 付合理范围之外的任何费用的手段以获得源代码---从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含 混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。(理由)
3. 派生作品
许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。(理由)
4. 作者的源代码的完整性
只有在许可证允许与源代码一同发布"补丁文件"(该"补丁文件"以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必 须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。(理由)
5. 不得歧视任何个人或团体
许可证不得歧视任何个人或者由多人组成的团体。(理由)
6. 不得歧视任何应用领域(fields of endeavor)
许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。(理由)
7. 许可证的发布
与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。(理由)
8. 许可证不能针对于一个产品
与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。(理由)
9. 许可证不能影响其它软件
许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。(理由)
» 阅读全文
Tags: php, shopnc, 开源
PHP | 评论:4
| 阅读:29875
Submitted by gouki on 2008, August 15, 11:18 PM
在这个浮躁的世界里,说实话,很难看到一两篇好的文章,我写的一般都比较垃圾,但我会尽量发现精品。在闲逛的时候发现这篇文章确实不错,虽然讲的比较简单一点。
文章是从cssrain.cn上COPY而来,原文网址为:http://item.feedsky.com/~feedsky/cssrain/~6110346/103912558/4218245/1/item.html
内容如下:
首先是最常规的方法:
XML/HTML代码
- <p id="para" title="cssrain demo!" onclick="test()" >test</p>
- <script>
- function test(){
- alert("test");
- }
- </script>
当某一天,我们知道JavaScript要跟HTML结构实现分离后,就会改了一种写法:
XML/HTML代码
- <p id="para" title="cssrain demo!">test</p>
- <script>
- function test(){
- alert("test");
- }
- window.onload = function(){
- document.getElementById("para").onclick = test;
- }
- </script>
当我们工作越来越久后,有时候我们需要对某个元素绑定多个相同的事件类型:
XML/HTML代码
- <p id="para" title="cssrain demo!">test</p>
- <script>
- function test(){
- alert("test");
- }
-
- function pig(){
- alert("pig");
- }
-
- window.onload = function(){
- document.getElementById("para").attachEvent("onclick",test);
- document.getElementById("para").attachEvent("onclick",pig);
- }
- </script>
在一段时间内,你并没发现这段代码有任何错误。
某一天,一个名叫firefox的浏览器 闯入你的视野,当我们把这段代码放到firefox中执行后,
发现并不能正常运行。 问题就这样,越来越多,然而作为一名JS程序员,这些都是必须面对的。
为了解决这段代码的平台兼容性问题,我翻翻手册,知道了firefox跟ie的区别:
firefox中注册事件使用:addEventListener方法,同时为了兼容ie,我们必须用到if ... else...
XML/HTML代码
- <p id="para" title="cssrain demo!">test</p>
- <script>
- function test(){
- alert("test");
- }
-
- function pig(){
- alert("pig");
- }
-
- window.onload = function(){
- var element = document.getElementById("para");
- if(element.addEventListener){ // firefox , w3c
- element.addEventListener("click",test,false);
- element.addEventListener("click",pig,false);
- } else { // ie
- element.attachEvent("onclick",test);
- element.attachEvent("onclick",pig);
- }
- }
- </script>
此时,代码就可以在多个平台上工作了。
但随着水平的进步,你不满足每次都去判断,你想把这个判断封装起来,以后可以直接调用:
XML/HTML代码
- <p id="para" title="cssrain demo!">test</p>
- <script>
- function test(){
- alert("test");
- }
-
- function pig(){
- alert("pig");
- }
-
- function addListener(element,e,fn){
- if(element.addEventListener){
- element.addEventListener(e,fn,false);
- } else {
- element.attachEvent("on" + e,fn);
- }
- }
-
- window.onload = function(){
- var element = document.getElementById("para");
- addListener(element,"click",test);
- addListener(element,"click",pig);
- }
- </script>
XML/HTML代码
- <p id="para" title="cssrain demo!">test</p>
- <script>
- function test(){
- alert("test");
- }
-
- function pig(){
- alert("pig");
- }
-
- function addListener(element,e,fn){
- if(element.addEventListener){
- element.addEventListener(e,fn,false);
- } else {
- element.attachEvent("on" + e,fn);
- }
- }
-
- window.onload = function(){
- var element = document.getElementById("para");
- addListener(element,"click",test);
- addListener(element,"click",pig);
- }
- </script>
至此,作为一个程序员的工作就完了。
中间我们从一个最传统,最基本的写法 , 然后实现Js和HTML的分离,然后又实现对同一个元素注册多个事件,期间,我们发现注册事件的兼容性问题。最后我们对注册事件的方法进行封装,方便以后使用。
———END——
浏览器这东西还是非常害人的。啥时候才能有统一的标准 ???
Tags: javascript, 注册
Javascript | 评论:0
| 阅读:24030
Submitted by gouki on 2008, August 2, 8:12 PM
闲来无事,到coolcode.cn上去闲逛。发现了一些比较旧的文章,以前也都看过,但,那时候没有开博,所以也就没有记录。如今博客也开了,coolcode.cn估计要成为我搜刮的对象了。
coolcode.cn的作者是andot,PHPRPC的作者,我06年年中(应该没记错)就使用了这个软件,同年放弃使用xajax,当然,现在我更多的使用jquery来操作ajax,但PHPRPC的功能不完全局限于ajax,我这里就不详谈了。先谈这篇文章。。。
无耻的分隔线:
原来,在从 PHP 中直接传递字符串给 JavaScript 时,直接用了 addcslashes,如果传递的是带有 utf-8 编码汉字的,就用 "\0..\037\042\134",如果纯 ascii 范围内的字符串,就用 "\0..\037\042\134\177..\377"。但是今天在写加密程序时发现,发现程序有时行,有时不行。后来发现原来是 \v \a 搞的。addcslashes 会把 \007..\015(八进制) 转义成 \a\b\t\n\v\f\r,而其中 \a 这个 IE 和 Firefox 都不认识,\v 这个 Firefox 认识,IE 不认识。所以我写了下面这个函数,用它可以就可以转化成 JavaScript/JScript 所认识的字符串了(其中 $flag 表示是否转义 ascii 码大于 127 的字符)。感谢五帝同学的帮助!
PHP代码
-
- function addjsslashes($str, $flag = true)
- {
- if ($flag) {
- $str = addcslashes($str, "\0..\006\010..\012\014..\037\042\047\134\177..\377");
- }
- else {
- $str = addcslashes($str, "\0..\006\010..\012\014..\037\042\047\134");
- }
- return str_replace(
- array(chr(7), chr(11)),
- array('\007', '\013'),
- $str
- );
- }
Tags: php, javascript, 进制转换
PHP | 评论:0
| 阅读:24458