2012-01-04 28 views
5

工作,我有內部$(function() { ... });Flash運行時不使用IE8 PLupload

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%"); 
     }); 

和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> 

在如下圖所示的錯誤簡單的JavaScript函數: enter image description here

http://i.imgur.com/5t0sT.jpg(查看全尺寸)

我看到那裏是文件過濾器的問題。我在IE8上運行PLUpload.com示例,它在Flash運行時可以正常工作。

在其他瀏覽器上,我的上傳器完美地工作。 另外,我已經安裝了適用於所有瀏覽器的最新版本的Flash(IE8,FF9,Chrome 16),但問題仍然存在於IE8中。

問題修復: 請勿將上傳對象插入具有visibility:hiddendisplay:none屬性的div中。

+0

您能更好地描述解決方案嗎?寫一個答案,讓人們看到解決方案被發現?我有類似的錯誤,但這不適用於我。 – oma 2012-01-09 20:41:52

回答

5

大家誰都有同樣的問題,因爲我:

我有以下HTML代碼

<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> 

container被作爲對話

$(function() 
{ 
$(".container").dialog({modal:true, width:400}); 
}); 

創建正如我們所知,DIV由於dispaly:none(當然,您可以將autoOpen:false設置爲對話框對象中的新選項)而初始隱藏並且刪除樣式。

在IE8中(可能在更早版本和更高版本中),如果隱藏了div,則無法很好地實例化上傳器。 (返回上述錯誤)

在Chrome和Firefox(我不在Opera中測試這個問題)工作正常。

所以,我的建議是避免隱藏塊(即使你想創建模態對話框)。

我刪除了display:none風格和dialog對象從該div,現在在IE8中工作非常好。

爲什麼?我不知道爲什麼在IE中,對象的實例不是在頁面啓動時創建的,儘管在Firefox和Chrome中,實例是正常創建的。

1

這解決了這個問題太:

#pickfiles{ 
    display:block; 
} 

或本:

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

股利後顯示,這樣做:

uploader.refresh(); 

我有我的網頁上測試,成功了!

-1

在您的系統上安裝microsoft silverlight。這將解決該問題,並且不要忘記給您的用戶安裝silverligth的消息。解決

-1

此錯誤是:

添加 「HTML4」 到屬性: 「運行時間」

var uploader = new plupload.Uploader({ 
     runtimes : 'gears,html5,flash,silverlight,browserplus,**html4**', 
     browse_button : 'pickfiles_<? echo $tmpKey ?>', 
     container : 'container_<? echo $tmpKey ?>', 
     max_file_size : '30mb', 
     url : '/image/upload3', 
     flash_swf_url : '/plupload/js/plupload.flash.swf', 
     silverlight_xap_url : '/plupload/js/plupload.silverlight.xap', 
     filters : [ 
      {title : "Image files", extensions : "jpg,gif,png,jpeg"}, 
      {title : "Zip files", extensions : "zip"} 
     ], 
     unique_names:false, 
     multipart_params : { 
      "tmpPath" : "<? echo $tmpPath ?>", 
      "minWidth" : "<? if(isset($minWidth)) echo $minWidth; else echo 0; ?>", 
      "minHeight" : "<? if(isset($minHeight)) echo $minHeight; else echo 0; ?>" 
     } 
    // resize : {width : 390, height : 290, quality : 90} 
    }); 

祝你!