2013-09-04 1 views
2

У меня есть странная проблема в моем коде. Я создал простой DB_Function.js для управления функцией JS внутри html-страницы.Обработка ошибок SQL: TypeError: window.openDatabase не является функцией

Я вызываю функцию внутри <body onLoad="CALL_DB()">, поэтому сначала инициализируйте БД и создайте таблицу, если это необходимо.

Проблема здесь,

  • Рабочая: Хром
  • не работает: Android Mobile & 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 Пожалуйста, помогите мне, я не знаю, где я ошибаюсь.

Спасибо, что прочитали мой запрос.

ответ

1

выпуск был здесь,

<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> 
3

Вы используете базу данных веб-SQL, которая составляет not supported by Firefox. Кроме того, спецификация abandoned by the W3C.

Посмотрите на IndexedDB (caniuse). Существует также, по крайней мере, один shim, чтобы сделать IndexedDB работать в браузерах, которые поддерживают только базу данных Web SQL.

Код "работает" в this updated fiddle по телефону Android Browser 4.1.2.

+0

но как насчет android? он должен работать. –

+0

После исправления скрипта (скрипт выполняется в onload уже) http://jsfiddle.net/Mznr6/1/ он работает для меня с помощью браузера Android Android (старый 4.1.2). – nmaier

+0

У меня есть ваша скриптовая строка, и она показывает мне ту же ошибку :( –

 Смежные вопросы

  • Нет связанных вопросов^_^