2
나는 데이터베이스를 열고 first.js 한
사용 : second.jsHTML5 웹 SQL 저장 다른 JS 파일
function prueba_funcion() {
DB.transaction(
function (transaction) {
transaction.executeSql("SELECT * FROM categorias;", [], nullDataHandler, errorHandler);
}
);
}
: 나는 다른 파일에서 SQL 문을 실행하기 위해 다음
$(function(){
initDatabase();
});
function initDatabase() {
try {
if (!window.openDatabase) {
alert('Local Databases are not supported by your browser. Please use a Webkit browser for this demo');
} else {
var shortName = 'MyDB';
var version = '1.0';
var displayName = 'First DB';
var maxSize = 100000; // in bytes
DB = openDatabase(shortName, version, displayName, maxSize);
//dropTables();
createTables();
}
} catch(e) {
if (e == 2) {
// Version mismatch.
console.log("Invalid database version.");
} else {
console.log("Unknown error "+ e +".");
}
return;
}
}
을 원하는을 내가 second.js 전에 first.js을 포함 내 HTML 코드에서 DB is not defined
:
나는이 오류가
,<script type="text/javascript" src="js/first.js"></script>
<script type="text/javascript" src="js/second.js"></script>
그러나 나는 그것을 얻을 수 없다.
답장을 보내 주셔서 감사합니다. 이제이 오류가 발생합니다 : null의 메서드 'transaction'을 호출 할 수 없습니다. – Mateo
그러면 openDatabase가 반환하는 함수와 관련하여 다른 문제가있는 것 같습니다. Firebug를 사용하는 것처럼 보입니다 ... openDatabase, console.log (DB)를 호출하고 거기에서부터 시작하십시오. 이것은 일부 프레임 워크 또는 라이브러리의 일부 여야합니까? 그것은 바닐라 자바 스크립트의 일부가 아닙니다. –
@Mateo, 초기화하기 전에 데이터베이스를 호출하기 때문입니다. '$ (function() {initDatabase();});는 페이지가로드 될 때까지 기다립니다. 기다릴 필요가 없습니다. 그냥 initDatabase() first.js의 끝 부분에 넣어 – Felipe