我正在试图创建一个小型的野生动物园扩展,大部分是为了它的乐趣,看看你能做些什么等。
无论如何,我正在考虑在本地数据库中存储我的扩展的一些数据,所以我总是在我需要的地方,在页面加载的地方。
我在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扩展的本地存储数据库,以便它可以在所有域上使用?
答案 0 :(得分:2)
正确的方法是从全局页面而不是从注入的脚本中执行此操作。问题是,它不起作用。
从全局页面创建脱机数据库会触发SECURITY_ERR
。这是一个已知的错误,应该在下一个版本中修复。
所以,现在,没有办法做到这一点。
编辑正如Brian指出的那样,这个问题在Safari 5.0.3中已得到修复。您必须在“扩展”构建器中指定数据库大小配额,然后它才能正常工作。