<button id=
"test"
>test</button>
<div id=
"show"
>show</div>
<script type=
"text/javascript"
>
function
$(id) {
switch
(id.substr(0,1)) {
case
'#'
:
return
document.getElementById(id.substr(1));
case
'.'
:
var
elems = document.body.getElementsByTagName(
'*'
);
var
target = id.substr(1);
var
result=[];
for
(i=0;j=elems[i];i++) {
if
((j.className).indexOf(target)!=-1) result.push(j);
}
return
result;
default
:
return
document.getElementsByTagName(id);
}
}
var
loadpost = {
current :
null
,
queue : [],
request :
function
(q) {
try
{
var
iframe = document.createElement(
'<iframe name="loadboxy">'
);
}
catch
(e) {
var
iframe = document.createElement(
'iframe'
);
}
iframe.style.display =
'none'
;
iframe.name =
'loadboxy'
;
iframe.id =
'loadboxy'
;
if
(iframe.attachEvent) {
iframe.attachEvent(
"onload"
,
function
(){
loadpost.load();
});
}
else
{
iframe.onload =
function
(){
loadpost.load();
};
}
var
form = document.createElement(
'form'
);
form.target =
'loadboxy'
;
form.action = q.url;
form.method =
'post'
;
form.style.display =
'none'
;
for
(
var
key
in
q.param) {
if
(q.param[key].constructor == Array) {
for
(
var
i=0;i<q.param[key].length;i++) {
var
input = document.createElement(
'input'
);
input.type =
'hidden'
;
input.name = key;
input.value = q.param[key][i];
form.appendChild(input);
}
}
else
{
var
input = document.createElement(
'input'
);
input.type =
'hidden'
;
input.name = key;
input.value = q.param[key];
form.appendChild(input);
}
}
this
.queue.push({
form : form,
iframe : iframe,
flag : 0,
load : q.load
});
if
(!
this
.current)
this
.action();
},
task :
function
() {
var
iFrame =
this
.current.iframe;
var
iFrameBody;
if
(iFrame.contentDocument)
iFrameBody = iFrame.contentDocument.getElementsByTagName(
'body'
)[0];
else
if
(iFrame.contentWindow)
iFrameBody = iFrame.contentWindow.document.getElementsByTagName(
'body'
)[0];
this
.current.load(iFrameBody.innerHTML);
},
load :
function
() {
if
(
this
.current.flag == 1) {
this
.task();
$(
'body'
)[0].removeChild(
this
.current.iframe);
$(
'body'
)[0].removeChild(
this
.current.form);
this
.action();
}
else
{
this
.current.flag = 1;
this
.send();
}
},
action :
function
() {
this
.current =
null
;
if
(
this
.queue.length) {
this
.current =
this
.queue.shift();
$(
'body'
)[0].appendChild(
this
.current.iframe);
}
},
send :
function
() {
$(
'body'
)[0].appendChild(
this
.current.form);
this
.current.form.submit();
}
};
$(
'#test'
).onclick =
function
() {
loadpost.request({
url :
"action.php"
,
param : {
'num1'
: 10,
'num2'
: 20,
'num[]'
:
new
Array(30, 40)
},
load :
function
(data) {
$(
'#show'
).innerHTML = data;
}
});
};
</script>