V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  AV1  ›  全部回复第 95 页 / 共 168 页
回复总数  3356
1 ... 91  92  93  94  95  96  97  98  99  100 ... 168  
离演出开始还有二十分钟。
这样没歧义了。
看那参数名、变量名就知道,你这代码是混淆过的,是混淆工具把 true 和 false 变成!0 和!1 的,并不是当时开发者这么写的。
2020 年 6 月 15 日
回复了 loli 创建的主题 YouTube YouTube 为什么能做到只推送我感兴趣的视频?
我刚好相反,YouTube 总是给我推不喜欢的东西,点了几百次不喜欢还是孜孜不倦地推,尤其是那些政治视频……
<textarea style="width: 90%;height: 300px;"></textarea>
<br>
<input type="file">
<a href="#" download="">保存</a>
<script>
document.querySelector('input[type=file]').addEventListener('change', function () {
let file = this.files[0];
let fr = new FileReader();
fr.readAsText(file);
fr.onload = function () {
document.querySelector('textarea').value = this.result;
document.querySelector('a[download]').download = file.name;
};
});

document.querySelector('a[download]').addEventListener('mouseover', function () {
this.href = 'data:text/plain,' + encodeURIComponent(document.querySelector('textarea').value);
});
</script>
结论:不行。
浏览器的 JS 是运行在沙箱里的,不能随意访问用户的本地存储设备。能够满足你这种需求的浏览器,都因为安全问题被淘汰了。比如当年的 IE 浏览器,访问一个网站,就能往你的硬盘读写东西,非常可怕。

所以,现代浏览器,要有用户的授权,才能允许你从硬盘读取或写入文件。那就是打开对话框和保存对话框。
借助<input type="file">和 fileReader,你可以在用户授权的情况下读取硬盘里的文件。
然后借助<a download>,把修改后的文件写入磁盘。

当然,浏览器还提供了 localStorage 、sessionStorage 、IndexedDB 这些持久化或临时存储,保存在浏览器的沙箱里,浏览器以外是看不到的。

如果你想像应用程序一样随意读写硬盘,就不能只靠浏览器了,得上 node.js 或 electron 。

参见:
[https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications] 的 Accessing selected file(s),

[https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a] 的 Using the download attribute to save a <canvas> as a PNG 。
1 ... 91  92  93  94  95  96  97  98  99  100 ... 168  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5405 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 54ms · UTC 08:08 · PVG 16:08 · LAX 00:08 · JFK 03:08
♥ Do have faith in what you're doing.