Uploadify in ie9 getting js error : SCRIPT5007: Object expected

sandeep picture sandeep · Apr 22, 2013 · Viewed 7.5k times · Source

I am trying to bind uploadify on div.
When I clicked on upload button it show me error like SCRIPT5007: Object expected.

For demo check below link which produced error on dragging of div in ie9

head

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.20/jquery-ui.js"></script>
<script type="text/javascript" src="http://www.uploadify.com/wp-content/themes/uploadify/js/jquery.uploadify.min.js"></script>

body

<div class="container" id="container">
    <div id="uploadify-item"></div>
    This container is not draggable in IE9 but it works in Chrome and FF. Why not?
</div>

js

$('#uploadify-item').uploadify({
    'swf'      : 'http://www.uploadify.com/uploadify/uploadify.swf',
    'uploader' : 'http://www.uploadify.com/uploadify/uploadify.php'
});
$("#container").draggable();

Refer : http://jsfiddle.net/axzdR/19/

Answer

eHussain picture eHussain · May 9, 2013

IE9 seems to have a bug with SWFUpload embeds, whereby if you try to call "getAttribute / removeAttribute / setAttribute" on the element, an "object expected" error is raised. And I found that the cleanUp() function in the swfupload.js remove all the js functions including "getAttribute / removeAttribute / setAttribute" from the object DOM in IE9.

To fix this issue

In SWFUpload.prototype.cleanUp

Change:

if (typeof (movieElement[key]) === "function")

To:

if (typeof (movieElement[key]) === "function" && key[0] <= 'Z') // Remove only Flash functions (starts with capital letters). 

Patched version of uploadify is kept at this location

http://www.dariowiz.com/scripts/jquery.uploadify3.1Fixed.js

Regards.