Comment pouvez-vous créer une base de données JavaScript locale liée à une extension Safari-5?

StackOverflow https://stackoverflow.com/questions/3121066

Question

Je jouais en essayant de créer une petite extension safari, plus pour le plaisir et de voir ce que vous pourriez faire, etc.

Enfin bref je pensais sur le stockage des données pour mon extension dans une base de données locale, donc je toujours là où je en avais besoin, à travers des charges de page.

Je recherche un peu sur google et trouvé cet extrait de la bibliothèque de référence Safari, qui va créer une base de données 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);

Cela fonctionne assez bien et crée la base de données comme je voulais. La seule chose est que cette base de données est spécifique de domaine, donc mon script la création de la base de données va créer une base de données pour chaque domaine visité, qui n'a pas été exactement ce que je voulais.

Alors, comment pouvez-vous, si possible, créer une base de données de stockage local, qui peut être attribué à une extension safari, il sera disponible sur tous les domaines?

Était-ce utile?

La solution

La bonne façon serait de le faire à partir de la page globale au lieu de partir d'un script injecté. Le problème est, il ne fonctionnera pas.

Création d'une base de données en ligne à partir d'une page globale déclenche une SECURITY_ERR. Il est un bug connu, et il devrait être fixé dans la prochaine version.

actuellement , il n'y a aucun moyen de le faire.

EDIT Comme Brian souligne, ce problème est résolu au Safari 5.0.3. Vous devez spécifier un quota de taille de base de données dans le constructeur Extension, et il devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top