繁体   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