diff --git a/src/javascript/plupload.flash.js b/src/javascript/plupload.flash.js index 4ced3fa62..872ca9f5c 100644 --- a/src/javascript/plupload.flash.js +++ b/src/javascript/plupload.flash.js @@ -9,7 +9,7 @@ */ // JSLint defined globals -/*global plupload:false, ActiveXObject:false, escape:false */ +/*global window:false, document:false, plupload:false, ActiveXObject:false, escape:false */ (function(window, document, plupload, undef) { var uploadInstances = {}, initialized = {}; diff --git a/src/javascript/plupload.silverlight.js b/src/javascript/plupload.silverlight.js index 2f4e54b9a..9d1eef131 100644 --- a/src/javascript/plupload.silverlight.js +++ b/src/javascript/plupload.silverlight.js @@ -9,13 +9,13 @@ */ // JSLint defined globals -/*global plupload:false, ActiveXObject:false, window:false */ +/*global window:false, document:false, plupload:false, ActiveXObject:false, window:false */ -(function(plupload) { +(function(window, document, plupload, undef) { var uploadInstances = {}, initialized = {}; function jsonSerialize(obj) { - var value, type = typeof obj, undef, isArray, i, key; + var value, type = typeof obj, isArray, i, key; // Encode strings if (type === 'string') { @@ -413,9 +413,23 @@ plupload.removeClass(browseButton, activeClass); } }); + + uploader.bind("Destroy", function(up) { + var silverlightContainer; + + plupload.removeAllEvents(document.body, up.id); + + delete initialized[up.id]; + delete uploadInstances[up.id]; + + silverlightContainer = document.getElementById(up.id + '_silverlight_container'); + if (silverlightContainer) { + container.removeChild(silverlightContainer); + } + }); callback({success : true}); }); } }); -})(plupload); +})(window, document, plupload);