我一直在应用程序中使用uploadify几年,它一直很好。当我升级到2.1.0版本时,它现在与swfobject 2.2捆绑在一起。
在firefox,safari和chrome中,文件上传和一切都很完美。但是,在IE的所有版本中,javascript都没有正确地将任何参数传递给flash文件。
调试buttonImg例如在uploadify js内部工作正常,但是从flash文件内部读取为undefined。再次,这只是IE。
什么可能导致IE不将js参数传递给flash对象?我正在运行最新的Flash版本。
我在这里检查了其他相关的帖子,似乎没有人解决这个问题。完全没有javascript错误。 Flash上传程序加载甚至可以正常工作,但只能使用默认值。
我已经把问题缩小了一点,但仍然不明白发生了什么。在SWFOjbject 2.2第436行中,javascript试图用新对象及其参数替换“el”元素。
当我警告“标准杆”时,我会看到参数列表,完成我期望的flashvar。
<param name="quality" value="high">
<param name="wmode" value="opaque">
<param name="allowScriptAccess" value="sameDomain">
<param name="flashvars" value="uploadifyID=fileInput&pagepath=/clients/WhackCMS/admin/js/tinymce/plugins/whackupload/&buttonImg=http%3A//192.168.0.4/clients/WhackCMS/admin/img/btn-browse.png&script=http://192.168.0.4/clients/WhackCMS/admin/pages/upload&folder=&scriptData=single-auth-token%3Dd06ac6f98b93d980fe7fa1e24fa91ab3f36622ea%26thumb-size%3D150x150&width=157&height=31&wmode=opaque&method=GET&queueSizeLimit=999&simUploadLimit=1&fileDesc=Images&fileExt=*.jpg;*.jpeg;*.gif;*.png&auto=true&fileDataName=Filedata">
我已经尝试了默认的el.outerHTML和$(el).replaceWith方法,但是当我尝试查看更新的“el”对象时,我看到的只是一些默认参数:
<OBJECT style="VISIBILITY: visible" id=fileInputUploader classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=157 height=31>
<PARAM NAME="_cx" VALUE="4153">
<PARAM NAME="_cy" VALUE="820">
<PARAM NAME="FlashVars" VALUE="">
<PARAM NAME="Movie" VALUE="http://192.168.0.4/clients/WhackCMS/admin/uploader_tinymce.swf">
<PARAM NAME="Src" VALUE="http://192.168.0.4/clients/WhackCMS/admin/uploader_tinymce.swf">
<PARAM NAME="WMode" VALUE="Opaque">
<PARAM NAME="Play" VALUE="0">
<PARAM NAME="Loop" VALUE="-1">
<PARAM NAME="Quality" VALUE="High">
<PARAM NAME="SAlign" VALUE="LT">
<PARAM NAME="Menu" VALUE="-1">
<PARAM NAME="Base" VALUE="">
<PARAM NAME="AllowScriptAccess" VALUE="sameDomain">
<PARAM NAME="Scale" VALUE="NoScale">
<PARAM NAME="DeviceFont" VALUE="0">
<PARAM NAME="EmbedMovie" VALUE="0">
<PARAM NAME="BGColor" VALUE="">
<PARAM NAME="SWRemote" VALUE="">
<PARAM NAME="MovieData" VALUE="">
<PARAM NAME="SeamlessTabbing" VALUE="1">
<PARAM NAME="Profile" VALUE="0">
<PARAM NAME="ProfileAddress" VALUE="">
<PARAM NAME="ProfilePort" VALUE="0">
<PARAM NAME="AllowNetworking" VALUE="all">
<PARAM NAME="AllowFullScreen" VALUE="false">
</OBJECT>
看起来el元素根本就没有被正确替换。当我在firefox和safari中尝试这个时,html正确更新。