【发布时间】:2014-09-06 16:38:08
【问题描述】:
我希望它做的是,每次我访问一个新页面、点击一个链接等时,URL 都会自动保存到一个 .txt 文件中。 Chrome 或 Firefox 都可以。 PHP、HTML、Java、Javascript 也可以。 如果有人可以帮助我,那就太棒了。
chrome.browserAction.onClicked.addListener(createFile);
createFile();
function createFile()
{
chrome.tabs.getSelected(null, function(tab) {
window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {
fs.root.getFile('test', {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var builder = new WebKitBlobBuilder();
builder.append("Saurabh");
builder.append("\n");
builder.append("Saxena");
var blob = builder.getBlob('text/plain');
fileWriter.onwriteend = function() {
chrome.tabs.create({"url":fileEntry.toURL(),"selected":true},function(tab){});
};
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}, errorHandler);
});
}
function errorHandler(e) {
var msg = '';
switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};
Console.Log('Error: ' + msg);
}
我已经在 Chrome 中使用 Tampermonkey 尝试过该 Javascript 代码,但它不起作用。
【问题讨论】:
-
也许您应该尝试编写一个浏览器插件来监视您打开的 URL。
-
这看起来很可疑。
WebKitBlobBuilder已过时,您可能想使用 Blob 构造函数;new Blob([data], {type: "text/plain"}) -
这里是您问题的答案:stackoverflow.com/questions/19802032/…
-
如果没有扩展名,每次有新的 url 时都必须创建一个新文件。您可以通过在特定域的 localStorage 中收集 url 来绕过它,然后按需下载列表。或者,您可以将所有这些单个文件保存到某个文件夹并按需一次将它们全部附加在一起,或者使用某个可执行文件来处理它们并让该应用程序附加您的主列表。
标签: java javascript php html google-chrome