随笔分类 - Jscript&Dhtml开发

围观腾讯云输入法如何回发用户输入
摘要:   太久没有写博客了,这个懒惰的惯性实在是太强大。这两天不说说360和QQ的事情,就显得很out了,但是说来说去却又很鸡毛。另外我怎么没有看到什么弹窗呢,听说好不热闹啊,TM/MSN和MSE用户艰难的表示鸭梨很大。腾讯云输入法回传用户输入数据,在这个节骨眼上被逮到,还真算给力。阅读全文

posted @ 2010-11-11 14:44 birdshome 阅读(37667) | 评论 (90) 编辑

将Banner美观的放置于博客首页上
摘要:   自从alimama推出了方便的按时段展示付费的banner广告位后,我发现博客园中有不少的blog都放上了这种广告位。不过有些广告位放的位置虽然是首页的顶部,但是看起来却十分的不美观。dudu同学为了大家能方便定制自己的blog,开放了一个页首和页尾html嵌入区段,所以我们可以将首页的banner放置的更加美观些。阅读全文

posted @ 2007-10-26 12:48 birdshome 阅读(4091) | 评论 (13) 编辑

https页面中再次出现莫名的安全警告
摘要:   上个月费半天劲搞定了一个https页面中莫名其妙的安全警告,结果今天又被Tester逮到了一个。这个似乎比上一次哪个更有莫名其妙一点点,当然这个安全警告也是一个不能稳定复现的问题。从具体场景来看,说是IE的问题也行,说是实现上的问题似乎也可以。阅读全文

posted @ 2007-09-13 20:30 birdshome 阅读(3974) | 评论 (3) 编辑

https页面中出现莫名其妙的安全警告
摘要:   在IE中访问一个https的页面,这是一个相对比较安全的操作,所以IE会要求这个页面内的所有内容皆来自于安全的域。这时候要是页面中有http的资源,比如图片、脚本、页面(frame或iframe中)等,在IE的默认设置下我们就会得到一个内容安全的警告窗口。而今天遇到的这个警告可以说是莫名其妙到无语。阅读全文

posted @ 2007-08-09 20:05 birdshome 阅读(6448) | 评论 (6) 编辑

如何避免IE7中Zoom功能放大滚动条
摘要:   由于现在显示器越来越大17'、19'甚至20'都很普通了,并且显示器的分辨率也越来越高,使用1280x1024的用户已经高于使用800x600的用户(根据本站统计)。原有的大量为800x600 9pt字体以及一些为1024x768 9pt字体设计的网页已经非常过时了。所以Zoom功能逐渐成为了浏览器的必备功能。阅读全文

posted @ 2006-11-26 22:40 birdshome 阅读(4903) | 评论 (5) 编辑

模态窗口被IE 7给糟蹋得不成样子了
摘要:   IE 7 Vista风格的UI在目前的xp风格下,真是难看。给人的感觉就是像一个蹩脚、花哨的共享软件,拼凑了很多"漂亮"的元素,实际上却和其目前环境的风格格格不入。如果说我这样的片面看法是因为审美惯性所致,那么IE 7对模态窗口不遗余力地糟蹋,真是让人无语了。阅读全文

posted @ 2006-10-21 00:57 birdshome 阅读(8725) | 评论 (47) 编辑

最亲密接触Dhtml&JScript开发细节
摘要:   本文只是一个入口,它分类整理了从2004年底到今天接近两年的时间里,我在DHtml&JScript开发领域学习、研究,以及所遇到和已解决的相关开发问题。总文章数超过了150篇,以此作为本blog访问量达到1,000,000的人次的纪念。阅读全文

posted @ 2006-10-17 13:58 birdshome 阅读(32656) | 评论 (48) 编辑

鸟食轩1,000,000人次访问量的纪念
摘要:   一个基本见证了“博客园”起步阶段的个人博客——鸟食轩,迎来了它的100万人次访问量。这一刻,心中的很多想法和话语去很难自如表达。我只能说,这是一个带给我自己欢乐、辛苦和责任的地方,她留下了我一段人生的脚印。阅读全文

posted @ 2006-10-16 16:03 birdshome 阅读(4216) | 评论 (45) 编辑

JScript中的undefined和"undefined"
摘要:   JScript中用于表示未定义的underfined标识符到底是表示什么未定义?它和"undefined"(包括"在内)又有什么区别和联系呢?为什么有的时候可以使用undefined来和变量做比较,而有的时候又不行呢?阅读全文

posted @ 2006-10-14 12:09 birdshome 阅读(22685) | 评论 (19) 编辑

对Web页面元素的绝对唯一引用方法
摘要:   我们知道要在Web页面中引用一个HTML元素,最简单的方法就是使用getElementById方法,或其类似的一组getElementsByXxx方法。可是这里需要注意的是,这些方法其实都不能完全绝对的唯一确定对一个元素的引用。阅读全文

posted @ 2006-09-28 20:16 birdshome 阅读(6150) | 评论 (8) 编辑

IE6 Hotfix MS-042将导致其Crash!
摘要:   近来Test Team和部分Devs发现,在某些时候使用我们产品中的右键菜单会导致IE 6.0(sp1)直接Crash掉。从不同机器上IE不断Crash的情况来看,这应该可以确定是IE的问题,而不是偶然的机器环境导致的问题。阅读全文

posted @ 2006-09-12 12:18 birdshome 阅读(3702) | 评论 (20) 编辑

Web开发中的Drag&Drop完全手册
摘要:   这几天做了一些drag&drop操作方面的工作,在这里把一些注意事项记录下来,算是给自己备个忘,也给需要做类似工作的人留个树阴。这里要讨论的drag&drop是指使用IE提供的内置机制,而不是使用鼠标模拟的那种"假"drag&drop,比如移动一个div或span的效果那种。阅读全文

posted @ 2006-07-22 23:52 birdshome 阅读(19433) | 评论 (24) 编辑

理解并解决IE的内存泄漏方式[翻译4]
摘要:   这段时间挺忙,不过还好终于圆满提交了产品的一个重要feature,Enterprise Overall Dashboard,有空再介绍一下。关于这个IE内存泄漏虽然是越来越郁闷,不过郁闷归郁闷,还是因该要有个善始善终,于是把最后一节翻完了放上来,这也好是个完整的系列。 阅读全文

posted @ 2006-06-30 00:14 birdshome 阅读(12347) | 评论 (3) 编辑

怎样在Web开发中完美控制IE标题栏
摘要:   IE以及任何目前浏览器的标题栏,原本都应该是由<title>这个HTML标签来控制的,当然现在仍然也是。只是目前的鬼趋势是,你最好不要再刷新你的网页页面了,然后还需要接受用户的任意蹂躏。这也就是传说中神龙见首不见尾,杀人于无影无形的悖时Ajax技术!阅读全文

posted @ 2006-06-23 00:34 birdshome 阅读(17927) | 评论 (20) 编辑

理解并解决IE的内存泄漏方式[翻译3]
摘要:   这一节非常的让人郁闷,不管是翻译过程还是文章内容本身。居然对DOM的这样简单操作区别都可以带来这么大的泄漏问题,真的是没有语言了。看完后欢迎说说你的感受,我的感受附在了文尾。阅读全文

posted @ 2006-06-17 22:00 birdshome 阅读(14686) | 评论 (16) 编辑

理解并解决IE的内存泄漏方式[翻译2]
摘要:   大家节日快乐!俺就继续这个IE内存泄漏的主题来作为节日礼物了,并且相当欢迎大家来一起讨论。这一节讲Closures引起的内存泄漏,最后还是决定把Closure翻译成了闭包或闭包函数。而且又在KB中看到一个对Closures的解释,它是这么说的:阅读全文

posted @ 2006-06-01 21:55 birdshome 阅读(13648) | 评论 (10) 编辑

理解并解决IE的内存泄漏方式[翻译]
摘要:   这篇文章其实已经看了有些日子了,并且最近的一些开发都在尽量的遵循文中的原则。可是目前的情况是代码规模稍微大点以后,IE的内存泄漏还是很严重,于是我非常生气(倒没啥后果)觉得该把这篇文章挖出来批批。为了方便批斗,所以决定先给翻译成中文,结果在精读以后,发现每个泄漏方式的描述和避免,作者几乎都留了一手,所以这么看来文章又都对了,没啥可批的啦。只是让我想起啦真的刘一手。。。阅读全文

posted @ 2006-05-28 20:46 birdshome 阅读(26594) | 评论 (10) 编辑

让您的Ajax应用加载数据时界面友好
摘要:   Ajax火啊,火到了居然Loading Icons都有很多人专门提供的地步。下面是我同事给我介绍的一些提供Ajax Activity Indicators的网站,共享给大家,以便让我们的Ajax应用具有更好的用户体验。阅读全文

posted @ 2006-05-25 13:12 birdshome 阅读(16692) | 评论 (26) 编辑

IE解析完全相同html代码的不同表现
摘要:   昨天晚上一不小心被IE折磨惨了,明明在*.htm中显示非常完美的HTML代码,原样放入*.aspx文件中后,就完全歇菜啦!俺把doctype也折腾了个遍,还是丝毫不得要领。难道是传说中的rpwt?! 如果您有任何讲解和建议,请不吝赐教。阅读全文

posted @ 2006-05-23 12:43 birdshome 阅读(11183) | 评论 (21) 编辑

网页中单一表格横纵表头锁定的细节
摘要:   五·一之前捣鼓了一个可以锁定横纵表头的HTML表格,不过那天急着回家就只给了一个demo示例。这不长假过后又挺忙活,一拖就给拖到周末了。这个东西虽然不是什么新奇的玩意,不过里面的细节还是有不少,所以有知其然并希望知其所以然的博友,欢迎来一起讨论讨论。阅读全文

posted @ 2006-05-13 00:44 birdshome 阅读(23218) | 评论 (14) 编辑

绝对的单表格支持横纵表头锁定示例
摘要:   使用css锁定表格column的header是Web开发中很经典的一个trick,这个问题在THIN同学的这篇文章中有较多的讨论。下面的这个实现示例主要是在前人的基础上进行了整合和打磨,可以不太谦虚地说是目前最sexy的表头锁定实现。当然你一定要甩蛋拍砖,如果是有改进建议的砖头,那是相当的欢迎!。阅读全文

posted @ 2006-05-01 14:10 birdshome 阅读(16973) | 评论 (20) 编辑

关于使用runtimeStyle属性问题讨论
摘要:   当我们在IE中使用IE提供的DOM时,我们会发现关于style的相关属性有三个分组,它们分别是style、runtimeStyle和currentStyle。关于这个三种style的作用和基本用途,我曾经在这篇文章中有讲过,但随着越来越深入的使用,总算对怎么使用runtimeStyle属性有了一些自己的心得。阅读全文

posted @ 2006-04-24 12:54 birdshome 阅读(11462) | 评论 (4) 编辑

按阅读习惯来高效排列字符串的脚本
摘要:   对于字符串的排序,我们知道是比较相同index位置的字符的值来进行的。这样的排序有个问题,就是当被排序的字符串的内容是有数字顺序的,而且还不等长就比较的郁闷了。我们在xp以前的操作系统的资源管理器里,就会常常看到这样的文件名序列:阅读全文

posted @ 2006-03-24 15:15 birdshome 阅读(1892) | 评论 (9) 编辑

Ajax基石脚本异步并发调用参数传递
摘要:   在Ajax开发框架中,最基本的划分是服务器端和客户端。服务器端相对来说比较简单,只要是可以开发动态网页的语言都可以胜任;客户端浏览器就是JScript/JavaScript的天下了,好像没有看到有VBScript做的Ajax客户端库,就算它只支持IE。由于客户端依赖于脚本并运行在浏览器中,似乎比服务器端的可实现和可管理性还要差些。阅读全文

posted @ 2006-03-10 19:10 birdshome 阅读(5011) | 评论 (9) 编辑

微软终于想通把Script56文档更新了
摘要:   作为微软脚本技术的的官方文档Script56.chm从2001年发布到现在,虽然其内容说不上过时,因为毕竟脚本引擎还是5.6版本。不过当时的制作质量和示例内容的容量对于讲求与时俱进的今天来说,还是有些too old(今天上了会儿bbs,才又想起了这个词)了。在很多次check该文档更新未果后,今天无意中却得到了意外的收获:)阅读全文

posted @ 2006-03-08 18:36 birdshome 阅读(5246) | 评论 (10) 编辑

利用搜索引擎引用来高亮页面关键字
摘要:   当我们在使用大多数的网页搜索引擎的"网页快照"功能时,他们都会在返回的快照页面中加入关键字高亮的功能。这将非常方便我们查找网页中被检索的内容,其中google快照的关键字高亮还融入了分词功能,不同的词着以不同的颜色。可是由于%!#^*&$!的原因,google的网页快照非常的不稳定,那么我们就自己来加上这个关键字高亮功能吧。阅读全文

posted @ 2006-02-23 00:32 birdshome 阅读(5644) | 评论 (16) 编辑

IE6使用add方法添加optGroup的bug
摘要:   合理的使用optGroup元素,可以极大地增强select下拉列表框的表现能力。我是比较喜欢在select中使用optGroup做数据分类的,不过不知道微软搞什么飞机,就这么一个html标签bug还真是不少。刚才又在使用DOM操作select添加optGroup时发现了问题。阅读全文

posted @ 2006-02-20 00:57 birdshome 阅读(2754) | 评论 (1) 编辑

DOM Explorer升级修正了大部分问题
摘要:   使用察看DHTML文档DOM结构的IE插件DOM Explorer都快半年了,由于是beta1版本的原因,一直以来都被其很多小bug和不足所困挠。问题和它的优点比起来虽然不是致命的,但也总还是让人觉得如鲠在喉。今天浏览微软的下载站点,发现DOM Explorer出了新的版本,于是赶紧下载下来并立即做了更新!阅读全文

posted @ 2006-02-11 01:44 birdshome 阅读(2741) | 评论 (5) 编辑

IE7提供XMLHttpRequest对象为兼容
摘要:   在IE7的开发中,据说新增加了一个Native对象——XMLHttpRequest。怎么难道开发IE7的"新警察"不知道IE6们都用ActiveX对象XmlHttp吗?XmlHttp出了什么问题,IE7为什么要这么做?原来一切就为了一个简单的兼容而已,但让人感慨颇多。阅读全文

posted @ 2006-01-27 01:27 birdshome 阅读(7425) | 评论 (32) 编辑

使用匿名函数为setInterval传递参数
摘要:   在使用JScript的时候,我们有时需要间隔的执行一个方法,比如用来产生网页UI动画特效啥的。这是我们常常会使用方法setInterval或setTimeout,但是由于这两个方法是由脚本宿主模拟出来的Timer线程,在通过其调用我们的方法是不能为其传递参数。阅读全文

posted @ 2006-01-08 00:18 birdshome 阅读(15591) | 评论 (7) 编辑

Code: UrlBuilder class in JavaScript
摘要:   当我们在Web中使用框架页的时候,由于可以"隐藏"frame页面的url,所以我们常常在queryString内放置各种参数。为了方便的使用这些参数,现使用JavaScript创建的一个处理网页url的通用类。使用本类除了可以获取queryString中的任意参数,同时也可以非常方便的取得各种url参数。阅读全文

posted @ 2006-01-03 00:08 birdshome 阅读(2175) | 评论 (5) 编辑

在Option条目中填充前导空格的方法
摘要:   在使用Web页面上的下拉列表框(SELECT element)显示数据列表时,有时我们会遇到有层次的数据条目。比如论坛中的子论坛和它的分类之间,以及一些具有包含关系的层次数据条目。使下拉列表框中,不同的level有一定的显示缩进将是非常友好的一种排版方式。阅读全文

posted @ 2005-12-27 00:37 birdshome 阅读(10174) | 评论 (8) 编辑

encode脚本和normal脚本混用的问题
摘要:   半年前第一次做脚本编码的时候,由于没有什么使用经验,于是在51js上询问了一下encode脚本和normal脚本混用是否有什么问题呢?结果没有得到任何有建设性的意见,这也至少说明了两个问题,一是没有人在意,二是就没有什么问题嘛。当然我更乐意于接受后一种结果,就开始了encode脚本和normal脚本的混合使用。阅读全文

posted @ 2005-11-25 01:35 birdshome 阅读(1563) | 评论 (2) 编辑

使用页面元素属性做状态判断的隐患
摘要:   在做DHTML开发的时候,依赖一些页面元素的得值来作为页面的状态的判断,初看似乎并没有什么问题。可是在后期的开发和维护中,却是一个随时可能产生莫名其妙bug的隐藏炸弹。如果不小心引爆,那就只有郁闷的份了。阅读全文

posted @ 2005-11-23 16:45 birdshome 阅读(1950) | 评论 (3) 编辑

"舍简求繁"的MSN Spaces图片浏览器
摘要:   早先微软给我们提供了一个叫MSN Spaces的博客类网站。初看Spaces它具有一些MyMsn的遗风,也支持在网页上自由托拽布局啥的,但微软的很多东西似乎习惯了叫好不叫卖,结果是到目前也并没有太多的人对其感冒。后来不知道怎么搞得国内的几个大blog SP对Spaces还展开了围剿之势,整个搞得乌烟瘴气、乱七八糟的。阅读全文

posted @ 2005-11-19 19:04 birdshome 阅读(4642) | 评论 (13) 编辑

使用onbeforeunload属性后的副作用
摘要:   在使用博客园的编辑器编辑文章时,有一个挺体贴用户的功能,就是如果用户进入编辑器后,不是执行"POST"操作而要退出当前编辑器页面,我们会得到一个Alert窗口提示(如下图)。这个功能其实很简单,就是通过处理window、body或frameset对象或元素的onbeforeunload事件实现的。阅读全文

posted @ 2005-09-30 00:13 birdshome 阅读(21159) | 评论 (12) 编辑

应用虑镜特效时遇到浏览器权限问题
摘要:   人要是倒霉啊,据说喝凉水都塞牙。虽然这么些年了牙没有被凉水塞过,不过倒霉的事情却没有因此而消失。一个使用了快1年的脚本菜单,在新来的PM的机器上始终弹不出来,真不知道是在欺生还是在玩我。由于产品安装包的脚本代码都经过了混淆和加密,要在那个出问题的机器上定位问题还真的郁闷。阅读全文

posted @ 2005-09-27 12:25 birdshome 阅读(1219) | 评论 (2) 编辑

关于DOM Explorer插件的功能和问题
摘要:   不知道从什么时候开始,微软做事情总是要比别人慢上一拍,而且常常还需要别人来push他。从google的search到msn的search,从google的map到msn的map,再从firefox红火到IE7项目的"被迫"启动;其实这些东西对微软来说,也都不是一蹴而就的事情,可是微软就是要比别人慢半拍才过瘾。阅读全文

posted @ 2005-09-26 00:47 birdshome 阅读(3111) | 评论 (1) 编辑

被逮到一个初始状态考虑不周的Bug
摘要:   这两天是产品beta1以后进行的新一轮bug扫荡,beta1以前产品的bug降低到了大家非常满意的水平。但是beta1以后QA Team发飚,bug总数biu的一下又上升到人均20个上下,真是让人恼火。不过幸好大部分是为了发布beta1而回归出来的UI方面的bug,不过今天却发现被逮到一个非常隐蔽的控件初始状态考虑不足的bug。阅读全文

posted @ 2005-09-08 00:22 birdshome 阅读(2749) | 评论 (1) 编辑

从此不再为Web页面中的Tooltip烦恼
摘要:   让Web页面中,不能折行或不希望被折行的文字始终显示在一行,是一种严格的UI风格,毕竟自由的折行会使得表格和整体界面变得很难把握。当然在一行显示不完全时配以省略号在结尾,能很好的提示用户表示语句未结束,不过这时为了让用户能看到所有文字,Tooltip就是必不可少的了。阅读全文

posted @ 2005-09-01 23:48 birdshome 阅读(11274) | 评论 (9) 编辑

模态窗口对字符串参数的巨无聊限制
摘要:   由于IE在对象及对象引用的回收上有不少的问题,我一般很忌讳在不同的窗口和Frame之间传递脚本对象。一般情况下我都是用简单类型来传递参数,比如数字和字符串。对于复杂对象先序列化字符串再在窗口和Frame之间传递,一直以来都挺好的,也没有什么遇到什么问题。阅读全文

posted @ 2005-08-27 16:58 birdshome 阅读(5001) | 评论 (15) 编辑

使用unknown类型判断当前窗口类型
摘要:   ASP.NET给我提供了多种页面认证模式,由于集成认证对于客户端的部署有较高的要求,在很多情况下我们可能不能良好部署。而Passport认证模式,对于企业应用我真不知道有没有使用的,要你把安全寄托于第三方,会是什么感觉呢?所以Form认证就算是相对有用的一种认证解决方案了。阅读全文

posted @ 2005-08-24 00:18 birdshome 阅读(4803) | 评论 (4) 编辑

使用debugger语句调试JScript的郁闷
摘要:   在JScript3.0中,微软引入了一个叫debugger的关键,用来帮助我们调试脚本代码。这样一来,我们就可以摒弃使用错误语句来触发调试的土方法了。结果在使用debugger语句的时候,发现它的一个优点居然同时也成为了一个缺点,在某些时候还没有土方法好用,真是郁闷。阅读全文

posted @ 2005-08-21 15:57 birdshome 阅读(1752) | 评论 (2) 编辑

HTML中不支持静态Expando的元素
摘要:   在使用脚本统一处理一批页面的时候,我希望通过被处理页面的TITLE元素取到文档的标题和我自定义的一些属性。这些附加的属性是我在服务器端通过Attributes集合添加的,可是运行的结果和我的期望老是相去甚远,怎么我在TITLE元素里写入的自定义属性老是空值呢?阅读全文

posted @ 2005-08-16 00:41 birdshome 阅读(1765) | 评论 (2) 编辑

在IE模态窗口中自由查看HTML源码
摘要:   IE提供的模态窗口,在我们制作数据录入窗口和Wizard等功能上,有着非常不错的应用。不过由于一些安全性上的限制,使得在模态窗口中调试脚本变得非常的郁闷。因为模态窗口不支持对象的选取和右键菜单,使得我们想察看html代码非常的不方便。那么有什么办法可以解决吗?阅读全文

posted @ 2005-08-14 00:02 birdshome 阅读(5719) | 评论 (7) 编辑

在Web页面中控制其元素的选择状态
摘要:   为了在Web页面上使用文本搜索,在文本框内实现选择效果,在页面上屏蔽选择状态等。我们需要使用脚本(如JavaScript)来精确的控制页面中UI元素的选择状态。下面从操作元素选择区和屏蔽元素被选择两个方面来说一说。阅读全文

posted @ 2005-08-05 23:02 birdshome 阅读(6043) | 评论 (11) 编辑

使用prototype特性编程中的效率问题
摘要:   前几天有位网友询问了我一个问题,主要是关于JavaScript的prototype特性的效率。因为作为一个如此强大并且灵活的东西,难免会让人觉得效率上可能有较大的损失。但是实际上prototype特性的效率怎么样呢?我们下面来详细说说这个问题。阅读全文

posted @ 2005-08-01 23:27 birdshome 阅读(3525) | 评论 (4) 编辑

判断用户浏览器是否是XP SP2的IE6
摘要:   由于Windows XP的补丁SP2,对IE6的安全性也做了很多的提升,使得有不少原来我们可以使用的功能,会变得很奇怪甚至歇菜掉:(。特别是弹出窗口、模态窗口和Popup窗口等受的影响相当大。那么我能不能判断用户使用的IE6是普通IE6(IE6sp1)还是IE6+xp sp2呢?阅读全文

posted @ 2005-07-28 22:52 birdshome 阅读(4550) | 评论 (2) 编辑

Popup窗口在XP+SP2下面受到限制
摘要:   在微软XP SP2对IE6兼容性的官方文档《Compatibility in Internet Explorer 6 for Windows XP Service Pack 2》中,微软口口声声说对窗口对象属性的安全限制中,不会影响Popup窗口。可事实上,Popup窗口并没有逃脱被限制的厄运。这下,使用Popup窗口技术实现的菜单就有都遭殃了。阅读全文

posted @ 2005-07-23 12:54 birdshome 阅读(441) | 评论 (0) 编辑

在XP+SP2下隐藏模态窗口的状态栏
摘要:   微软的Windows XP SP2是一个非常棒的Services Pack,特别是对IE添加了Add-ones的管理功能,即使被恶意ActiveX强行安装,以可以非常轻松的将其disable掉。不过SP2对安全增强,同时也给我们带来一些烦恼,其中对弹出窗口的限制,就非常的不爽。阅读全文

posted @ 2005-07-20 21:47 birdshome 阅读(7412) | 评论 (15) 编辑

精确地计算Web页面中滚动条的宽度
摘要:   原来我一直以为Web页面中的滚动条宽度是不能精确确定的,因为用户自己可以在桌面属性中设置系统滚动条的宽度为任意整数。再加之上次在MyMsn的代码里看见M$程序员的注释,更加让我认为滚动条的宽度是不能精确计算地。但事实是怎么样的呢?阅读全文

posted @ 2005-07-02 00:53 birdshome 阅读(13634) | 评论 (13) 编辑

JavaScript语句可以不以;结尾的烦恼
摘要:   JavaScript做为一个灵活的脚本语言,其成功是我们显而易见的。不过对于JavaScript语句可以不以";"结尾这点,我对其一直都耿耿于怀!这个特性除了带来语句的混乱,且使其依赖于代码排版(换行)外,我没有发现任何的优点。难道是为了可以少敲一个";"?! 如果习惯了C#、C/C++等的强制";",会更加的觉得郁闷。阅读全文

posted @ 2005-06-30 22:25 birdshome 阅读(2297) | 评论 (3) 编辑

只遍历出JScript对象的expando属性
摘要:   我们知道JScript的对象(不只是Object)可以像html元素对象一样,添加任意的自定义属性值。也就是说JScript的对象,天生都是Key/Value map。并且这种map结构由于使用Native的代码实现,检索效率非常之高,我曾在这篇文章里讨论过。不过在遍历这样的map时,expando导入属性和prototype导入属性存在了混淆。阅读全文

posted @ 2005-06-24 18:02 birdshome 阅读(7485) | 评论 (18) 编辑

SmartNavigation在Fx2.0中下岗了...
摘要:   当我们在最开始接触ASP.NET时,除了被.NET的整个框架和code-behind的代码方式吸引之外,同时对一些M$提供的cookies也非常的欣赏。其中SmartNavigation特性就是大家印象比较深的,不过这个cookie的使用和它受到的期望却相去甚远,这是为什么呢?微软在Framework 2.0里又是怎对待它的呢?阅读全文

posted @ 2005-06-20 00:23 birdshome 阅读(4506) | 评论 (3) 编辑

滚动TextArea中内容到底部的BT方法
摘要:   记得很久以前玩聊天室的时候,新的聊天内容被显示出来后,滚动条总是会滚动到聊天内容窗口的底部。不过那种聊天窗口一般都是使用frame/iframe制作的,我们可以使用其document对象的scrollTop属性来滚动窗口。如果使用TextArea来记录递增内容,怎么达到同样的效果呢?阅读全文

posted @ 2005-06-11 13:03 birdshome 阅读(3959) | 评论 (4) 编辑

JScript中的"this"关键字使用方式补充
摘要:   在"JavaScript中this关键字使用方法详解"一文中,我曾例举了在JavaScript和JScript中的8种this关键字的方式。这不又发现还有两种this关键字的使用方式当时没有说到,现补充说明一下。并且通过第一种this关键字使用的说明,能让我们更好的理解JavaScript作为Object-Based语言的本质。阅读全文

posted @ 2005-06-07 13:37 birdshome 阅读(4079) | 评论 (16) 编辑

用createEventObject来模拟事件参数
摘要:   原来在程序中模拟事件触发的时候,我写过一篇文章叫"在什么时候才会用到fireEvent方法呢?"。文章中说了我们怎么样来使用模拟事件的详细方法和步骤,不过当时忽略了fireEvent的一个Optional的参数oEventObject,它是做什么的呢?阅读全文

posted @ 2005-06-06 21:53 birdshome 阅读(8378) | 评论 (6) 编辑

阻止shift+click页面超链接打开新窗口
摘要:   似乎是挺无聊的一个功能,禁止用户使用Shift+Click超级链接打开新的页面。不过既然有这样的bt需求,我就简单设计了一个解决方案。虽然是能解决大部分问题,不过遇到复制链接再在别的browser中去打开就没有好的阻止办法了。阅读全文

posted @ 2005-06-04 00:23 birdshome 阅读(2726) | 评论 (4) 编辑

在使用optgroup时遇到的缺陷与修复
摘要:   在IE6.0里微软提供对HTML4.0中定义元素optgroup的支持,不过当我今天使用optgroup时,居然发现其在事件处理上存在bug。该bug影响select元素上的onchange事件,具体表现及处理如下。阅读全文

posted @ 2005-06-02 23:46 birdshome 阅读(4266) | 评论 (4) 编辑

谈一谈支持cross-browser的解决方案
摘要:   昨天说了说我对于dhtml开发中cross-browser支持的问题,那么我们怎么来最经济实惠的实现cross-browser呢?当然这里就不讨论是否有条件或有必要来做了问题了,昨天已经详细说过我的观点了,而这里只是从dhtml开发本身上来看。
阅读全文

posted @ 2005-05-30 12:28 birdshome 阅读(2813) | 评论 (7) 编辑

关于对cross-browser支持的一些看法
摘要:   做dhtml开发,除了调试不是十分的方便外,我们还需要或多或少的考虑同一浏览器的版本问题。而比这些问题更让复杂dhtml开发郁闷的,却是对cross-browser浏览的支持。正好有人问到这个问题,我就简单的说说我的看法。阅读全文

posted @ 2005-05-29 22:43 birdshome 阅读(4447) | 评论 (7) 编辑

HTML Elements 和 DHTML Objects
摘要:   在查看MSDN时,我们会发现有的特性描述是针对HTML Elements的,而有的描述却是针对DHTML Objects的。虽然地球人都知道DHTML是指的Dynamicl HTML,那么它和HTML元素是什么关系呢?其实HTML是DHTML的一个完全的子集,任何的HTML元素也就是DHTML中的对象。阅读全文

posted @ 2005-05-27 09:43 birdshome 阅读(2158) | 评论 (0) 编辑

IIS对于Web页中相对路径解析的问题
摘要:   我们知道网页中的路径关系一般有两种情况,一是相对路径,一是绝对路径。今天在调试一个bug的时候,发现IIS对于相对路径的解析有些不一致的问题,害我调试了半天。那么到底是什么不一致呢?阅读全文

posted @ 2005-05-24 13:31 birdshome 阅读(8565) | 评论 (5) 编辑

使用乱序标签来控制HTML的输出效果
摘要:   在HTML的元素中,有一个比较特殊的元素form。我们用它来收集表单数据并提交给服务器,并且理论上说来它是没有任何的UI被呈现的。当然如果我们在body元素后紧跟一个form,这样一来似乎看不出来有什么UI呈现的问题,可是当form存在于别的元素之中时,就有问题了。阅读全文

posted @ 2005-05-18 13:23 birdshome 阅读(3406) | 评论 (14) 编辑

这么小心还是在"08"向8的转换上栽了
摘要:   关于javascript中的parseInt方法,本来没有什么好说的,它的功能就是把一个字符串从左向右的可识别的数字部分转换成数值,并且它还有个可选的参数radix。这不,问题就出在这个参数上了。阅读全文

posted @ 2005-05-14 17:55 birdshome 阅读(2500) | 评论 (3) 编辑

搞笑的W3C和M$对DOM中属性命名
摘要:   无意中发现W3C和M$在DOM的属性命名中,对于whatElement格式居然有截然完全不同的态度。下面我们比较一下W3C的DOM3和M$的IE6中的DOM在属性命名上的区别。阅读全文

posted @ 2005-05-01 13:09 birdshome 阅读(1333) | 评论 (2) 编辑

处理IE中Bubble Up 事件模型的细节
摘要:   我们都知道,IE实现的是一种叫做bubble up的事件模型。在这个模型中我们的事件可以通过Web页元素的hierarchy,从事件触发元素向其parentElement传递,除非被显示的cancel。不过在一些复杂的事件响应处理中,还有很多细节需要仔细考虑。阅读全文

posted @ 2005-04-27 22:58 birdshome 阅读(2416) | 评论 (1) 编辑

原型方法的不同写法居然会影响调试
摘要:   上次我写过一篇文章,讨论"JavaScript类定义原型方法的两种实现的区别"。研究后发现除了方法的初始化方式不同外,没有发现别的原则上的却别,也就是说用哪种方式都一样。可是后来发现在VS.NET中给原型方法设置断点来调试时,两种定义方式却出现了很大的差别。阅读全文

posted @ 2005-04-26 13:47 birdshome 阅读(2054) | 评论 (7) 编辑

在with语句中跨frame的变量引用问题
摘要:   在脚本编程时使用with语句,可以大大的缩减使用多级对象引用代码行的长度,这是JScript提供给我们的一个Syntax Sugar。当然不使用with,使用临时变量也可以达到同样的效果。不过创建变量时起名确实不是一件很遐意的事,就连MASM高版本中也提供了一个@@(以及@F和@B)来处理临时标号的问题,看来大家都是比较懒得啦。 阅读全文

posted @ 2005-04-20 18:00 birdshome 阅读(2218) | 评论 (0) 编辑

使用DOM来创建页面元素的一些问题
摘要:   在IE中使用DOM方式来动态创建页面元素的时候,我发现了一些问题。记录于此,如果您有好的意见欢迎提供,如果您也遇到此问题,希望能有助你解决。阅读全文

posted @ 2005-04-17 19:25 birdshome 阅读(7698) | 评论 (17) 编辑

DHTML Scriptlets 容器对象参考手册
摘要:   DHTML小脚本容器对象参考手册,包含DHTML小脚本(Scriptlet)基准文档。在这里可以了解如下内容:1、窗口对象扩展:这些扩展内容是在编写小脚本时可以使用的属性与方法。 2、在小脚本容器对象中可用的属性与事件:在运行期间可以把它们与小脚本实例一起使用。阅读全文

posted @ 2005-04-15 21:42 birdshome 阅读(2705) | 评论 (3) 编辑

修复附加继承法中模拟重载的一缺陷
摘要:   在关于JavaScript继承的一系列讨论中,我详细的介绍和比较了四种继承方式,其中第四种"附加继承法"是一种对重载支持的最好的方法。并且也在我的实际开发中广泛的使用了,不过近来我发现在多层次的重载中,出现了一个非常严重的bug。阅读全文

posted @ 2005-04-14 23:39 birdshome 阅读(1878) | 评论 (4) 编辑

JavaScript中的5种事件使用方式解说
摘要:   为组件提供事件处理入口,可以极大的提高组件的封闭性,同时又能让组件很好的和外界通信。并且这也是我们已经习惯使用的一种开发模式,.NET、DHTML等都提供了一套完整的事件处理模型。下面是关于使用DHTML中事件的一个总结。阅读全文

posted @ 2005-04-11 13:11 birdshome 阅读(16968) | 评论 (16) 编辑

动态载入数据的无刷新TreeView控件(9)
摘要:   在上次把TreeView的事件支持实现后,整个TreeView的主体也就完成了。但是由于在UI元素的管理上,使用了Script类对象和DOM对象间的环状链表引用,所以还必须在页面退出时作一些清理工作,也就是为每个类都实现一个Dispose方法。阅读全文

posted @ 2005-04-10 13:26 birdshome 阅读(2941) | 评论 (1) 编辑

通过n次循环获得n个自然数随机排序
摘要:   刚才在51js看到有网友问,"1到100一百个数,怎么用JS来随机打乱它们的顺序呢?"。他说的这个不就是洗牌问题嘛,想起原来自己在做一个扑克游戏的时候设计过一个高效的洗牌算法,n个自然数通过n次循环搞定(当时是54个,扑克嘛)。阅读全文

posted @ 2005-04-09 21:40 birdshome 阅读(6467) | 评论 (16) 编辑

在什么时候才会用到fireEvent方法呢?
摘要:   在DHTML开发中,微软在其DOM中为每个元素实现了一个fireEvent方法。我们知道HTML的事件onXXX可以由系统(IE环境)来管理和触发,也可以直接执行事件的handler,比如onclick,如果被赋予事件处理函数,我们可以用element.onclick()来执行事件处理函数。那么fireEvent用来干嘛呢?阅读全文

posted @ 2005-04-07 23:53 birdshome 阅读(39156) | 评论 (14) 编辑

MyMsn动态Resize页框架的布局详解
摘要:   微软的MyMsn提供了一个自由resize和drag&drop的个人Portal,虽然这样的东西不难见到,像SharePoint、DotNetNuke等都有很好的这种操作实现。而且我们也知道在Web页中托拽一个html元素是很容易的,不过要是整个页面都是绝对定位,其实还是非常难于管理的,所以我们看看MyMsn是怎么来做的呢?阅读全文

posted @ 2005-04-04 13:52 birdshome 阅读(4035) | 评论 (7) 编辑

动态载入数据的无刷新TreeView控件(8)
摘要:   作为一个TreeView控件,显示、操作、动态加载都完成了,接下来最重要的就是怎么和用户代码结合了。事件是一种控件结合用户交互较好的方式,接下来就介绍一下在这个TreeView控件中的事件处理模型及实现。阅读全文

posted @ 2005-04-02 03:50 birdshome 阅读(2847) | 评论 (0) 编辑

访问JavaScript对象的构造函数时失败
摘要:   在JavaScript定义的对象中,不管是内部对象,还是用户自定的对象。如果该对象是从模态窗口(Modal Dialog)中创建并返回到主窗口中的,我们将无法在主窗口中取到该对象的构造函数(constructor)。其具体情况为...阅读全文

posted @ 2005-04-01 00:39 birdshome 阅读(2512) | 评论 (0) 编辑

MyMsn beta版源代码里微软遇到问题
摘要:   在看MyMsn的脚本源代码时,发现里面有一些微软自己遇到的bug也不能解决。列在这里,如果我们自己也遇到时就不要再郁闷了。阅读全文

posted @ 2005-03-30 14:44 birdshome 阅读(2935) | 评论 (13) 编辑

动态载入数据的无刷新TreeView控件(7)
摘要:   上一次说了一下要支持无限级的动态加载TreeView控件,服务器端数据的准备情况。不过那只是一个小小的演示实例,在实际的使用中,服务器端的数据可能会完全的不同,不过不管怎么变化,也必须要保证能形成树形数据的request/response结构。阅读全文

posted @ 2005-03-29 21:14 birdshome 阅读(3505) | 评论 (6) 编辑

怎么判断鼠标移入一个Popup窗口呢?
摘要:   在使用popup窗口构建Web菜单一文中,我曾比较的详细的介绍了popup窗口的使用方法和一些注意事项。今天发现要判断鼠标是否移入一个popup窗口,还挺有些郁闷,不过最后还算找到了一个解决办法。阅读全文

posted @ 2005-03-26 14:40 birdshome 阅读(2850) | 评论 (2) 编辑

JavaScript对象也玩序列化和反序列化
摘要:   前些天说过关于JavaScript的Literal Syntax问题,觉得挺有意思的,于是又研究了一下,能不能把对象再转化为Literal形式呢?就像我们平时说的序列化和反序列化啥的。当然可以了,因为JavaScript对象自身都提供了一个toString()方法,默认就是返回简单对象的Literal形式。

阅读全文

posted @ 2005-03-25 13:00 birdshome 阅读(8853) | 评论 (2) 编辑

动态载入数据的无刷新TreeView控件(6)
摘要:   既然是动态的载入数据的TreeView,那么服务器端的数据也同时应该以一种树型结构来保存。通过客户端发送节点标识,返回该节点下的子节点数据从而动态生成子节点。下面是一个模拟文件夹数据存放结构的服务器端数据获取示例。阅读全文

posted @ 2005-03-24 11:02 birdshome 阅读(3789) | 评论 (0) 编辑

同一页面引入多个JS文件的编码问题
摘要:   原来只是觉得IE解析HTML文件的时候,需要知道其传输编码,才能正确处理,而从来没有在意过JavaScript文件的编码问题。结果今天发现同一页面中的多个JavaScript文件如果保存编码不同,也会有出错的问题。这个一般怎么会遇到呢?阅读全文

posted @ 2005-03-23 12:36 birdshome 阅读(13646) | 评论 (14) 编辑

兼容值类型的JavaScript对象Clone方法
摘要:   对象的克隆是OOP中常用的一个方法,可是JavaScript的对象(各种数据类型都是)却没有提供一个Clone方法。上次我实现了一个Clone方法,可是一直有个小毛病,就是遇到"值类型"就晕菜了。你或许会觉得值类型也Clone,搞笑吧?阅读全文

posted @ 2005-03-20 15:15 birdshome 阅读(13090) | 评论 (16) 编辑

动态载入数据的无刷新TreeView控件(5)
摘要:   今天讨论一下TreeView控件的交互问题。包括鼠标对TreeNode的选取(单选&多选)、Checked;键盘对TreeNode的选取(单选&多选)、Checked;通过代码和控件交互三种方式。最后提供一个现阶段完成版本的演示示例供大家测试。阅读全文

posted @ 2005-03-19 15:54 birdshome 阅读(5643) | 评论 (10) 编辑

JavaScript中的Object到底是什么呢?!
摘要:   前天有网友留言问我,Object是什么?由于这两天忙于重构那个TreeView控件去了,没有及时的回答,真是不好意思。今天抽空来看看JavaScript中的Object到底是什么东西呢?Object和函数Function到底是什么关系呢?说的不对的地方欢迎斧正。阅读全文

posted @ 2005-03-18 00:21 birdshome 阅读(26507) | 评论 (23) 编辑

动态载入数据的无刷新TreeView控件(4)
摘要:   前三天我们把TreeView给显示出来了,不过光是显示显然是不够的。TreeView的UI还需要根据用户的各种操作和不同的属性设置产生不同的效果变化,比如:Actived、Selected、Checked等。下面就来设计并实现TreeView的UI动态更新问题。阅读全文

posted @ 2005-03-17 00:19 birdshome 阅读(8009) | 评论 (5) 编辑

动态载入数据的无刷新TreeView控件(3)
摘要:   今天完成了对菜单输出部分的重构实现,就是怎么样把我们的JS类变成能看到的实实在在的树。这个步骤虽然不是很难,不过很多细微的东西还是值得注意的。具体输出HTML代码的结构可以参看(1)中的图示,而我们的重点是讲讲为TreeView显示正确的层次结构图标。阅读全文

posted @ 2005-03-15 00:33 birdshome 阅读(4245) | 评论 (6) 编辑

精通CSS(层叠样式单)语法请帮忙看看
摘要:   在Web设计中,CSS(Cascading Style Sheet)其实是很熟悉的东西,不过在看一些复杂网页的CSS时,常常被一些莫名其妙写法搞得比较郁闷。于是在Google上翻啊翻,翻了一堆CSS的手册来看也没有彻底搞明白是怎么回事:( 下面总结一下,希望能作为一个快速参考来对付那些"怪异"的CSS。阅读全文

posted @ 2005-03-14 20:16 birdshome 阅读(6002) | 评论 (35) 编辑

动态载入数据的无刷新TreeView控件(2)
摘要:   昨天说了一下TreeView控件的数据结构和UI表现的设计。为了让一个TreeView控件有更好的实用性,对它的功能和外观作一些必要的定制是非常有用的,今天就来说一下关于定制这个TreeView相关的一些设计。因为这些东西在一开始编码后就会马上被使用到,先确定好能省不少事。阅读全文

posted @ 2005-03-13 16:17 birdshome 阅读(4391) | 评论 (3) 编辑

JS类库Bindows1.3中的内存释放方式
摘要:   我在前段时间介绍过IE中JavaScript脚本Memory Leak的问题,后来在几位热心网友的讨论下,基本认可了内存泄露的事实和原理。在小规模的测试case下,本来都达到了基本避免IE中脚本的ML问题。可是近来发现只以"仔细"来防止IE中脚本ML似乎是非常困难的一件事情,难道开始的讨论有错误吗?阅读全文

posted @ 2005-03-12 21:32 birdshome 阅读(3934) | 评论 (3) 编辑

动态载入数据的无刷新TreeView控件(1)
摘要:   上次我介绍过,使用popup窗口来制作无限级菜单。由于当时对于JavaScript的了解比较有限,加之又把主要的精力都focus到popup窗口本身的一些问题上去了,所以关于菜单的设计中还是有很多不合理的地方。后来因为需要又作了一个TreeView控件,不过由于需求变化大,被改得来结构相当的乱了,于是抽空重构一下,并把一些设计步骤记录下来,欢迎大家讨论并提意见。阅读全文

posted @ 2005-03-11 23:33 birdshome 阅读(17802) | 评论 (10) 编辑

单扫描的JScript版String.Format方法
摘要:   前天写了一个"JScript版的String.Format方法",本来都已经使用遍历法来替换格式化字符串了,结果却使用了RegExp和substr之类的憋脚方法。后来问题男很热心的给出了一个全扫描的方案,更郁闷的是由于自己对测试的认识不足,居然只使用了期望数据来测试代码,搞得bug一大坨。阅读全文

posted @ 2005-03-10 00:09 birdshome 阅读(3826) | 评论 (16) 编辑

function, new function, new Function
摘要:   函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系。阅读全文

posted @ 2005-03-09 00:11 birdshome 阅读(9542) | 评论 (11) 编辑

JScript实现的一个String.Format方法
摘要:   在.NET Framework的BCL类String中,有一个很有用的静态方法String.Format。当我们在输出一个需要由多个变量条目来组成的字符串时,非常的有用。特别是在对多语言支持时,使用Format方法来显示更加有价值。为了方便脚本编程,下面实现了一个JScript版的Format方法。阅读全文

posted @ 2005-03-08 00:05 birdshome 阅读(4619) | 评论 (8) 编辑

JavaScript中this关键字使用方法详解
摘要:   在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的。JavaScript也提供了这个this关键字,不过用起来就比经典OO语言中要"混乱"的多了。阅读全文

posted @ 2005-03-07 00:08 birdshome 阅读(52148) | 评论 (39) 编辑

为JS类定义原型方法的实现区别解答
摘要: 查看详细讨论结果,欢迎继续讨论。阅读全文

posted @ 2005-03-06 00:11 birdshome 阅读(1117) | 评论 (0) 编辑

在popup窗口中俘获事件的缺陷&修复
摘要:   我们在处理HTML元素的事件时,通常可以使用两种方法来添加其处理函数。一是直接向HTML元素的事件处理回调(如:onclick、onlond等)赋值;一是使用元素的attachEvent()方法来添加处理函数。这两种方法对于普通的页面表现出来的效果是完全相同的,而对于popup它们却有很大的差别。阅读全文

posted @ 2005-03-05 01:14 birdshome 阅读(7156) | 评论 (4) 编辑

区分JS中的undefined,null,"",0和false
摘要:   在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBNull,boolean类型的假值false等等。在JavaScript中也有很多种的"空值"和"假值",那么它们都有什么共同点和不同点呢?阅读全文

posted @ 2005-03-04 00:20 birdshome 阅读(47343) | 评论 (19) 编辑

在JavaScript中使用inline函数的问题
摘要:   前段时间被IE和JScript脚本引擎的Memory Leak问题弄得郁闷坏了,不过幸好现在总算是柳暗花明了,并且找到了一些IE中使用脚本避免ML问题的方法。继续研究JScript的编写,有发现一些不算ML问题,但是可以节约IE内存使用的方法,在此和大家讨论讨论。阅读全文

posted @ 2005-03-03 00:32 birdshome 阅读(3538) | 评论 (4) 编辑

JS类定义原型方法的两种实现的区别
摘要:   我们知道,给JavaScript类添加原形(prototype)方法是很简单的。而且常用的有下面这两种方法,可是这两种方法在使用时有区别吗?阅读全文

posted @ 2005-03-01 10:50 birdshome 阅读(15325) | 评论 (15) 编辑

在JScript面向对象编程中使用重载(续)
摘要:   上周在关于JavaScript面向对象编程的话题中,我讲过怎么'在JavaScript面向对象编程中使用重载'。虽然那个方法需要使用一个call函数来调用基类被重载的方法,看起来比较怪不说。不过更大的问题却是那个方法只支持两级继承的基类方法调用,使用起来真是如食鸡肋。阅读全文

posted @ 2005-02-28 22:36 birdshome 阅读(2109) | 评论 (1) 编辑

JavaScript面向对象编程之Singleton类
摘要:   在C#、Java等纯面向对象的语言中,合理使用设计模式将会使我们的模块设计和代码编写更加健壮和清晰。目前JavaScript的编写已经从自身的object-based,被逐渐模拟来很象(至少七八分吧)object-oriented的语言了,所以我们也可以遵照一些设计模式的概念来编写JS代码。阅读全文

posted @ 2005-02-27 00:09 birdshome 阅读(4132) | 评论 (3) 编辑

JavaScript语言中的Literal Syntax特性
摘要:   我刚开始学习JavaScript的时候,老是会被JavaScript里的一些莫名其妙的语法形式搞的糊里糊涂的。而且也不知道到底它支持了多少那些莫名其妙的语法形式?现在通过这个几个月的深入了解,算是把它们弄得比较清楚了,所以下面就来说说JS的Literal Syntax特性。阅读全文

posted @ 2005-02-26 00:17 birdshome 阅读(5012) | 评论 (12) 编辑

在JavaScript面向对象编程中使用重载
摘要:   在此之前,我写了一个'在JavaScript面向对象编程中使用继承'的一系列文章。有很多的热心网友参与了讨论,指出了其中很多的问题并给予了我很多的好建议,非常感谢他们。同时在OOP中和继承关系非常紧密的就是重载这个东西,那么我介绍的继承方法支持重载吗? 阅读全文

posted @ 2005-02-24 00:22 birdshome 阅读(12343) | 评论 (1) 编辑

在JavaScript中也玩变量类型强行转换
摘要:   我们在C/C++和C#这类强类型语言中,强行转换变量类型简直就是家常便饭。可是JavaScript这个动态类型脚本语言的变量号称是没有类型的,那么我们怎么转换它的变量的类型呢?而且还要强行转。阅读全文

posted @ 2005-02-23 00:55 birdshome 阅读(35437) | 评论 (24) 编辑

对JScript对象的实例Clone的一个实现
摘要:   刚才看见cmbscqhd关于'JS继承问题的研究',发现他的继承方法的问题出在对对象使用了shallow copy (this[i] = _childClass.prototype[i];)上。不过从他的代码中我发现了一个实现Clone很sexy的方法,于是写一个JScript类实例的的deep clone方法,和对JScript所支持对象(数据类型)的Clone详细比较。阅读全文

posted @ 2005-02-22 13:10 birdshome 阅读(10510) | 评论 (18) 编辑

JScript中的prototype(原型)属性研究(2)
摘要:   上次的文章中我罗列了一下prototype属性在JScript中的各种用法,但是prototype这个东西却不是JScript创造出来的,JScript实际上是使用了我们设计模式中prototype pattern的一种衍生形式。下面我先简单的说一下prototype pattern,然后再来看到底JScript中的prototype是怎么回事?!阅读全文

posted @ 2005-02-21 00:26 birdshome 阅读(9431) | 评论 (13) 编辑

设计有复杂客户端Script的服务器控件
摘要:   使用ASP.NET的服务器控件,可以极大的提高我们Web开发中组件的复用性。不过由于ASP.NET默认的__doPostBack传输机制,对于我们在Web页上开发DHMTL特性的功能没有什么实质的帮助,因为我们不可能每次HTML属性修改都doPostBack,这样的效率和用户体验会死人的哦~~阅读全文

posted @ 2005-02-20 11:02 birdshome 阅读(9726) | 评论 (24) 编辑

挺好玩的uniqueID&uniqueNumber属性
摘要:   在Web页中的每个HTML元素都一个ID属性,ID作为其标示,在我们的普通理解中它应该是unique的。可是HTML元素的ID属性是可写的,这就造成了我们很可能人为的使ID的重复。按么如果ID重复了怎么办呢?我们又怎么来给HTML元素弄一个唯一的标示呢?阅读全文

posted @ 2005-02-18 23:39 birdshome 阅读(7893) | 评论 (2) 编辑

JScript中的prototype(原型)属性研究(1)
摘要:   我们知道JScript中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会"继承"赋予该对象原型的操作。但是这个prototype到底是怎么实现和被管理的呢?阅读全文

posted @ 2005-02-17 22:59 birdshome 阅读(30466) | 评论 (12) 编辑

继续来研究JScript解析引擎的GC问题
摘要:   昨天发现了一个可以引起IE的JScript解析引擎发生Memory Leak的bug,及其引起该bug的代码。后来问题男和Laser.NET两位网友给出了很多很有意义的讨论,当然ccBoy网友也给了不少建议,不过ccBoy却更关心innerHTML和appendChild的效率,对ML问题一带而过,好像觉得那根本不是什么大不了得问题。阅读全文

posted @ 2005-02-16 23:45 birdshome 阅读(10178) | 评论 (23) 编辑

IE的JScript解析器可能有Memory Leak
摘要:   在家过完了年,感觉精神很爽。明天大家可能都就上班了,新的一年开始了,希望大家新年新气象。而其我已经发现一点点新年的灵感了哦~,我原来发现IE中的JScript解释器可能有的Memory Leak的问题,可老是早不到出问题的代码,今天一下就逮到了一个可以复现的case~~阅读全文

posted @ 2005-02-15 23:49 birdshome 阅读(5892) | 评论 (12) 编辑

在JavaScript面向对象编程中使用继承(5)
摘要:   明天就要回老家去过年了,关于这个"在JavaScript面向对象编程中使用继承"的话题居然还没有说完。如果不完成,留下来一拖就拖到明年去了。所以还是抽空把它写完,今年的事情今年做,明年还有更重要的任务呢!~~ 下面继续来看茴香豆的"茴"字第四种写法。阅读全文

posted @ 2005-02-07 00:05 birdshome 阅读(8069) | 评论 (28) 编辑

获取JavaScript用户自定义类的类名称
摘要:   我们知道,虽然JavaScript是基于对象(object-based)的语言。但是使用其原形(prototype)特性, 我们完全可以实现十分sexy的OO编成框架,这个可以看看经典论坛的文章'基本上实现 javascript 的 OOP (0423版)'。 阅读全文

posted @ 2005-02-06 01:39 birdshome 阅读(17097) | 评论 (8) 编辑

在JavaScript面向对象编程中使用继承(4)
摘要:   大家好像对JavaSript面向对象编程的继承不是很感兴趣哦,都没有什么讨论。也许是大家暂时都遇不到如此复杂的脚本开发solution,不过以后有问题也欢迎来讨论哦。毕竟经典的教程是不可能包括这些高级应用的,所以我总结的东西也就可能还有谬误。阅读全文

posted @ 2005-02-04 00:09 birdshome 阅读(2560) | 评论 (2) 编辑

用脚本为本blog增加了几项自定义功能
摘要:   这段时间的工作主要是研究客户端的脚本编程,所以顺便使用脚本为blog提供了几个小功能,这些功能有的是便于读者阅读,而有的是便于作者管理blog的。包括:banner广播、页面反色、搜索跟踪和Google广告。下面分别说说他们是怎么弄得。阅读全文

posted @ 2005-02-03 00:05 birdshome 阅读(2116) | 评论 (13) 编辑

在JavaScript面向对象编程中使用继承(3)
摘要:   上次讲了一下在使用JavaScript进行面向对象编程中,采用构造法来实现类继承的一些优缺点。下面我们接着把"原型继承法"的也有缺点也讲一讲,希望大家能积极提意见并探讨其中的一些问题。阅读全文

posted @ 2005-02-01 00:09 birdshome 阅读(6028) | 评论 (3) 编辑

细说HTML元素的ID和Name属性的区别
摘要:   可以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的,而Name是可以重复的。阅读全文

posted @ 2005-01-31 00:23 birdshome 阅读(41693) | 评论 (31) 编辑

在JavaScript面向对象编程中使用继承(2)
摘要:   昨天扔了一堆JavaScript类'继承'的代码,这些代码其实并不是所有的都能正常的执行。不是我不原意写出都能好好执行的继承类代码,而是这些方法本身就各自有自己的优缺点。下面我分别说它们的原理和使用时注意事项。阅读全文

posted @ 2005-01-30 00:37 birdshome 阅读(3212) | 评论 (1) 编辑

这年头居然连MSDN Library都靠不住呀
摘要:   在做MS的相关开发时,MSDN Library简直就是圣经了,而且包括很多非M$的开发中,参考MSDN也是一件很有意义的事情。当然我们对于MSDN叙述的内容都是不容置疑的接受,可是今天发现MSDN也开始摆活了。阅读全文

posted @ 2005-01-29 10:32 birdshome 阅读(2163) | 评论 (7) 编辑

在JavaScript面向对象编程中使用继承(1)
摘要:   前几天做了一个JScript版的CollecionBase类,用来解决需要使用集合作为主要数据结构的类的基类。不过当时挺忙的没有给出继承的示例,搞得有的网友对JavaScript继承比较迷惑,于是今天使用四种方式来分别实现了4个ArrayList派生类。阅读全文

posted @ 2005-01-28 22:35 birdshome 阅读(13697) | 评论 (7) 编辑

原来JScript中的关键字'var'还是有文章的
摘要:   都不记得是什么时候看的JScript的语法教程了,里面说在声明变量时忽略var关键字是完全合法的。当时也因为觉得JavaScript是loosely-typed的语言,所以var可能真的就是个摆设。但是事实常常又证明想当然的结果是不可靠的。阅读全文

posted @ 2005-01-26 23:32 birdshome 阅读(16425) | 评论 (34) 编辑

JScript版CollectionBase类的一个实现
摘要:   集合是我们最常用的数据结构了,JScript虽然给我们提供了一个内部类集合对象Array,可是Array的接口调用规则并不适合我们已经习惯了的.NET Framework。为了在JScript中能方便的使用集合,我找葫芦画瓢作了一个JScript版的的CollectionBase类。阅读全文

posted @ 2005-01-25 22:52 birdshome 阅读(2631) | 评论 (12) 编辑

系统滚动条实现的NUD控件Unusable版
摘要:   昨天研究了一下系统滚动条,准备使用它来实现一个NumericUpDown控件,因为它可以带来最正宗的微调按钮外观,并说了一下可以使用viewport里的onScroll事件来获取系统滚动条的上下点击动作。阅读全文

posted @ 2005-01-24 20:42 birdshome 阅读(1412) | 评论 (2) 编辑

用系统滚动条实现NumericUpDown的原理
摘要:   我们知道在Windows控件里有一个叫NumericUpDown的控件,使用这个控件后可以用鼠标点击或键盘上下键来微调数字,当然也可以直接输入。这是一个使用方便同时又能限制输入格式的很有用的控件,可惜在Web中却没有提供这个控件,我们只能面对几个土土的INPUT的衍生控件。 阅读全文

posted @ 2005-01-23 23:37 birdshome 阅读(2823) | 评论 (5) 编辑

使用button元素自定义别具风格的按钮
摘要:   我们都知道在Web里面定义一个按钮,最常用的方法就是使用INPUT元素的type='button'。但在HTML spec 4.0里,增加了一个BUTTON元素,并且IE4.0就已经开始支持BUTTON元素了。顾名思义,它也是用来定义一个Web页按钮的,可是它却和input type='...'大不相同。阅读全文

posted @ 2005-01-22 18:28 birdshome 阅读(3261) | 评论 (8) 编辑

在JScript中运算符"||"和"&&"的特殊特性
摘要:   在JScript的众多运算符里,提供了三个逻辑运算符&&、||和!,噢?! 是高级语言都提供的。按我们对逻辑运算的正常认识,逻辑运算的结果因该是ture或者false。但是JScript的逻辑运算却不完全是这么定义的,这里只有!运算符总是返回true|false,而||和&&运算比较的好玩。阅读全文

posted @ 2005-01-21 00:07 birdshome 阅读(4866) | 评论 (8) 编辑

使用方向键在输入框矩阵中自然的导航
摘要:   关于使用键盘来在Web页的输入框中导航这个事我一周前就说了,今天才把它整理完,真是不好意思。不过整理后的代码结构清晰、使用方便、价格公道、童叟无欺。阅读全文

posted @ 2005-01-20 00:52 birdshome 阅读(4028) | 评论 (25) 编辑

为Web页中的Table对象创建一个映射表
摘要:   HTML对象中的TABLE是我们常用的网页元素,在DHTML编程中,我们可以通过它的rows和cells方法方便的访问表格对象里面的每一个单元格,而且表格对象(table)的每个单元行(tr)和每个单元格(td)分别又有自己的rowIndex和cellIndex属性。 阅读全文

posted @ 2005-01-19 00:42 birdshome 阅读(2862) | 评论 (7) 编辑

关于Web页中的色彩反转遇到一点问题
摘要:   颜色是Web页中很重要的元素,仅次于其内容了。在网页中我们可以使用4种格式来定义颜色,他们是:已命名颜色,#rrggbb格式颜色,#rgb格式颜色和rgb(r, g, b)函数格式颜色。阅读全文

posted @ 2005-01-18 00:30 birdshome 阅读(1512) | 评论 (7) 编辑

注入Script增加了一个GoogleTrack功能
摘要:   很多时候你可能会想在Google里面搜索一下你的文章是否被别人转载了,如果每次都要把标题复制到Google里再搜,真是麻烦得要死。GoogleTrack就是会自动地把搜索连接生成,然后你只需要点击链接就可以跟踪你自己的文章的功能。阅读全文

posted @ 2005-01-17 00:58 birdshome 阅读(2683) | 评论 (5) 编辑

关于HTML Object中三个Style实例的区别
摘要:   我们在网页元素中定义的CSS属性,会被映射成该DHTML对象中Style对象的实例。我们可以使用import-style[1]和inline-style[2]为网页元素指定CSS属性,同时也可以使用element. style. attributeName='...'的形式在Web页脚本中设置其值。但是同一个元素上的这些CSS属性值并不是都叠加后映射到同一个Style对象的实例上。阅读全文

posted @ 2005-01-16 19:19 birdshome 阅读(8600) | 评论 (3) 编辑

使用混合脚本编程来实现的Base64解码
摘要:   前几天用脚本做了个Base64编码程序,今天把解码程序也实现了,不过同样是使用JScript和VBScript混合编程来搞定的。阅读全文

posted @ 2005-01-15 01:28 birdshome 阅读(3207) | 评论 (6) 编辑

IE的模态对话框里的问题还真是不少
摘要:   模态对话框(Modal Dialog),是一种会block顺序执行程序的窗口,比如C#里的MessageBox.Show(this,...),JavaScript里的alert(...)、confirm(...)等,是我们最常见的模态对话框。不关闭这种对话框程序的当前线程就被一直挂起了,这种窗口的特性最适合用来做条件分支的判断提示和Wizard窗口。阅读全文

posted @ 2005-01-14 08:58 birdshome 阅读(4401) | 评论 (7) 编辑

使用TextRange获取输入框中光标的位置
摘要:   TextRange是用来表现HTML元素中文字的对象,虽然我们平时不太常用这个对象,可是它却在IE4.0中就已提供了。不过TextRange提供的调用方法却都比较晦涩,那么我们能拿它做些什么呢?阅读全文

posted @ 2005-01-13 01:03 birdshome 阅读(6277) | 评论 (5) 编辑

使用混合脚本编程来实现的Base64编码
摘要:   在近来的工作中,需要在Web页上制作复杂的逻辑和框架以及后台之间交换数据,特别是和后台交换数据,编码是个必须考虑的问题。否则可能会因为编码不同,把脚本的执行给搞得乱七八糟,根本得不到想要的结果。Base64是一种常用而又简单的编码,就先从它下手弄弄了。 阅读全文

posted @ 2005-01-12 00:07 birdshome 阅读(4936) | 评论 (17) 编辑

获取Html元素在页面中的绝对位置及问题(2)
摘要:   上次在"获取Html元素在页面中的绝对位置及问题(1)"中说了获取页面元素绝对位置的方法,最后又说到那个方法是有问题的。为了理解这个问题,希望先看一下这两篇文章再看下面文(Web页中的HTML元素的排版布局规则、用户定制Web页中元素的排版布局策略)。阅读全文

posted @ 2005-01-11 00:14 birdshome 阅读(5940) | 评论 (13) 编辑

用户定制Web页中元素的排版布局策略
摘要:   在"Web页中的HTML元素的排版布局规则"一文中,我们简述了browser是以怎样的策略来排版布局的,但很多时候默认的排版却不能完全满足我们的需要,所以我们还需要靠自己来定制Web页中HTML元素的排版布局策略。阅读全文

posted @ 2005-01-10 00:24 birdshome 阅读(4673) | 评论 (21) 编辑

使用IE的地址栏来辅助调试Web页脚本
摘要:   不小心使用Shift+Left Click去点击了一个链接目标(href)是脚本的超链接,结果却把是否调试脚本的对话框弄了出来。点击yes居然可以打开调试这一句脚本,可是这句脚本是哪里来的呢? 阅读全文

posted @ 2005-01-09 16:48 birdshome 阅读(2700) | 评论 (9) 编辑

从JavaScript函数重名看其初始化方式
摘要:   今天有个哥们问我要是JavaScript函数重名了会有什么后果?开始我没有细想,就说可能会出错吧,可是等我实验完了发现页面没有任何脚本错误提示,而且程序也运行了,只是对同名函数的调用执行了位置靠后的一个。阅读全文

posted @ 2005-01-08 02:31 birdshome 阅读(6240) | 评论 (7) 编辑

JScript内置对象Array中元素的删除问题
摘要:   我们知道JScript给我们提供了一个内置的数组对象Array。Array对象除了提供了constructor、length和prototype外,还默认提供了13个方法:concat、join、pop、push、reverse、shift、slice、sort、splice、toLocaleString、toString 、unshift和valueOf,可是没有提供delete方法。阅读全文

posted @ 2005-01-07 21:51 birdshome 阅读(3284) | 评论 (10) 编辑

Web页中的HTML元素的排版布局规则
摘要:   我们知道每个Web页面都是由一大堆的HTML元素组成的,我们把每对...这样的结构称为box,在Web页面的排版布局中,浏览器把这样的box作为排版的元素,并且把box分为了inline level和block level两种类型。阅读全文

posted @ 2005-01-06 23:52 birdshome 阅读(10920) | 评论 (12) 编辑

比较JavaScript中的集合及其检索效率
摘要:   数组是JavaScript提供的一个内部对象,它是一个标准的集合,我们可以添加(push)、删除(shift)里面元素,我们还可以通过for循环遍历里面的元素,那么除了数组我们在JavaScript里还可以有别的集合吗?阅读全文

posted @ 2005-01-05 22:01 birdshome 阅读(12442) | 评论 (12) 编辑

获取Html元素在页面中的绝对位置及问题(1)
摘要:   在Web开发中如果要想随心所欲的自由控制HTML元素,我们很多时候需要获得HTML元素在页面中的绝对位置(就是相对于浏览器的左上角坐标(0,0))。阅读全文

posted @ 2005-01-04 23:52 birdshome 阅读(15910) | 评论 (11) 编辑

使用CheckBox的indeterminate属性的问题
摘要:   我们在使用Windows XP的文件夹属性对话框时,会发现文件夹的Attributes分类里的Read-only和Hidden选项有时不是完全的checked或unchecked状态,而常常是一种虽然已被打勾但背景又是灰色的状态。其实这种不确定的CheckBox状态Web中也是可以表现的。 阅读全文

posted @ 2005-01-03 18:52 birdshome 阅读(12822) | 评论 (11) 编辑

我所使用的JavaScript调试环境(3)
摘要:   上次的文章引起很多网友的讨论,我很高兴。其中提道了不少我原来并不十分清楚地东西,在此首先对他们表示感谢,结下来继续我的脚本调试环境。
阅读全文

posted @ 2005-01-02 01:21 birdshome 阅读(4485) | 评论 (6) 编辑

把JScript函数模拟为"异步执行"方式
摘要:   我们知道"同步"和"异步"这个概念主要是对线程来说的,这里怎么能把JScirpt的函数弄成异步方式来执行呢?! 这样做又有什么意义呢? 阅读全文

posted @ 2004-12-31 22:55 birdshome 阅读(2216) | 评论 (1) 编辑

我所使用的JavaScript调试环境(2)
摘要:   真是不好意思,吃桃居然吃了一整天,下面继续说我的JavaScript调试环境。
阅读全文

posted @ 2004-12-31 00:04 birdshome 阅读(26314) | 评论 (8) 编辑

我所使用的JavaScript调试环境(1)
摘要:   这段时间写脚本的机会比较多,也就对这些工具有个比较。我们都知道,工欲善其事,必先利其器嘛。有的人觉得脚本嘛有什么好调试的,一眼就看过来了,当然过于依赖于调试器很多时候也会让我们变得懒惰和不仔细,不过大多数的时候好的开发环境还是让我们事半功倍的。
阅读全文

posted @ 2004-12-30 00:02 birdshome 阅读(29472) | 评论 (38) 编辑

构建一个pool来管理无刷新页面的xmlhttp对象
摘要:   在页面上使用ActiveXObject的代价是很大的,如果我们的无刷新页面使用xmlhttp技术,我们或许需要平凡的建立xmlhttp对象,当然我们也可以使用全局变量来cache一个xmlhttp对象实例。但是这样的方法适合于同步方式xmlhttp通信,而对于异步方式xmlhttp通信将会出现问题。阅读全文

posted @ 2004-12-27 21:38 birdshome 阅读(5740) | 评论 (10) 编辑

使用XMLHTTP Request Object获取服务器数据
摘要:   在Web客户端使用xmlhttp对象,可以十分方便的和服务器交换数据,我们可以获取和发送任何类型的数据,甚至二进制数据到服务器上。xmlhttp技术同时也是目前大多数无刷新页面使用的和服务器交换数据的方式,这种方式比以往的隐藏iframe的方法要方便和经济的多。 阅读全文

posted @ 2004-12-26 22:22 birdshome 阅读(37479) | 评论 (27) 编辑

使用Popup窗口创建无限级Web页菜单(8)
摘要:   最后总结一下示例中的一些小问题,没有什么太重要的东西,主要都是为了UI上更好看些。阅读全文

posted @ 2004-12-23 00:01 birdshome 阅读(3717) | 评论 (16) 编辑

使用Popup窗口创建无限级Web页菜单(7)
摘要:   这一节主要说一下Menu对键盘的支持,本来不支持键盘这个菜单也完全可用了,不过还是为了和WinForm的Menu统一,所以支持了和WinForm菜单一样的操作方式。 阅读全文

posted @ 2004-12-21 00:49 birdshome 阅读(2319) | 评论 (3) 编辑

使用Popup窗口创建无限级Web页菜单(6)
摘要:   在“使用...(5)”中用Show()把菜单显示出来了,Show中的大部分大代码都很好理解,这节主要说一下event的处理。阅读全文

posted @ 2004-12-18 22:36 birdshome 阅读(2325) | 评论 (0) 编辑

使用Popup窗口创建无限级Web页菜单(5)
摘要:   代码框架在(4)里面已经全部列出来了,现在工作就是按流程把他们完成。本来实现一个prototype的Menu菜单类只需要最多300行代码,可是后来做了一些操作习惯支持和UI显示上的优化后,代码猛增到了1000多行。阅读全文

posted @ 2004-12-17 01:05 birdshome 阅读(3013) | 评论 (5) 编辑

使用Popup窗口创建无限级Web页菜单(4)
摘要:   前面的(1),(2),(3)解决了popup创建Menu的主要技术问题后,现在开始具体的编码心里就有底多了,而且可以把精力集中在逻辑的处理上。当然还有一些UI的问题需要考虑,但都是HTML+CSS的小问题了。 阅读全文

posted @ 2004-12-16 00:44 birdshome 阅读(3017) | 评论 (0) 编辑

使用Popup窗口创建无限级Web页菜单(3)
摘要:   菜单除了要它能显示,还要它能执行动作才是最关键的地方。popup是个子窗口,虽然他没有opener。我们有两种办法来在popup中执行脚本。。。阅读全文

posted @ 2004-12-14 00:54 birdshome 阅读(8245) | 评论 (1) 编辑

使用Popup窗口创建无限级Web页菜单(2)
摘要:   上次我说到要使用popup在web中创建无限级菜单,两个要解决的问题是多个popup窗口共存和popup中的事件的处理。其中多个popup共存的问题我已经讲了可以使用popup.document的parentWindow来再createPopup,这个就算搞定了,而第二个问题就有些让人讨厌了,为什么呢?阅读全文

posted @ 2004-12-12 06:09 birdshome 阅读(5633) | 评论 (7) 编辑

使用Popup窗口创建无限级Web页菜单(1)
摘要:   在Web上使用菜单可以极大地节约页面的空间,同时也比较的符合用户从Windows上继承下来的UI操作体验。阅读全文

posted @ 2004-12-11 08:13 birdshome 阅读(11283) | 评论 (9) 编辑

导航

公告