iframeUpload
废话没有,直接代码:
(function(ns) { function IframeUpload(options) { var config = { obj: null, action: "", beforeUpload:null, afterUpload: null }, __self__ = this; for (var a in options) { config[a] = options[a]; } this.config = config; var iframe = document.createElement("iframe"); iframe.setAttribute("src", "javascript:void(0)"); iframe.style.display="none"; iframe.addEventListener("load", function() { __self__.config.afterUpload && __self__.config.afterUpload.call(__self__,this.contentWindow.document.body.innerHTML); }, false); document.body.appendChild(iframe); this.iframe = iframe; this.form = null; this.file = null; } IframeUpload.prototype = { prepare: function() { var __self__ = this; var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("target", "_self"); form.setAttribute("enctype", "multipart/form-data"); form.setAttribute("action", this.config.action); this.iframe.contentWindow.document.body.appendChild(form); var file = this.config.obj.cloneNode(true); form.appendChild(file); this.form = form; this.file = file; }, upload: function() { this.prepare(); this.form.submit(); }, afterUpload: function() {}, beforeUpload:function(){} } ns.IframeUpload = IframeUpload; })(this)
只针对firefox,新手慎用。