??xml version="1.0" encoding="utf-8" standalone="yes"?> The most important thing is to know how to access JSF component from JQuery. The id given to inputText is consisting of formid:componentid. So in this example the id given to textbox is registerform:username. But the presence of : (colon) causes problem to JQuery. So, we need to escape : (colon) using two \\ characters before colon - registerform\\:username. 在Dreamweaver里依ơ选择“命o” -> “扩展理” -> “安装扩展” -> …Q就会自动安装了?/p>
成功后重启DreamweaverQ就大功告成了?br />
注意Q如果?zhn)安装的是_版的DreamweaverQ那么请先下?a title="http://www.adobe.com/cn/exchange/em_download/em18_download.html" >Adobe Extension Manager 插g理?/a>[点击下蝲]Q我自己是cs3的,因此该处链接也是适用于cs3Q请Ҏ(gu)自己相应版本选择下蝲?/p>
Yahoo UI Galleria Sliding Bar Menu - Mootools Livepipes Modal Box Javascript Focusing Library jNice - Jquery Nice Forms DragnDrop Library Web map server Javascript libraryPage
The following is register.jsp, which takes required information from user regarding registration. For this example, we focus only on validation of username and not the actual registration process.
<%@page contentType="text/html" %>de">
<%@page contentType="text/html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript" src="jquery-1.4.2.js"></script>
<script language="javascript">
function checkUsername(){
$.get( "checkusername.jsp",{username : $("#registerform\\:username").val()},updateUsername);
}
function updateUsername(response)
{
if (response) {
$("#usernameresult").text(response); // update SPAN item with result
}
</script>
<title>Registration</title>
</head>
<body>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:view>
<h2>Registration </h2>
<h:form id="registerform">
<table>
<tr>
<td>Username : </td>
<td><h:inputText id="username" value="#{userBean.username}" required="true" onblur="checkUsername()" />
<h:message for="username" />
<span id="usernameresult" />
</tr>
<tr>
<td>Password : </td>
<td><h:inputSecret id="password" value="#{userBean.password}" required="true" /> <h:message for="password" /> </td>
</tr>
<tr>
<td>Re-enter Password : </td>
<td><h:inputSecret id="confirmPwd" value="#{userBean.confirmPwd}" required="true" /> <h:message for="confirmPwd" /> </td>
</tr>
<tr>
<td>Email Address : </td>
<td><h:inputText id="email" value="#{userBean.email}" required="true" onblur="checkEmail()" /> <h:message for="email" /> </td>
<span id="emailresult" />
</tr>
</table>
<p/>
<h:commandButton actionListener="#{userBean.register}" value="Register" />
<p/>
<h3><h:outputText value="#{userBean.message}" escape="false" /> </h3>
<p/>
</h:form>
</f:view>
</body>
</html>lt;/f:view>
</body>
</html>
Bean
The above JSF Form uses userBean, which is the name given to beans.UserBean class. The class and its entries in faces-config.xml file are given below.
package beans;
public class UserBean {
private String username, password, email,confirmPwd, message;
public UserBean() {
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getConfirmPwd() {
return confirmPwd;
}
public void setConfirmPwd(String confirmPwd) {
this.confirmPwd = confirmPwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void register(ActionEvent evt) {
if (! password.equals(confirmPwd))
{
message = "Password do not match!";
return;
}
// do registration
} // register
}
xml
The following entry is required in faces-config.xml for UserBean managed bean.
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>beans.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean> Check
<%
String username = request.getParameter("username"); // sent from client
// connect to oracle using thin driver
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","youruser","yourpassword");
PreparedStatement ps = con.prepareStatement("select username from users where username = ?");
ps.setString(1,username);
ResultSet rs = ps.executeQuery();
if ( rs.next()) { // found username
out.println("Username is already present!"); // send this to client
}
rs.close();
ps.close();
con.close();
%>Deploy and Test
Now deploy the web application and run register.jsp. If you enter a username that is already present in USERS table then we get message - Username is already present - in SPAN item on the right of username field. If username is unique then SPAN item is set to empty string ( as JSP returns nothing).
from:http://www.srikanthtechnologies.com/blog/java/jquerywithjsf.aspx
]]>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type=text/javascript src=http://fw.qq.com/ipaddress></script>
<script type=text/javascript>
document.write("当前ip:"+IPData[0]+",省䆾Q?+IPData[2]+",城市:"+IPData[3]);
</script>
</head>
<body>
</body>
</html>
]]>
]]>
]]>
点击下蝲DW cs4的jQuery语法提示插gQ?a >jquery_api_for_dw4
ProtoType
JQuery
OpenRico
ExtJS
Scriptaculous
DoJo
Moofx
QoodXoo
GWT
TacoNite
Sarissa
SprydQ图片展C)
FrogJS
HighSlide
SmoothGallery
DHTMLGoodies - Image Slideshow
Google Slideshow
JQuery Cycle
PhatFusion Gallery
Ajax Slideshow with XML
TripTracker Slideshow
Aeron Slideshow
WebTwo Ajax Slideshow
Spry Gallery Demo
jQuery ImageStrip Slideshow
MiniShowCase
Ajax Coverflow (Slideflow)
Lightweight Gallery
Livepipe Photo Folder
jaS Gallery
Mooflow
Cross browser toys Gallery
Moo Cycle菜单
jQuery Fastfind Menu
Apple Dock
Image Menu amongst others - as seen on Microsoft
Tree menu
Context Menu
LavaLamp for jQuery
Slashdot menu
Mootools Menu copy
Css Dock Menu
Nice Horizontal menu
Accessible Expanding Menu
MultiLevel Menu - jQuery
jQuery HoverAccordion
Apple Hover Menu sim
Simple Javascript Accordian
StickMan Labs Accordian
MooTools clone
Nyko Glitter Tabs
Horizontal Accordion
Colour Transition
Dropdown Menu with jQuery模式H口/ Lightboxes
Lightbox gone wild
Thickbox
SubModal
Lightbox without Images
lightbox
Moodalbox
Lightwindow
Videobox: Lightbox for videos
Facebox
Multibox
Shadowbox
GlassBox
jQuery Lightbox Plugin
jQuery Lightbox Plugin Bal
Highslide JS
YUI based Lightbox
Mediabox
SqueezeBox
iBox
mooSlideBox
Smoothbox鼠标提示
Nice titles
Nice Titles Revision
Ajax Enabled Help Balloons
jTip
jQuery plugin tooltip
qTip
Cody Lindley’s Tooltip
Boxover
SuperNotes
Coda Puff Effect表单
Custom Checkboxes
Checkbox Group
Ajax driven comboboxQ小lgQWidgets
AutoComplete
Fat Focus
Form Field hints
UI component for Prototype
Interface Elements for jQuery
jQuery ScrollTo
jScrollPane
AutoSuggest AutoComplete
Ajax AutoComplete
Autocomplete with JSON其他
地图
Google Maps Api
Ajax GIS client
MapStraction
Giant Pan
Zoomify
]]>
hflash效果的菜单,Zjquery
Download the zip file version 0.2.0 of LavaLamp and open the demo.html to check it out for yourself
LavaLamp menu
来源Qhttp://gmarwaha.com/blog/?p=7
译Qlxr
转蝲h明出厅R?/p>
鼠标放在上面的例子上,你就会感觉到Lava Lamp的完效果。LavaLamp menu是基于jquery库的Q就我个言Q我认ؓ它的效果q不亚于flash菜单Q而且它比flash要小得多。就像你知道的它仅仅只有700bytes?/p>
我常注意刎ͼ授权一般在最l版本。现在我诚落在早期版本你获得授权。这个效果最先是?a included="null" $>Guillermo Rauch用mootools库写的。我所做的的仅仅是Zjquery的爱好者而将它改写ؓZjquery库的。非常感谢Guillermo 创徏的完效果。特别感?a included="null" $>Stephan Beal它取名?#8220;LavaLamp”Q和Glen Lipka 在外观图形上的帮助,以及众多的jquery爱好者的支持?/p>
作ؓ一个用L(fng)面开发者,我们知道用户最常用的是菜单。我们一直追求的是吸引用户的眼球,我相信LavaLamp向这一方向q出了一步。在q些废话让你厌烦之前让我们开始将LavaLamp加入C的网站中?br />
我希望你认同一个典型的html部g?个不同的元gl成?br />
现在让我们按照上面的步骤LavaLamp菜单加入C的网站中。在用jquery库替换mootools库的q程中,我ؓ你写了javascript和css以供使用。因此请你按照本|E的步骤使用jQuery。在Guillermo Rauch 步骤1: HTML 下一步,我们?#8220;li”水^Ud而不是垂直。默认时它是垂直Ud的,在这U情况下我们使用“float:left”以达到我们所需的效果?br />
下一步,我们使用“li”来高亮表C现在所在的菜单,q用了sliding doors technique另外注意上面所提到的相对位|?br />
最后一步,格式化链?br />
上面的规则不是很易懂Q如果你Ҏ(gu)写css没有信心我推荐你快速阅M?a included="null" $>CSS positioning。它短且通俗易懂?br />
步骤3: Javascript q是另外一个,也只改动了cssQ我惛_q不观但我惌说的是你仅仅是被自己的想象力所束缚了?/p>
预览Q?/strong>DEMO1
的页面中有mootools版本的教E?/p>
׃大多数用L(fng)面开发h员认为无序清单( ul Q是正确的语义结构菜?DQ所用就让我们从q里开始?br />
<ul class="lavaLamp">
<li><a href="#">Home</a></li>
<li><a href="#">Plant a tree</a></li>
<li><a href="#">Travel</a></li>
<li><a href="#">Ride an elephant</a></li>
</ul>
<li class="back"><div class="left"></div></li>
你可以修改css以获得自己想要的外观Q这里列Z一U,?#8220;Bonus”部分列出了另外几U:
/* Styles for the entire LavaLamp menu */
.lavaLamp {
position: relative;
height: 29px; width: 421px;
background: url("../image/bg.gif") no-repeat top;
padding: 15px;
margin: 10px 0;
overflow: hidden; }
/* Force the list to flow horizontally */
.lavaLamp li {
float: left;
list-style: none;
}
/* Represents the background of the highlighted menu-item. */
.lavaLamp li.back {
background: url("../image/lava.gif") no-repeat right -30px;
width: 9px;
height: 30px;
z-index: 8;
position: absolute;
}
.lavaLamp li.back .left {
background: url("../image/lava.gif") no-repeat top left;
height: 30px;
margin-right: 9px;
} /* Styles for each menu-item. */
.lavaLamp li a {
position: relative;
overflow: hidden;
text-decoration: none;
text-transform: uppercase;
font: bold 14px arial;
color: #fff;
outline: none;
text-align: center;
height: 30px;
top: 7px;
z-index: 10;
letter-spacing: 0;
float: left;
display: block;
margin: auto 10px;
}
q是一个非常简单的部分Q所有的功能在Lava Lamp plugin中,作ؓ一个开发者你要做的仅仅是它包含C的网中?/p>
<script type="text/javascript" src="/path/to/jquery.js"></script>
<script type="text/javascript" src="/path/to/jquery.lavalamp.js"></script>
<!-- Optional -->
<script type="text/javascript" src="/path/to/jquery.easing.js"></script>
<script type="text/javascript">
$(function() { $(".lavaLamp").lavaLamp({ fx: "backout", speed: 700 })});
</script>
仅仅单修改一下css你就可获得一个完全不同风格的菜单Q当然其他部分不需要改?br />
预览Q?a title="DEMO" rel="shadowbox" included="null" $>DEMO2
预览Q?a title="DEMO" rel="shadowbox" included="null" $>DEMO3
]]>
<!--
function MyImageA()
{
document.all.MyPic.src="C:\Documents and Settings\All Users\Documents\My Pictures\CZ囄\Sunset.jpg";
}
function MyImageB()
{
document.all.MyPic.src="C:\Documents and Settings\All Users\Documents\My Pictures\CZ囄\Blue hills.jpg";
}
-->
</script>
<img name=MyPic id="MyPic " src="C:\Documents and Settings\All Users\Documents\My Pictures\CZ囄\Sunset.jpg" width=300 height=200></img>
<script type=text/javascript>
document.all.MyPic.onmouseover=MyImageA;
document.all.MyPic.onmouseout=MyImageB;
</script>
<script language="javascript">//创徏动态函?br />
///创徏动态函?br />
//var square=new Function("x","y","var sum;sum=x*x+y*y;return sum;");
//{同?br />
/*function square(x,y)
{
return x*x+y*y;
}
alert(square(2,3));*/
//encodeURIҎ(gu)(url字符~号)
/*var urlStr = encodeURI("http://www.it315.org/imdex.html?country=中国&name=z x");
alert(urlStr);*/
//decodeURIҎ(gu)(对已~号的urlq行解号)
/*urlStr = decodeURI("http://www.it315.org/imdex.html?country=%E4%B8%AD%E5%9B%BD&name=z%20x");
alert(urlStr);*/
//parseIntҎ(gu)
//parseFloatҎ(gu)
//isNaNҎ(gu)
//escapeҎ(gu)(对一个字W进行Unicode~号)
//unescapeҎ(gu)(解码)
//evalҎ(gu)(其中的参数字符串作Z个javascript表达式执行,可以动态生表辑ּ)
</script>
<script language="javascript">//对象与对象实?br />
///对象与对象实?br />
/*function Person()//Person对象的构造函?--构造函?br />
{}
var person1=new Person();//创徏Person对象的实?--对象实例
person1.age=18;//为对象实例添加成?可以对其无限制的M新的成员
//person1.age也可以用person1["age"]讉KQ这样可以动态访问其成员
person1.name="abb";//---属?br />
//alert(person1.name+":"+person1.age);
function sayFunc()
{
alert(person1.name+":"+person1.age);
//alert(person1["name"]+":"+person1["age"]);
//var x="name";
//alert(person1[x]+":"+person1["age"]);
//x="age";
//alert(person1[x]+":"+person1["age"]);
//eval("alert(person1.name);");与下面结果相?br />
//alert(person1.name);
//var x="age";
//eval("alert(person1."+x+");");
}
person1.say=sayFunc;//---Ҏ(gu)(函数指针) 不能为person1.say=sayFunc();
person1.say();*/
</script>
<script language="javascript">//构造方法与this关键?br />
///构造方法与this关键?br />
//Z个对象实例新增加属性和Ҏ(gu)Q不会增加到同一个对象所产生的其它对象实例上
/*function Person(name,age)
{
this.age=age;
this.name=name;
this.say=sayFunc;
}
function sayFunc()
{
alert(this.name+":"+this.age);
//alert(name+":"+this.age);//错误Qthis不能L
}
var person1=new Person("张三",18);
person1.say();
var person2=new Person("李四",20);
person2.say();*/
</script>
<script language="javascript">//在函C修改参数值的问题
///在函C修改参数值的问题
//g?br />
/*function changeValue(x)
{
x=5;
}
var x=3;
changeValue(x);
alert(x);*/ //g?,未修?g?br />
//对象传寄
/*function Person(name,age)
{
this.age=age;
this.name=name;
this.say=sayFunc;
}
function sayFunc()
{
alert(this.name+":"+this.age);
}
function chage(p1)
{
p1.name="王五";
}
var p1=new Person("张三",18);
chage(p1);
p1.say();*/
</script>
<script language="javascript">//javascript内部对象
///javascript内部对象
//动态对?使用时new实例q用“实例?成员”的格式访?-------------------动态对?br />
//-String对象(属性length)---是动态地象也是一个特D的数据cd
//var myStrObj=new String("www.it315.orgit");
//var myStrObj="www.it315.org";//l果同上
//alert("www.it315.org".length);//l果同下
//alert(myStrObj.length);
//-big()Ҏ(gu)--原字W两边加<big></big>标签?br />
//alert(myStrObj.big());
//-bold()Ҏ(gu)--原字W两边加<b></b>标签?br />
//alert(myStrObj.bold());
//-fontcolor()Ҏ(gu)--讄字符串的颜色
//alert(myStrObj.fontcolor("red"));
//-anchor()Ҏ(gu)--d连接标记name属?br />
//alert(myStrObj.anchor("re"));
//-link()Ҏ(gu)--d连接标记scr属?br />
//alert(myStrObj.link("www.it315.org"));
//其他Ҏ(gu)如bold,italics,blink,small,fontsize
//-charAt()Ҏ(gu)--q回索引位的字符Q以0开始,出length-1q回I?br />
//alert(myStrObj.charAt(12));
//-charCodeAt()Ҏ(gu)--q回索引位的字符的unicode~号Q以0开始,出length-1q回I?br />
//alert(myStrObj.charCodeAt(12));
//-lastIndexOf()Ҏ(gu)--q回某子字符串第一ơ出现的索引位置Q从叛_?没找到返?1
//alert(myStrObj.lastIndexOf("it"));
//-indexOf()Ҏ(gu)--q回某子字符串第一ơ出现的索引位置Q左向右,没找到返?1
//alert(myStrObj.indexOf("it"));
/*var p=myStrObj.indexOf("it")
while(p != -1)
{
alert(p);
p=myStrObj.indexOf("it",pos+1);
}*/
//-match()Ҏ(gu)--使用正则表达式检证字W?br />
//-search()Ҏ(gu)--使用正则表达式方法查子串Q类gindexOf
//-replace()Ҏ(gu)--替换子串Q可用正?br />
//-split()Ҏ(gu)--分隔W取子串生成数组,可用正则
//-slice()Ҏ(gu)--q回指定位置之间的字W串Q取前不取后
//slice(4,6);slice(4);
//substr(),substring()Ҏ(gu)--取子串substring()cM于slice(),substr(开始位|?长度)
//-toUpperCase()写转大?br />
//-toLowerCase()大写转小?br />
//Date对象
//-构造函数Date(),Date(dateVal),Date(year,month,date[,hours[,minutes[,seconds[,ms]]]])
//-parse()Ҏ(gu)--静态方?br />
//-getYear(),getMonth(),getDate(),getDay(),getHours(),getMinutes(),getSeconds(),getMilisecons()
//-getTime()q回1970-1-1L(fng)毫秒?br />
//-setҎ(gu)与getҎ(gu)Ҏ(gu)
//静态对??#8220;对象?成员”的格式访?nbsp; ----------------------------------静态对?br />
//Object对象(提供创徏自定义对象的单方式,不需要程序员再定义构造函?
/*function getAttributeValue(attr)
{
alert(person[attr]);
}
var person=new Object();
person.name="zs";
person.age=18;
getAttributeValue("name");
getAttributeValue("age");*/
//Math对象
//-random()Ҏ(gu)--q加0-1之间的随机数,abs()Ҏ(gu)
//toString()Ҏ(gu)--所有对象都?br />
</script>
<script language="javascript">//对象专用语句
///对象专用语句
//with语句?-可以一ơ引用对象实例的属性或Ҏ(gu)
/*var current_time=new Date();
with(current_time)
{
var strDate=getYear()+"q?;
strDate+=getMonth()+"?;
strDate+=getDate()+"?;
strDate+=getHours()+":";
strDate+=getMinutes()+":";
strDate+=getSeconds();
alert(strDate);
}*/
//for...in语句-对对象属性进行操?br />
/*function Person(name,age)
{
this.age=age;
this.name=name;
}
var p=new Person("lisi",19);
var prep="";
for(prep in p)
{
alert(p[prep]);
}*/
</script>
<script language="javascript">//数组列表--有length属性能
///数组列表--有length属性能
/*var arr=["as"+1,321,2.5,"abb",""];//可以是Q意数据类?可以为空或合法表辑ּ
for(var i=0;i<arr.length;i++)
{
alert(arr[i]);
}*/
///用对象的方式实现数组
/*function MyArray()
{
this.length=arguments.length;
for(var i=0;i<this.length;i++)
{
this[i]=arguments[i];
}
}
var str="";
var arr=new MyArray(4,3.5,"abc");
for(var i=0;i<arr.length;i++)
{
str+=i+":"+arr[i]+"\n";
}
alert(str);*/
</script>
<script language="javascript">//Array对象
///Array对象
//-构造方?br />
//-Array();Array(4);-长度Array(3.5,"abc",3);
/*var arr=new Array();
var x,str="";
arr[0]="abc";
arr[1]=23;
arr[2]=3;
arr.sort();
for(x in arr)
{
str=str+x+":"+arr[x]+"\n";
}
alert(str);*/
</script>
1. Cookie的兼Ҏ(gu)问?
MCookie的格式有2个不同的版本Q第一个版本,我们UCؓCookie Version 0Q是最初由Netscape公司制定的,也被几乎所有的览器支持。而较新的版本QCookie Version 1Q则是根据RFC 2109文制定的。ؓ了确保兼Ҏ(gu),JAVA规定Q前面所提到的涉及Cookie的操作都是针Ҏ(gu)版本的Cookieq行的。而新版本的Cookie目前q不被Javax.servlet.http.Cookie包所支持?
2. Cookie的内?
M同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version 0中,某些Ҏ(gu)的字W,例如Q空|Ҏ(gu)P圆括P{于P=Q,逗号Q双引号Q斜杠,问号Q@W号Q冒P分号都不能作为Cookie的内宏V这也就是ؓ什么我们在例子中设定Cookie的内容ؓ"Test_Content"的原因?
M虽然在Cookie Version 1规定中放宽了限制Q可以用这些字W,但是考虑到新版本的Cookie规范目前仍然没有为所有的览器所支持Q因而ؓ保险赯Q我们应该在Cookie的内容中量避免使用q些字符
同时调用多个Ҏ(gu)Ӟ讄dwr的方法调用方?br />
trueQ默认)Q效果ؓ可以同时调用Ҏ(gu)1?Q可以先调用Ҏ(gu)2后调用方?Q不能确?br />
false:先调用方?后调用方?,按js中调用的序调用
dwr.engine.setAsync(false);
function haolejiaowo()
{
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status=200)
{
var b=xmlHttpRequest.responseText;
if(b=="true")
{}
else
{}
}
}
---------------------------------------------------------------------
1 jar http://getachead.org/dwr
2 创徏配置文g:/WEB-INF/dwr.xml
<dwr>
<allow>
<create creator="new[struts/spring]" javascript="JUserChecker">
<param name="class" value="com.bj.biz.Manager"/>
<!--
<include method="check"/>
<include method="check2"/>
-->
</allow>
</dwr>
3 在web.xml中配|?br />
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
4 javac?br />
5 试 http://127.0.0.1:8080/dwrpro/dwr/
6 面代码
<script src="dwr/interface/JUserChecker.js"/>
function checkUserExists(oCtl){
var uname=oCtl.vlaue;
JUserChecker.ckeck(uname,haoLeJiaoWo);
}
fucntion haoLeJiaoWo(data){
alert(data);
}
q回对象
open()
onreadystatechange---->委托
send()
readystate----面响应x?/p>
status-----面状?/p>
setRequestHeader----讄h头协?/p>
W一?nbsp; 创徏XMLHTTPRequest对象
var request=onInit();
W二?告诉h那个服务?br />
request.open("GET",URL,TRUE);1提交方式 2 服务器地址 3 是否准许异步提交
W三?定义事g当请求开始后触发
request.onreadystatechange=Request;
W四?
request.send(null);//开始提交到服务器提交的参数QPOST提交需要参?br />
function CreateResponse()
{
创徏XMLDocument对象
var dom=request.ResponseXML();
字符?br />
var str=request.responseText();
}
function Request()
{
判断数据是否响应完毕
if(request.readystate==4)
{
判断面是否正常
if(request.status==200)
{
}
}
}
function onInit()
{
if (window.XMLHttpRequest) {
return new windows.XMLHTTPRequest();
}
if (window.ActiveXObject) {
return new window.ActiveXObject("microsoft.XMLHTTP");
}
}
/*
*在javascript1.1和其后的版本?数组是用构造函数Array()和运符new来创?
可用以下的三U方式来创徏javascript 中的数组.
*/
var a=new Array();
var b=new Array(5,4,3,"first","test,string");
var c=new Array(20);
a[1.23]="test";
document.write("a[1.23]="+a[1.23]);
//怿每位从强cd的编E语a学习javascript?l对会以Z面这U操作感到惊?
//float数据也作数组的下标了,事实?nbsp; q如?zhn)所?nbsp;
//javascript在?zhn)是用负?点?(或布?yu)?对象,其他值时),javascript会将它{换ؓ一个字W串
//用生成的字符串作为对象的属性名?而不是定义了一个新的数l元?br />
//上面的实例事实就是ؓa 创徏了一个名?"1.23"的属?
document.write("a.length="+a.length);
document.write("b.length="+b.length);
document.write("c.length="+c.length);
a[3]="Test";
document.write("<br />a[3]="+a[3]);
document.write("<br/>a.length="+a.length);
//以上试也很明确我们用整C为数l的下标是才会真正ؓ数组d一个元素,
//q里用数l的长度来体Cjavascript的数l中的奥妙?/font>
//通过讄数组的length属性能q截断数l的长度?br />
a.length=3;
if (a[3]==undefined)
{
document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]);
}
else
{
document.write("<br />在a.length="+a.length+"后,a[3]="+a[3]);
}
//q里试我们的多l数l元?br />
/*
*javascript中实际上是不支持多维数组
*但是我们一个一l数l的元素再赋l其一个一l数l,q样qh实C多维数组了,?br />
实际上他q是个一l数l,q和我们理解c语言的数l时的U想法一P但他们的实现机制是不一L(fng)?br />
*/
var g=new Array(3);
g[3]=a;
g[3][2]="Test"
document.write("<br />g[3][2]="+g[3][2]);
//数组join()Ҏ(gu)
for (var i=0;i<20 ;i++ )
{
c[i]=i;
document.write("<br />c[i]="+c[i]);
}
document.write("<br/>c的元素join()Ҏ(gu)后是Q?+c.join());
//数组的reverse()Ҏ(gu)
c.reverse();
document.write("<br />c的元素在reverse()Ҏ(gu)再join()后的l果是:"+c.join("|"));
//concat()Ҏ(gu)的测?br />
var h=new Array(1,2,3);
h= h.concat([4,5]);
//但是concat函数不会递归地展开一个元素ؓ数组的数l?br />
h=h.concat(6,7,[9,[10,20]]);
document.write("<br />h.length="+h.length+"<br />"+h);
document.write("h[8]="+h[8]);
//slice()Ҏ(gu)
document.write("<br>h.slice(4,5)="+h.slice(4,5));
document.write("h.slice(5,9)="+h.slice(5,9))
//slice()Ҏ(gu)Q返回的数组包含有第一个参数指定的元素和那个元素开始到W二个参数指定的
//元素为止的元素但不包含第二个参数所指定的元素?/p>
//splice()Ҏ(gu)
//splice()Ҏ(gu)是插入或删除数组元素通用的方法?br />
/*
splice函数W一个参数指定了要插入或删除的元素在数组中的位置?br />
W二个参数指定了要从数组中删除的元个?br />
在第二参C后可以有L多个参数Q它们指定的是从W一个参数指定的位置处插入的元素?br />
W一个元素及后箋元素Q做出相应的Ud?br />
*/
document.write("<br />h.splice(8,1)后的h为::"+h.splice(8,1));
//document.write("<br />h.splice(8,0,'a','b','Test')后的h为::"+h.splice(8,0,'a','b','Test'));
h.splice(7,0,'a','b','Test');
document.write("<br />h.splice(7,0,'a','b','Test')后的h?"+h);
//javascript中的数组作ؓ堆栈时和phpcM
//q点有趣更有用?br />
//以下是作为堆栈是使用的小实例
/*
pushҎ(gu)是将一个或多个新元素附加到数组的尾部,然后q回数组的新长度?br />
pop删除数l的最后一个元素,坚守数组的长度,q回他删除的倹{?br />
*/
var stack=new Array();
stack.push(1,2);
document.write("<br>stack的元素是Q?+stack);
document.write("<br />stack.length="+stack.length);
document.write("<br>stack.pop()q回的结果是Q?+stack.pop());
document.write("<br />stack.length="+stack.length);
//以下是作为队列用的实?br />
/*
unshiftҎ(gu)一个或多个元素d到数l元素的头部Q然后把已有的元素移动到下标最大的位置已腾出空?br />
Q它q回的是L的新长度?br />
Ҏ(gu)shift是删除ƈq回数组的第一个元素,然后后面的所有元素都向前Ud以填补第一个元素留下的I白?br />
*/
var list=[];
list.unshift(6,2);
document.write("<br >list的内容ؓ:"+list);
document.write("<br>list的shiftҎ(gu)?"+list.shift());
//此外剩?我们在java中熟(zhn)的toString()Ҏ(gu) ?br />
//It's a piece of cake!
document.write(c.toString());
//说白?其实数组的toString()Ҏ(gu)和无参数的join()的效果是完全相同
//OK,this's chapter for Array,that's all!
</script>