簡體   English   中英

錯誤處理SQL:TypeError:window.openDatabase不是一個函數

[英]Error processing SQL: TypeError: window.openDatabase is not a function

我的代碼中有一些奇怪的問題。 我已經創建了簡單的DB_Function.js來管理html頁面中的JS函數。

我在<body onLoad="CALL_DB()">內部調用函數,因此首先將初始化數據庫並根據需要創建表。

問題在這里,

  • 工作:Chrome
  • 無法正常使用:Android移動版和Fire Fox

代碼如下:

DB_Function.js

function CALL_DB() {
    try {
        alert("call_db");
        var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
        db.transaction(populateDB, errorCB, successCB);
    } catch (err) {
        alert("Error processing SQL: " + err);
    }
}


function populateDB(tx) {
    try {
        alert("call_table");
        tx.executeSql('DROP TABLE IF EXISTS DEMO');
        tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (3, "C")');
        tx.executeSql('INSERT INTO DEMO (id, data) VALUES (4, "K")');
    } catch (err) {
        alert("Error processing SQL: " + err);
    }
}


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

// Transaction success callback

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

的test.html

<!DOCTYPE html>
<html>
  <head>
    <title>Storage Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8" src="js/DB_function.js"></script>

  </head>
  <body onLoad="CALL_DB()">
    <h1>Example</h1>
    <p>Database</p>
  </body>
</html>

這是我的JS FIDDLE,請幫助我,我不知道我在哪里錯。

感謝您閱讀我的查詢。

您正在使用Web SQL數據庫,而Firefox不支持 同樣, W3C放棄了該規范

看看IndexedDBcaniuse )。 還有至少一種墊片可以使IndexedDB在僅支持Web SQL數據庫的瀏覽器中工作。

Android Browser 4.1.2此更新的小提琴中的代碼“有效”。

問題在這里,

<script type="text/javascript" charset="utf-8" src="cordova.js"></script>

我已經解決了要加載的實時js文件的問題,因此可能是因為它們在啟動應用程序時無法加載。

因此,我已將其保存在本地assets/www/js/cordova.js

所以最后看起來像上面,它對我來說完美地工作。

 <script type="text/javascript" charset="utf-8" src="js/cordova.js"></script>

看起來您尚未初始化Cordova / PhoneGap API。 您必須先監聽deviceReady事件,然后才能操作API

查看以下文檔: http : //docs.phonegap.com/en/2.9.0/cordova_events_events.md.html#deviceready

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM