Javascript Flash运行时不';使用PLupload在IE8中无法工作

Javascript Flash运行时不';使用PLupload在IE8中无法工作,javascript,jquery,file-upload,plupload,Javascript,Jquery,File Upload,Plupload,我在$(function(){…})中有一个简单的javascript函数正文 var uploader = new plupload.Uploader({ runtimes: 'html5,flash,silverlight', browse_button: 'pickfiles', container: 'uploader', max_file_size: '20mb', unique_names: t

我在
$(function(){…})中有一个简单的javascript函数正文

var uploader = new plupload.Uploader({
         runtimes: 'html5,flash,silverlight',
         browse_button: 'pickfiles',
         container: 'uploader',
         max_file_size: '20mb',
         unique_names: true,
         multiple_queues: false,
         //drop_element: 'dropzone',
         url: '/Home/Upload',
         flash_swf_url: '../../../Scripts/upload/plupload.flash.swf',
         silverlight_xap_url: '../../../Scripts/upload/plupload.silverlight.xap',
         filters: [
               { title: "Image files", extensions: "jpg,gif,png" },
               { title: "Zip files", extensions: "zip" }
           ],
         chunk_size: '2mb',
         resize: { width: 320, height: 240, quality: 90 }
      });

      uploader.bind("Init", function (up, params) {
         $("#runtime").html("<div>Current runtime: " + params.runtime + "</div>");
      });

      $("#uploadfiles").bind("click", function (e) {
         uploader.start();
         e.preventDefault();
      });

      uploader.init();

      uploader.bind("FilesAdded", function (up, files) {
         $.each(files, function (i, file) {
            $('#runtime').append(
                '<div id="' + file.id + '">' +
                    file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' +
           '</div>');
         });
         up.refresh();
      });

      uploader.bind("UploaderProgress", function (up, file) {
         $("#" + file.id + " b").html(file.percent + "%");
      });

      uploader.bind("Error", function (up, file) {
         $('#runtime').append("<div>Error: " + err.code +
                ", Message: " + err.message +
                (err.file ? ", File: " + err.file.name : "") +
                "</div>");
         up.refresh();
      });

      uploader.bind("FileUploaded", function (up, file) {
         $("#" + file.id + " b").html("100%");
      });
var uploader=新的plupload.uploader({
运行时:“html5、flash、silverlight”,
浏览按钮:“pickfiles”,
容器:“上传者”,
最大文件大小:“20mb”,
唯一的名称:true,
多个队列:false,
//drop_元素:“dropzone”,
url:“/Home/Upload”,
flash_swf_url:“../../../Scripts/upload/plupload.flash.swf”,
silverlight_xap_url:'../../Scripts/upload/plupload.silverlight.xap',
过滤器:[
{标题:“图像文件”,扩展名:“jpg,gif,png”},
{标题:“Zip文件”,扩展名:“Zip”}
],
块大小:“2mb”,
调整大小:{宽度:320,高度:240,质量:90}
});
uploader.bind(“Init”,函数(up,params){
$(“#runtime”).html(“当前运行时:+params.runtime+”);
});
$(“#上载文件”).bind(“单击”,函数(e){
uploader.start();
e、 预防默认值();
});
uploader.init();
bind(“FilesAdded”),函数(up,files){
$.each(文件、函数(i、文件){
$(“#运行时”).append(
'' +
file.name+'('+plupload.formatSize(file.size)+')”+
'');
});
up.refresh();
});
bind(“UploaderProgress”,函数(up,file){
$(“#”+file.id+“b”).html(file.percent+“%”);
});
uploader.bind(“错误”,函数(up,file){
$('#runtime').append(“Error:+err.code+
,消息:“+err.Message”+
(err.file?”,文件:“+err.file.name:”)+
"");
up.refresh();
});
uploader.bind(“fileupload”),函数(up,file){
$(“#”+file.id+“b”).html(“100%”);
});
和HTML代码

<div class="container">
                  <div>Logo: </div>
                  <div style="clear"></div>
                  <div id="uploader">
                    <div id="runtime" class="right">
                        No runtime was found !
                    </div>
                    <div>
                        <a id="pickfiles" href="#">[Select files]</a>
                        <a id="uploadfiles" href="#">[Upload files]</a>
                    </div>
                  </div>
               </div>
<div class="container" style="display:none">
                  <div>Logo: </div>
                  <div style="clear"></div>
                  <div id="uploader">
                    <div id="runtime" class="right">
                        No runtime was found !
                    </div>
                    <div>
                        <a id="pickfiles" href="#">[Select files]</a>
                        <a id="uploadfiles" href="#">[Upload files]</a>
                    </div>
                  </div>
</div>

标志:
没有找到运行时!
错误如下图所示:

(查看全尺寸)

我发现文件过滤器有问题。我在IE8上运行PLUpload.com示例,它与Flash运行时配合良好

在其他浏览器上,我的上传程序工作得很好。 此外,我已经为所有浏览器(IE8、FF9、Chrome16)安装了最新版本的Flash,但问题仍然存在于IE8中

问题已修复:
不要将uploader对象插入到具有
可见性:隐藏
显示:无
属性的div中。

对于与我有相同问题的所有人:

我有下面的HTML代码

<div class="container">
                  <div>Logo: </div>
                  <div style="clear"></div>
                  <div id="uploader">
                    <div id="runtime" class="right">
                        No runtime was found !
                    </div>
                    <div>
                        <a id="pickfiles" href="#">[Select files]</a>
                        <a id="uploadfiles" href="#">[Upload files]</a>
                    </div>
                  </div>
               </div>
<div class="container" style="display:none">
                  <div>Logo: </div>
                  <div style="clear"></div>
                  <div id="uploader">
                    <div id="runtime" class="right">
                        No runtime was found !
                    </div>
                    <div>
                        <a id="pickfiles" href="#">[Select files]</a>
                        <a id="uploadfiles" href="#">[Upload files]</a>
                    </div>
                  </div>
</div>
正如我们所知,DIV最初是隐藏的,因为
dispaly:none
(当然,您可以在dialog对象中将
autoOpen:false
设置为新选项)并删除样式

在IE8中(可能在早期和更高版本中),如果
div
被隐藏,则上载程序无法很好地实例化。(返回上述错误)

在Chrome和Firefox中(我不在Opera中测试这个问题)工作正常

所以,我的建议是避免隐藏块(即使您希望创建模态对话框)

我从该div中删除了
display:none
样式和
dialog
对象,现在在IE8中工作得非常好


为什么??我不知道为什么在IE中,object的实例不是在页面启动时创建的,尽管在Firefox和Chrome中,该实例是正常创建的。

这也解决了问题:

#pickfiles{
    display:block;
}
或者这个:

$('#pickfiles').on("mouseover",function(){
                $(".plupload.flash").css({
                    left:$('#pickfiles').offset().left+'px',
                    top:$('#pickfiles').offset().top+'px'
                    });
                });

显示div后,执行以下操作:

uploader.refresh();

我的页面上有测试,成功了

在您的系统上安装microsoft silverlight。这将解决此问题,并且不要忘记向用户发送消息以安装silverlight。

此错误通过以下方式解决:

将“html4”添加到属性:“运行时”

var uploader=新的plupload.uploader({
运行时:“gears、html5、flash、silverlight、browserplus、**html4**”,
浏览按钮:“pickfiles”,
容器:“容器”,
最大文件大小:“30mb”,
url:“/image/upload3”,
flash_swf_url:'/plupload/js/plupload.flash.swf',
silverlight_xap_url:'/plupload/js/plupload.silverlight.xap',
过滤器:[
{标题:“图像文件”,扩展名:“jpg、gif、png、jpeg”},
{标题:“Zip文件”,扩展名:“Zip”}
],
唯一名称:false,
多部分参数:{
“tmpPath”:“,
“最小宽度”:“,
“最小高度”:”
}
//调整大小:{宽度:390,高度:290,质量:90}
});

祝你好运

你能更好地描述这个解决方案吗?写一个答案,让人们看到找到了解决方案?我也有类似的错误,但这对我不起作用。