在 chrome 或 firefox 中每次重新加载时将 JS 数组保存到文件?
Save a JS array to file on every reload in chrome or firefox?
我有一个 JS 数组,它的值在我每次重新加载浏览器时都会改变。每次重新加载页面时,我都想记录数组数据(在文件中或附加到即使在重新加载后仍保留的临时变量)。
我尝试了 this 脚本,但它必须在每次重新加载后手动执行。知道吗,我怎样才能做到这一点?
感谢@Sebastian 的评论和 this 脚本,我能够创建一个用户脚本并实现我想要的。
这是我创建的用户脚本。
// ==UserScript==
// @name MyScript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match <url>
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function(console){
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.json'
if(typeof data === "object"){
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {type: 'text/json'}),
a = document.createElement('a')
var e = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: false
});
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
a.dispatchEvent(e)
}
})(console)
// Create an incremental file name
var lastIndex = sessionStorage.getItem('arr')
sessionStorage.setItem('arr', ++lastIndex)
var fileName = 'dataset-' + lastIndex + '.json'
// Save the file
console.save(array, fileName)
console.log(fileName + ' saved.')
然后我还禁用了 Firefox 中的“每次保存下载时询问”选项,以便在没有提示的情况下保存文件。
我有一个 JS 数组,它的值在我每次重新加载浏览器时都会改变。每次重新加载页面时,我都想记录数组数据(在文件中或附加到即使在重新加载后仍保留的临时变量)。
我尝试了 this 脚本,但它必须在每次重新加载后手动执行。知道吗,我怎样才能做到这一点?
感谢@Sebastian 的评论和 this 脚本,我能够创建一个用户脚本并实现我想要的。
这是我创建的用户脚本。
// ==UserScript==
// @name MyScript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match <url>
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// ==/UserScript==
(function(console){
console.save = function(data, filename){
if(!data) {
console.error('Console.save: No data')
return;
}
if(!filename) filename = 'console.json'
if(typeof data === "object"){
data = JSON.stringify(data, undefined, 4)
}
var blob = new Blob([data], {type: 'text/json'}),
a = document.createElement('a')
var e = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: false
});
a.download = filename
a.href = window.URL.createObjectURL(blob)
a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
a.dispatchEvent(e)
}
})(console)
// Create an incremental file name
var lastIndex = sessionStorage.getItem('arr')
sessionStorage.setItem('arr', ++lastIndex)
var fileName = 'dataset-' + lastIndex + '.json'
// Save the file
console.save(array, fileName)
console.log(fileName + ' saved.')
然后我还禁用了 Firefox 中的“每次保存下载时询问”选项,以便在没有提示的情况下保存文件。