在 chrome 中将文件系统位置解析为可用的 file:// 网址
Parsing filesystem locations into usable file:// urls in chrome
我正在将文件保存到chrome扩展程序中的用户硬盘驱动器,我需要一种方法以编程方式在chrome浏览器中打开文件。我可以使用 chrome 选项卡 API 创建一个选项卡并设置其 url。问题是文件的文件系统地址。
Chrome 会将文件名中的特殊字符切换为其他表达式,例如空格变为 %20。
为了解决这个问题,我想在保存文件名之前解析文件名,删除会导致这些 url 损坏的字符。
我无法弄清楚正则表达式来正确解析文件名。
有两件事可以帮助我:
-
在 Chrome 中打开网址时导致网址出现这些损坏的所有特殊字符的列表。
-
或者更好的是,来自正则表达式帮助的即时解决方案,我可以与 javascript 的 replace 方法一起使用,将每个"/"替换为"''",以及将不是字母或数字(或我刚刚添加的"''")的所有其他字符替换为"_"
编辑:
如果我不考虑对字符串的这些更改,我将无法在 chrome 选项卡中打开该文件。例如,下面的代码将不起作用。
chrome.browserAction.onClicked.addListener( function(tab) {
chrome.tabs.create({ url: 'file:///home/user/1057_AngularJS: Developer Guide: Directives.mhtml'}, function(tab) {
});
});
我需要做的是:
chrome.browserAction.onClicked.addListener( function(tab) {
chrome.tabs.create({ url: 'file:///home/user/1057%5CAngularJS:%20Developer%20Guide:%20Directives.mhtml'}, function(tab) {
});
});`
我想用 ''s 替换/s,以便文件系统 url 尽可能类似于网页 url,但如果这导致问题,我可以放弃它。
来自正则表达式帮助的即时解决方案,我可以与之一起使用 JavaScript 的 replace 方法,将每个 "/" 替换为 "''",并且每个 其他不是字母或数字的字符(或 I 的"''" 刚刚添加)带有"_"
给你:
'Hello/你 好/1337'.replace(/'//g, '''').replace(/[^a-zA-Z0-9'']/g, '_');
输出:
'Hello'___'1337'
我最终使用了.replace(/[^a-zA-Z0-9'.]/g, '_')
,或者没有用''替换/,因为''也被编码为特殊字符。我还想在文件名中保留句点。要查看已编码字符的完整列表,请转到此处。
- 正在将base64 jpeg从input-type=file上传到服务器
- 反应路由器弄乱了请求网址
- 如何在谷歌网站中使用javascript获取当前页面的网址
- 使用谷歌搜索网址
- Express.js:在用户发帖时获取用户的引荐来源网址
- 有人能告诉我如何在cent-os中打开扩展名为.dat的FIle吗
- File Upload事件上下文和javascript
- 使用jQuery File Upload实现所需的用户登录
- FileEntry.file方法使dataTransferItemList为空
- 客户端javascript没有'找不到我的网址
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- 有没有什么方法可以通过输入字段(type=file)来找出选择了多少个文件
- FF和Chrome中的 ftp:// 网页不会加载 file:// 脚本
- Chrome APP/扩展程序从网址下载文件
- 在网页上执行绝对路径的所有点击前面加上网址
- 将从浏览器创建的文件保存到磁盘 - 不能在 Firefox 上使用新的 File()
- 如何将标头中的全局变量加载到外部Javascript FIle中
- 返回谷歌搜索的网址列表
- 在 chrome 中将文件系统位置解析为可用的 file:// 网址
- 如何在 Chrome 扩展程序中以 file:/// 网址执行content_scripts