1

私は小さなサファリエクステンションを作成しようとして遊んでいました。ほとんどの場合、それを楽しんだり、何ができるかなどを確認したりしました。

とにかく、私は自分の拡張機能のデータをローカルデータベースに保存することを考えていたので、ページの読み込み全体で、必要な場所に常にデータを保存していました。

グーグルで少し検索して、JavaScriptデータベースを作成するSafariリファレンスライブラリからこのスニペットを見つけました。

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

これは非常にうまく機能し、私が望むようにデータベースを作成します。唯一のことは、このデータベースはドメイン固有であるため、データベースを作成するスクリプトは、アクセスしたドメインごとにデータベースを作成しますが、これは私が望んでいたものではありませんでした。

では、可能であれば、サファリ拡張機能に割り当てることができるローカルストレージデータベースを作成して、すべてのドメインで利用できるようにするにはどうすればよいでしょうか。

4

1 に答える 1

2

正しい方法は、挿入されたスクリプトからではなく、グローバルページからそれを行うことです。問題は、それが機能しないことです。

グローバルページからオフラインデータベースを作成すると、がトリガーされますSECURITY_ERR。これは既知のバグであり、次のリリースで修正される予定です。

だから、のところ、それを行う方法はありません。

編集ブライアンが指摘しているように、この問題はSafari5.0.3で修正されています。Extension Builderでデータベースサイズのクォータを指定する必要があります。そうすれば、それが機能するはずです。

于 2010-06-28T04:14:31.770 に答える