swfupload不再在IE下运行了

时间:2010-02-05 03:32:36

标签: swfupload

http://demo.swfupload.org/v250beta2/simpledemo/index.php似乎不再适用于IE。有没有解决这个问题?

我得到一个红叉,而'按钮'不可点击。

我正在运行IE 8。

3 个答案:

答案 0 :(得分:11)

我可以在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有帮助。

编辑:对于某些启用了名为“VMware Adob​​e Flash Optimizer”的IE插件的VM来说,这个修补程序似乎还不够。出于某种原因,优化器将Flash影片转换为白色框(如果您知道单击它,则实际上是可点击的。)

坏消息是我发现无法在我的代码中检测或禁用优化程序加载项的存在。所以我无法确定用户是实际看到按钮还是仅看到白框。我找不到好的解决方法,只添加了非Flash上​​传表单的后备链接。

答案 1 :(得分:2)

不仅是你有问题。它也在swfuploader网站上。看看:http://demo.swfupload.org/v220/simpledemo/index.php

答案 2 :(得分:1)

您可能有一个附加功能正在阻碍。尝试在“No Add-Ons”模式下运行IE 8。来自http://support.microsoft.com/kb/936213

方法3:在”无加载项“模式下运行Internet Explorer

某些网站使用Internet Explorer加载项(如ActiveX控件和浏览器工具栏)来提供增强的浏览体验。如果加载项损坏或加载项与Internet Explorer冲突,则可能会发生错误。要确定错误是否由加载项引起,请在“无加载项”模式下运行Internet Explorer。为此,请按照下列步骤操作:

  1. 点击开始,然后在开始搜索框中键入 Internet Explorer
  2. 点击 Internet Explorer(无加载项)。 Internet Explorer在没有加载项,工具栏或插件的情况下打开。
  3. 测试Internet Explorer以验证其是否正常工作。如果问题仍然存在,请尝试方法4.
  4. 如果没有发生错误,则问题是由通常与Internet Explorer一起加载的其中一个加载项引起的。在这种情况下,请使用以下选项之一。

    选项1:重置Internet Explorer

    将Internet Explorer重置为其默认配置。此步骤还将禁用已安装的任何加载项,插件或工具栏。尽管此解决方案很快,但这也意味着,如果您希望将来使用这些附加组件,则必须重新安装它们。要重置Internet Explorer设置,请使用方法4。

    选项2:使用“管理加载项”工具确定导致问题的加载项

    使用Internet Explorer中的“管理加载项”工具单独禁用每个加载项,以确定哪个加载项导致错误。为此,请按照下列步骤操作:

    Internet Explorer 8

    1. 打开Internet Explorer 8.
    2. 点击工具,然后点击管理加载项
    3. 显示下拉菜单中,选择所有加载项以显示计算机上安装的所有加载项。
    4. 对于此列表中的每个项目,选择加载项,然后在信息窗口中单击禁用
    5. 如果您已停用此列表中的所有项目,请点击确定
    6. 退出,​​然后重新启动Internet Explorer。
    7. 如果问题不再发生,请重复步骤1至3。
    8. 点击启用以添加单个加载项。
    9. 重复步骤6到8,直到确定哪个加载项导致错误发生。
    10. 使用此过程确定哪个加载项导致错误后,您可以禁用该加载项。或者,您可以卸载安装该插件的软件。我们还建议您与提供该插件的软件供应商联系,以获得其他故障排除和支持。“