0

几年来我一直在应用程序中使用uploadify,它一直运行良好。当我升级到 2.1.0 版本时,它现在与 swfobject 2.2 捆绑在一起。

在 firefox、safari 和 chrome 中,文件上传和一切都运行良好。但是,在所有版本的 IE 中,javascript 都没有正确地将任何参数传递给 flash 文件。

例如,在 uploadify js 中调试 buttonImg 可以正常工作,但从 flash 文件中读取为未定义。同样,这只是 IE。

什么可能导致 IE 无法将 js 参数传递给 flash 对象?我正在运行最新的 Flash 版本。

我在这里查看了其他相关帖子,似乎没有人解决这个问题。根本没有javascript错误。Flash 上传器加载甚至似乎可以工作,但只能使用默认值。

4

1 回答 1

0

我已经进一步缩小了问题范围,但仍然不明白发生了什么。在 SWFOjbject 2.2 第 436 行中,javascript 试图用新对象及其参数替换“el”元素。

当我发出“par”警报时,我会看到参数列表,其中包含我期望的 flashvar。

<param name="quality" value="high">
<param name="wmode" value="opaque">
<param name="allowScriptAccess" value="sameDomain">
<param name="flashvars" value="uploadifyID=fileInput&amp;pagepath=/clients/WhackCMS/admin/js/tinymce/plugins/whackupload/&amp;buttonImg=http%3A//192.168.0.4/clients/WhackCMS/admin/img/btn-browse.png&amp;script=http://192.168.0.4/clients/WhackCMS/admin/pages/upload&amp;folder=&amp;scriptData=single-auth-token%3Dd06ac6f98b93d980fe7fa1e24fa91ab3f36622ea%26thumb-size%3D150x150&amp;width=157&amp;height=31&amp;wmode=opaque&amp;method=GET&amp;queueSizeLimit=999&amp;simUploadLimit=1&amp;fileDesc=Images&amp;fileExt=*.jpg;*.jpeg;*.gif;*.png&amp;auto=true&amp;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 会正确更新。

于 2010-02-03T20:30:52.523 回答