Opera 用のユーザー JS スクリプトを作成しています。window.opera.scriptStorage を使用して値を保存および取得しようとしています。
スクリプト ストレージをカプセル化するために、__EnvDriver という型を作成しました。
window.__EnvDriver.storage = window.opera.scriptStorage;
if(window.__EnvDriver.storage == undefined)
{
console.log('[__EnvDriver] Opera UserJS script storage seems to be disabled. Please set the quota to a non-zero value in opera:config.');
}
window.__EnvDriver.storageGetValue = function(key)
{
return window.__EnvDriver.storage[key];
};
window.__EnvDriver.storageSetValue = function(key, value)
{
window.__EnvDriver.storage[key] = value;
};
(__EnvDriver タイプの関数は実行時に決定され、将来 Firefox または Chrome のサポートを簡単に実装できます。)
問題なく値を格納できますが、値を読み取ろうとすると、次のエラーが発生します。
Uncaught exception: ReferenceError: Security error: attempted to read protected variable
Error thrown at line 45, column 2 in <anonymous function: window.__EnvDriver.storageGetValue>(key):
return window.__EnvDriver.storage[key];
window.__EnvDriver.storage
何らかの方法で使用しようとすると同じエラーが発生するため、問題は値へのアクセスにあるようです。ストレージ オブジェクトを別の場所に格納しようとしましたが、すべて同じ動作を示します。これは、最新の Opera アップデート (v12.01) 以降にのみ発生しているようです。
どんな助けでも大歓迎です。