summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-10-16 09:10:47 +0200
committerAleksander Machniak <alec@alec.pl>2013-10-16 09:10:47 +0200
commitff993eb483ef6cf28ed7c2face235c53e00bbd71 (patch)
tree532c43665756ef9d2e032e11c561e635b9c323eb
parent0ce501c567077812b2594e24a6c5369e84a77513 (diff)
Fix iframe onload for upload errors handling (#1489379)
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/app.js22
2 files changed, 11 insertions, 12 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 194067be1..2b7e5c777 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix iframe onload for upload errors handling (#1489379)
- Fix address matching in Return-Path header on identity selection (#1489374)
- Fix HTML part detection when encapsulated inside multipart/signed (#1489372)
- Fix text wrapping issue with long unwrappable lines (#1489371)
diff --git a/program/js/app.js b/program/js/app.js
index 7fbab8003..6dfe102b3 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -6534,7 +6534,7 @@ function rcube_webmail()
// post the given form to a hidden iframe
this.async_upload_form = function(form, action, onload)
{
- var ts = new Date().getTime(),
+ var frame, ts = new Date().getTime(),
frame_name = 'rcmupload'+ts;
// upload progress support
@@ -6553,21 +6553,19 @@ function rcube_webmail()
// have to do it this way for IE
// otherwise the form will be posted to a new window
if (document.all) {
- var html = '<iframe name="'+frame_name+'" src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>';
- document.body.insertAdjacentHTML('BeforeEnd', html);
+ document.body.insertAdjacentHTML('BeforeEnd', '<iframe name="'+frame_name+'"'
+ + ' src="program/resources/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>');
+ frame = $('iframe[name="'+frame_name+'"]');
}
- else { // for standards-compilant browsers
- var frame = document.createElement('iframe');
- frame.name = frame_name;
- frame.style.border = 'none';
- frame.style.width = 0;
- frame.style.height = 0;
- frame.style.visibility = 'hidden';
- document.body.appendChild(frame);
+ // for standards-compliant browsers
+ else {
+ frame = $('<iframe>').attr('name', frame_name)
+ .css({border: 'none', width: 0, height: 0, visibility: 'hidden'})
+ .appendTo(document.body);
}
// handle upload errors, parsing iframe content in onload
- $(frame_name).bind('load', {ts:ts}, onload);
+ frame.bind('load', {ts:ts}, onload);
$(form).attr({
target: frame_name,