http://demo.swfupload.org/v250beta2/simpledemo/index.php似乎在IE中不再起作用。有没有解决的办法?
我得到一个红叉,并且“按钮”不可单击。
我正在运行IE 8。
最佳答案
我可以重现Windows 7上运行的IE9的问题,但只能在虚拟机上运行。无论如何,由于this post,我可以通过修补swfupload.js(v2.2.0)在第230行附近的某个地方来快速解决问题。
SWFUpload.prototype.getFlashHTML = function () {
// Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
// ADD THESE LINES -->
var iefix = '';
if(navigator.userAgent.search(/MSIE/) > -1){
iefix = 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
}
// MODIFY THIS LINE: (add ' + iefix + ')
return ['<object ' + iefix + ' id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">',
'<param name="wmode" value="', this.settings.button_window_mode, '" />',
...
似乎非常相似的修复程序可能对2.5.0有帮助。
编辑:似乎对于某些启用了IE附加组件“VMware Adobe Flash Optimizer”的VM而言,此修补程序还不够。出于某种原因,优化器会将Flash影片变成一个白框(如果您知道单击它,则实际上是可单击的)。
坏消息是我找不到在我的代码中检测或禁用优化程序加载项的方法。因此,我无法确定用户实际上是看到按钮还是仅看到白框。我发现没有好的解决方法,仅向非Flash上传表单中添加了一个后备链接。
关于swfupload在IE下不再起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2204871/