1

我一直在尝试创建一个小型 safari 扩展,主要是为了好玩,看看你能做什么等。

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

我在谷歌上搜索了一下,从 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 扩展程序,以便在所有域上都可用?

4

1 回答 1

2

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

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

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

编辑正如布赖恩指出的那样,这个问题从 Safari 5.0.3 开始得到修复。您必须在 Extension builder 中指定数据库大小配额,然后它应该可以工作。

于 2010-06-28T04:14:31.770 回答