web-dev-qa-db-ja.com

Chrome Tampermonkeyスクリプトにデータを格納する方法/場所は?

Facebook用にGreasemonkey/Tampermonkeyスクリプトを1つ作成しました。後で取得するためにデータを保存する必要がありました。そのためにlocalStorageを使用しました。
それはうまくいきました。しかし、数時間後には、保存したすべてのデータがautomagicllayから削除されていることに気付きました。おそらくFacebook自体がすべてのlocalStorageデータを削除します。

今、私は代替案を探しました。

  1. Cookies:いいえ、ユーザーが履歴をクリアしても削除されません。
  2. Web SQL:どうやらw3.orgによって削除されたようです。したがって、近い将来、chromeもWeb SQLを使用しない可能性があると思います。

クライアントシステムにデータを保存したい。どのようなオプションがありますか? FileSystemを使用してデータを保存する必要がありますか?

30
Rakesh Juyal

Tampermonkey (Chrome)とGreasemonkey(Firefox)を使用しているため。先に進んで GM_setValue() を使用します。 Facebookや他のWebサイトではクリアできません。

クロスドメインで値を保存できるという利点もあります。

~~~
Firefoxでは、沼標準のGM_setValue()に問題があることに注意してください。スクリプトインスタンスが無効な値でクラッシュする可能性があります- GM_SuperValue などのシリアライザを使用するのが最善です。文字列以外のものを格納します。無害に見える整数でも、デフォルトのGM_setValue()がクラッシュする可能性があります。

現在、GM_setValue()、cookies、localStorage、および IndexedDB のみが、両方のブラウザーの永続データに使用できます。

IndexedDBも必要な機能を実行しますが、GM_setValue()ほど簡単に使用できません。


更新:
最近、使用することを忘れないでください:

  • // @grant GM_setValue
    そして
  • // @grant GM_getValue

また、GM_SuperValueライブラリを使用する場合は、次のように追加します。

// @require http://userscripts-mirror.org/scripts/source/107941.user.js 

メタデータブロック内。 (userscripts.orgは長い間死んでいるので。)

53
Brock Adams