1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-20 10:58:33 +00:00
Files
seahub/media/assets/scripts/dist/lib/jquery.iframe-transport.87a72434af00.js
2018-08-02 11:36:54 +08:00

12 lines
2.4 KiB
JavaScript

/*
* jQuery Iframe Transport Plugin
* https://github.com/blueimp/jQuery-File-Upload
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*/
(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):typeof exports=="object"?e(require("jquery")):e(window.jQuery)})(function(e){var t=0;e.ajaxTransport("iframe",function(n){if(n.async){var r=n.initialIframeSrc||"javascript:false;",i,s,o;return{send:function(u,a){i=e('<form style="display:none;"></form>'),i.attr("accept-charset",n.formAcceptCharset),o=/\?/.test(n.url)?"&":"?",n.type==="DELETE"?(n.url=n.url+o+"_method=DELETE",n.type="POST"):n.type==="PUT"?(n.url=n.url+o+"_method=PUT",n.type="POST"):n.type==="PATCH"&&(n.url=n.url+o+"_method=PATCH",n.type="POST"),t+=1,s=e('<iframe src="'+r+'" name="iframe-transport-'+t+'"></iframe>').bind("load",function(){var t,o=e.isArray(n.paramName)?n.paramName:[n.paramName];s.unbind("load").bind("load",function(){var t;try{t=s.contents();if(!t.length||!t[0].firstChild)throw new Error}catch(n){t=undefined}a(200,"success",{iframe:t}),e('<iframe src="'+r+'"></iframe>').appendTo(i),window.setTimeout(function(){i.remove()},0)}),i.prop("target",s.prop("name")).prop("action",n.url).prop("method",n.type),n.formData&&e.each(n.formData,function(t,n){e('<input type="hidden"/>').prop("name",n.name).val(n.value).appendTo(i)}),n.fileInput&&n.fileInput.length&&n.type==="POST"&&(t=n.fileInput.clone(),n.fileInput.after(function(e){return t[e]}),n.paramName&&n.fileInput.each(function(t){e(this).prop("name",o[t]||n.paramName)}),i.append(n.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),n.fileInput.removeAttr("form")),i.submit(),t&&t.length&&n.fileInput.each(function(n,r){var i=e(t[n]);e(r).prop("name",i.prop("name")).attr("form",i.attr("form")),i.replaceWith(r)})}),i.append(s).appendTo(document.body)},abort:function(){s&&s.unbind("load").prop("src",r),i&&i.remove()}}}}),e.ajaxSetup({converters:{"iframe text":function(t){return t&&e(t[0].body).text()},"iframe json":function(t){return t&&e.parseJSON(e(t[0].body).text())},"iframe html":function(t){return t&&e(t[0].body).html()},"iframe xml":function(t){var n=t&&t[0];return n&&e.isXMLDoc(n)?n:e.parseXML(n.XMLDocument&&n.XMLDocument.xml||e(n.body).html())},"iframe script":function(t){return t&&e.globalEval(e(t[0].body).text())}}})});