分类“Javascript & DOM & AJAX”的存档

2008.0507
Javascript的匿名函数

一、什么是匿名函数?

在Javascript定义一个函数一般有如下三种方式:

  1. 函数关键字(function)语句
    function fnMethodName(x){alert(x);}
  2. 函数字面量(Function Literals)
    var fnMethodName = function(x){alert(x);}
  3. Function()构造函数
    var fnMethodName = new Function('x','alert(x);')

上面三种方法定义了同一个方法函数fnMethodName,第1种就是最常用的方法,后两种都是把一个函数复制给变量fnMethodName,而这个函数是没有名字的,即匿名函数。实际上,相当多的语言都有匿名函数

阅读全文 »

标签:, ,
在1:14发表于Javascript & DOM & AJAX,有评论8
2008.0422
IE对CSS样式表的限制和解决方案

HTML文档与CSS的关联常见有4种方式:

  1. 使用link标记

    <link rel="stylesheet" type="text/css" href="sheet.css" />
  2. 使用style元素

    <style type="text/css">
    body{background:#fff;}
    h1{font-size:2em;}
    </style>
  3. 使用@import指令

    <style type="text/css">
    @import url(sheet1.css);
    @import "sheet2.css";
    </style>
  4. 使用style属性的内联样式(inline style)

    <p style="color:#f00;">这是红色的字</p>

在实际应用中,使用style属性的内联样式是不推荐使用的,XHTML1.1已经将其标准为不建议使用,原因很简单这种方式不比font标记强多少,削弱了CSS集中控制整个文档外观的优点。前3种方式利用了link标记和style标记,在IE(包括IE6、IE7和IE8 beta1)中有如下限制:

阅读全文 »

标签:, , , ,
在16:39发表于HTML & CSS, Javascript & DOM & AJAX,有评论8
2008.0326
扩展YUI Loader

YUI Loader是YUI的动态载入外部Javascript和CSS文件的整体解决方案。它的可靠、安全、高效,优化了页面的呈现速度,实现了外部Js和CSS的按需加载。

在YUI 2.4.0到2.5.1版本中,YUI Loader通过其addModule()方法只能配置一个YUI Loader实例的加载模块信息,无法配置全局的加载模块信息。实际中,能够全局的配置加载文件的模块信息对于统一维护非常的重要,特别是在静态文件服务器设置了上传文件不可以修改和删除情况下。下面是解决这个问题的两个方法:

阅读全文 »

标签:, , ,
在23:45发表于Javascript & DOM & AJAX,有评论5
2008.0130
Javascript风格要素(2)

我们使用习惯用法可以使我们的意图更加的清晰和简洁。

使用==时,当心强制转换

考虑下面函数:

function gw(f) {
    if (d.w.sv.checked == true) {
        zv = 'on';
    } else {
        zv = 'off';
    }
    procframe.location.replace("http://b.www.yahoo.com/module/wtr_tr.php?p=" +
        escape(f.p.value) + "&sv=" + zv);
    return false;
}

阅读全文 »

标签:,
在19:28发表于Javascript & DOM & AJAX,有评论1
2008.0126
Javascript风格要素(1)

程序设计是困难的,其核心是管理的复杂性。计算机程序是人类做出的最复杂的东西。质量是不可靠的且隐蔽的。

好的体系架构是必需给程序足够的结构使其健壮而不会陷入混乱的泥淖,但我们表达一个程序细节的方式是同等重要的。一个程序的本质会被不良的编码所隐藏。只有当一个程序的表达清晰时,我们才能有希望正确的推理出它的效率、安全和正确性。

William Strunk的《风格要素》(The Elements of Style)是关于文学风格的经典著作,它是一本关于英文写作的薄手册,在用法、组织和形式上提出忠告。风格的理念应用于编程,在1972年Kreitzberg和Shneiderman的《FORTRAN风格要素》(The Elements of FORTRAN Style)中是不成功的,但在1978年的Kernighan和Plauger的《编程风格要素》(The Elements of Programming Style)中是非常成功的:

阅读全文 »

标签:,
在17:03发表于Javascript & DOM & AJAX,有评论6
2007.1204
Javascript的一种模块模式

全局变量是魔鬼。在YUI中,我们仅用两个全局变量:YAHOO和YAHOO_config。YUI的一切都是使用YAHOO对象级的成员或这个成员作用域内的变量。我们建议在你的应用程序也使用类似的规则。

Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用。Douglas叫它模块模式(module pattern)。它是如下工作的:

阅读全文 »

标签:, , ,
在0:49发表于Javascript & DOM & AJAX,有评论7
2007.0925
Ajax的小贴士

在使用Ajax过程中,有时候总会遇到一些难题,浏览器兼容、编码、IE下的特殊处理等等,偶尔会搞的人头昏脑胀哭笑不得,这里列一些小贴士,或许有些用。

使用Javascript库

Ajax的流行和巨大威力,让我们重新审视了Javascript的开发,也直接促使各种库的出现。对于普通的开发者,使用一些适合自己的Javascript库不仅可以避免Ajax应用上的浏览器兼容等问题,也使其开发更加的稳定和高效。这里列一些我知晓的轻量级的Javascript库:

阅读全文 »

标签:, , , , , , , ,
在18:14发表于Javascript & DOM & AJAX,有评论2
2007.0920
同时上传多个文件的解决方案

常见的方法就是在页面给出多个上传文件控件,用户分别选择文件,然后上传。Gmail的实现方式进行了改进,通过上传按钮,用户需要几个上传文件控件就可以创建几个,并且可以对创建的控件进行删除。

Yahoo邮箱和163邮箱采用的方式是,点击上传附件按钮,直接弹出文件选择框,选择之后,163邮箱的处理方式是在页面列出要上传文件名,然后发信时同步上传,而Yahoo邮箱处理方式是直接通过Ajax上传。这样做的好处:

阅读全文 »

标签:
在22:25发表于Javascript & DOM & AJAX, UX & Usability,有评论2
2007.0915
让网页上传文件控件只能选择不能编辑

使用网页上传文件控件(<input type=”file” />)时,为了减少用户无意操作而导致上传路径错误,降低服务端无效请求的压力,会要求其只能通过“浏览…”按钮选择,而不能通过输入框直接输入和编辑。

虽然<input type=”file” />有一个属性readonly,但是当这个属性生效时,IE下不仅不能编辑,也不能通过“浏览…”按钮选择,而在Firefox和Opera下完全没有任何作用。所以只能通过其他手段来达到目的了,即阻止通过键盘或鼠标对文件输入框的操作。有如下三种方法:

阅读全文 »

标签:, , , , , , ,
在4:30发表于Javascript & DOM & AJAX,有评论8
2007.0722
用document.domain解决Ajax跨子域

因为浏览器的安全策略,浏览器不允许不同域(比如:dancewithnet.com和lab.dancewithnet.com)、不同协议(比如:http://dancewithnet.com和https://dancewithnet.com)、不同端口(比如:http:dancewithnet.com和http://dancewithnet.com:8080)下的页面通过XMLHTTPRequest相互访问,这个问题同样影响着不同页面的Javascript的相互调用和控制,但是当主域、协议、端口相同时,通过设置页面的document.domain主域,Javascript可以在不同的子域名间访问控制,比如通过设置document.domain=’dancewithnet.com’,http://dancewithnet.com和http://lab.dancewithnet.com页面可互访,这个特性也提供了此情况下不同子域名下的XMLHTTPRequest相互访问的解决方案。

阅读全文 »

标签:, ,
在17:38发表于Javascript & DOM & AJAX,有评论6
回到页眉