1. ホーム
  2. javascript

[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?

2022-01-24 03:28:16

質問内容

ユーザーがお気に入りを追加できるリストを作ろうとしたのですが、どうすればいいですか?しかし、"max call stack size exceeded"というエラーが発生しました。

これは何ですか、どうしたらいいですか?

助けてください、ありがとうございます。

以下、使用したコードです。

    <body onload="onload();">
        <!--for everything in the navigation part including the add favorite bar-->
        <div class="topnav">
            <!--links to the other pages-->
            <a class="active" href="home.html">Home</a>
            <a href="games.html">Games</a>
            <a href="movies.html">Movies</a>
            <a href="series.html">TV Series</a> 
            <a href="books.html">Books</a>

            <!--for the add favorite button-->
            <div class="addFave">
                <!--the text bar-->
                <input type="text" name="enter" class="enter" value="" id="added"  placeholder= "Add Favorites"/>
                <!--the enter button-->
                <input type="button" value="Enter" id = "addIt" OnClick="adding()" />
                <!--for the script of the add favorite bar to add its functions-->
                <script type="text/javascript">
                    var faves = [];

                    var y = document.getElementById("added");
                        function adding() {
                            faves.push(y.value);
                            document.getElementById("faveLists").innerHTML = faves;
                        }
                    var input = document.getElementById("added");
                        input.addEventListener("keyup", function(event) {
                            event.preventDefault();
                            if (event.keyCode === 13) {
                            document.getElementById("addIt").click();
                        }
                    }); 
                </script>
            </div>
        </div>




        <!--for the additional texts-->
        <div class="list">
            <!--where the user input in the add favorite bar will appear-->
            <p id = "faveLists"></p>
        </div>
    </body>
</html>

解決方法は?

その Maximum call stack size exceeded. は、関数の無限ループのようなものを入力したときに表示されます

より良い例をご覧ください。 こちら

あなたの <body> と入力していますね。 onload="onload();" であり、それが問題の原因です。 onload は何度も何度も自分自身を呼び出しています。この部分を削除すると、エラーは解消されます。

StackOverflowへようこそ!