简体   繁体   English

Javascript:未捕获的ReferenceError:函数未定义

[英]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. 我在JS文件中有一个函数,该函数使我可以在浏览器的Web SQL数据库上执行选择。 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 : 这里的JS文件:

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. 您说其他功能正常工作,但是它们在另一个JS文件中,请检查是否找到了您的文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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