26

Mac下Firefox的Flashfirebug插件造成Firewowks无法打开的问题

上周突然无法启动Fireworks,每次打开Fireworks在loading之后就进入到了假死状态。值得强制退出。 然后重装了N遍Fireworks以及整个Adobe CS5套件,问题依旧。 实在崩溃,于是 Google (Firework CS5 for Mac lion)了下,第一条记录就是: Help! Fireworks CS5 hangs after Lion upgrade Turns out that a flashfirebug file kills the ability of Fireworks CS5, CS5.1 on Macs running Lion to start up: <a href=”http://forums.adobe.com/message/3929927#3929927″ rel=”nofollow”>http://forums.adobe.com/message/3929927#3929927</a> Flashfirebug (a Firefox extension that I’d forgotten I even had) also creates potential issues with Flashbuilder 4.x, [...]

24

IE6下ajax跨域请求JS无效的bug

情况说明: 1、监听A标签的click事件 2、ajax跨域请求php 3、回调php传回的json数据 4、渲染数据 环境:标准的php + Apache + MySql 问题与说明: 1、IE6下无法回调,其他所有浏览器都没有问题; 代码方面: 1、网站中存在多处ajax调用;前端JS代码已经封装,只是传递的url地址和callback不同而已; 2、php中的跨域方式也已经封装,也就是网站所有的ajax请求都是同一个方法; /* ———————————— */ 重写了JS和PHP代码,参照网上的资料重新配置了服务器,问题依旧。 百思不得其解,突然直觉告诉我是否跟绑定的click事件有关。 因为我在页面里写了另外一个ajax用来回调当前登录的用户名,并没有在IE6下出现问题。 好,现在把事件监听去掉,直接写到a标签里面再试试: 问题依旧,继续修改: 竟然OK了,把onclick去掉重新写回到事件监听里面,也OK!~ 可我实在是讨厌这个井号,还是喜欢地址栏干干净净的。 只好在监听事件里面做些手脚了,其实很简单,在事件的结尾处增加一个 return false; 即可: 好吧,我承认整个问题其实就出在了void(0)上,之后会抽空讲解下有关void的问题,其实网上有很多相关的文章可以参考。

09

简单的Javascript获取顶级域名方法

今天需要在框架中设置一个变量,用于存放顶级域名。 开始只是通过location.host取出域名来,但是并没有考虑顶级域的问题。 今天在Goole了一大堆之后,大部分都是正则匹配,而且匹配的不是很好。 还有考虑域名后缀的问题。 自己随便搞了一个比较简单的(只考虑:com、net、org、cn、cc、me……等这种一级顶级域,而不考虑:com.cn、net.cn、org.cn这种二级顶级域) 代码如下:

19

类Pinterest网站

瀑布流网站又可以叫做类Pinterest网站,因为是Pinterest.com第一个使用这种布局方法展示内容,流行之后效仿者众,国内就有以下这些: 淘宝哇哦 http://wow.taobao.com/  凡客达人 http://star.vancl.com/  花瓣网 http://huaban.com/ 国内首批模仿pinterest的成功者。同美丽说一样融资成功的C2C案例。 知美网 http://www.zhimei.com/ 美丽说 http://www.meilishuo.com 蘑菇街 http://www.mogujie.com  码图网http://www.markpic.com 发现啦 http://www.faxianla.com 拼范网 http://www.pinfun.com/ 迷尚网 http://www.mishang.com  33号铺:http://33pu.net/ 拼范:http://www.pinfun.com/ 搜道-秀:http://show.sodao.com/ Mark之:http://markzhi.com/ 花瓣:http://huaban.com/ 迷尚:http://www.mishang.com/ 码图网:http://www.markpic.com/ 堆糖:http://www.duitang.com/ Idsoo:http://idsoo.com/ 布兜:http://www.budoou.com/ Topit.me:http://www.topit.me/ weheartit:http://weheartit.com/ 另外,一些购物类推荐网站身上,也多有Pinterest的影子,比如凡客达人、美丽说、蘑菇街(book)、淘宝哇哦、新鲜网等。 VIA.me http://via.me/ (墙)

07

开始重新关注这个孤单的blog

又是很长一段时间没有来更新了,还是觉得应该沉淀沉淀会比较好些。

24

一个简单的jQuery事件冒泡实例

今天一个负责奥数网的朋友问我一个简单的问题,就是点击出现下拉列表,再点击消失(点击空白处也同样消失),如图: 用到了jQuery的取消事件冒泡的方式:event.stopPropagation(); 代码如下: 参照:http://hi.baidu.com/liquorbar/blog/item/59a6d0f3c8232c1eb17ec542.html

30

jQuery1.6 一些特性

jQuery1.6发布 提升性能重写属性模块 据jQuery官网消息,5月3日JQuery 1.6正式发布了,主要改动包括几处性能和跨浏览器兼容性的改进,包括了对属性(Attribute)模型的重要重写。 同时透露,在发布之前jQuery已经着手开发jQuery1.7版本,有任何jQuery1.7版的开发建议可以上官方网站提交建议,jQuery欢迎任何个人或团队测试并给出jQuery1.7新版本的开发建议。 jQuery 1.6官方下载地址: http://code.jquery.com/jquery-1.6.js http://code.jquery.com/jquery-1.6.min.js Microsoft CDN 下载: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js 新版本中的部分重要改进: attr()、val()和data()方法有了更好的性能; 在attr()方法中支持Boolean属性; 添加了钩子函数,允许对attr()和val()方法进行扩展; map()方法添加了对对象的支持(将JavaScript对象的属性映射到函数) 允许使用相对值(“+=”,“-=”)更新CSS; 添加了deferred.always(), deferred.pipe()方法,减少了代码量,提高了代码易读性; 同步动画 – 现在所有动画都同步到相同的时间间隔. 使用新的浏览器功能,动画也更顺畅; find(),closest()和is()可接收所有的DOM元素和JQuery对象作为参数。 所有这些新特性连同整个bug修复列表在官方博文中都有详细说明。 不幸的是,其中包含了部分破坏性的变更,团队已经在官方更新中用单独的章节强调了它们: 变更 JQuery 1.5.2 示例 JQuery 1.6 示例 data()方法使用破折号创建驼峰格式。 data-max-value=”15″ 创建{ max-value: 15 } data-max-value=”15″ 创建{ maxValue: 15 } 区分了Property与Attribute。attr()方法现在不能用于获取preperty的值。为了处理property的值,引入了prop()和removeProp()方法。 如果复选框被选中,checkbox.attr(“checked”)返回(true) checkbox.attr(“checked”)返回空字符串。 要判别是否选中,需在事件处理程序中使用 $(this).prop(“checked”)或 $(this).is(“:checked”)。 不出意外的话,第二项变更将会影响到现有打算升级到1.6的那些项目。 这一版本是在1.5发布后3个月及1.5.2发布后1个月推出的。目前1.7的工作已经开始了,JQuery团队已经接受了功能建议书。 主要代码修改为: [...]

10

8个对于Web设计和开发人员非常有用的在线工具

导读:作者Henry Jones写了一篇《8 Useful Online Tools for Web Designers and Developers》,现将译文《8个对于Web设计和开发人员非常有用的在线工具》转载,以下是文章内容: 在工作中借助一些非常好用的工具可以让你专注于更重要的事情,进而提高工作效率。本文收集了一些设计和开发相关的在线工具,分享给大家,希望对你有帮助。 ProCSSor ProCSSor是一个很不错的CSS代码美化工具,它可以帮助你很轻松的把代码转换成很美观。 jsFiddle JsFiddle有多种用途,其中一个用法就是可以在线编辑HTML, CSS 和JavaScript片段,而且代码可以分享,还可以嵌入到你的博客中等等。 Frame Box Frame Box是一个非常好用的用于在线分享线框图(wireframes)的工具。 Spritebox Spritebox是一个所见即所得的工具,帮助Web设计者迅速而轻松地从一张精灵图片(CSS Sprit Image)创建CSS类和ID选择符样式。这里涉及到一项技术叫CSS Sprites,在国内很多人叫CSS精灵,它是的基本原理是使用CSS的背景系列属性的组合进行背景图片的精确定位。 CSS3 Generator 这是一个简单的跨浏览器CSS3样式生成器,可以生成你想要的任何值。 Super Conversion Button 这个工具可以帮助你瞬间生成一个美观的试用(Try it now)按钮。 wordmark.it 这个工具之前曾介绍过,可以帮助你直观的查看当前电脑上安装了哪些字体。 0 to 255 网页设计师Shaun Chapman设计开发了0To255.com平台,让人们更简单、方便、快捷地选取合适的颜色。 译文链接:http://www.cnblogs.com/lhb25/archive/2011/02/08/1949787.html 原文链接:8 Useful Online Tools for Web Designers and Developers

10

jQuery 1.5的改进细节

导读:作者GrayZhang写了一篇关于jQuery 1.5的文章《jQuery1.5的改进细节》,他总结出jQuery 1.5 beta1改进的内容,以下是文章内容: jQuery 1.5 beta1出来了,从学习跟进上来说,这一次已经比较晚了(我竟然不知道1.5什么时候出的alpha,就这么beta了)。 这个1.5版本最大的更新是AJAX的完全重写,提供了更强的可扩展性。但是受制于精力和篇幅,对新的AJAX的分析还是放到下回,本篇先简单介绍一下细节方面的改进。 jQuery._Deferred和jQuery.Deferred 首先不得不说这两个新生事物,因为他们是作为基础设施存在,不把这两个东西讲明白了,有些问题根本没办法解释。 首先,jQuery.Deferred是jQuery._Deferred的增强版,因此对于这个问题,从jQuery._Deferred入手,就能说明一大半的问题。 什么是Deferred?从字面上看,我的第一反应是“延迟加载”,首字母大写的应该是“类型”的定义,所以这大概是一个“透明提供延迟加载功能”的类型吧。然而实际上,虽然确实带有那么一点点“延迟”的意思,这个东西却不是用来实现延迟加载的。 简单来说,jQuery._Deferred是一个函数队列,他的作用有以下几点: 1. 保存若干个函数。 2. 在特定的时刻把保存着的函数全部执行掉。 3. 执行过后,新进来的函数会立刻执行。 感觉是不是和啥东西很像?对,jQuery的ready函数就是这样的逻辑,实际中jQuery 1.5中的ready函数也确实被嫁接到这上面去了。 jQuery._Deferred提供下面的接口: 1. done:function(fn1, fn2, …)的形式,用于把函数添加到队列中。 2. fire:function(context, args)的形式,使用context指定this对象,args指定参数,调用队列中所有函数。fire被调用后,_Deferred会进入 isResolved状态,未来对done的调用不会再保存函数,而是直接调用函数。 3. resolve:相当于调用fire(this, arguments),一个简化的方法。 4. isResolved:用来判断_Deferred是否在isResolved状态,具体参考前面的fire函数的解释。 5. cancel:取消掉整个队列,这样不管未来是不是fire,队列中的函数都不会再被调用。 说明白了jQuery._Deferred,再来看看jQuery.Deferred。这个东西其实就是2个_Deferred组成的,第一个称为 deferred,用于保管“正常”状态下的函数;第二个称为failDeferred,用于保管“出错”状态下的函数。同时 jQuery.Deferred提供了一些新的接口: 1.then:function(done, fail)的形式,把done添加进deferred,把fail添加进failedDeferred。 2. fail:相当于failDeferred的done函数。 3. fireReject:相当于failDeferred的fire函数。 4. reject:相当于failDeferred的resolve函数。 5. isRejected:相当于failDeferred的isResolved函数。 同时jQuery.Deferred取消了cancel函数。 那么这个是啥用的呢?有“正常”和“出错”2个状态,同时又是异步的,很容易就能想到……对,给AJAX用的,在下一篇分析中再详细说明。 jQuery.ready的变化 因为有了jQuery._Deferred这个东西,jQuery.ready函数变成依赖于函数队列,具体的变化有: 原来的readyList变量已经不再是一个数组,而变成了jQuery._Deferred对象。 [...]

10

jQuery1.5发布

美国时间1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期开发完成,可以下载使用。压缩版本jQuery Minified 29KB,不压缩版本jQuery Regular(用于阅读和调试)207KB。由于jQuery已经成为目前最流行的JavaScript库,得到广泛的支持,新版本的发布当然非常引人注目。 jQuery创始人John Resig在CSDN TUP活动上演讲(相关报道) 另外,微软和Google也为jQuery 1.5提供了CDN支持,可以直接导入: 微软:http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.min.js Google:https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js (发稿时为止尚未上线) 新版本的主要改进可以参见变更日志:http://api.jquery.com/category/version/1.5/。 John Resig总结了几点比较引人注目的变化。 1. Ajax重写 Ajax模块完全进行了重写。新增一个jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如JSONP请求,jXHR对象也可以进行处理。(详情可以参见:jQuery.ajax文档) 此外,系统的可扩展性大大增强,可以附加各种数据处理器、过滤器和传输机制,为开发新的Ajax插件提供了方便。(详情参见:Ajax扩展文档) 2. 延迟对象 延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此现在通过jQuery编写Ajax程序将自动获得这一功能。 开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。 例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了: // Assign handlers immediately after making the request, // and remember the jxhr object for this request var jxhr = $.ajax({ url: “example.php” [...]