有问题的设置:
我有一个在 Windows 机器上运行的独立、离线、信息亭模式的 Chrome 实例。我拥有系统的完全访问权限和任何管理员权限。我可以在设置或取消设置任何标志的情况下启动 Chrome。
任务:
我被要求创建一个日志文件来跟踪我正在编码的离线应用程序中的用户活动。这是一种简单的分析形式,它将每个事件附加到文件的末尾,用逗号分隔。然后,该文件将通过计划任务每天一次发送到服务器。(这些都不是我的主意,所以请不要拖我)
排除: 任何服务器端代码- 我已经为 Node、PHP 等进行了游说,但是因为这将分发到许多不同的安装中,所以我们不能保证会安装它。Flash/ActiveX/Java - 理想情况下希望避免这种情况(即使默认情况下会安装这些)
可能的解决方案:文件 API - 我已经看过这个,但AFAIK如果打开对话框以将数据保存到每个文件,这需要在后台发生。安全性 - 我在其他 SO Questions 中读到,如果减少安全设置,但没有人继续解释哪些设置,这可以实现。是否有一个简单的标志允许它? 如何从谷歌浏览器启用本地文件系统读写访问?- 类似的问题!
理想结果:(类似于 PHP)
$file = 'log.txt';
$current = file_get_contents($file);
$current .= ",clicked:link";
file_put_contents($file, $current);
可能的理想结果:证明这是不可能的并强制使用 PHP/Node/Java ;)
回复那些建议本地存储的人:我没有存储唯一的键/值对,这非常像设置 cookie。同样有文件大小限制。对于那些建议 web SQL(例如 chrome 中的 SQLite)的人 - 如果它不是 chrome 扩展名,则存在文件大小限制。我看到工作的唯一方法是,如果我要在 windows 目录 (C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\databases) 中找到文件的位置并上传从计划任务。完全可行,但这不是一个理想的答案。