133 votes

Impossible de définir la propriété 'innerHTML' de null.

Pourquoi est-ce que je reçois une erreur ou Uncaught TypeError : Impossible de définir la propriété 'innerHTML' de null ? Je pensais avoir compris innerHTML et l'avoir fait fonctionner auparavant.

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>

<script type ="text/javascript">
    what();
    function what(){
        document.getElementById('hello').innerHTML = 'hi';
    };
</script>

</head>

<body>
<div id="hello"></div>
</body>
</html>

222voto

Erik Godard Points 1004

Vous devez placer le hello div avant le script, afin qu'il existe lorsque le script est chargé.

39voto

Colyn1337 Points 1455

Vous pourriez dire à javascript d'effectuer l'action "onload"... Essayez avec ceci :

<script type ="text/javascript">
window.onload = function what(){
document.getElementById('hello').innerHTML = 'hi';
};
</script>

13voto

RIYAJ KHAN Points 10441

Il suffit de mettre votre JS dans window.onload

window.onload = function() {

        what();

        function what() {
            document.getElementById('hello').innerHTML = 'hi';
        };

    }

12voto

user5323957 Points 197

La partie JavaScript doit s'exécuter une fois la page chargée, il est donc conseillé de placer la balise script à la fin de la balise body.

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Example</title>

</head>
<body>
<div id="hello"></div>
<script type ="text/javascript">
    what();
    function what(){
        document.getElementById('hello').innerHTML = 'hi';
    };
</script>  
</body>
</html>

7voto

JT Nolan Points 1110

Javascript semble bon. Essayez de l'exécuter après le chargement de la division. Essayez de l'exécuter uniquement lorsque le document est prêt. $(document).ready dans jquery.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X