找回密码
 注册
搜索
热搜: java php web
查看: 343|回复: 4

如何增加与AJAX相关的JS方法

[复制链接]
发表于 2009-1-26 08:52:45 | 显示全部楼层 |阅读模式
今天就在大家面前卖弄一下,相信很多学习Ajax的朋友都对此方法不陌生。增加Ajax相关的js方法,这些方法大部分是基于prototype (一个很好的 JavaScript Framework )类库来写的。
1. loadAjaxElement,loadAjaxData,sendAjaxElement,sendAjaxData这四方法都是真接Ajax操作的方法;

2. parseXML,importXML,getTextNodeValue这三个方法是对于Ajax返回结果中的xml数据的处理;如果返回结果非标准xml文档的话,可以通过parseXML来处理,生成XMLDocument对象;
3.getParams方法是用来返回当前页面的url参数值的;
4.showLoa**,hideLoa**这两个方法用来显示在页面加载过程中提示信息
代码:
  1. //Ajax功能;
  2. function loadAjaxElement(e,u,p,f,l){
  3. if(arguments.length < 3){
  4. return ;
  5. }
  6. var o = $(e);
  7. o.innerHTML = l;
  8. if(typeof p != 'string'){
  9. p = $H(p).toQueryString();
  10. }
  11. new Ajax.Updater( {success: e},u,{method: 'get', parameters: p, onFailure: f});
  12. }
  13. function loadAjaxData(u,p,s,f){
  14. if(arguments.length < 3){
  15. return ;
  16. }
  17. if(typeof p != 'string'){
  18. p = $H(p).toQueryString();
  19. }
  20. new Ajax.Request( u,{method: 'get', parameters: p, onSuccess:s,onFailure: f});
  21. }
  22. function sendAjaxElement(e,u,p,f,l){
  23. if(arguments.length < 3){
  24. return ;
  25. }
  26. var o = $(e);
  27. o.innerHTML = l;
  28. if(typeof p != 'string'){
  29. p = $H(p).toQueryString();
  30. }
  31. new Ajax.Updater( {success: e}, u, {method: 'post', parameters: p, onFailure: f});
  32. }
  33. function sendAjaxData(u,p,s,f){
  34. if(arguments.length < 3){
  35. return ;
  36. }
  37. if(typeof p != 'string'){
  38. p = $H(p).toQueryString();
  39. }
  40. new Ajax.Request( u, {method: 'post', parameters: p, onSuccess:s,onFailure: f});
  41. }
  42. function parseXML(s){
  43. try{
  44. var domParser = new DOMParser();
  45. var o = domParser.parseFromString(s, 'application/xml');
  46. return o.documentElement;
  47. }catch(e){
  48. try{
  49. var o = getIEXmlAX();
  50. o.loadXML(s);
  51. return o.documentElement;
  52. }catch(e){
  53. return null;
  54. }
  55. }
  56. }
  57. function importXML(u,s,f){
  58. new Ajax.Request( u, {method: 'get', parameters: null, onSuccess:function(v){s(v.responseXML.documentElement);},onFailure: f});
  59. }
  60. function getIEXmlAX(){
  61. var i,activeXarr;
  62. activeXarr = new Array(
  63. "MSXML4.DOMDocument",
  64. "MSXML3.DOMDocument",
  65. "MSXML2.DOMDocument",
  66. "MSXML.DOMDocument",
  67. "Microsoft.XmlDom"
  68. ); for(i=0; i<activeXarr.length; i++){
  69. try {
  70. var o = new ActiveXObject(activeXarr[i]);
  71. return o;
  72. } catch(objException){}
  73. }
  74. return false;
  75. }
  76. function getTextNodeValue(d,n,e){
  77. if(typeof e == 'undefined'){
  78. e = false;
  79. }
  80. var a = d.getElementsByTagName(n);
  81. if(a==null){
  82. return null;
  83. }
  84. if(a.length==1){
  85. return (e)?unescape(a[0].firstChild.nodeValue):a[0].firstChild.nodeValue;
  86. }else{
  87. var ra = new Array();
  88. for(var i=0;i<a.length;i++){
  89. ra[i] = (e)?unescape(a[i].firstChild.nodeValue):a[i].firstChild.nodeValue;
  90. }
  91. return ra;
  92. }
  93. }
  94. function getParams(){
  95. var o = new Object()
  96. var a=document.location.search.substr(1).split('&');
  97. for (i=0;i<a.length;i++){
  98. try{
  99. var aa=a[i].split('=');
  100. var n=aa[0];
  101. var v=aa[1];
  102. o[n]=trim(v);
  103. }catch(e){
  104. }
  105. }
  106. return o;
  107. }
  108. function showLoa**(c,b,a){
  109. switch(arguments.length){
  110. case 2:
  111. a = 0.9;
  112. case 1:
  113. b = "#000000";
  114. case 0:
  115. c = "#FFFFFF";
  116. break;
  117. }
  118. var d = document;
  119. if($("loa**_div") == null){
  120. var s = '<div id="loa**_div" style="position:absolute;left:0px;top:0px;width:100%;height:100%; z-index:auto;text-align: center;font-family: Courier New, Courier, mono;font-size: 12px;color:'+c+';pad**-top: 30%;background-color:'+b+';"><h1>正在加载页面...</h1></div>';
  121. d.write(s);
  122. }
  123. var o = $("loa**_div");
  124. if(o.style.MozOpacity){
  125. o.style.MozOpacity = a;
  126. }else if(o.style.opacity){
  127. o.style.opacity = a;
  128. }else{
  129. a = a * 100;
  130. o.style.filter='Alpha(Opacity='+a+')';
  131. }
  132. }
  133. function hideLoa**(){
复制代码
发表于 2009-1-26 09:56:25 | 显示全部楼层
???~~
回复

使用道具 举报

发表于 2009-1-26 09:35:16 | 显示全部楼层
没学过这个东西看不大懂哦
回复

使用道具 举报

发表于 2009-1-26 10:48:42 | 显示全部楼层
好多代码。。。
回复

使用道具 举报

发表于 2009-1-26 09:56:53 | 显示全部楼层
学习学习。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-9-20 15:41

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表