如何创建与Safari-5扩展相关联的本地JavaScript数据库?

时间:2010-06-25 20:00:35

标签: html5 safari local-storage safari-extension

我正在试图创建一个小型的野生动物园扩展,大部分是为了它的乐趣,看看你能做些什么等。

无论如何,我正在考虑在本地数据库中存储我的扩展的一些数据,所以我总是在我需要的地方,在页面加载的地方。

我在google上搜索了一下,发现了Safari参考库中的这个片段,它将创建一个JavaScript数据库:

var shortName = 'mydatabase';
var version = '1.0';
var displayName = 'My Important Database';
var maxSize = 65536; // in bytes
var db = openDatabase(shortName, version, displayName, maxSize);

这很好用,就像我想要的那样创建数据库。唯一的问题是,这个数据库是特定于域的,因此我创建数据库的脚本将为每个访问过的域创建一个数据库,这不是我想要的。

那么,如果可能的话,你怎么能创建一个可以分配给safari扩展的本地存储数据库,以便它可以在所有域上使用?

1 个答案:

答案 0 :(得分:2)

正确的方法是从全局页面而不是从注入的脚本中执行此操作。问题是,它不起作用。

从全局页面创建脱机数据库会触发SECURITY_ERR。这是一个已知的错误,应该在下一个版本中修复。

所以,现在,没有办法做到这一点。

编辑正如Brian指出的那样,这个问题在Safari 5.0.3中已得到修复。您必须在“扩展”构建器中指定数据库大小配额,然后它才能正常工作。