Archive for the ‘Javascript’ Category

JQuery DOM 的常用操作

一、JQuery对象的基本方法
(1) get(); 取得所有匹配的元素
(2) get(index); 取得其中一个匹配的元素 $(this).get(0) 等同于 $(this)[0]
(3) Number index(jqueryObj); 搜索子对象
(4) each(callback); 类似foreach,不过遍历的是元素数组
如:
$(“img”.each(function(index){
this.src = “test” + index + “.jpg”;
});
使用 return false; return true; 代表 break、continue的功能

(5) length、size(); 都是返回元素总数值

(6) jQuery.noConflict(true);   重设 jquery 默认的符号
如:
var dom = {};
dom.query = jQuery.noConflict(true);
这时将用 dom.query 代替 $

二、、JQuery选择器
(1)基本:

*                        匹配所有DOM元素
.classname               匹配带有指定classname的DOM元素
element(DOM标签名称)     匹配指定名称的所有DOM元素
#id                      匹配指定ID的DOM元素
,                        用,分开表示匹配多个选择条件中的一个

(2)层级:

选择一[空格]选择二 表示选一内合符条件二的所有元素
选择一[>]选择二     表示选一内合符条件二的第一个元素
选择一[+]选择二     表示紧接选一符条件二的元素 next
选择一[~]选择二     表示选一后符条件二的所有元素 siblings

(3)运算符

:animated           动画元素
:eq(index)          索引位置,如:$(“div:eq(1)”
:even               偶数元素
dd                奇数元素
:first              第一个
:gt(index)          大于索引的所有元素
:lt(index)          小于索引的所有元素
:header             H1、H2… 这些标题元素
:last               最后一个
:not(Selector)      排除

:contains(string)   选择的对象内容里包含
:empty              选择的对象内容为空
:has(Selector)      含有
:parent             与empty相反
:first-child
:last-child
:nth-child(index)   第几个
nly-child         唯一的子元素

表单
:text :checkbox :radio :image :file :submit :reset :password :button

表单状态
:checked :disabled :enabled :selected

可见性
:hidden :visible

属性及其运算符
[属性名称]        匹配包含给定属性的元素
[att=value]       等同上面
[att*=value]      模糊匹配
[att!=value]      不能是这个值
[att$=value]      结尾是这个值
[att^=value]      开头是这个值
[att1][att2][att3]…   匹配多个属性条件中的一个

三、JQuery DOM 的常用操作
(是指通过选择器筛选得到DOM后可进行的常用操作,即是JQuery对象实例的方法)

1、属性操作(注:attr(name)、html()、val() 是只对第一个匹配元素操作的方法,其它都是对全部操作)
attr(name); 获得匹配元素的第一个元素指定的属性
attr(key, fn)、attr(key, value) 对所有匹配元素设定一个属性值,前者的第二个参数是一个函数,值即是这个函数的返回值
attr(properties) 用键值对设定所有匹配元素设定一个或多个属性值,如:$(“img”.attr({ src: “test.jpg”, alt: “Test Image” });
removeAttr(name) 删除匹配元素指定属性值
addClass(classname) 增加类名,即是增加 class 属性
removeClass(classname)
toggleClass(classname) 切换类名(存在则删除,不存在则增加)

html()
html(setvalue)
text()
text(setvalue)
val()
val(val)      对于普通元素,使用方法应该是 对象.val(设置值); 对于 select、radio等则用值表示要选中这个值的对象,如:
$(“#multiple”.val(["value1", "value3"]);
$(“input”.val(["checkvalue1", "checkvalue2"]);

2、筛选
实际上筛选的方法很多都能通过选择器的运算符实现的,因此这里只列出一些特殊的操作方法。

eq(index)、filter(expr)、hasClass(class)、is(expr)、not(expr)、

filter(fn)           筛选出与指定函数返回值匹配的元素集合(这个函数内部将对每个对象计算一次
(类似 ‘$.each’). 如果调用的函数返回false则这个元素被删除,否则就会保留。)

slice(start,[end])   选取一个匹配的子集

map(callback)        将一组元素转换成其他数组(不论是否是元素数组)

andSelf()     把所选的加入到当前元素集中
end()         恢复前一个选择破坏后的状态

3、文档处理

append(content)      向每个元素内容追加内容,content指:String, Element, jQuery 其中之一,以下同。

appendTo(content)    以上面的相反,上面是向选中对象追加,这个是把选中对象向content选择的对旬追加

prepend(content)、prependTo(content)、after(content)、before(content)

replaceWith(content) 把选中元素用content替换
replaceAll(selector) 把选择的对象用当前对象替换

empty()
remove([expr])
clone()
clone(true) 克隆时把事件一起克隆

4、CSS处理

css(name)         访问第一个匹配元素的样式属性
css(name,value)   在所有匹配的元素中,设置一个样式属性的值
css(properties)   用键值对对其给值

offset()          获得选中元素的位移,返回值为对象Object{top,left}

height()、height(val)、width()、width(val)

四、JQuery对象的事件处理

1、全局操作

(1) ready(fn)              DOM就绪时的事件,对于document事件可以简写为 $(function(){ …   });

(2) bind(type,[data],fn)   对所的匹配绑定一个事件data为传递给这个事件函数的附加对象
如:
$(“p”.bind(“click”, function(){
alert( $(this).text() );
});
function handler(event) {
alert(event.data.foo);
}
$(“p”.bind(“click”, {foo: “bar”}, handler)

(3) one(type,[data],fn)           以上面的区别是这个事件只响应一次

(4) trigger(type,[data])          在每一个元素上触发一次某事件

(5) triggerHandler(type,[data])   只触发事件函数,但不触发浏览器的相同事件

(6) unbind([type],[data])         删除绑定的事件

(7) hover(overFn, outFn)          响应鼠标经过事件

(8) toggle(fn1,fn2…)            每次点击鼠标后依次响应该不同的函数

2、固定事件
在不带参数的情况下表示执行某事件,带参数则为设定某事件

下面的事件能触发,也能设定:
blur()、change()、click()、dblclick()、error()、focus()、keydown()、keypress()、keyup()、select()、submit()

下面的事件只能设定,不能用JS触发:
load(fn)、mousedown(fn)、mousemove(fn)、mouseout(fn)、mouseover(fn)、mouseup(fn)、resize(fn)、scroll(fn)、unload(fn)

五、效果
hide()
hide(speed,[callback])    用动画隐藏,callback 为动画完成时执行的函数
show()
show(speed,[callback])
toggle()                 切换状态

slideDown(speed,[callback])      通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。
slideUp(speed,[callback])        通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。

slideToggle(speed,[callback])    通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。

fadeIn(speed,[callback])         通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。
fadeOut(speed,[callback])        通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。
fadeTo(speed,opacity,[callback]) 把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。

animate(params,options) 用于创建自定义动画的函数。
params (Options) : 一组包含作为动画属性和终值的样式属性和及其值的集合
options (Options) : 一组包含动画选项的值的集合。

animate(params[,duration[,easing[,callback]]])

duration、 easing 是预设的动画动作
duration (String,Number) : (可选) 三种预定速度之一的字符串(“slow”, “normal”, or “fast”或表示动画时长的毫秒数值(如:1000)
easing (String) : (可选) 要使用的擦除效果的名称(需要插件支持).默认jQuery提供”linear” 和 “swing”.

dequeue()        从动画队列中移除一个队列函数
queue()          返回指向第一个匹配元素的队列(将是一个函数数组)
queue(callback) 在匹配的元素的动画队列中添加一个函数
queue(queue)     将匹配元素的动画队列用新的一个队列来代替(函数数组)
stop()

六、AJAX

1、jQuery.ajax(options) 通过 HTTP 请求加载远程数据。

参数列表:
(1) async (Boolean) : (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。
(2) beforeSend (Function) : 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头。XMLHttpRequest 是Function的唯一参数
(3) cache (Boolean) : (默认: true,dataType为script时默认为false) jQuery 1.2 新功能,设置为 false 将不会从浏览器缓存中加载请求信息。
(4) complete (Function) : 请求完成后回调函数 (请求成功或失败时均调用)。
(5) contentType (String) : (默认: “application/x-www-form-urlencoded” 发送信息至服务器时内容编码类型。
(6) data (Object,String) : 发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为

Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 ‘&foo=bar1&foo=bar2′。
(7) dataFilter (Function) :给Ajax返回的原始数据的进行预处理的函数。
(8) dataType (String) : 预期服务器返回的数据类型,”xml”、”html”、”script”、”json”、”jsonp”、”text”。
(9) error (Function) : (默认: 自动判断 (xml 或 html)) 请求失败时调用时间。
(10) global (Boolean) : (默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件
(11) ifModified (Boolean) : (默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。
(12) jsonp (String) : 在一个jsonp请求中重写回调函数的名字。
(13) password (String) : 用于响应HTTP访问认证请求的密码
(20) username (String) : 用于响应HTTP访问认证请求的用户名
(14) processData (Boolean) : (默认: true) 默认情况下,发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 “application/x-www-form-urlencoded”。如

果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。
(15) scriptCharset (String) : 只有当请求时dataType为”jsonp”或”script”,并且type是”GET”才会用于强制修改charset。通常在本地和远程的内容编码不同时使用。
(16) success (Function) : 请求成功后回调函数。参数:服务器返回数据,数据格式。 Ajax 事件。
(17) timeout (Number) : 设置请求超时时间(毫秒),此设置将覆盖全局设置。
(18) type (String) : (默认: “GET” 请求方式 (“POST” 或 “GET”), 默认为 “GET”。
(19) url (String) : (默认: 当前页地址) 发送请求的地址。

参数用 : 分开,如:
$.ajax({
url: “test.html”,
cache: false,
success: function(html){
$(“#results”).append(html);
}
});

2、封装好的简易方法(callback是成功时执行的函数,参数是返回的数据)
jQuery.get(url,[data],[callback])
jQuery.getJSON(url,[data],[callback])
jQuery.getScript(url,[callback])       载入远程JS并执行
jQuery.post(url,[data],[callback])
load(url,[data],[callback])            把远程的HTML载入当前选中的DOM中

3、事件(事件参数为event, XMLHttpRequest, ajaxOptions, thrownError)
ajaxError(callback)       AJAX 请求发生错误时执行函数。
ajaxSend(callback)        AJAX 请求发送前执行函数
ajaxComplete(callback)    AJAX 请求完成时执行函数
ajaxStart(callback)       AJAX 请求开始时执行函数
ajaxStop(callback)        AJAX 请求结束时执行函数
ajaxSuccess(callback)     AJAX 请求成功时执行函数
jQuery.ajaxSetup(options) 设定Ajax的全局默认值
serialize()               序列表单内容为字符串
serializeArray()          序列化表格元素 (类似 ‘.serialize()’ 方法) 返回 JSON 数据结构数据

七、常用静态方法

jQuery.boxModel             当前页面中浏览器是否使用标准盒模型渲染页面
jQuery.browser                浏览器内核标识。依据 navigator.userAgent 判断。
可用值: safari opera msie mozilla

jQuery.browser.version      浏览器渲染引擎版本号。
jQuery.each(obj,callback)   通用例遍方法,可用于例遍对象和数组。
jQuery.inArray(value,array) 确定第一个参数在数组中的位置(如果没有找到则返回 -1 )。
jQuery.map(array,callback) 将类数组对象转换为数组对象,返回值为数据,callback可以对旧数组单个进行处理
jQuery.unique(array)        删除数组中重复元素。

js htmlspecialchars 函数

<script>
function htmlspecialchars(string){
var data = [];
for(var i = 0 ;i <string.length;i++) {
data.push( “&#”+string.charCodeAt(i)+”;”);
}
return data.join(“”);
}
document.write(htmlspecialchars(“@{}<script>javascript alert<\/script>”));
</script>

Javascript日期时间函数

Date (对象)
  Date 对象能够使你获得相对于国际标准时间(格林威治标准时间,现在被称为 UTC-Universal Coordinated Time)或者是 Flash 播放器正运行的操作系统的时间和日期。要使用Date对象的方法,你就必须先创建一个Date对象的实体(Instance)。
  Date 对象必须使用 Flash 5 或以后版本的播放器。
  Date 对象的方法并不是静态的,但是在使用时却可以应用于所指定的单独实体。
  Date 对象的方法简介:
  ·getDate      | 根据本地时间获取当前日期(本月的几号)
  ·getDay       | 根据本地时间获取今天是星期几(0-Sunday,1-Monday…)
  ·getFullYear    | 根据本地时间获取当前年份(四位数字)
  ·getHours      | 根据本地时间获取当前小时数(24小时制,0-23)
  ·getMilliseconds  | 根据本地时间获取当前毫秒数
  ·getMinutes     | 根据本地时间获取当前分钟数
  ·getMonth      | 根据本地时间获取当前月份(注意从0开始:0-Jan,1-Feb…)
  ·getSeconds     | 根据本地时间获取当前秒数
  ·getTime      | 获取UTC格式的从1970.1.1 0:00以来的毫秒数
  ·getTimezoneOffset | 获取当前时间和UTC格式的偏移值(以分钟为单位)
  ·getUTCDate     | 获取UTC格式的当前日期(本月的几号)
  ·getUTCDay     | 获取UTC格式的今天是星期几(0-Sunday,1-Monday…)
  ·getUTCFullYear   | 获取UTC格式的当前年份(四位数字)
  ·getUTCHours    | 获取UTC格式的当前小时数(24小时制,0-23)
  ·getUTCMilliseconds | 获取UTC格式的当前毫秒数
  ·getUTCMinutes   | 获取UTC格式的当前分钟数
  ·getUTCMonth    | 获取UTC格式的当前月份(注意从0开始:0-Jan,1-Feb…)
  ·getUTCSeconds   | 获取UTC格式的当前秒数
  ·getYear      | 根据本地时间获取当前缩写年份(当前年份减去1900)
  ·setDate      | 设置当前日期(本月的几号)
  ·setFullYear    | 设置当前年份(四位数字)
  ·setHours      | 设置当前小时数(24小时制,0-23)
  ·setMilliseconds  | 设置当前毫秒数
  ·setMinutes     | 设置当前分钟数
  ·setMonth      | 设置当前月份(注意从0开始:0-Jan,1-Feb…)
  ·setSeconds     | 设置当前秒数
  ·setTime      | 设置UTC格式的从1970.1.1 0:00以来的毫秒数
  ·setUTCDate     | 设置UTC格式的当前日期(本月的几号)
  ·setUTCFullYear   | 设置UTC格式的当前年份(四位数字)
  ·setUTCHours    | 设置UTC格式的当前小时数(24小时制,0-23)
  ·setUTCMilliseconds | 设置UTC格式的当前毫秒数
  ·setUTCMinutes   | 设置UTC格式的当前分钟数
  ·setUTCMonth    | 设置UTC格式的当前月份(注意从0开始:0-Jan,1-Feb…)
  ·setUTCSeconds   | 设置UTC格式的当前秒数
  ·setYear      | 设置当前缩写年份(当前年份减去1900)
  ·toString      | 将日期时间值转换成”日期/时间”形式的字符串值
  ·Date.UTC      | 返回指定的UTC格式日期时间的固定时间值
创建新的 Date 对象
  语法:
   new Date();
   new Date(year [, month [, date [, hour [, minute [, second [, millisecond ]]]]]] );
  参数:
   year     是一个 0 到 99 之间的整数,对应于 1900 到 1999 年,或者为四位数字指定确定的年份;
   month    是一个 0 (一月) 到 11 (十二月) 之间的整数,这个参数是可选的;
   date     是一个 1 到 31 之间的整数,这个参数是可选的;
   hour     是一个 0 (0:00am) 到 23 (11:00pm) 之间的整数,这个参数是可选的;
   minute    是一个 0 到 59 之间的整数,这个参数是可选的;
   second    是一个 0 到 59 之间的整数,这个参数是可选的;
   millisecond 是一个 0 到 999 之间的整数,这个参数是可选的;
  注释:
   对象。新建一个 Date 对象。
  播放器支持:
   Flash 5 或以后的版本。
  例子:
   下面是获得当前日期和时间的例子:
    now = new Date();
   下面创建一个关于国庆节的 Date 对象的例子:
    national_day = new Date (49, 10, 1);
   下面是新建一个 Date 对象后,利用 Date 对象的 getMonth、getDate、和 getFullYear方法获取时间,然后在动态文本框中输出的例子。
    myDate = new Date();
    dateTextField = (mydate.getMonth() + “/” + myDate.getDate() + “/” + mydate.getFullYear());

Date > Date.getDate
Date.getDate
  语法:myDate.getDate();
  参数:无
  注释:
   方法。根据本地时间获取当前日期(本月的几号),返回值是 1 到 31 之间的一个整数。
  播放器支持:Flash 5 或以后版本。
Date > Date.getDay
Date.getDay
  语法:myDate.getDay();
  参数:无
  注释:
   方法。根据本地时间获取今天是星期几(0-星期日,1-星期一…)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getFullYear
Date.getFullYear
  语法:myDate.getFullYear();
  参数:无
  注释:
   方法。根据本地时间获取当前年份(四位数字,例如 2000)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
  例子:
   下面的例子新建了一个 Date 对象,然后在输出窗口输出用 getFullYear 方法获得的年份:
   myDate = new Date();
   trace(myDate.getFullYear());
Date > Date.getHours
Date.getHours
  语法:myDate.getHours();
  参数:无
  注释:
   方法。根据本地时间获取当前小时数(24小时制,返回值为0-23之间的整数)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getMilliseconds
Date.getMilliseconds
  语法:myDate.getMilliseconds();
  参数:无
  注释:
   方法。根据本地时间获取当前毫秒数(返回值是 0 到 999 之间的一个整数)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getMinutes
Date.getMinutes
  语法:myDate.getMinutes();
  参数:无
  注释:
   方法。根据本地时间获取当前分钟数(返回值是 0 到 59 之间的一个整数)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getMonth
Date.getMonth
  语法:myDate.getMonth();
  参数:无
  注释:
   方法。根据本地时间获取当前月份(注意从0开始:0-一月,1-二月…)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getSeconds
Date.getSeconds
  语法:myDate.getSeconds();
  参数:无
  注释:
   方法。根据本地时间获取当前秒数(返回值是 0 到 59 之间的一个整数)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.getTime
Date.getTime
  语法:myDate.getTime();
  参数:无
  注释:
   方法。按UTC格式返回从1970年1月1日0:00am起到现在的毫秒数。使用这个方法可以描述不同时区里的同一瞬间的时间。
  播放器支持:Flash 5 或以后版本。
Date > Date.getTimezoneOffset
Date.getTimezoneOffset
  语法:mydate.getTimezoneOffset();
  参数:无
  注释:
   方法。获取当前时间和UTC格式的偏移值(以分钟为单位)。
  播放器支持:Flash 5 或以后版本。
  例子:
   下面的例子将返回北京时间与UTC时间之间的偏移值。
   new Date().getTimezoneOffset();
   结果如下:
   480 (8 小时 * 60 分钟/小时 = 480 分钟)
Date > Date.getUTCDate
Date.getUTCDate
  语法:myDate.getUTCDate();
  参数:无
  注释:
   方法。获取UTC格式的当前日期(本月的几号)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCDay
Date.getUTCDay
  语法:myDate.getUTCDate();
  参数:无
  注释:
   方法。获取UTC格式的今天是星期几(0-星期日,1-星期一…)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCFullYear
Date.getUTCFullYear
  语法:myDate.getUTCFullYear();
  参数:无
  注释:
   方法。获取UTC格式的当前年份(四位数字)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCHours
Date.getUTCHours
  语法:myDate.getUTCHours();
  参数:无
  注释:
   方法。获取UTC格式的当前小时数(24小时制,返回值为0-23之间的一个整数)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCMilliseconds
Date.getUTCMilliseconds
  语法:myDate.getUTCMilliseconds();
  参数:无
  注释:
   方法。获取UTC格式的当前毫秒数(返回值是 0 到 999 之间的一个整数)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCMinutes
Date.getUTCMinutes
  语法:myDate.getUTCMinutes();
  参数:无
  注释:
   方法。获取UTC格式的当前分钟数(返回值是 0 到 59 之间的一个整数)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCMonth
Date.getUTCMonth
  语法:myDate.getUTCMonth();
  参数:无
  注释:
   方法。获取UTC格式的当前月份(注意从0开始:0-一月,1-二月…)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getUTCSeconds
Date.getUTCSeconds
  语法:myDate.getUTCSeconds();
  参数:无
  注释:
   方法。获取UTC格式的当前秒数(返回值是 0 到 59 之间的一个整数)。
  播放器支持:Flash 5 或以后版本。
Date > Date.getYear
Date.getYear
  语法:myDate.getYear();
  参数:无
  注释:
   方法。根据本地时间获取当前缩写年份(当前年份减去1900)。本地时间由 Flash 播放器所运行的操作系统决定。例如 2000 年用100来表示。
  播放器支持:Flash 5 或以后版本。
Date > Date.setDate
Date.setDate
  语法:myDate.setDate(date);
  参数:date 为 1 到 31 之间的一个整数。
  注释:
   方法。根据本地时间设置当前日期(本月的几号)。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.setFullYear
Date.setFullYear
  语法:myDate.setFullYear(year [, month [, date]] );
  参数:
   year 指定的四位整数代表指定年份,二位数字并不代表年份,如99不表示1999,只表示公元99年
   month 是一个从 0 (一月) 到 11 (十二月) 之间的整数,这个参数是可选的。
   date 是一个从 1 到 31 之间的整数,这个参数是可选的。
  注释:
   方法。根据本地时间设定年份。如果设定了 month 和 date 参数,将同时设定月份和日期。本地时间由 Flash 播放器所运行的操作系统决定。设定之后 getUTCDay 和 getDay 方法所获得的值将出现相应的变化。
  播放器支持:Flash 5 或以后版本。
Date > Date.setHours
Date.setHours
  语法:myDate.setHours(hour);
  参数:hour 是一个从 0 (0:00am) 到 23 (11:00pm) 之间的整数。
  注释:
   方法。根据本地时间设置当前小时数。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.setMilliseconds
Date.setMilliseconds
  语法:myDate.setMilliseconds(millisecond);
  参数:millisecond 是一个从 0 到 999 之间的整数。
  注释:
   方法。根据本地时间设置当前毫秒数。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。

Date > Date.setMinutes
Date.setMinutes
  语法:myDate.setMinutes(minute);
  参数:minute 是一个从 0 到 59 之间的整数。
  注释:
   方法。根据本地时间设置当前分钟数。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.setMonth
Date.setMonth
  语法:myDate.setMonth(month [, date ]);
  参数:
   month 是一个从 0 (一月) 到 11 (十二月)之间的整数
   date 是一个从 1 到 31 之间的整数,这个参数是可选的。
  注释:
   方法。根据本地时间设置当前月份数,如果选用了 date 参数,将同时设定日期。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.setSeconds
Date.setSeconds
  语法:myDate.setSeconds(second);
  参数:second 是一个从 0 到 59 之间的整数。
  注释:
   方法。根据本地时间设置当前秒数。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.setTime
Date.setTime
  语法:myDate.setTime(millisecond);
  参数:millisecond 是一个从 0 到 999 之间的整数。
  注释:
   方法。用毫秒数来设定指定的日期。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCDate
Date.setUTCDate
  语法:myDate.setUTCDate(date);
  参数:date 是一个从 1 到 31 之间的整数。
  注释:
   方法。按UTC格式设定日期,使用本方法将不会影响 Date 对象的其他字段的值,但是 getUTCDay 和 getDay 方法会返回日期更改过后相应的新值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCFullYear
Date.setUTCFullYear
  语法:myDate.setUTCFullYear(year [, month [, date]]);
  参数:
   year 代表年份的四位整数,如 2000
   month 一个从 0 (一月) 到 11 (十二月)之间的整数,可选参数。
   date 一个从 1 到 31 之间的整数,可选参数。
  注释:
   方法。按UTC格式设定年份,如果使用了可选参数,还同时设定月份和日期。设定过后 getUTCDay 和 getDay 方法会返回一个相应的新值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCHours
Date.setUTCHours
  语法:myDate.setUTCHours(hour [, minute [, second [, millisecond]]]));
  参数:
   hour 是一个从 0 (0:00am) 到 23 (11:00pm)之间的整数。
   minute 是一个从 0 到 59 之间的整数,可选参数。
   second 是一个从 0 到 59 之间的整数,可选参数。
   millisecond 是一个从 0 到 999 之间的整数,可选参数。
  注释:
   方法。设定UTC格式的小时数,如果是用可选参数,同时会设定分钟、秒和毫秒值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCMilliseconds
Date.setUTCMilliseconds
  语法:myDate.setUTCMilliseconds(millisecond);
  参数:millisecond 是一个从 0 到 999 之间的整数。
  注释:
   方法。设定UTC格式的毫秒数。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCMinutes
Date.setUTCMinutes
  语法:myDate.setUTCMinutes(minute [, second [, millisecond]]));
  参数:
   minute 是一个从 0 到 59 之间的整数,可选参数。
   second 是一个从 0 到 59 之间的整数,可选参数。
   millisecond 是一个从 0 到 999 之间的整数,可选参数。
  注释:
   方法。设定UTC格式的分钟数,如果是用可选参数,同时会设定秒和毫秒值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCMonth
Date.setUTCMonth
  语法:myDate.setUTCMonth(month [, date]);
  参数:
   month 是一个从 0 (一月) 到 11 (十二月)之间的整数
   date 是一个从 1 到 31 之间的整数,这个参数是可选的。
  注释:
   方法。设定UTC格式的月份,同时可选设置日期。设定后 getUTCDay 和 getDay 方法会返回相应的新值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setUTCSeconds
Date.setUTCSeconds
  语法:myDate.setUTCSeconds(second [, millisecond]));
  参数:
   second 是一个从 0 到 59 之间的整数,可选参数。
   millisecond 是一个从 0 到 999 之间的整数,可选参数。
  注释:
   方法。设定UTC格式的秒数,如果是用可选参数,同时会设定毫秒值。
  播放器支持:Flash 5 或以后版本。
Date > Date.setYear
Date.setYear
  语法:myDate.setYear(year);
  参数:year 是一个代表年份的四位整数,如 2000。
  注释:
   方法。根据本地时间设定年份。本地时间由 Flash 播放器所运行的操作系统决定。
  播放器支持:Flash 5 或以后版本。
Date > Date.toString
Date.toString
  语法:myDate.toString();
  参数:无
  注释:
   方法。将日期时间值转换成”日期/时间”形式的字符串值
  播放器支持:Flash 5 或以后版本。
  例子:
   下面的例子将国庆节的 national_day 对象输出成可读的字符串:
   var national_day = newDate(49, 9, 1, 10, 00);
   trace (national_day.toString());
   Output (for Pacific Standard Time):
  结果为:Sat Oct 1 10:00:00 GMT+0800 1949
Date > Date.UTC
Date.UTC
  语法:Date.UTC(year, month [, date [, hour [, minute [, second [, millisecond ]]]]]);
  参数:
   year 代表年份的四位整数,如 2000
   month 一个从 0 (一月) 到 11 (十二月)之间的整数。
   date 一个从 1 到 31 之间的整数,可选参数。
   hour 是一个从 0 (0:00am) 到 23 (11:00pm)之间的整数。
   minute 是一个从 0 到 59 之间的整数,可选参数。
   second 是一个从 0 到 59 之间的整数,可选参数。
   millisecond 是一个从 0 到 999 之间的整数,可选参数。
  注释:
   方法。返回指定时间距 1970 年 1 月 1 日 0:00am 的毫秒数。这是一个静态的方法,不需要特定的对象。它能够创建一个新的 UTC 格式的 Date 对象,而 new Date() 所创建的是本地时间的 Date 对象。

js函数

//读取cookies
function getcookies(name){
var arr,reg=new RegExp(“(^| )”+name+”=([^;]*)(;|$)”);
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
//产生随机数
function GetNum(){
var number = Math.random();
number = number * 1000000000;
number = Math.ceil(number);
return number
}
//获得option的值
function GetOption(ID){
var _select = $(ID);
var Num = _select.options[_select.selectedIndex].value;
return Num;
}
//经常要用到的函数精简版
function $(id){
return document.getElementById(id);
}
function v$(id){
return document.getElementById(id).value;
}
function e$(id){
return encodeURIComponent(document.getElementById(id).value);
}
function i$(id,str){
document.getElementById(id).innerHTML=str;
}

//大图片自动按比例缩小函数
function ResetImgaeHeight(img,width,height){
var getruleratio=eval(width/height);
var getphotoratio=eval(img.width/img.height);
if (getphotoratio>=getruleratio && img.width>width) {
img.width=width;
}
if (getphotoratio<getruleratio && img.height>height){
img.height=height;
}
}

页面上所有图片自动缩放的代码

<script language=”JavaScript”>
var imgObj;
for(i = 0; i < document.all.length; i++)
{
if(document.all(i).tagName.toLowerCase()==”img”)
{
imgObj = document.all(i) //建议只判断高度或者宽度其中一个,那样可以自动按比例缩放
if (imgObj.height>500) //判断图片的高度,如果大于500,则设置为500,值可以自己修改
{
imgObj.height=500
}
if (imgObj.width>700) //判断图片的宽度,如果大于700,则设置为700,值可以自己修改
{
imgObj.width=700
}
}
}

</script>

Javascript中的类实现

Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持 虚函数的virtual,不过,Javascript是一门灵活的语言,下面我们就看看没有关键字class的Javascript如何实现类定义,并创 建对象。

一:定义类并创建类的实例对象
在Javascript中,我们用function来定义类,如下:

function Shape()
{
var x=1;
var y=2;
}

你或许会说,疑?这个不是定义函数吗?没错,这个是定义函数,我们定义了一个Shape函数,并对x和y进行了初始化。不过,如果你换个角度来 看,这个就是定义一个Shape类,里面有两个属性x和y,初始值分别是1和2,只不过,我们定义类的关键字是function而不是class。

然后,我们可以创建Shape类的对象aShape,如下:

var aShape = new Shape();

二:定义公有属性和私有属性
我们已经创建了aShape对象,但是,当我们试着访问它的属性时,会出错,如下:
aShape.x=1;

这说明,用var定义的属性是私有的。我们需要使用this关键字来定义公有的属性
function Shape()
{
this.x=1;
this.y=2;
}

这样,我们就可以访问Shape的属性了,如。
aShape.x=2;

好,我们可以根据上面的代码总结得到:用var可以定义类的private属性,而用this能定义类的public属性。

三:定义公有方法和私有方法

在Javascript中,函数是Function类的实例,Function间接继承自Object,所以,函数也是一个对象,因此,我们可以 用赋值的方法创建函数,当然,我们也可以将一个函数赋给类的一个属性变量,那么,这个属性变量就可以称为方法,因为它是一个可以执行的函数。代码如下:

function Shape()
{
var x=0;
var y=1;
this.draw=function()
{
//print;
};
}

我们在上面的代码中定义了一个draw,并把一个function赋给它,下面,我们就可以通过aShape调用这个函数,OOP中称为公有方法,如:
aShape.draw();

如果用var定义,那么这个draw就变成私有的了,OOP中称为私有方法,如
function Shape()
{
var x=0;
var y=1;
var draw=function()
{
//print;
};
}
这样就不能使用aShape.draw调用这个函数了。

三:构造函数
Javascript并不支持OOP,当然也就没有构造函数了,不过,我们可以自己模拟一个构造函数,让对象被创建时自动调用,代码如下:
function Shape()
{
var init = function()
{
//构造函数代码
};

init();
}

在Shape的最后,我们人为的调用了init函数,那么,在创建了一个Shape对象是,init总会被自动调用,可以模拟我们的构造函数了。

四:带参数的构造函数
如何让构造函数带参数呢?其实很简单,将要传入的参数写入函数的参数列表中即可,如

function Shape(ax,ay)
{
var x=0;
var y=0;
var init = function()
{
//构造函数
x=ax;
y=ay;
};

init();
}

这样,我们就可以这样创建对象:
var aShape = new Shape(0,1);

五:静态属性和静态方法
在Javascript中如何定义静态的属性和方法呢?如下所示

function Shape(ax,ay)
{
var x=0;
var y=0;
var init = function()
{
//构造函数
x=ax;
y=ay;
};

init();
}
Shape.count=0;//定义一个静态属性count,这个属性是属于类的,不是属于对象的。
Shape.staticMethod=function(){};//定义一个静态的方法

有了静态属性和方法,我们就可以用类名来访问它了,如下
alert ( aShape.count );
aShape.staticMethod();
注意:静态属性和方法都是公有的,目前为止,我不知道如何让静态属性和方法变成私有的~

六:在方法中访问本类的公有属性和私有属性

在类的方法中访问自己的属性,Javascript对于公有属性和私有属性的访问方法有所不同,请大家看下面的代码
function Shape(ax,ay)
{
var x=0;
var y=0;
this.gx=0;
this.gy=0;
var init = function()
{
x=ax;//访问私有属性,直接写变量名即可
y=ay;
this.gx=ax;//访问公有属性,需要在变量名前加上this.
this.gy=ay;
};

init();
}

七:this的注意事项
根据笔者的经验,类中的this并不是一直指向我们的这个对象本身的,主要原因还是因为Javascript并不是OOP语言,而且,函数和类均用function定义,当然会引起一些小问题。
this指针指错的场合一般在事件处理上面,我们想让某个对象的成员函数来响应某个事件,当事件被触发以后,系统会调用我们这个成员函数,但是,传入的this指针已经不是我们本身的对象了,当然,这时再在成员函数中调用this当然会出错了。
解决方法是我们在定义类的一开始就将this保存到一个私有的属性中,以后,我们可以用这个属性代替this。我用这个方法使用this指针相当安全,而且很是省心~
我们修改一下代码,解决this问题。对照第六部分的代码看,你一定就明白了
function Shape(ax,ay)
{
var _this=this; //把this保存下来,以后用_this代替this,这样就不会被this弄晕了
var x=0;
var y=0;
_this.gx=0;
_this.gy=0;
var init = function()
{
x=ax;//访问私有属性,直接写变量名即可
y=ay;
_this.gx=ax;//访问公有属性,需要在变量名前加上this.
_this.gy=ay;
};

init();
}

以上我们聊了如何在Javascript中定义类,创建类的对象,创建公有和私有的属性和方法,创建静态属性和方法,模拟构造函数,并且讨论了容易出错的this。
关于Javascript中的OOP实现就聊到这里,以上是最实用的内容,一般用Javascript定义类,创建对象用以上的代码已经足够了。 当然,你还可以用mootools或prototype来定义类,创建对象。我用过mootools框架,感觉很不错,它对Javascript的类模拟 就更完善了,还支持类的继承,有兴趣的读者可以去尝试一下。当然,如果使用了框架,那么在你的网页中就需要包含相关的js头文件,因此我还是希望读者能够 在没有框架的情况下创建类,这样,代码效率较高,而且你也可以看到,要创建一个简单的类并不麻烦~
在下一个版本的Javascript中,将会加入对OOP的支持,届时,我们将看到class关键字,public、private访问控制 符~extend继承。如果大家对下一代Javascript感兴趣,不妨可以先接触一下ActionScript3.0,这是一门相当先进的脚本语言, 是Adobe收购Macromedia后的一个力作,它和Javascript一样,都属于ECMAScript,只不过AS3.0是 ECMAScript的第4版的实现。要学习ActionScript3.0,我重点推荐孙颖老师的《ActionScript3殿堂之路》,这本书写的 绝对好,特别是面向对象这部分,写的特别通俗易懂,例子生动,读完以后感觉很有收获,在赞叹新版的ECMAScript的同时,也给了我极大的动力继续深 入学习OOP编程思想,有兴趣的读者不妨去品读一下~

取指定id的元素的坐标

function getCoords(node){
var x = node.offsetLeft;
var y = node.offsetTop;
var parent = node.offsetParent;
while (parent != null){
x += parent.offsetLeft;
y += parent.offsetTop;
parent = parent.offsetParent;
}
return {x: x, y: y};
}

取得可见屏幕高度 由 !DOCTYPE 引起的javascript冲突

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>


<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>

要取屏幕可见高度的问题

document.documentElement.clientHeight

document.body.clientHeight

Hello world!

怎么没出全呢。

echo 'hello';

/**
 * 获取搜索参数数据
 *
 */
function &get_search_params()
{
	global $args, $request_obj;
	$param_arr = array();
	foreach($args as $key)
	{
		if ($value = $request_obj->GetString($key))
		{
			$param_arr[$key] = $value;
		}
		else
		{
			$param_arr[$key] = NULL;
		}
	}

	return $param_arr;
}

我来测试一下代码高亮