Bug 10652 - Ajaxfileupload.js failing in IE9 for local image upload

This patch adds a try/catch to the Javascript for adding the iframe
element. The try will work for IE8 and older versions, while newer
versions and other browsers will be covered by the check.

Test Plan:

1) Try uploading a local cover image in IE9
2) Notice that your page is reloaded with no result (except the
pop-up of a Javascript error, if you have error reporting on in
your browser).

3) Apply the patch

4) Trying uploading a local cover image again
5) Notice that it uploads correctly

6) Repeat steps 4 and 5 for IE8, IE7, and/or other modern browsers.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Tested in IE10 in IE10 "browser mode" and IE9 mode as well as in
Firefox. Uploads work correctly with book cover images and in MARC
uploads.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Also verified as working in Chrome.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Doesn't break functionality and fixes a known problem. I'll push this for
stable branches to use it, but will fill a new bug for updating AjaxFileUpload.js
from upstream.
This commit is contained in:
David Cook 2013-07-29 13:02:26 +10:00 committed by Tomas Cohen Arazi
parent 3058b09080
commit fb772f1a90

View file

@ -6,7 +6,7 @@ jQuery.extend({
//create frame
var frameId = 'jUploadFrame' + id;
if(window.ActiveXObject) {
try {
var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
if(typeof uri== 'boolean'){
io.src = 'javascript:false';
@ -15,7 +15,7 @@ jQuery.extend({
io.src = uri;
}
}
else {
catch(e) {
var io = document.createElement('iframe');
io.id = frameId;
io.name = frameId;