2013-05-14 45 views
1

我正在使用HTML5創建應用程序,我希望能夠將本地文本文件拖到textarea中。這適用於Firefox 20.0.1,Chrome 26.0.1410.64 m和Internet Explorer 10,但不適用於Opera 12.15或Safari 5.1.7。而不是文本區域中出現的文本文本,打開包含文本的新頁面。我從this answer瞭解到,我應該期待Safari的問題,但其含義是,它應該與Opera 12一起工作。使用Opera 12將本地文件拖到textarea中

任何幫助解釋或克服的問題,將不勝感激。

的應用程序,它遠不及成品,在grideasy.github.io與源文件在https://github.com/grideasy/grideasy.github.io

要查看「內容」按鈕,效果單擊並拖動文本文件到文本區域。

兩個Safari和Opera通過下面

if(window.File && window.FileReader && window.FileList && window.Blob) { 
     dropZone = $('drop_zone'); 
     dropZone.value=""; 
     dropZone.addEventListener('dragover', handleDragOver, false); 
     dropZone.addEventListener('drop', handleFileSelect, false); 
     dropZone.addEventListener('click', storeCursorPosition, false); 
     dropZone.addEventListener('keyup', storeCursorPosition, false); 
    } 
    else { 

    } 

所述檢測特徵的代碼,這是在管線30發現41的event.js文件

從dropcontent.js下面的代碼讀取該文件,並顯示文件中的文本。

function handleDragOver(evt) { 
    evt.stopPropagation(); 
    evt.preventDefault(); 
} 

function handleBodyDrop(evt) { 
    evt.stopPropagation(); 
    evt.preventDefault(); 
} 

function handleFileSelect(evt) {  
    evt.stopPropagation(); 
    evt.preventDefault(); 

    var files = evt.dataTransfer.files; // FileList object. 
    var f = files[0]; 
    if (f) 
    { 
     var r = new FileReader(); 
     r.onloadend = function(e) {extract(e.target.result) } 
     r.readAsText(f); 
    } 
    else 
    { 
     alert("Failed to load file"); 
    } 
} 


function extract(a) { 
    $('drop_zone').value=a; 
} 

謝謝你的任何建議

回答

1

看來,Opera將不會接受一個textarea的,可以用來作爲懸浮窗的對象。將textarea更改爲段落,span或div將允許該區域接受拖放文件。

相關問題