【问题标题】:Plupload - Show a warning when using Flash Runtime and the Browser has no FlashPlupload - 在使用 Flash 运行时且浏览器没有 Flash 时显示警告
【发布时间】:2012-04-05 09:18:16
【问题描述】:

当 Plupload 决定使用 Flash 但浏览器不支持时,我需要显示一条信息消息。

目前在 plupload.init() 之后什么都没有发生(TM),即使 API 指定了一个“运行时”属性,它应该命名使用的运行时,但我无法找到当前使用的运行时。

这会导致上传按钮不起作用,用户不明白发生了什么。

我正在寻找的是这样的:

if(plupload.runtime == "flash" && !detect_flash()) {
    $("#flash_warning").show();
}

【问题讨论】:

  • 不知道你为什么会遇到这个问题。它是什么浏览器?如果它由于某种原因无法加载 Flash.. 它不会加载它并回退到您下一个定义的选择.. 或者通常是 html4 标准帖子。
  • 我禁用了 html4,因为我依赖于分块上传。上传的文件范围从 15MB 到 2GB。这只发生在用户使用 Internet Explorer、没有 Flash 和 Silverlight 时。

标签: javascript plupload


【解决方案1】:

不幸的是,失败的运行时加载尝试似乎不会触发您可以订阅的任何事件。 因此,除了修改 plupload 源之外,我看不到任何订阅失败的运行时加载尝试的方法。

打开 plupload.js 或 pluploadfull.js,查找 '.init(' 的第一个匹配项。 您要订阅的是处理加载尝试的回调函数的“else”部分(就在下一行末尾调用 w() 之前)

G.init(B,function(H){if(H&&H.success){B.features=F;B.runtime=G.name;B.trigger("Init",{runtime:G.name});B.trigger("PostInit");B.refresh()}else{w()}})

无论如何,在我看来,最好的做法是遵循示例并在应该容纳上传者的容器中添加免责声明消息。这样,如果所有运行时都无法加载,您将收到免责声明消息。

【讨论】:

  • 不是我想要一个失败的初始化事件,我只是想知道 Plupload 决定使用哪个运行时。修补源代码是一个明显的解决方法,但我曾希望有一些我找不到的功能;)无论如何,我将通过容器内的免责声明消息检查这个想法。谢谢!
  • 当你写“决定使用 Flash”时,我知道 Init 会触发 flash 运行时(所以请检查浏览器是否支持它)当 flash 被禁用或未安装在浏览器上时,Init 不会触发 Flash 运行时。这就是我的答案:捕获使用 flash 的失败尝试。您能否描述一下 plupload 决定使用闪存(初始化触发器)但闪存不可用的情况。我目前正在集成plupload,这对我有帮助。我还想实现有趣的事情:plupload.com/example_custom.php 如果未启用,则提供下载 Flash
  • 是的,那行有点令人困惑...... init 函数根本没有被触发 - 我还没有遇到过检测到运行时但无法加载的情况,但在这种情况下我会谈论 Plupload 背后的公司,因为那是一个明显的错误。
  • 我只是决定按照以下内容显示一个信息框:“上传初始化..如果此消息没有消失,则说明有问题”(它的极短版本)并调用 $( "#msg").hide() 在 init 回调中。
猜你喜欢
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2012-03-30
  • 2012-04-15
  • 1970-01-01
相关资源
最近更新 更多