2012-12-10 30 views
1

我已經能夠使用要做到這一點,直到火狐15:在firefox或chrome中使用javascript訪問文件系統?

netscape.security.privilegeManager.enablePrivilege("UniversalXPConnect")

並設置signed.applets.codebase_principal_support選項true。不幸的是,截至FF 17這個功能已被刪除。從我所瞭解的情況來看,Chrome已經有一段時間了。

有誰知道是否有Firefox或Chrome擴展創建允許使用enablePrivilege?如果沒有,建議從哪裏開始創建我自己的?

+0

想象一下,如果所有的網站都可以做到這一點...你會有瘋狂的惡意軟件;每時每刻! –

+0

是的,這將是不好的。這是一個內部網站,所以我們並不太擔心。 –

回答

2

File API,那些停止工作的原因是因爲兩者都已經實現了html5文件api。

這裏是a html5 demo of the api

這裏是案件相關的腳本,他們刪除演示:

<script> 
var holder = document.getElementById('holder'), 
state = document.getElementById('status'); 

if (typeof window.FileReader === 'undefined') { 
state.className = 'fail'; 
} else { 
state.className = 'success'; 
state.innerHTML = 'File API & FileReader available'; 
} 

holder.ondragover = function() { this.className = 'hover'; return false; }; 
holder.ondragend = function() { this.className = ''; return false; }; 
holder.ondrop = function (e) { 
this.className = ''; 
e.preventDefault(); 

var file = e.dataTransfer.files[0], 
reader = new FileReader(); 
reader.onload = function (event) { 
    console.log(event.target); 
    holder.style.background = 'url(' + event.target.result + ') no-repeat center'; 
}; 
console.log(file); 
reader.readAsDataURL(file); 

return false; 
}; 
</script> 

作爲一個說明:如果您需要訪問一個文件在本地計算機上使用Chrome,你需要使用這個開關--allow-file-access-from-files運行程序(對於使用文件輸入而不實際加載到服務器,否則會得到xhr跨域錯誤)。

我不知道在Firefox中的等效。

相關問題