swfupload不再在IE下运行了

sea*_*ean 8 swfupload

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

我得到了一个红叉,而'按钮'是不可点击的.

我正在运行IE 8.

tuo*_*alo 11

我可以在Windows 7上运行IE9重现问题,但只能在虚拟机上运行.无论如何,由于这篇文章,我能够通过修补swfupload.js(v2.2.0)来应用quick'n'dirty修复问题,在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, '" />',
        ...
Run Code Online (Sandbox Code Playgroud)

似乎非常类似的修复可能对2.5.0有帮助.

编辑:似乎这个修复程序对于某些启用了IE加载项称为"VMware Adob​​e Flash Optimizer"的虚拟机来说还不够.出于某种原因,优化器将Flash影片转换为白色框(如果您知道单击它,实际上是可点击的).

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

  • 这节省了我的一天!非常感谢! (3认同)

Dus*_*all 1

您可能有一个附加组件妨碍了您。尝试在“无附加组件”模式下运行 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。

如果没有出现错误,则问题是由通常与 Internet Explorer 一起加载的加载项之一引起的。在这种情况下,请使用以下选项之一。

选项 1:重置 Internet Explorer

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

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

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

互联网浏览器 8

  1. 打开 Internet Explorer 8。
  2. 单击“工具”,然后单击“管理加载项”
  3. “显示”下拉菜单中,选择“所有加载项”以显示计算机上安装的所有加载项。
  4. 对于此列表中的每个项目,选择该加载项,然后单击“信息”窗口中的“禁用” 。
  5. 禁用此列表中的所有项目后,单击“确定”
  6. 退出然后重新启动 Internet Explorer。
  7. 如果问题不再出现,请重复步骤 1 至 3。
  8. 单击启用单个附加组件。
  9. 重复步骤 6 到 8,直到确定哪个加载项导致发生错误。

使用此过程确定哪个加载项导致错误后,您可以禁用该加载项。或者,您可以卸载安装该附加组件的软件。我们还建议您联系提供该附加组件的软件供应商以获得更多故障排除和支持。”

  • 无插件模式也会禁用“flash”插件。我已经手动禁用了除 Flash 插件之外的所有附加组件,但它仍然无法工作 (2认同)