eric_zyh
V2EX  ›  问与答

chrome插件如何把数据存在本地

  •  
  •   eric_zyh · Jan 11, 2012 · 9595 views
    This topic created in 5262 days ago, the information mentioned may be changed or developed.
    请问chrome插件如何存储数据,例如我订阅一个RSS,把rss的url存储到本地。以后每次打开chrome都能记住这个url。

    在google code没有找到这个功能的api
    17 replies    1970-01-01 08:00:00 +08:00
    plan9
        1
    plan9  
       Jan 11, 2012
    HTML5 Local Storage
    ehaagwlke
        2
    ehaagwlke  
       Jan 11, 2012
    多半都用localStorage。
    一般扩展的设置都用这个存的。
    yyfearth
        3
    yyfearth  
       Jan 11, 2012
    多的去了,localStorage, webSQL, indexedDB, FS API.
    大量数据webSQL和indexedDB比较好,少量的配置可以用localStorage。
    如果是基于文件的,自然用FS API最好了,而且可以配置成没有容量限制。
    9hills
        4
    9hills  
       Jan 11, 2012
    lz可以去看中文版的doc: http://open.chrome.360.cn/html/dev_doc.html
    eric_zyh
        5
    eric_zyh  
    OP
       Jan 12, 2012
    多谢 ls 各位~ 哈
    kirch
        6
    kirch  
       Jan 12, 2012
    试过存5000条数据到localStorage,速度变得超慢
    eric_zyh
        7
    eric_zyh  
    OP
       Jan 14, 2012
    @yyfearth 麻烦在帮我看看.

    我的场景是:通过 [popup] 输入并保存一个值,之后在 [content_scripts] 调用这个值。有什么好的存储方案么?


    1.我试了 localStorage、webSQL 问题是这两个在跨域的情况下就失效了。
    2.在网上看到一个rookie的插件基于flash,将数据保存到本地文件,支持跨域。正在调试,感觉问题挺多...
    3.fs api 能不能提供一个文档链接?
    zythum
        8
    zythum  
       Jan 14, 2012   ❤️ 1
    @eric_zyh content_scripts没法直接从应用的localStorage和webSQL等等的任意方式拿东西。只有一种方法。通过与backgroud_page通信。
    看这部分 http://code.google.com/chrome/extensions/messaging.html
    有两种方式,一种是单次的通信。使用sendRequest
    一直是保存通信。使用connect。朱一做的萌否的插件就是用的这个。

    记住在页面上获取的localStorage和webSQL都是在所在页面上的。content_scripts是在别人的页面上执行的,获取到的是别人页面上的localStorage和webSQL

    连接到朱一的萌否电台插件帖:
    http://www.v2ex.com/t/25496
    下面有贴源码。
    zythum
        9
    zythum  
       Jan 14, 2012
    @eric_zyh content_scripts的域是在别人的页面上。就好比window.localSotrage的window不是你的插件的window。所以不是一个东西。
    fs api也是需要与background_page通信让background_page来完成。
    eric_zyh
        10
    eric_zyh  
    OP
       Jan 14, 2012
    @zythum 多谢 豁然开朗
    yyfearth
        11
    yyfearth  
       Jan 14, 2012
    @eric_zyh 你没在你的帖子里面说明是popup和content_scripts跨域啊。这个特殊的啊。要用到朱一妹纸说的通信。最近我也在写chrome extension,呵呵。
    yyfearth
        12
    yyfearth  
       Jan 14, 2012
    @eric_zyh 然后在background_page,用localStorage存下来
    wontoncc
        13
    wontoncc  
       Jan 14, 2012 via iPhone
    我只是乱入一下…并没有任何实质意义.
    你们说的难道不是extension(扩展)么?
    yyfearth
        14
    yyfearth  
       Jan 14, 2012
    @wontoncc 现在基本上扩展和插件混在一起了,大家都有自动判别引擎。现在写np插件的,估计很少啊
    eric_zyh
        15
    eric_zyh  
    OP
       Jan 14, 2012
    @zythum @yyfearth 多谢2位的解答~ 做了个淘宝客小插件,直接把淘宝商品url转成淘宝客链接。
    http://plug.bangnintao.com/

    还可耻的抄袭了 朱一妹子 的css
    zythum
        16
    zythum  
       Jan 14, 2012
    你是说blog的角标么?
    = =。

    其实当时是做给 @yyfearth 用的。没曾想感觉不错就自己用着了。
    话说blog的字体太大了。字出去了。
    eric_zyh
        17
    eric_zyh  
    OP
       Jan 14, 2012
    @zythum 嗯 貌似字体不一样~不管了 反正我觉得这角标挺帅气。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1125 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 18:07 · PVG 02:07 · LAX 11:07 · JFK 14:07
    ♥ Do have faith in what you're doing.