在firefox或chrome中使用javascript访问文件系统?

时间:2012-12-10 17:37:26

标签: javascript security google-chrome firefox

我已经能够使用以下功能执行此操作:

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

并将signed.applets.codebase_principal_support选项设置为true。不幸的是,从FF 17开始,此功能已被删除。据我所知,Chrome已经有一段时间了。

是否有人知道是否创建了允许使用enablePrivilege的Firefox或Chrome扩展程序?如果没有,建议如何建立我自己的?

1 个答案:

答案 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中的等价物。