最近用了一個古老的解法,就古老的系統只能用古老的解法~
主要是為了做出仿 ajax post input file 的行為
(那為什麼不用 jquery ajax post file 就好,就><...IE太舊在 ajax時不認識 file 這個 type)
所以這個解法的概念就是~
html XXX 內嵌一個 看不見(display:none) 的 iframe AAA,
然後把 form BBB( input type="file", ) post submit 到 iframe AAA 裡~
其 form 的 action (把檔案傳到server) 後 response 結果 會在 iframe AAA裡,
因為 iframe AAA 算子視窗的一個,所以就可以 call parent XXX 裡的 function 做 refresh (就像 ajax 的 callback function)
就~ form (其實這個 form 內容可以用 jqeury.html(xxxx) 生成...可以藏得更裡面XD),target 指向 iframe ,
<form enctype="multipart/form-data" action="xxxxx" id="sub-form" target="sub-iframe" method="POST" >
<input type="file" name="uploadFile" id="uploadFile">
</form>
<iframe style="display: none" id="sub-iframe" src="javascript:false;" name="sub-iframe"></iframe>
定個 callback function 進行後續動作,要傳值進去也是可以的~
function uploadFileCallback() {
.....
}
而在 action response 的內容時~
<html>
<head>
</head>
<body onload="window.parent.uploadFileCallback();">
</body>
</html>
題外話, 用 jquery.html() 組 form 的資料是可行的~可以實現動態 submit 不同的form 內容,然後只看表面上的code是看不出來的喔XD...
沒有留言:
張貼留言