2011-06-29 3 views
1

編集:以下のコードは実際に正しく動作します。 ChromeデベロッパーツールのUIでは、ページの読み込み後にローカルの& webSQLストレージに値が表示されませんが、スクリプトには使用できます。ChromeのWebSQLとlocalStorageスコープ

私のログインページは、認証データをWebSQL/localStorageでローカルに保存してから、そのローカルデータがすぐに消えるリンク先ページにリダイレクトします。なぜデータがページロードを超えても保持されないのか分かりません(すべてのページは同じドメイン/プロトコル/ポートにあります)。私はUbuntuのChrome 12.0.742.100でテストしています。ここに私のコードはありますか?

var db = window.openDatabase("session", "1.0", "session", 1000000); 
db.transaction(function(tx){ 
    tx.executeSql('CREATE TABLE IF NOT EXISTS auth (uuid UNIQUE TEXT, token TEXT)'); 
}); 
db.transaction(function(tx){ 
    tx.executeSql('INSERT INTO auth (uuid, token) values (?, ?)',[json.uuid,json.token]); 
}); 
localStorage.setItem("uuid",json.uuid); 
localStorage.setItem("token",json.token); 

// REDIRECT TO HOMEPAGE 
window.location = 'droid.html'; 

//... the next page has an alert() that tries to access the local values. 

答えて

0

スコープに問題があるか、値が実際に設定されていない可能性があります。ここで

は、私が(この順序で)しようとお勧めしますいくつかのものです:

  1. は、データが実際に同じページに、すぐにそれを取得することでのlocalStorageに設定されていることを証明します。
  2. データが、同じページ上で、例えば2秒のタイムアウトの後にそれを取り出すことによって(少なくとも少しの間は)持続していることを証明する。 (ページが既にロードが完了していない場合)
  3. 代わりwindow.locationを設定するのではなく、すぐにウィンドウの位置を変更するのでwindow.location.assign()
  4. を使用してみてくださいは、短いタイムアウト(100ミリ秒を言う)した後、またはページをロードした後にそれを行います。

希望します。

関連する問題