如何在用户's文件系统上使用chrome扩展创建一个用户可访问的文件
How to make a user-accessible file on the user's filesystem with a chrome extension
我正在制作一个扩展,其中包括在外部编辑器(用户计算机上的一个)中编辑javascript文件。扩展有javascript文件保存在chrome中。当然,用户在自己的编辑器中编写代码会容易得多。
这就是为什么我决定找到一些东西,在用户的文件系统上创建一个文件,用户可以自己找到并编辑它,如果有任何更改,将其同步到扩展(通过定期检查或使用某些侦听器)。
我四处看了看,但似乎没有什么适合我想做的。Chrome的文件系统API只适用于Chrome应用程序,而不是Chrome扩展,HTML5文件系统API不允许一个简单的文件系统URL被请求和打开,相反,它混淆了存储的文件,使得几乎不可能轻松编辑该文件。
我看到的另一种可能更有前途的方法是让用户在存储扩展名的目录中编辑其中一个文件,并以某种方式检索该内容。然而,这将是一个有点困难的实现与chrome的所有哈希检查在chrome扩展,更不用说这些文件的内容的一般修改扩展(可能通过黑客通过指定自己的更新URL和"更新"一个虚拟的javascript文件,将被写入)。
是否有一种方法可以简单地要求一个存储文件的位置,然后允许用户编辑该文件并将其同步回来?不,扩展是从实际文件系统中沙箱出来的。
正如你所说的,可以读取扩展名自己的文件;然而,这是只读的扩展和修改部署的扩展上的这些文件将导致Chrome检测扩展"篡改"和立即禁用作为预防措施。
Chrome扩展逃离沙箱的唯一方法是,正如wOxxOm建议的那样,一个本机主机模块。请注意,这不能分布在Chrome网络商店与扩展;需要一个单独的安装程序。
或者,你可以使用某种带有API的云存储来访问它;例如,用户可以在Dropbox子文件夹中存储一些东西,您的扩展可以通过Dropbox API授权访问它。不幸的是,没有像syncFileSystem
这样的"原生"解决方案。
- 如何在节点中为用户创建某种警报
- 如何为在客户端检查其密码的用户创建登录页面
- 如何防止用户创建重复ID
- 如何在完整日历中筛选出用户创建的事件
- 使用java和html基于当前用户创建重定向链接
- 在jquery或jquery移动中,如何将用户创建的链接传递到用户创建的按钮?我所说的用户是指最终用户,而不是我
- 用户创建的应用程序的安全性
- 为多个用户创建自动低分辨率和高分辨率pdf,png与inDesign
- 如何为用户创建唯一的网址
- 如何在我的网页上为iPhone用户创建一个注释,说明有一个应用程序
- 当用户创建新帖子时,张贴到墙上时出错
- 为不同的用户创建一个常规页面
- 如何为不同的用户创建Opencart模块
- Express js会话——仅为登录用户创建
- 根据用户创建文本字段's在JavaScript函数中的输入
- 从用户创建的选择字段中获取所有选定项目的值
- 在数据库中保存用户创建的javascript是否安全
- 如何为用户创建带有构建选项的流星JS包
- 如何在Meteor中验证服务器上的用户创建
- 如何获取用户文本输入用户创建输入的值,jQuery