Skip to content

Commit 389f45f

Browse files
committed
* resolve conflicts (mailru#215)
2 parents c8b1aed + dcf042c commit 389f45f

File tree

8 files changed

+102
-93
lines changed

8 files changed

+102
-93
lines changed

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1387,10 +1387,17 @@ Button like link.
13871387
<a name="Changelog"></a>
13881388
## Changelog
13891389
1390+
1391+
### 2.0.7
1392+
<ul>
1393+
<li>#214: iframe transport under IE8</li>
1394+
<li>Fixed iframe-transport (remove `disabled`-attr for input)</li>
1395+
</ul>
1396+
1397+
13901398
### 2.0.6
13911399
<ul>
13921400
<li>#240: Fixed `FileAPI.event.dnd.off`</li>
1393-
<li>Fixed iframe-transport (remove `disabled`-attr for input)</li>
13941401
</ul>
13951402
13961403

dist/FileAPI.html5.js

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! FileAPI 2.0.6 - BSD | git://github.com/mailru/FileAPI.git
1+
/*! FileAPI 2.0.7 - BSD | git://github.com/mailru/FileAPI.git
22
* FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.
33
*/
44

@@ -278,7 +278,7 @@
278278
* FileAPI (core object)
279279
*/
280280
api = {
281-
version: '2.0.6',
281+
version: '2.0.7',
282282

283283
cors: false,
284284
html5: true,
@@ -2526,6 +2526,7 @@
25262526
api.reset(blob, true);
25272527
// set new name
25282528
blob.name = file.name;
2529+
blob.disabled = false;
25292530
data.appendChild(blob);
25302531
}
25312532
else {
@@ -2745,7 +2746,7 @@
27452746
},
27462747

27472748
_send: function (options, data){
2748-
var _this = this, xhr, uid = _this.uid, url = options.url;
2749+
var _this = this, xhr, uid = _this.uid, onloadFuncName = _this.uid + "Load", url = options.url;
27492750

27502751
api.log('XHR._send:', data);
27512752

@@ -2763,29 +2764,6 @@
27632764
// legacy
27642765
options.upload(options, _this);
27652766

2766-
xhr = document.createElement('div');
2767-
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
2768-
+ '<iframe name="'+ uid +'" src="javascript:false;"></iframe>'
2769-
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
2770-
+ '</form>'
2771-
;
2772-
2773-
// get form-data & transport
2774-
var
2775-
form = xhr.getElementsByTagName('form')[0]
2776-
, transport = xhr.getElementsByTagName('iframe')[0]
2777-
;
2778-
2779-
form.appendChild(data);
2780-
2781-
api.log(form.parentNode.innerHTML);
2782-
2783-
// append to DOM
2784-
document.body.appendChild(xhr);
2785-
2786-
// keep a reference to node-transport
2787-
_this.xhr.node = xhr;
2788-
27892767
var
27902768
onPostMessage = function (evt){
27912769
if( ~url.indexOf(evt.origin) ){
@@ -2807,7 +2785,7 @@
28072785
_this.end(status, statusText);
28082786

28092787
api.event.off(window, 'message', onPostMessage);
2810-
window[uid] = xhr = transport = transport.onload = null;
2788+
window[uid] = xhr = transport = window[onloadFuncName] = null;
28112789
}
28122790
;
28132791

@@ -2823,7 +2801,7 @@
28232801

28242802
api.event.on(window, 'message', onPostMessage);
28252803

2826-
transport.onload = function (){
2804+
window[onloadFuncName] = function (){
28272805
try {
28282806
var
28292807
win = transport.contentWindow
@@ -2836,6 +2814,29 @@
28362814
}
28372815
};
28382816

2817+
xhr = document.createElement('div');
2818+
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
2819+
+ '<iframe name="'+ uid +'" src="javascript:false;" onload="' + onloadFuncName + '()"></iframe>'
2820+
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
2821+
+ '</form>'
2822+
;
2823+
2824+
// get form-data & transport
2825+
var
2826+
form = xhr.getElementsByTagName('form')[0]
2827+
, transport = xhr.getElementsByTagName('iframe')[0]
2828+
;
2829+
2830+
form.appendChild(data);
2831+
2832+
api.log(form.parentNode.innerHTML);
2833+
2834+
// append to DOM
2835+
document.body.appendChild(xhr);
2836+
2837+
// keep a reference to node-transport
2838+
_this.xhr.node = xhr;
2839+
28392840
// send
28402841
_this.readyState = 2; // loaded
28412842
form.submit();
@@ -3040,7 +3041,7 @@
30403041

30413042
}
30423043
} else {
3043-
// FormData
3044+
// FormData
30443045
xhr.send(data);
30453046
}
30463047
}

dist/FileAPI.html5.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/FileAPI.js

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! FileAPI 2.0.6 - BSD | git://github.com/mailru/FileAPI.git
1+
/*! FileAPI 2.0.7 - BSD | git://github.com/mailru/FileAPI.git
22
* FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.
33
*/
44

@@ -278,7 +278,7 @@
278278
* FileAPI (core object)
279279
*/
280280
api = {
281-
version: '2.0.6',
281+
version: '2.0.7',
282282

283283
cors: false,
284284
html5: true,
@@ -2526,6 +2526,7 @@
25262526
api.reset(blob, true);
25272527
// set new name
25282528
blob.name = file.name;
2529+
blob.disabled = false;
25292530
data.appendChild(blob);
25302531
}
25312532
else {
@@ -2745,7 +2746,7 @@
27452746
},
27462747

27472748
_send: function (options, data){
2748-
var _this = this, xhr, uid = _this.uid, url = options.url;
2749+
var _this = this, xhr, uid = _this.uid, onloadFuncName = _this.uid + "Load", url = options.url;
27492750

27502751
api.log('XHR._send:', data);
27512752

@@ -2763,29 +2764,6 @@
27632764
// legacy
27642765
options.upload(options, _this);
27652766

2766-
xhr = document.createElement('div');
2767-
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
2768-
+ '<iframe name="'+ uid +'" src="javascript:false;"></iframe>'
2769-
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
2770-
+ '</form>'
2771-
;
2772-
2773-
// get form-data & transport
2774-
var
2775-
form = xhr.getElementsByTagName('form')[0]
2776-
, transport = xhr.getElementsByTagName('iframe')[0]
2777-
;
2778-
2779-
form.appendChild(data);
2780-
2781-
api.log(form.parentNode.innerHTML);
2782-
2783-
// append to DOM
2784-
document.body.appendChild(xhr);
2785-
2786-
// keep a reference to node-transport
2787-
_this.xhr.node = xhr;
2788-
27892767
var
27902768
onPostMessage = function (evt){
27912769
if( ~url.indexOf(evt.origin) ){
@@ -2807,7 +2785,7 @@
28072785
_this.end(status, statusText);
28082786

28092787
api.event.off(window, 'message', onPostMessage);
2810-
window[uid] = xhr = transport = transport.onload = null;
2788+
window[uid] = xhr = transport = window[onloadFuncName] = null;
28112789
}
28122790
;
28132791

@@ -2823,7 +2801,7 @@
28232801

28242802
api.event.on(window, 'message', onPostMessage);
28252803

2826-
transport.onload = function (){
2804+
window[onloadFuncName] = function (){
28272805
try {
28282806
var
28292807
win = transport.contentWindow
@@ -2836,6 +2814,29 @@
28362814
}
28372815
};
28382816

2817+
xhr = document.createElement('div');
2818+
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
2819+
+ '<iframe name="'+ uid +'" src="javascript:false;" onload="' + onloadFuncName + '()"></iframe>'
2820+
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
2821+
+ '</form>'
2822+
;
2823+
2824+
// get form-data & transport
2825+
var
2826+
form = xhr.getElementsByTagName('form')[0]
2827+
, transport = xhr.getElementsByTagName('iframe')[0]
2828+
;
2829+
2830+
form.appendChild(data);
2831+
2832+
api.log(form.parentNode.innerHTML);
2833+
2834+
// append to DOM
2835+
document.body.appendChild(xhr);
2836+
2837+
// keep a reference to node-transport
2838+
_this.xhr.node = xhr;
2839+
28392840
// send
28402841
_this.readyState = 2; // loaded
28412842
form.submit();
@@ -3040,7 +3041,7 @@
30403041

30413042
}
30423043
} else {
3043-
// FormData
3044+
// FormData
30443045
xhr.send(data);
30453046
}
30463047
}

dist/FileAPI.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/FileAPI.XHR.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
},
7979

8080
_send: function (options, data){
81-
var _this = this, xhr, uid = _this.uid, url = options.url;
81+
var _this = this, xhr, uid = _this.uid, onloadFuncName = _this.uid + "Load", url = options.url;
8282

8383
api.log('XHR._send:', data);
8484

@@ -96,29 +96,6 @@
9696
// legacy
9797
options.upload(options, _this);
9898

99-
xhr = document.createElement('div');
100-
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
101-
+ '<iframe name="'+ uid +'" src="javascript:false;"></iframe>'
102-
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
103-
+ '</form>'
104-
;
105-
106-
// get form-data & transport
107-
var
108-
form = xhr.getElementsByTagName('form')[0]
109-
, transport = xhr.getElementsByTagName('iframe')[0]
110-
;
111-
112-
form.appendChild(data);
113-
114-
api.log(form.parentNode.innerHTML);
115-
116-
// append to DOM
117-
document.body.appendChild(xhr);
118-
119-
// keep a reference to node-transport
120-
_this.xhr.node = xhr;
121-
12299
var
123100
onPostMessage = function (evt){
124101
if( ~url.indexOf(evt.origin) ){
@@ -140,7 +117,7 @@
140117
_this.end(status, statusText);
141118

142119
api.event.off(window, 'message', onPostMessage);
143-
window[uid] = xhr = transport = transport.onload = null;
120+
window[uid] = xhr = transport = window[onloadFuncName] = null;
144121
}
145122
;
146123

@@ -156,7 +133,7 @@
156133

157134
api.event.on(window, 'message', onPostMessage);
158135

159-
transport.onload = function (){
136+
window[onloadFuncName] = function (){
160137
try {
161138
var
162139
win = transport.contentWindow
@@ -169,6 +146,29 @@
169146
}
170147
};
171148

149+
xhr = document.createElement('div');
150+
xhr.innerHTML = '<form target="'+ uid +'" action="'+ url +'" method="POST" enctype="multipart/form-data" style="position: absolute; top: -1000px; overflow: hidden; width: 1px; height: 1px;">'
151+
+ '<iframe name="'+ uid +'" src="javascript:false;" onload="' + onloadFuncName + '()"></iframe>'
152+
+ (jsonp && (options.url.indexOf('=?') < 0) ? '<input value="'+ uid +'" name="'+jsonp+'" type="hidden"/>' : '')
153+
+ '</form>'
154+
;
155+
156+
// get form-data & transport
157+
var
158+
form = xhr.getElementsByTagName('form')[0]
159+
, transport = xhr.getElementsByTagName('iframe')[0]
160+
;
161+
162+
form.appendChild(data);
163+
164+
api.log(form.parentNode.innerHTML);
165+
166+
// append to DOM
167+
document.body.appendChild(xhr);
168+
169+
// keep a reference to node-transport
170+
_this.xhr.node = xhr;
171+
172172
// send
173173
_this.readyState = 2; // loaded
174174
form.submit();
@@ -373,7 +373,7 @@
373373

374374
}
375375
} else {
376-
// FormData
376+
// FormData
377377
xhr.send(data);
378378
}
379379
}

lib/FileAPI.core.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
* FileAPI (core object)
185185
*/
186186
api = {
187-
version: '2.0.6',
187+
version: '2.0.7',
188188

189189
cors: false,
190190
html5: true,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "fileapi",
33
"exportName": "FileAPI",
4-
"version": "2.0.6",
4+
"version": "2.0.7",
55
"devDependencies": {
66
"grunt": "~0.4.5",
77
"grunt-version": "~0.3.0",

0 commit comments

Comments
 (0)