注:标注有[S]的为静态方法,无须实例化对象即可使用。

 

1.   Array

 

[S] Array.add (array, item)

添加一项至Array的结尾。

var a = ['a','b','c','d'];

Array.add(a, 'e');

// a = ['a','b','c','d','e']

 

[S] Array.addRange (array, items)

items中的项依次添加到Array的结尾。

var a = ['a', 'b', 'c', 'd', 'e'];

var b = ['f', 'g','h'];

Array.addRange(a, b);

// a = ['a','b','c','d','e','f','g','h']

 

[S] Array.clear (array)

清除该Array中的所有项。

 

[S] Array.clone (array)

返回该Array的浅拷贝(Shallow Copy)。

注意:浅拷贝只包含原Array中的项,无论是引用类型还是值类型。但浅拷贝并不会复制被引用的对象,新的Array和原Array中的某个元素引用的是同一个对象的实例。

var a = ['a','b','c','d'];

var b = Array.clone(a);

// b = ['a','b','c','d']

 

[S] Array.contains (array, item)

判断指定的项是否包含在该Array中。

var a = ['red','green','blue','yellow'];

var b = Array.contains(a, "red");

// b = true

 

[S] Array.dequeue (array)

从原Array中删除第一项,并返回该项。

var myArray = [],result = "";

Array.add(myArray, 'a');

Array.add(myArray, 'b');

Array.add(myArray, 'c');

Array.add(myArray, 'd');

result = Array.dequeue(myArray);

// myArray = ['b','c', 'd'], result = 'a'

 

[S] Array.forEach (array, method, context)

依次访问该Array中的每一项,但跳过值为undefined的项。

var a = ['a', 'b', 'c', 'd'];

a[5] = 'e';

var result = '';

function appendToString(arrayElement, index, array) {

    // "this" is the context parameter, i.e. '|'.

    result += arrayElement + this + index + ',';

}

Array.forEach(a, appendToString, '|');

// result = a|0,b|1,c|2,d|3,e|4,

 

[S] Array.indexOf (array, item, start)

Array中搜索某一项,并返回其在该Array中的索引。若该Array中不包含该项,则返回-1

var a = ['red', 'blue', 'green', 'blue'];

var myFirstIndex = Array.indexOf(a, "blue");

var mySecondIndex = Array.indexOf (a, "blue", (myFirstIndex + 1));

// myFirstIndex = 1, mySecondIndex = 3

 

[S] Array.insert (array, index, item)

Array中的某一位置插入新项。

var a = ['a', 'b', 'd', 'e'];

Array.insert(a, 2, 'c');

// a = ['a','b','c','d','e']

 

[S] Array.parse (value)

从字符串表达方式解析出真正的Array对象。

var a = Array.parse ("['red', 'blue', 'green']");

// a[0] = 'red', a[1] = 'blue', a[2] = 'green'

 

[S] Array.enqueue (array, item)

添加一项至Array的结尾。请同时参考Array.dequeue (array)

 

[S] Array.remove(array, item)

从该Array中移除(第一次出现的)该项。

var a = ['a', 'b', 'c', 'd', 'e'];

Array.remove(a, 'c');

// a = ['a','b','d','e']

Array.removeAt(a, 2);

// a = ['a','b','e']

 

[S] Array.removeAt(array, index)

从该Array中移除指定索引位置上的项。


 

2.   Boolean

[S] Boolean.parse (value )

从字符串表示的布尔值解析成相应的Boolean类型。value参数必须为“true”“false”二者之一,不区分大小写,且可以包含空格。

var b = Boolean.parse("true");

 

3.   Date

 

Date.format (format)

格式化字符串(区域设定无关)。

var d = new Date();

Sys.Debug.trace (d.format("dddd, dd MMMM yyyy HH:mm:ss"));

 

Date.localeFormat (format)

格式化字符串(区域设定相关)。使用Sys.CultureInfo.CurrentCulture得到区域属性。

var d = new Date();

Sys.Debug.trace (d.localeFormat("dddd, dd MMMM yyyy HH:mm:ss"));

 

[S] Date.parseLocale (value, formats)

从字符串表示的本地时间日期解析成相应的Date类型。使用Sys.CultureInfo.CurrentCulture得到区域属性。

Sys.Debug.trace (Date.parseLocale ("4/10/2001", "yyyy-MM-dd",

"MM/dd/yyyy"));

// Date.parseLocale will skip the first format here as invalid and use

// the second one. If it does not find an appropriate format,

// the function throws an exception.

 

[S] Date.parseInvariant (value, formats)

从字符串表示的区域无关时间日期解析成相应的Date类型。

Sys.Debug.trace (Date.parseInvariant ("4/10/2001", "yyyy-MM-dd",

"MM/dd/yyyy"));

// Date.parseInvariant will skip the first format here as invalid and use

// the second one. If it does not find an appropriate format,

// the function throws an exception.

 

支持的格式

 

1.    d 缩写日期(e.g.: 02/17/2007)

2.    D 完整日期(e.g: Saturday, 17 February 2007)

3.    t 缩写时间(e.g.: 22:10)

4.    T 完整时间(e.g.: 22:10:30)

5.    F 完整时间日期(e.g.: Saturday, 17 February 2007 22:10:30)

6.    m (or M) 月和日(e.g.: February 17)

7.    s 可排序的时间日期(e.g.: 2007-02-17T22:10:30)

8.    y (or Y) 年和月(e.g.: 2007 February)

 

4.   DomElement

 

 [S] getElementById (id, element)

element所包含的元素中搜索特定id的元素,若不指定element,则默认为document

var article = Sys.UI.DomElement.getElementById('article');

var heading = Sys.UI.DomElement.getElementById('heading', article)

// Note: 'article' is an instance of Sys.UI.DomElement

var btn = Sys.UI.DomElement.getElementById('<%= Submit.ClientID %>');

// Note: 'Submit' is an ASP.NET Button server control

 

[S] $get (id, element)

Sys.UI.DomElement.getElementById的简写形式。

var article = $get('article');

var heading = $get('heading', article)

// Note: 'article' is an instance of Sys.UI.DomElement

var btn = $get('<%= Submit.ClientID %>');

// Note: 'Submit' is an ASP.NET Button server control

 

[S] addCssClass (element, className)

将指定的CSS Class应用至该元素。

Sys.UI.DomElement.addCssClass($get('heading'), 'highlight');

 

[S] containsCssClass (element, className)

判断该元素是否应用了指定的CSS Class

var heading = $get('heading', article)

var isHighlighted = Sys.UI.DomElement.containsCssClass(heading, 'highlight');

 

[S] removeCssClass (element, className)

从该元素中移除指定的CSS Class

var heading = $get('heading', article)

Sys.UI.DomElement. removeCssClass (heading, 'highlight');

 

[S] toggleCssClass (element, className)

若元素已经应用了该CSS Class,则将其移除;否则添加。

var heading = $get('heading', article)

var isHighlighted = Sys.UI.DomElement.toggleCssClass(heading, 'highlight');

 

[S] getLocation (element)

取得元素相对于浏览器左上角的绝对位置,滚动出页面可见区域之外的距离也计算在内。

var article = $get('article');

var position = Sys.UI.DomElement.getLocation(article);

var x = position.x, y = position.y;

 

[S] setLocation (element, x, y)

设定元素相对于其定位元素左上角的位置。定位元素是指元素最近的应用了position(非static值)的祖先元素。

var menu = $get('menu');

Sys.UI.DomElement.setLocation(menu, 200, 50);

 

[S] getBounds (element)

取得元素的绝对位置以及其长宽,返回值对象包括如下几个属性:

1.    x, y:取得元素相对于浏览器左上角的绝对位置,与Sys.UI.DomElement.getLocation()一样。

2.    width:元素的宽度,包括borderpadding以及滚动部分。

3.    height:元素的高度,包括borderpadding以及滚动部分。

var article = $get('article');

var bounds = Sys.UI.DomElement.getBounds (article);

Sys.Debug.traceDump (bounds, 'Article position and size');

/*

Article position and size {Sys.UI.Bounds}

x: 50

y: 200

height: 268

width: 368

*/

注意到其中宽度和高度均包含borderpadding以及滚动部分。所以对于一个300 * 200像素、20像素border14像素padding的元素来说,其宽度高度将为368 * 268像素。

         

 

5.   DomEvent

 

[S] addHandler (element, eventName, handler)
[S] $addHandler (element, eventName, handler)

DOM元素添加某一事件的处理函数,事件名称应去掉“on”前缀。

注意:在事件处理函数中,this指向的是element,而不一定是发出该事件的元素。

Sys.UI.DomEvent.addHandler (element, "click", clickHandler);

// Same as $addHandler (element, "click", clickHandler);

function clickHandler (e) { … }

 

[S] addHandlers (element, events, handlerOwner)
[S] $addHandlers (element, events, handlerOwner)

DOM元素添加多个事件处理函数,events是一个事件处理函数的字典。

注意:在事件处理函数中,若指定了handlerOwner,那么this将指向该handlerOwner,否则将指向element

$addHandlers ($get ("article"), {

    mouseover: onMouseOver,

    mouseout: onMouseOut

});

function onMouseOver (e) { this.style.backgroundColor = 'yellow'; }

function onMouseOut (e) { this.style.backgroundColor = 'white'; }

 

[S] clearHandlers (element)
[S] $clearHandlers (element)

移除指定DOM元素所有的事件处理函数。

Sys.UI.DomEvent.clearHandlers (element);

// Same as $ clearHandlers (element);

 

[S] removeHandler (element, eventName, handler)
[S] $removeHandler (element, eventName, handler)

DOM元素移除指定的事件处理函数。

Sys.UI.DomEvent.removeHandler (element, "click", clickHandler);

// Same as $removeHandler (element, "click", clickHandler);

 

preventDefault ()

阻止执行默认的事件处理函数。例如若阻止了a元素的onclick事件,那么将不会引发页面导航。

$addHandler ($get ("showMoreLink"), "click", showMore);

function showMore (e) { e.preventDefault (); }

 

stopPropagation ()

阻止事件冒泡传递至父元素。

 

Event对象的属性

1.    altKey:判断触发事件时Alt键是否被按下。

2.    button:得到触发事件的鼠标按键。可选值为Sys.UI.MouseButton枚举(leftButtonmiddleButtonrightButton)。

3.    charCode:得到触发事件时的键盘按键代码。可以为Sys.UI.Key枚举(backspace, tab, enter,esc, space, pageUp, pageDown, end, home, left, up, right, down, del)。

4.    clientX:鼠标指针相对于文档可见区域的X坐标。

5.    clientY:鼠标指针相对于文档可见区域的Y坐标。

6.    ctrlKey:判断触发事件时Ctrl键是否被按下。

7.    offsetX:鼠标指针相对于触发事件元素左侧边缘的偏移位置。

8.    offsetY:鼠标指针相对于触发事件元素上边缘的偏移位置。

9.    rawEvent:原始的DOM事件。

10.  screenX:鼠标指针相对于浏览者屏幕的X坐标。

11.  screenY:鼠标指针相对于浏览者屏幕的Y坐标。

12.  shiftKey:判断触发事件时Shift键是否被按下。

13.  target:触发事件的对象。

14.  type:事件名称(例如“click”)。

 

6.   Number

Number.format (format)

用指定的format格式化数字(区域设定无关)。

 

Number.localeFormat (format)

用指定的format格式化数字(区域设定相关)。

 

支持的格式

1.    p:将数字转为百分比字符串(e.g.: -1,234.56 %

2.    d:将数字装化为十进制字符串,没有逗号分隔符(e.g.: -1234.56

3.    c:将数字转化为货币金额形式(e.g.: (¤1,234.56)

4.    n:将数字串化为逗号三位分隔(-d,ddd,ddd.ddd…")形式(e.g.: -1,234.56

 

[S] Number.parseLocale (value)

从字符串表示的本地数字解析成相应的Number类型。使用Sys.CultureInfo.CurrentCulture得到当前的区域属性。

 

[S] Number.parseInvariant (value)

从字符串表示的本地数字解析成相应的浮点数Number类型。value中可以包含逗号分隔符(,)或是正负(+-)号。

var a = new Number();

a = Number.parseInvariant("4");

var b = new Number(2);

var c = Number.parseInvariant("1.53") + a + b;

// c = 7.53

 

7.   Error

Error相关的方法

1.    [S] Error.argument:根据指定的异常信息和非法的参数创建一个Sys.ArgumentException类型的异常。

2.    [S] Error.argumentNull:根据指定的异常信息和为Null的参数创建一个Sys.ArgumentNullException 类型的异常。

3.    [S] Error.argumentType:根据指定的异常信息、期待参数类型和实际参数类型创建一个Sys.ArgumentTypeException 类型的异常。

4.    [S] Error.argumentUndefined:根据指定的异常信息和为定义的参数创建一个Sys.ArgumentUndefinedException类型的异常。

5.    [S] Error.create:根据指定的异常信息创建一个Error对象。

6.    [S] Error.invalidOperation:根据指定的异常信息和引发该异常的参数创建一个Sys.InvalidOperationException 类型的异常。

7.    [S] Error.notImplemented:根据指定的异常信息创建一个Sys.NotImplementedException类型的异常。

8.    [S] Error.argumentOutOfRange:根据指定的异常信息和引发该异常的参数创建一个Sys.ArgumentOutOfRangeException类型的异常。

9.    [S] Error.parameterCount:根据指定的异常信息创建一个Sys.ParameterCountException 类型的异常。

10.  Error.popstackFrame:将该Error实例的fileNamelineNumber字段更新为该Error被掷出时的位置,而不是该Error被创建时的位置。

// Throw a standard exception type

var err = Error.argumentNull("input", "A parameter was undefined.");

throw err;

// Throw a generic error with a message and associated errorInfo object.

var errorInfoObj = { name: "SomeNamespace.SomeExceptionName",

someErrorID: "436" };

var err = Error.create("A test message", errorInfoObj);

throw err;

 

 

8.   String

 

String.endsWith (suffix)

判断该String是否以指定的后缀结束。

var isTxt = myString.endsWith ("some_file.txt", ".txt");
// isTxt = true

 

[S] String.format (format, args)

将该String中的各个格式化项用相应的参数值替代。args可以为单一的Object,或是一个包含多个项的Array

var user = {
    FirstName: 'John',
    LastName : 'Doe',
    DOB: new Date (1975, 1, 17) };
var label = String.format ("User name: {0} {1}, born {2:d}",
    user.FirstName, user.LastName, user.DOB));
// label = "User name: John Doe, born 02/17/1975"

 

[S] String.localeFormat (format, args)

功能与String.format (format, args)类似,不过格式化时与区域设定相关。

 

String.startsWith (prefix)

判断该String是否以指定的前缀开始。请参考String.endsWith (suffix)

 

String.trim ()

返回一个原String的拷贝,但将原String开头和结尾部分的所有空白字符(例如空格或Tab)都移除。

var myString = "   A string   ";
myString = myString.trim();
// myString = "A string"

 

String.trimEnd ()

返回一个原String的拷贝,但将原String结尾部分的所有空白字符(例如空格或Tab)都移除。

var myString = "A string   ";
myString = myString.trim();
// myString = "A string"

 

String.trimStart ()

返回一个原String的拷贝,但将原String开头部分的所有空白字符(例如空格或Tab)都移除。

var myString = "   A string";
myString = myString.trim();
// myString = "A string"

 

 

9.   Object

 

[S] Object.getType (instance)

返回指定对象的类型,请参考Object.getTypeName (instance)

 

[S] Object.getTypeName (instance)

返回一个表示对象在运行时的完全限定类型的字符串。

Type.registerNamespace("Samples");
// Define and register a Samples.Rectangle class.
Samples.Rectangle = function(width, height) {
    this._width = width;
    this._height = height;
}
Samples.Rectangle.registerClass("Samples.Rectangle");
var a = new Samples.Rectangle(200, 100);
var name = Object.getTypeName(a);
var type = Object.getType (a);
Sys.Debug.trace ("The type name of object \"a\" is: " + name);
Sys.Debug.traceDump (type);
/* The result is:
    The type name of object "a" is: Samples.Rectangle
    traceDump {Function}
    prototype {Samples.Rectangle}
        __typeName: Samples.Rectangle
        __class: true
*/

 

posted on 2009-03-23 10:38  Seer Lin  阅读(2889)  评论(6编辑  收藏  举报