b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | |
| 2 | |
| 3 | $.download = function(url, data, method, callback){ |
| 4 | var inputs = ''; |
| 5 | var iframeX; |
| 6 | var downloadInterval; |
| 7 | if(url/* && data*/){ |
| 8 | // remove old iframe if has |
| 9 | if($("#iframeX")) $("#iframeX").remove(); |
| 10 | // creater new iframe |
| 11 | iframeX= $('<iframe src="[removed]false;" name="iframeX" id="iframeX"></iframe>').appendTo('body').hide(); |
| 12 | if($.browser.msie){ |
| 13 | downloadInterval = setInterval(function(){ |
| 14 | // if loading then readyState is “loading” else readyState is “interactive” |
| 15 | if(iframeX&& iframeX[0].readyState !=="loading"){ |
| 16 | if(undefined != callback) |
| 17 | callback(); |
| 18 | clearInterval(downloadInterval); |
| 19 | } |
| 20 | }, 23); |
| 21 | } else { |
| 22 | iframeX.load(function(){ |
| 23 | if(undefined != callback) |
| 24 | callback(); |
| 25 | }); |
| 26 | } |
| 27 | |
| 28 | jQuery.each(data.split('&'), function(){ |
| 29 | var pair = this.split('='); |
| 30 | inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />'; |
| 31 | }); |
| 32 | |
| 33 | //create form to send request |
| 34 | $('<form action="'+ url +'" method="'+ (method||'post') + '" target="iframeX">'+inputs+'</form>').appendTo('body').submit().remove(); |
| 35 | } |
| 36 | } |