bbs.js
上传用户:shjgzm
上传日期:2017-08-31
资源大小:2757k
文件大小:4k
源码类别:

Ajax

开发平台:

Java

  1. var xmlHttp;                        //用于保存XMLHttpRequest对象的全局变量
  2. var username;                       //用于保存姓名
  3. var title;                          //用于保存标题
  4. var content;                        //用于保存内容
  5. var threadid;                       //用于保存主题编号
  6. //用于创建XMLHttpRequest对象
  7. function createXmlHttp() {
  8.     //根据window.XMLHttpRequest对象是否存在使用不同的创建方式
  9.     if (window.XMLHttpRequest) {
  10.        xmlHttp = new XMLHttpRequest();                  //FireFox、Opera等浏览器支持的创建方式
  11.     } else {
  12.        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
  13.     }
  14. }
  15. //提交回帖到服务器
  16. function submitPost() {
  17.     //获取帖子中姓名、标题、内容、主题编号四部分信息
  18.     username = document.getElementById("username").value;
  19.     title = document.getElementById("post_title").value;
  20.     content = document.getElementById("post_content").value;
  21.     threadid = document.getElementById("threadid").value;
  22.     if (checkForm()) {
  23.         displayStatus("正在提交……");                      //显示提示信息
  24.         createXmlHttp();                                    //创建XMLHttpRequest对象
  25.         xmlHttp.onreadystatechange = submitPostCallBack;    //设置回调函数
  26.         xmlHttp.open("POST", "bbs_post.jsp", true);         //发送POST请求
  27.         //设置POST请求体类型
  28.         xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  29.         xmlHttp.send("username=" + encodeURI(username) + 
  30.                      "&title=" + encodeURI(title) + 
  31.                      "&content=" + encodeURI(content) + 
  32.                      "&threadid=" + threadid);              //发送包含四个参数的请求体
  33.     }
  34. }
  35. //检查表单是否内容已填写完毕
  36. function checkForm() {
  37.     if (username == "") {
  38.         alert("请填写姓名");
  39.         return false;
  40.     } else if (title == "") {
  41.         alert("请填写标题");
  42.         return false;
  43.     } else if (content == "") {
  44.         alert("请填写内容");
  45.         return false;
  46.     }
  47.     return true;
  48. }
  49. //获取查询选项的回调函数
  50. function submitPostCallBack() {
  51.     if (xmlHttp.readyState == 4) {
  52.         createNewPost(xmlHttp.responseText);
  53.         hiddenStatus();
  54.     }
  55. }
  56. //创建新的回帖
  57. function createNewPost(postId) {
  58.     //清空当前表单中各部分信息
  59.     document.getElementById("post_title").value = "";
  60.     document.getElementById("post_content").value = "";
  61.     document.getElementById("username").value = "";
  62.     var postDiv = createDiv("post", "");    //创建回帖的外层div
  63.     postDiv.id = "post" + postId;           //给新div赋id值
  64.     var postTitleDiv = createDiv("post_title", title + " [" + username + "]");  //创建标题div
  65.     var postContentDiv = createDiv("post_content", "<pre>" + content + "</pre>");    //创建内容div
  66.     postDiv.appendChild(postTitleDiv);                          //在外层div追加标题
  67.     postDiv.appendChild(postContentDiv);                        //在外层div追加内容
  68.     document.getElementById("thread").appendChild(postDiv);     //将外层div追加到主题div中
  69. }
  70. //根据className和text创建新的div
  71. function createDiv(className, text) {
  72.     var newDiv = document.createElement("div");
  73.     newDiv.className = className;
  74.     newDiv.innerHTML = text;
  75.     return newDiv;
  76. }
  77. //显示提示信息div
  78. function displayStatus(info) {
  79.     var statusDiv = document.getElementById("statusDiv");
  80.     statusDiv.innerHTML = info;
  81.     statusDiv.style.display = "";
  82. }
  83. //隐藏提示信息div
  84. function hiddenStatus() {
  85.     var statusDiv = document.getElementById("statusDiv");
  86.     statusDiv.innerHTML = "";
  87.     statusDiv.style.display = "none";
  88. }