2

Opera 用のユーザー JS スクリプトを作成しています。window.opera.scriptStorage を使用して値を保存および取得しようとしています。

スクリプト ストレージをカプセル化するために、__E​​nvDriver という型を作成しました。

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) 以降にのみ発生しているようです。

どんな助けでも大歓迎です。

4

0 に答える 0