/////////////////////////////////////////////////////////////////////////////////////////// // 主要实现iframe模拟xmlhttprequest,实现无刷新提交 /////////////////////////////////////////////////////////////////////////////////////////// var currentRequest = null; /** *页面onload时绑定隐藏iframe *返回值:无 */ function initAjaxRequestBox(){ var div = null; div = document.createElement("div"); div.id = "myAjaxResultBox"; div.innerHTML = ""; document.body.appendChild(div); } if(window.document.all){ window.attachEvent("onload" , function(e){ initAjaxRequestBox() } ); }else{ window.addEventListener("load", function(e){ initAjaxRequestBox() }, false ); } /** *提交请求后,结果返回事件触发 *返回值:无 */ function myAjaxResultFrame_onResult(){ var myFrame = document.getElementsByName('myAjaxResultFrame')[0]; if(myFrame.inited==true){ if(myFrame.contentWindow.document.getElementById("XMLHttpResultDiv")){ var text = myFrame.contentWindow.document.getElementById("XMLHttpResultDiv").innerHTML; }else{ var text = myFrame.contentWindow.document.body.innerHTML; } currentRequest.setText(text); currentRequest.onresult(); }else{ myFrame.inited = true; } } /** *AjaxRequest对象 *_method: 值post/get 和form使用方法一致 *_url: 值string 和form的action一致 *_async: 值false/true同步/异步 由于是iframe提交,没有异步 */ function AjaxRequest(_method,_url,_async){ var oThis = this; var value = null; var text = null; var _form = document.getElementById("myAjaxRequestForm"); if(_form){ _form.removeNode(true); } _form = document.createElement("form"); document.body.appendChild(_form); _form.method = _method; _form.action = _url; _form.target = "myAjaxResultFrame"; currentRequest = oThis; //input参数传递 this.setParameter = function(name,value) { var _input = document.createElement("input"); _input.name=name; _input.value=value; _input.type="hidden"; _form.appendChild(_input); } //url参数传递 this.send = function(v){ if(v==null || v==""){ _form.submit(); }else{ var parts = v.split('&'); for(var i=0;i