2010-12-10 6 views
1

iPhoneのMobile SafariブラウザのローカルSQLiteデータベースを使用するjQuery & jQTouchでiPhone Web Appを作成しました。jQuery openDatabase()の問題:変数dbが定義されていません

アプリは数日前までは素晴らしい状態でした。データベースを初期化しようとすると突然、私は、次のエラーメッセージが表示されます。もちろん

function openDB() {  
    db = openDatabase(dbName, '1.0', dbName);  
    db.transaction( 
     function(tx) { 
      tx.executeSql( 
       'CREATE TABLE IF NOT EXISTS energy_days ' + 
       ' ... (omitted) ... ;', 
       [], 
       nullDataHandler, 
       function(tx, error){   
        alert('Error (CREATE TABLE): '+error.message+' (Code '+error.code+')'); 
        return true; 
       } 
      ); 
     }, 
     transactionErrorHandler, 
     nullDataHandler 
    );    
} 

、変数dbがグローバルに定義されています。次のコードを実行しようとしているときに

TypeError: Result of expression 'db' [undefined] is not an object. 

このエラーが発生しました。

今、このコードセグメントが機能しています。おそらくこれは最新のiOS 4.2アップデートと関係がありますか?このアップデートでは、データベース全体の動作がちょっと変わってしまいました(たとえば、デバイス全体を再起動するまで、設定で表示されないなど)。

この問題を解決する方法はありますか?データベースオブジェクトを初期化する別の方法があるのでしょうか、それとも明白なものがありませんか?

すべての返信いただきありがとうございます。誠にありがとうございます。 Roland

答えて

0

私は上記のコードで問題が見つかりました。前述したように、iOS 4へのアップグレードが完了するまでは正常に機能しました(まだSafariで動作しています)。今や、最新のSafari MobileのJS構文が厳しくなっているようです。

Apple's documentation(短縮形と表示名、サイズなどを含む)から抜粋したフルブローコードを使用して、もう一度Mobile Safariで動作します。

乾杯!
Roland

+1

はい、具体的には、私はあなたの3番目のパラメータとしてdbのサイズの代わりにdb nameを使用したと思います。 – tomdemuyt