jQuery openDatabase()的问题:变量db未定义

时间:2010-12-10 10:28:32

标签: iphone jquery database ios undefined

我使用jQuery&创建了一个iPhone Web App jQTouch,它使用iPhone中Mobile Safari浏览器的本地SQLite数据库。

应用程序运行良好,直到几天前。突然,我在尝试初始化数据库时收到以下错误消息:

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

尝试执行以下代码时发生此错误:

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是全局定义的。

现在,此代码段正在运行。也许这与最新的iOS 4.2更新有关?通过此更新,整个数据库行为有点奇怪(例如,在重新启动整个设备之前,它们在设置中不再可见。)

有谁知道如何解决这个问题?是否有另一种方法来初始化数据库对象,或者我错过了一些明显的东西?

感谢所有回复,他们真诚地感谢! 罗兰

1 个答案:

答案 0 :(得分:0)

我想我发现上面的代码存在问题。如前所述,它一直运行到升级到iOS 4(并且仍然在Safari中)。现在看来,最新的Safari Mobile的JS语法已经收紧了。

使用从Apple's documentation剪下的完整代码(包括短片和显示名称,大小等),它再次适用于Mobile Safari。

干杯!
罗兰