Sqlite在铬

是否有可能使铬扩展与SQLite数据库交互与Firefox的扩展类似? 你能给我一些build议或链接哪里是更多的信息开发铬扩展与SQLite交互?

谢谢

您可以在浏览器中使用普通SQLite数据库的Web SQL API ,您可以使用其他SQLite数据库(例如Lita)打开/修改它。

Chrome根据域名或扩展程序ID自动查找数据库。 几个月前,我在我的博客上发布了关于如何删除Chrome数据库的简短文章,因为当您testing某些function时,这非常有用。

您可能可以使用sql.js。

sql.js是SQLite到JavaScript的端口,通过编译SQLite C代码和Emscripten。 这里没有C绑定或者节点gyp编译。

<script src='js/sql.js'></script> <script> //Create the database var db = new SQL.Database(); // Run a query without reading the results db.run("CREATE TABLE test (col1, col2);"); // Insert two rows: (1,111) and (2,222) db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]); // Prepare a statement var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end"); stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111} // Bind new values stmt.bind({$start:1, $end:2}); while(stmt.step()) { // var row = stmt.getAsObject(); // [...] do something with the row of result } </script> 

sql.js是一个单独的JavaScript文件,目前大小约为1.5MiB。 虽然这可能是一个网页的问题,但大小可能是可以接受的扩展。

Chrome支持WebDatabase API (由sqlite支持),但看起来W3C停止了开发 。

我不是很确定,如果你的意思是'我可以在Chrome中使用sqlite(websql)'或'我可以在Firefox中使用sqlite(websql)“,所以我会回答两个问题:

  • 你不能在Firefox中使用WebSQL。 (sql.js是一个选项,但真的,1.5 MB的数据库的JS?)
  • 你肯定可以在Chrome扩展中使用WebSQL。 请参阅webkit window.openDatabase文档中的介绍

请注意,WebSQL不是一个到.sqlite数据库的完整访问pipe道。 这是WebSQL。 您将无法运行一些特定的查询,如VACUUM

尽pipe创build/读取/更新/删除非常棒。 我创build了一个小型库来帮助处理所有烦人的事情,例如创build表格和查询,并提供一些带有关系的ORM / ActiveRecord模式,还有一大堆应该让你立即开始的例子, 你可以检查在这里

另外,请注意,如果你想build立一个FireFox扩展: 它们的扩展格式即将改变。 确保你想投入两次的时间。

虽然WebSQL规范已被废弃多年,但即使在2017年,在可预见的时间内,它仍然不会被从Chrome中移除。 他们正在跟踪使用情况统计数据,在现实世界中仍然有大量的chrome扩展和网站在实施规范 。