手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2011年08月的文章

HTML5拖放上传

html5中有一个特性就是以前一直常说的拖放上传,其实这个功能要实现的话真的不太难,但我对于DOM的操作并不是特别了解,因此我找了一些资料做备份
1、xheditor中的代码
2、html5的一些教程

xheditor中的代码很少,只有区区几行:

JavaScript代码[jBody是基中的一个元素对象,类似于$('#xxxdiv')]
  1. jBody.bind('dragenter dragover',function(ev){var types;if((types=ev.originalEvent.dataTransfer.types)&&$.inArray('Files', types)!==-1)return false;}).bind('drop',function(ev){  
  2.     var dataTransfer=ev.originalEvent.dataTransfer,fileList;  
  3.     if(dataTransfer&&(fileList=dataTransfer.files)&&fileList.length>0){  
  4.         var i,cmd,arrCmd=['Link','Img','Flash','Media'],arrExt=[],strExt;  
  5.         for(i in arrCmd){  
  6.             cmd=arrCmd[i];  
  7.             if(settings['up'+cmd+'Url']&&settings['up'+cmd+'Url'].match(/^[^!].*/i))arrExt.push(cmd+':,'+settings['up'+cmd+'Ext']);//允许上传  
  8.         }  
  9.         if(arrExt.length===0)return false;//禁止上传  
  10.         else strExt=arrExt.join(',');  
  11.         function getCmd(fileList){  
  12.             var match,fileExt,cmd;  
  13.             for(i=0;i<fileList.length;i++){  
  14.                 fileExt=fileList[i].fileName.replace(/.+\./,'');  
  15.                 if(match=strExt.match(new RegExp('(\\w+):[^:]*,'+fileExt+'(?:,|$)','i'))){  
  16.                     if(!cmd)cmd=match[1];  
  17.                     else if(cmd!==match[1])return 2;  
  18.                 }  
  19.                 else return 1;  
  20.             }  
  21.             return cmd;                   
  22.         }  
  23.         cmd=getCmd(fileList);  
  24.         if(cmd===1)alert('上传文件的扩展名必需为:'+strExt.replace(/\w+:,/g,''));  
  25.         else if(cmd===2)alert('每次只能拖放上传同一类型文件');  
  26.         else if(cmd){  
  27.             _this.startUpload(fileList,settings['up'+cmd+'Url'],'*',function(arrMsg){  
  28.                 var arrUrl=[],msg,onUpload=settings.onUpload;  
  29.                 if(onUpload)onUpload(arrMsg);//用户上传回调  
  30.                 for(i in arrMsg){  
  31.                     msg=arrMsg[i];  
  32.                     url=is(msg,'string')?msg:msg.url;  
  33.                     if(url.substr(0,1)==='!')url=url.substr(1);  
  34.                     arrUrl.push(url);  
  35.                 }  
  36.                 _this.exec(cmd);  
  37.                 $('#xhe'+cmd+'Url').val(arrUrl.join(' '));  
  38.                 $('#xheSave').click();  
  39.             });  
  40.         }  
  41.         return false;  
  42.     }  
  43. });  

也有这样的:HTML5拖放(Drag&Drop)API详细介绍和示例,当然这里我就不多贴代码了。不过文中最后一段是告诉我们有哪些事件可以用:

可以使用的新事件一共有这些:

dragstart
A drag has been initiated, with the dragged element as the event target.
drag
The mouse has moved, with the dragged element as the event target.
dragenter
The dragged element has been moved into a drop listener, with the drop listener element as the event target.
dragover
The dragged element has been moved over a drop listener, with the drop listener element as the event target. Since the default behavior is to cancel drops, returning false or calling preventDefault() in the event handler indicates that a drop is allowed here.
dragleave
The dragged element has been moved out of a drop listener, with the drop listener element as the event target.
drop
The dragged element has been successfully dropped on a drop listener, with the drop listener element as the event target.
dragend
A drag has been ended, successfully or not, with the dragged element as the event target.

并且注意能够被拖拽的元素一定要有这个属性:draggable=”true”

在web上面拖放一直以来都是个难题(strange beast),但是至少现在我们有一堆丰富的API了…. 所以也许这个方式会开始大行其道呢?

 

Tags: xheditor

昨天出去喝了杯咖啡

昨天。。。
大小: 39.67 K
尺寸: 461 x 376
浏览: 1117 次
点击打开新窗口浏览全图
纯属娱乐

Tags: 鬼节, 中元

苹果官方:Introduction to WebKit DOM Programming Topics

这是一篇来自苹果官方的教程,原来我也没想到过,居然可以用JS来调用Object-C中的东东。其实想想,这应该是可以,要知道,象maxthon这些浏览器,可就是早就能够调用他们的核心组件了,当然,也是用JS的。firefox也是类似。。。所以Safari应该也是可以支持的。
官方文章地址是:http://developer.apple.com/library/mac/#documentation/AppleApplications/Conceptual/SafariJSProgTopics/WebKitJavaScript.html

看看他们是怎么写的,
Important: This is a preliminary document. Although it has been reviewed for technical accuracy, it is not final. Apple is supplying this information to help you adopt the technologies and programming interfaces described herein. This information is subject to change, and software implemented according to this document should be vetted against final documentation. For information about updates to this and other developer documentation, you can check the ADC Reference Library Revision List. To receive notification of documentation updates, you can sign up for a free Apple Developer Connection Online membership and receive the bi-weekly ADC News e-mail newsletter. See http://developer.apple.com/products/for more details about ADC membership.)

还有。。。

Who Should Read This Document?

This document is designed for a number of different audiences:

  • If you are a web content developer—developing web sites and embedded JavaScript applications—you should read about Safari’s JavaScript support and how scripts operate within WebKit-based applications.

  • If you are a Cocoa and WebKit developer, you should read about how to integrate JavaScript into your WebKit views and how to enhance your user experience in doing so.

  • If you are a Dashboard developer, you should read about integrating JavaScript into your widgets to provide a better user experience and more advanced features to your users.

Organization of This Document

The topic contains the following articles:

See Also

  • Safari HTML Reference provides descriptions of HTML tags, attributes, and other markup.

  • Safari CSS Reference provides descriptions of CSS properties and constants.

  • Safari Web Content Guide provides information about designing web content for iPhone.

  • Dashboard Programming Topics provides information on the technologies available to you when creating a Dashboard widget. Additional Dashboard documents and sample code can be found in the Reference Library > Apple Applications > Dashboard.

  • Apple JavaScript Coding Guidelines provides general tips about the JavaScript programming language.

  • The Reference Library > Apple Applications > Safari section of the ADC Reference Library provides useful information on WebKit, the technology that provides Apple’s JavaScript runtime.

果然还是官方的资料最多,NND,平时搜点资料都搜不到,还是官方给的方案最多啊。

Tags: javascript, object-c, dom, webkit

HTML中尺寸对比

做网页的时候,总是会用到一些尺寸,那么这些尺寸的规格又各是什么呢?这里有个表格可以做个简单的对比,可以让你在看到这些尺寸的时候能够知道如何进行换算成自己所熟悉的尺寸单位:

 

Points

Pixels

Ems

Percent

6pt

8px

0.5em

50%

7pt

9px

0.55em

55%

7.5pt

10px

0.625em

62.5%

8pt

11px

0.7em

70%

9pt

12px

0.75em

75%

10pt

13px

0.8em

80%

10.5pt

14px

0.875em

87.5%

11pt

15px

0.95em

95%

12pt

16px

1em

100%

13pt

17px

1.05em

105%

13.5pt

18px

1.125em

112.5%

14pt

19px

1.2em

120%

14.5pt

20px

1.25em

125%

15pt

21px

1.3em

130%

16pt

22px

1.4em

140%

17pt

23px

1.45em

145%

18pt

24px

1.5em

150%

20pt

26px

1.6em

160%

22pt

29px

1.8em

180%

24pt

32px

2em

200%

26pt

35px

2.2em

220%

27pt

36px

2.25em

225%

28pt

37px

2.3em

230%

29pt

38px

2.35em

235%

30pt

40px

2.45em

245%

32pt

42px

2.55em

255%

34pt

45px

2.75em

275%

36pt

48px

3em

300%


其实本来已经发表了,但不知怎么的,文章消失了。郁闷,只好重发一遍,其实也是给自己做个参考了。

转:为什么我们程序员难晋升

来自cnbeta,有点意思,想起了以前的一些小事情
原文来自:http://cnbeta.com/articles/151368.htm,作者梁斌,文末有链接

今天看到微博上@hellodba发的一个帖子:“内部晋升越来越困难,但是外部来的大P越来越多,所以很多人都选择跳槽”,之后我从三个方面简要的进行 了回答:“外面来的总是有包装的,内部的都是肉身PK,此一输;外面来的总是小股人马,内部的一批批的,升谁都伤感情,此二输;外面来的通常都是大佬推荐 的,没有特别重大机会,人不会来,内部的就不解释了,成果都被大佬吸收,难有机会,此三输”。之后讨论不断,我也余兴未了,继续写来。

这个世界上有一类人特别苦逼,苦逼到什么程度呢?他们省吃俭用攒钱买房,结果房价越来越贵;公司外部竞争激烈,他们工作异常繁忙,披星戴月,日复一日;技 术更新行业罕见,他们要随时调整心情,随时学习知识;他们长期和机器为伍,大多比较呆傻,比较单纯;还有很多不一一例举,这一类人就是程序员。

而就是这么一类程序员过着这么苦逼的生活,在公司内部却难以获得公平的晋升机会,外来的和尚总是在不断打破平衡,甚至是刚毕业的新和尚拿得都比老和尚多,这是全行业都罕见的奇观,IT人有幸经历了。

  • 某创业公司,某个程序员要离职,老板甚至不问问他直接领导的意见,就同意了,没有挽留,之后大骂不忠诚,这个人拿3k,拿了2年,他走了以后,老板用5k雇了个新面孔,但就是不愿意给这个老人晋升,不愿意给加到哪怕是4k。
  • 某上市公司,游戏部门突然从外部空降了一个领导,原因是原大佬被挖走以后,剩下的人升谁都有意见,难以服众,不从外部请人来镇不住局面,这个人一来,大家是团结了,团结起来和这个人斗,但最后还是和解了。
  • 某国际大公司,某人伪造简历,包装的如花似玉,获得高职,工作主要有下属完成,他只需要汇众汇报即可,越混路越宽,直到某天事发,依然是高官。
  • 某IT企业,某清华同学离职时语重心长的对我说,XX(可以理解为网游,搜索,电商任意一种)是00-02年毕业的这些人清华人的机会, 我们就是比某人强十倍也没有机会,也得从下面做起,搜索的天时不属于我,此人去了某金融分析软件公司,目前是高管,同期留在某IT企业的其他同学依然过着 苦逼的生活。

举了这么多例子,我想说得是为什么不给你晋升这个问题,或者晋升很难,为什么?

1)大佬的问题

你晋升困难,最大的主观原因在你自己,最大的客观原因在你的直接上司。付责任人的说,目前很多企业的领导是不合格的,他们大多80后,没有为他人着想的思 想基础,一味的考虑自己,不顾下属,曾经我对某人说,你说你是合格的领导,你说出你下属每个员工租房在哪里,每月多少房租,我就同意你是合格的领导,结果他羞愧不言。你晋升不了,很大程度上是你的领导没有帮你,连你每月房租多少都不知道,你指望他帮助你提高技术水平,帮助你晋升?

2)大佬的大佬的问题

你大佬的大佬,level很高,他需要引入新鲜血液,他知道这个队伍缺什么,这个是他思考的问题,他需要找牛的人来补这个缺口,于是一个光鲜照人的牛人进 来了(虽然两年后也会泯为众人)给队伍带来了新鲜的血液,但你的大佬升不上去,你大佬边上的位置被这个人占了,你的位置在哪?

3)公司的问题

各大企业给员工的再教育和培训都是不尽相同的,但大多口号是一致的,在工作中锻炼成长,这句话是最扯淡的,国外很多大公司是有很完善的培训和再教育计划 的,会给员工一个充电的机会,并且给其一个完善的培训后,以便于让他在新升职的岗位上能够很好的胜任。在国内大公司都在找牛人,就是不愿意自己培养,原因 是什么,不解释,你懂得。

4)你的兄弟

很多时候让你升不了职恰恰是因为和你一起战斗的兄弟,他们工作也很不错,你升职了,他们怎么办?这也是一个平衡的问题,你很努力,为什么你没有带动你的兄 弟一起努力,你上去了,需要你这帮兄弟的支持,他们会支持你吗?曾有一个说了一句话,我觉得很值得回味,“当大家都认为你该升职了,就是你升职的时候了”,细细品味,很有道理。

5)你自己的问题

最后你升不了职是你自己的问题,每天工作很忙,没时间充电,每天工作压力很大,来不及学习,每天这个那个,一年下来碌碌无为。你提高了自己的效率了嘛?你 周围有朋友再帮你吗?你知道你要学什么嘛?你知道什么样的工作才能超出领导的期望?,你超出领导期望后却没有升职和领导沟通过吗?我曾在某企业,我周围的 几乎所有人加薪升职都是和领导沟通后才获得的。指望主动给你加薪升职,不如指望自己的沟通。

6)还是你自己的问题

你选择的这个行业是不是对的,公司是不是对的,就好像我说的这个清华的同学这个例子。如果你能耐大可以选大公司,PK到一票牛人上去,如果你能耐不大,去成熟大公司,还心理期盼高薪升职就不现实了,不如去一个有前途的中小公司,开创自己的事业。

从企业角度出发,如何创建一个合理公平的晋升机制呢?

1)第一流大佬才会招第一流的人,第二流大佬只会招第三流的人,因此公司一把手必须是第一流的,价值观才能靠谱,制度才靠谱,没熟读历史,不理解中国文化的,建议不要做公司一把手。

2)晋升的制度必须公平,面向每一个人,每一个层次,这往往很难做到,做前端的和做后台的不好比,但做前端的可以和做前端的比。必须要有公开公平的比拼,已获得升职机会。例如某公司做一个高维矩阵分解的难题,大家机会均等,性能最快,效果最好,胜出者升职,带领团队。

3)鼓励公司职员交流,传播和帮助他人的文化,一个人如果乐于助人,帮助他人提高技术水平,这个人升职升上来,大家都会顶,反之,你保守,不帮助他人,水平再牛,升职上来也没人支持。

4)可以给职员一些挑战的机会,提供更多的资源,比如某公司的闪电计划,超越了谷歌搜索效果,就是一个很好的例子,要敢于给一些勇于挑战的职员更多的资源,在严酷的战斗中考验,并提供充分弹药。

5)给予内训机会,邀请业界牛人讲座,送职员去美帝考察开会乃至工作等等。培训机会是发达国家企业的一种非常好的激励措施,一个岗位5个人培训,最好的上岗,这是一个很公平的机会,培训机构足够独立。

方法有很多,只要这第一流的大佬,心中有着这帮打生打死的兄弟,办法总是有的,不要总是考虑自己的业绩,考虑自己的乌纱帽,做到这一点很难很难,但制度不是只有这位大佬可以制定,任何职员都应该积极投身到制度建立的过程中,要敢于提出自己的观点,毕竟公司是大家的公司。

我就写这么多,我是一个十年一线程序员的身份写这篇博客的,我努力做到客观,但我相信我更多代表的是劳方立场。

作者/梁斌

Records:3812345678