2011-08-23 168 views
2

我試圖設置HTML5拖放使用dataTransfer.getData(http://html5demos.com/drag-anything)它讀取任何文本到拖放窗口並使用plupload(http:// www .plupload.com)保存該數據。HTML5拖放

當前代碼:

if (getDataType.checked == false && e.dataTransfer.types) { 
    li.innerHTML = '<ul>'; 
    [].forEach.call(e.dataTransfer.types, function (type) { 
     li.innerHTML += '<li>' + entities(e.dataTransfer.getData(type) + ' (content-type: ' + type + ')') + '</li>'; 
     if (e.dataTransfer.types == 'Files') { 
      li.innerHTML += '<li>' + entities(e.dataTransfer.getData(type) + ' (uploadable: ' + type + ')') + '</li>'; 
     } 
    }); 
    li.innerHTML += '</ul>'; 

    } else { 
    // ... however, if we're IE, we don't have the .types property, so we'll just get the Text value 
    li.innerHTML = e.dataTransfer.getData('Text'); 
    } 

我需要幫助服用dataTransfer.getData的輸出plupload和懸浮窗知道一個文件和文本片段之間的差異。

編輯: 要添加更多的上下文圍繞我試過。 1.如果刪除的項目是文件,則使用if語句來執行某些操作。這是行不通的,因爲(我相信)這些項目已經被刪除,因此無法上傳 2.獲取dataTransfer.files但不存儲可上傳的文件並殺死片段的即時編寫。

我認爲這個解決方案涉及到在開始時查詢丟棄的項目,然後使用plupload爲文件和dataTransfer.getData爲片段 - 問題是我不知道如何做到這一點。任何幫助將非常感激。

+0

你已經試過了什麼?我們不會只給你代碼。 –

+0

我試過如果dataTransfer.types =='文件'這樣的事情,但我認爲這是因爲這個文件已經被刪除,所以plupload不能做任何事情 –

回答

0

您可以將另一個事件綁定到plupload droparea。在那個事件檢查它的一個片段,如果是這樣做你想要的片段。否則,讓plupload處理文件的拖放。

www.plupload.com上有很多例子,他們也有一些非常好的論壇。

另外我寫了一篇博客文章http://www.foliotek.com/devblog/plupload-custom-file-upload-ui/,它展示瞭如何使用Plupload綁定一個使用拖放區域的自定義UI來管理文件上傳。

希望有幫助...

+0

感謝您的幫助 - 已經使用plupload。現在我只需根據拖動是文件還是片段來顯示不同的表單 –

+0

讓我知道這是否有效。我想幫助您實現這一目標。 – bigamil

+0

@ bigamil-其實我的問題在於你提供的上述鏈接,你可以幫助我嗎?其實Firefox 10和Chrome都沒有拖放操作?我剛剛下載了樣本並運行它,但它沒有發生。 – coder