⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form.js

📁 A very small LISP implementation with several packages and demo programs.
💻 JS
字号:
/* 23nov07abu * (c) Software Lab. Alexander Burger *//*** Request object ***/var FormReq;if (window.XMLHttpRequest) {   try {FormReq = new XMLHttpRequest();}   catch (e) {FormReq = false;}}else if (window.ActiveXObject) {   try {FormReq = new ActiveXObject("Msxml2.XMLHTTP");}   catch (e) {      try {FormReq = new ActiveXObject("Microsoft.XMLHTTP");}      catch (e) {FormReq = false;}   }}/*** Submit buttons ***/var Btn = new Array();var Auto;function doBtn(btn) {   Btn.push(btn);   return true;}/*** Handle form submit ***/function doPost(form) {   var i, btn, url, data;   if (!FormReq)      return true;   for (i = 0; ; ++i) {      if (i == Btn.length)         return true;      if (Btn[i].form == form) {         btn = Btn[i];         Btn.splice(i,1);         break;      }   }   if (FormReq.readyState > 0 && FormReq.readyState < 4) {      window.setTimeout("document.getElementById(\"" + btn.id + "\").click()", 40);      return false;   }   url = form.action.split("~");   try {FormReq.open("POST", url[0] + "~@jsForm?" + url[1]);}   catch (e) {return true;}   FormReq.onreadystatechange = function() {      if (FormReq.readyState == 4 && FormReq.status == 200) {         if (FormReq.responseText == "T")            form.submit();         else {            var txt = FormReq.responseText.split("&");            if (txt[0]) {               var r = txt[0].split(":");               if (Auto)                  window.clearTimeout(Auto);               if (r[1])                  Auto = window.setTimeout("document.getElementById(\"" + r[0] + "\").click()", r[1]);            }            for (var i = 1; i < txt.length;) {               var fld = document.getElementById(txt[i++]);               var val = decodeURIComponent(txt[i++]);               if (!fld) {                  window[txt[i++]](val);                  continue;               }               if (fld.tagName == "SPAN") {                  if (i != txt.length && txt[i].charAt(0) == "=")                     ++i;                  if (i == txt.length || txt[i].charAt(0) != "+") {                     if (fld.firstChild.tagName != "A")                        fld.firstChild.data = val? val : "\u00A0";                     else                        fld.replaceChild(document.createTextNode(val? val : "\u00A0"), fld.firstChild);                  }                  else {                     var a = document.createElement("A");                     a.href = decodeURIComponent(txt[i++].substr(1));                     a.appendChild(document.createTextNode(val));                     fld.replaceChild(a, fld.firstChild);                  }               }               else if (fld.tagName == "A") {                  if (i != txt.length && txt[i].charAt(0) == "=")                     ++i;                  if (i == txt.length || txt[i].charAt(0) != "+") {                     fld.replaceChild(document.createTextNode(val? val : "\u00A0"), fld.firstChild);                     fld.removeAttribute("href");                  }                  else {                     fld.firstChild.data = val;                     fld.href = decodeURIComponent(txt[i++].substr(1));                  }               }               else {                  if (fld.type == "checkbox")                     fld.checked = val != "";                  else if (fld.type == "select-one") {                     for (j = 0; j < fld.options.length; ++j) {                        if (fld.options[j].text == val)                           fld.selectedIndex = j;                        fld.options[j].disabled = false;                     }                  }                  else if (fld.type == "image")                     fld.src = val;                  else                     fld.value = val;                  fld.disabled = fld.readOnly = false;                  if (i == txt.length)                     break;                  if (txt[i].charAt(0) == "=") {                     if (fld.type == "select-one") {                        for (j = 0; j < fld.options.length; ++j)                           if (fld.options[j].text != val)                              fld.options[j].disabled = true;                     }                     else if (fld.type == "text" || fld.tagName == "TEXTAREA")                        fld.readOnly = true;                     else                        fld.disabled = true;                     if (++i == txt.length)                        break;                  }               }               if (txt[i].charAt(0) == "*") {                  var node = fld.parentNode.parentNode.lastChild;                  var img = document.createElement("IMG");                  node.removeChild(node.firstChild);                  img.src = txt[i].substr(1);                  if (!txt[i+1])                     node.appendChild(img);                  else {                     var a = document.createElement("A");                     a.href = decodeURIComponent(txt[i+1]);                     a.appendChild(img);                     node.appendChild(a);                  }                  if ((i += 2) == txt.length)                     break;               }               if (txt[i].charAt(0) == "?") {                  fld.title = decodeURIComponent(txt[i].substr(1));                  if (++i == txt.length)                     break;               }               if (txt[i].charAt(0) == "#") {                  var cls = fld.getAttribute("class");                  fld.setAttribute("class",                     txt[i++].substr(1) + ((j = cls.indexOf(" ")) < 0?  "" : cls.substr(j)) );               }            }         }      }   }   data = btn.name + "=" + encodeURIComponent(btn.type == "submit"? btn.value : btn.src);   for (i = 0; i < form.elements.length; ++i) {      var fld = form.elements[i];      if (fld.name  &&  fld.type != "submit") {   // "image" won't come :-(         var val;         if (fld.type == "checkbox")            val = fld.checked? "T" : "";         else if (fld.type == "select-one")            val = fld.options[fld.selectedIndex].text;         else if (fld.type == "radio" && !fld.checked)            continue;         else            val = fld.value;         data += "&" + fld.name + "=" + encodeURIComponent(val);      }   }   try {FormReq.send(data + "\n");}   catch (e) {      FormReq.abort();      return true;   }   return false;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -