2012-10-25 5 views
5

का उपयोग कर डीओएम अपवाद 18 ओपनडाबेस() मैंने फोनगैप टेम्पलेट का उपयोग करके बनाया है और HTML5/JQuery प्रोजेक्ट बनाया है। मैं स्थानीय डेटाबेस पर जानकारी स्टोर करने की कोशिश कर रहा हूं। वर्तमान में, मैं परीक्षण करने के लिए सिम्युलेटर ElectricMobileStudio2012 का उपयोग कर रहा हूं। मैं त्रुटि मिल रही है: कोड की इस पंक्ति पर "Security_ERR डोम अपवाद 18":सुरक्षा_ईआरआर: फोनगैप

var db = window.openDatabase("MobileInspection", "1.0", "Mobile Inspection Database", 200000); 

यहाँ मेरी कोड है। मैं दिनों के लिए इस पर अटक गया है और मैं भी कोड की इन पंक्तियों का उपयोग कर त्रुटि के आसपास पाने की कोशिश की:

function SaveUserInfoLocally(data) { 
    try { 
     var rememberMe = $('#chkRememberMe').is(':checked') 
     if (rememberMe) { 
      // TODO: Save user details in local db. 
      //navigator.openDatabase = window.openDatabase = DroidDB_openDatabase; 
      //window.droiddb = new DroidDB(); 
      var db = window.openDatabase("MobileInspection", "1.0", "Mobile Inspection Database", 200000); 
      db.transaction(populateUsersTable, errorCB, successCB); 
      db.transaction(queryDB, errorCB); 
     } 
    } 
    catch (error) { 
     alert(error); 
    } 
} 

function populateUsersTable(tx) { 
    try { 
     var userName = window.localStorage.getItem("UserName"); 
     var firstName = window.localStorage.getItem("FirstName"); 
     var lastName = window.localStorage.getItem("LastName"); 
     //alert(userName + " " + firstName + " " + lastName); 
     tx.executeSql("DROP TABLE IF EXISTS UserDetails"); 
     tx.executeSql("CREATE TABLE IF NOT EXISTS UserDetails (UserName, FirstName, LastName)"); 
     tx.executeSql("INSERT INTO UserDetails (UserName, FirstName, LastName) VALUES ('" + userName + "', '" + firstName + "', '" + lastName + "')"); 
     alert("populate"); 
    } 
    catch (exception) { 
     alert(exception); 
    } 
} 

function errorCB(err) { 
    alert("Error processing: " + err); 
} 

function successCB() { 
    alert("success!"); 
} 

function queryDB(tx) { 
    try { 
     tx.executeSql('SELECT * FROM UserDetails', [], querySuccess, errorCB); 
    } 
    catch (exception) { 
     alert(exception); 
    } 
} 

// Testing 
function querySuccess(tx, results) { 
    try { 
     if (results) { 
      alert("records"); 
     } 
     else { 
      alert(results); 
     } 
    } 
    catch (exception) { 
     alert(exception); 
    } 
} 

उत्तर

3

मैं ने वही समस्या थी:

navigator.openDatabase = window.openDatabase = DroidDB_openDatabase; 

window.droiddb = new DroidDB(); 

यहाँ मेरी कोड है - इसलिए मैं इस मुद्दे पर ठोकर खा रहा हूं।

सुनिश्चित करें कि सभी LocalStorage कॉल deviceready ब्लॉक के भीतर कार्यान्वित करें:

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    //do ALL your localstorage stuff here 
} 
+0

मैं में रखते है, लेकिन यह कभी नहीं कहा जाता था ... – ekatz

+0

आप इस कहां जोड़ा है? आप इसका परीक्षण कैसे कर रहे हैं? यदि आप इसे सामान्य ब्राउज़र में जांचते हैं तो यह कभी भी आग नहीं लगेगा। – Fraccus

+0

हां, यह तय है। – shamittomar