使用javascript在本地保存信息

时间:2011-11-17 21:21:33

标签: javascript greasemonkey

我想写一个greasemonkey脚本来抓取网站并在本地保存数据,我可以使用javascript来保存本地收集的信息吗?

5 个答案:

答案 0 :(得分:4)

Local storage是您选择现代应用的好方法!

答案 1 :(得分:4)

window.location ="data:application/octet-stream," + encodeURI(JSON.stringify(translations.custom));

这是Pixiv翻译脚本保存自定义添加的翻译(不会硬编码到其中)的方式。您只需获得一个文件夹对话框,就像您点击了直接链接一样。

Translations.custom只是一个JSON格式的对象(var a = {b:1};)。

我不知道您是如何格式化数据的,但如果它不在JSON中,但您可以尝试使用我的数据。

另一种方法是替换整个文档的HTML,然后再保存页面。

答案 2 :(得分:2)

我建议使用JQuery'data方法,因为它提供跨平台支持,并且它对您可以存储的信息量没有明确的限制。

  

幕后花絮

     

在内部,jQuery创建一个空对象(称为$ .cache   好奇的),用于存储您通过数据设置的值   方法。您向其添加数据的每个DOM元素都会分配一个唯一的ID   它用作$ .cache对象中的键。 jQuery不存储   仅缓存中的用户创建的数据。它还存储内部   您附加的信息和事件处理功能   live(),bind()和delegate()。集中数据存储使   jQuery的代码库更健壮,没有bug,我们都是   可以从中受益。

参考:jQuery’s Data Method – How and Why to Use It

答案 3 :(得分:2)

java.lang.Object中    ↳android.webkit.CookieManager

或者你可以使用这种逻辑..

<html>
<head>
<script type="text/javascript">
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
  var username=getCookie("username");
  if (username!=null && username!="")
  {
    alert("Welcome again " + username);
   }
 else 
   {
     username=prompt("Please enter your name:","");
    if (username!=null && username!="")
     {
       setCookie("username",username,365);
     }
  }
 }
</script>
</head>
<body onload="checkCookie()">
</body>
</html>

答案 4 :(得分:1)

使用Mozilla的文件对象。 MDN文档:https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

编辑:这更容易,但仅适用于Chrome http://www.html5rocks.com/en/tutorials/file/filesystem/