简体   繁体   中英

Javascript : Uncaught ReferenceError: function is not defined

I have a function in a JS file that allows me to perform a select on a Web SQL database of my browser. When I display my page the browser console tells me that the function does not exist. I confess I do not understand because she is present there. I have other functions that I use in this same file and that works correctly. the error i get :

> Uncaught ReferenceError: getUser is not defined
at affichage_web_sql.html:20
(anonymous) @ affichage_web_sql.html:20***
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Affichage données base Web SQL.</title>
        <script language="javascript" type="text/javascript" src="js/sql.js">
        </script>
        <script language="javascript" type="text/javascript" src="js/dom.js">
        </script>
    </head>

    <body>
        <script type="text/javascript">
            EcrireHeader("Lecture des données Web SQL.");
            EcrireMenu();
        </script>

        <main>
            <script language="javascript" type="text/javascript">
                try
                {
                    getUser();
                }
                catch(err)
                {
                    alert(err.message);
                }
                /*try
                {
                    window.onload = function()
                    {
                        var db = openDatabase(dbName, version, dbDisplayName, dbSize);
                        db.transaction(function(e)
                        {
                            e.executeSql("SELECT * FROM User",[],function(e,results)
                            {
                                var nbRec = results.rows.length;
                                var i,usr;
                                for (i=0;i<nbRec;i++)
                                {
                                    usr = results.rows.item(i);
                                    alert(usr.Nom + " " + usr.prenom);
                                }
                            });
                        });
                    }
                }
                catch(err)
                {
                    alert(err.message)
                }*/
            </script>
        </main>

        <script  type="text/javascript">
            EcrireFooter();
        </script>
    </body>
</html>

Here JS file :

var version = 1.0;
var dbName = "mydb";
var dbDisplayName = "mydb";
var dbSize = 5 * 1024 * 1024;
/*Si la base n'existe pas, celle-ci est créée et la connexion ouverte et créé les tables si elles n'existent pas dans la base.
Sinon, ouvre simplement la connexion à la base.*/       
function InitialiseBase()
{
    var db;

    try 
    {
        db = openDatabase(dbName, version, dbDisplayName, dbSize, function(database) 
            {
                alert("database creation callback");
            });

            db.transaction(function(t)
            {
                /* Place SQL statements here */
                t.executeSql("CREATE TABLE IF NOT EXISTS User(Nom varchar(50), prenom varchar(50))", [], function(sqlTransaction, sqlResultSet) 
                {

                }, function(sqlTransaction, sqlError) 
                {
                    alert(sqlError.message)
                });
            }, function() 
                {
                    alert("SQL statements were executed successfully.");
                });
    }
    catch(err)
    {
        alert(err.message)
    }
}

function onSuccess(e) { }
function onError(e) { }

function insertData(nom, prenom) 
{
    var db = openDatabase(dbName, version, dbDisplayName, dbSize);
    db.transaction(function (e) 
    {
        e.executeSql("INSERT INTO User(Nom, Prenom) VALUES (?, ?)", [nom, prenom]);//, onSuccess, onError);
    });
}

function deleteUser(id)
{
    try
    {
        var db = openDatabase(dbName, version, dbDisplayName, dbSize);
        db.transaction(function (e) 
        {
            e.executeSql("DELETE FROM User WHERE rowid = ?", [id]);//, onSuccess, onError);
        });
    }
    catch(err)
    {
        alert(err.message);
    }
}

function getUser()
{
    try
    {
        var nbRec,i,usr;
        var db = openDatabase(dbName, version, dbDisplayName, dbSize);
        db.transaction(function(e)
        {
            e.executeSql("SELECT * FROM User",[],function(e,results)
            {
                nbRec = results.rows.length;

                for (i=0;i<nbRec;i++)
                {
                    usr = results.rows.item(i);
                    alert(usr.Nom + " " + usr.prenom);
                }
            });
        });
    }
    catch(err)
    {
        alert(err.message);
    }
}

Your file is probably poorly loaded, I tested your code, the function is well executed. You say that other functions work properly but they are in another JS file, check if your file is found.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM