ASYNCHRONOUS JAVASCRIPT AND XML
JS层
// 定义一个全局
var xmlHttp;
// 返回一个xmlHttpRequest对象
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
// 在动作触发点调用此方法,要传参
function searchBwd(dirid){
var id = dirid;
createXMLHttpRequest();
if (xmlHttp) {
// 设置url路径。执行JAVA层方法的路径。如带参,URL中的&参数为其页面相关FORM BEAN中的字段,如下面的“singledirid”。
var url = "addBWDVocAction.do?actionType=GetDirBwd&singledirid=" + id;
// 异步更新
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = callback;// 此方法在下面。
xmlHttp.send();
} else {
alert("Can not create the request,please check your browser!!");
}
}
function callback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
setBwdValue();// 此处开始执行在页面上画数据列表的方法
// 如类似于先存储,再查询展现新结果时,在此callback方法处再引入查询方法
} else {
window.location = "admin_addbwd.jsp";// 指定结果页面
}
}
}
// 页面上画数据列表
function setBwdValue() {
// 下面这定义三个变量,在其后的FOR循环里取值,来源是JAVA层(如STRUTS里的ACTION)输出的XML流,后面给出。
var bwdid;
var bwdName_zh;
var bwdName;
var xmlDoc = xmlHttp.responseXML;
var root = xmlDoc.getElementsByTagName("xml").item(0);
for (var i = 0; i < root.childNodes.length; i++) {
var child = root.childNodes[i].childNodes;
// 下面给以上三个自定义的变量赋值:
bwdid = child[0].firstChild.nodeValue;
bwdName_zh = child[1].firstChild.nodeValue;
bwdName = child[2].firstChild.nodeValue;
// 先判断三个变量里的值是否为空
if (bwdid != "" && bwdName_zh != "" && bwdName != "") {
//添加一行
var newTr = dirbwdTbl.insertRow();
//添加一列
var newTd0 = newTr.insertCell();
//设置列内容和属性
newTd0.innerHTML =
"<label
相关文档:
RegExp对象(至今为止我看到过的最通俗易懂和深入的正则表达式教程)
JavaScript提供了一个RegExp对象来完成有关正则表达式的操作和功能,每一条正则表达式模式对应一个RegExp实例。有两种方式可以创建RegExp对象的实例。
使用RegExp的显式构造函数,语法为:new RegExp("pattern"[,"flag ......
我们有时获取 styl.width为空的时候,可以获取css中的width..
但ie and ff 是不同的。。
ie:
obj.currentStyle['width']
ff:
var css = document.defaultView.getComputedStyle(obj, null);
css.getPropertyValue('width') ......
Event属性和方法:
1. type:事件的类型,如onlick中的click;
2. srcElement/target:事件源,就是发生事件的元素;
3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键) ......
先来看一个简单的例子:
下面以三个页面分别命名为frame.html、top.html、bottom.html为例来具体说明如何做。
frame.html 由上(top.html)下(bottom.html)两个页面组成,代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> frame < ......