2012-01-07 35 views
0

鑑於運行的Silverlight我點擊上傳按鈕 然後什麼也沒有發生plupload使用Silverlight不工作 - 確定與HTML5和Flash

正常工作與HTML5和Flash。我現在正在進行徹底測試,因爲IE使用plupload flash(未設置容器,它讓IE嚇跑了)出錯。爲了確保沒有更多的bug,我嘗試將Silverlight作爲運行時測試,可悲的是導致了這種無聲錯誤。 IT無法在FF,Mac上的Chrome或Windows上的IE9中運行。

我使用的骨幹和CoffeeScript的(Rails 3的應用程序) 這是我的構建中class window.Uploader extends Backbone.View 的plupload。請記住,它與Flash和HTML5工作原理運行:

initialize: (options) -> 
    @uploader = new plupload.Uploader({ 
    runtimes : 'silverlight,flash', #'gears,html5,flash,silverlight,browserplus', 
    browse_button : 'pickfiles', 
    container: 'upload_container' 
    max_file_size : '5mb', 
    url : "/admin/upload", 
    flash_swf_url : '/publiclib/plupload.flash.swf', 
    silverlight_xap_url : '/publiclib/plupload.silverlight.xap', 
    filters : [ {title: "#{filter_title} ", extensions : "#{filter_extentions}"}] 
    multi_selection: that.multiple, 
    multipart: true, 
    multipart_params: { 
     "authenticity_token" : FORM_AUTH_TOKEN 
    }, 
    file_data_name: 'photo' 
    }) 

    ###### THIS PRINTS SILVERLIGHT as runtime, in all browser I've tested for this Q 
    ###### So it is used/detected, but not working 
    @uploader.bind 'Init', (up, params) -> 
    $('#filelist').html("<div>Current runtime: #{params.runtime} </div>") 

    @uploader.init() 
    @setupBindings() 

setupBindings: -> 
    #instantiates the uploader 
    that = @ 

    # shows the progress bar and kicks off uploading 
    @uploader.bind 'FilesAdded', (up, files) -> 
    _.each files, (file) -> 

     $('#filelist').append('<div id="' + file.id + '"><small>' + file.name + ' (' + plupload.formatSize(file.size) + ') </small><b></b>' + '<div class=" percent label notice" style="width:10%;"><span>Laster opp</span></div></div>') 

    that.uploader.start() 

    #binds progress to progress bar 
    @uploader.bind 'UploadProgress', (uploader, file) -> 
    # .. some upload code, not relevant to Q 

這是我_form.html.erb(請原諒,我不愛HAML)

<div id="upload_container" class="clearfix"> 
    <div class='input'> 
    <div class='clearfix'> 
     <%=activity_image @activity%> 
    </div> 
    <%=link_to "Choose Picture", '#', :id => "pickfiles", :class => "btn small"%> 
    <div class='clearfix' id='filelist'> 
    </div> 
    </div> 
</div> 
在評論請求生成的HTML

... :

<fieldset> 
    <input id="activity_photo_id" name="activity[photo_id]" size="30" style="display:none;" type="text" /> 

<legend>choose picture for upload</legend> 
<div id="upload_container" class="clearfix"> 

    <div class='input'> 
    <div class='clearfix'> 
     <img src='/assets/default_photo.png' id='image_preview'> 
    </div> 
    <a href="#" class="btn small" id="pickfiles">Choose Picture</a> 
    <div class='clearfix' id='filelist'></div> 
    </div> 
</div> 
</fieldset> 

當我點擊「選擇圖片」時,沒有任何反應。

plupload 1.5.1.1

+0

也許你可以包括生成的HTML?包括 – thejh 2012-01-07 16:39:46

+0

。你有一個銀色plupload工作impl?我懷疑silverlight沒有綁定到upload_container或按鈕,因爲點擊時沒有任何反應。我怎樣才能找到silverlight監聽的區域? – oma 2012-01-08 12:38:32

+0

是否可以通過任何機會控制iframe? IE7/6在使用flash或silverlight插件的iframe中都有問題。一旦我將它們從iframe中拉出並使用內聯,就可以正常工作。 – 2012-04-25 09:30:23

回答

0

根據你的造型Plupload結構可能會迷失在你的容器(#upload_container)。嘗試將browse_button元素包裝到它自己的容器中,在屏幕上有一個嚴格的位置。

可能是Plupload和Backbone/CoffeeScript之間的一些衝突,它作爲獨立的東西在這裏起作用,現在就進行測試。你能在某處顯示你的用例嗎?

+0

我剛發現錯誤在IE8中仍然存在。我會嘗試你的建議。 – oma 2012-01-09 18:49:24

+0

my '@uploader.bind'在加載頁面時,IE8中沒有觸發Init''。在IE8中,我沒有看到「當前運行時是..」 – oma 2012-01-09 19:39:03

+0

我可以進一步幫助你,但我真的需要看你的情況。再次引發,因爲它可以在任何IE瀏覽器中運行。順便說一下來自Plupload的網站(http://plupload.com/example_all_runtimes.php)的例子在IE8中爲你工作? – jayarjo 2012-01-10 08:38:16