Uncaught TypeError: Cannot read property 'style' of null
Résolu
Nanashi17
Messages postés
193
Date d'inscription
Statut
Membre
Dernière intervention
-
Nanashi17 Messages postés 193 Date d'inscription Statut Membre Dernière intervention -
Nanashi17 Messages postés 193 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de transformer une application web en un plugin Wordpress afin de gérer ma base de données.
Pour cela j'ai créé une interface graphique qui doit s'intégrer dans ma page HTML malheureusement cette interface ne s'affiche pas mais j'ai bien accès à ma page.
Pour diagnostiquer l'erreur j'ai utilisé l'outil de développement de mon navigateur et ce dernier m'affiche l'erreur: Uncaught TypeError: Cannot read property 'style' of null
at displayLaunchBar (gestion.php:346)
at loadDesktopConfig (gestion.php:325)
at onload (gestion.php:71)
Tout cela correspond à mon code Javascript malheureusement je ne m'y connais pas du tout en Javascript alors si quelqu'un pouvez m'aider ce serait vraiment gentil.
Je vous laisse mon code:
Merci d'avance pour vos réponses !
Je suis en train de transformer une application web en un plugin Wordpress afin de gérer ma base de données.
Pour cela j'ai créé une interface graphique qui doit s'intégrer dans ma page HTML malheureusement cette interface ne s'affiche pas mais j'ai bien accès à ma page.
Pour diagnostiquer l'erreur j'ai utilisé l'outil de développement de mon navigateur et ce dernier m'affiche l'erreur: Uncaught TypeError: Cannot read property 'style' of null
at displayLaunchBar (gestion.php:346)
at loadDesktopConfig (gestion.php:325)
at onload (gestion.php:71)
Tout cela correspond à mon code Javascript malheureusement je ne m'y connais pas du tout en Javascript alors si quelqu'un pouvez m'aider ce serait vraiment gentil.
Je vous laisse mon code:
<body onLoad="loadDesktopConfig()" onmousemove="MoveWindow(event)" >
function loadDesktopConfig() { displayLaunchBar(); }
function displayLaunchBar() { var ajax = getAjax(); ajax.open("POST", "../Inscriptions/loadLaunchBar.php", true); ajax.onreadystatechange = updateContent(ajax,'launchBarDiv'); ajax.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); var launchBar=getDomObject('launchBarDiv'); launchBar.style.visibility="visible"; ajax.send('default'); }
Merci d'avance pour vos réponses !
A voir également:
- Cannot read properties of null (reading 'style')
- Uncaught mysqli_sql_exception: incorrect integer value: ✓ - Forum MySQL
- Uncaught TypeError: Cannot set property 'disabled' of null ✓ - Forum Javascript
- Uncaught TypeError: Cannot read property 'top' of undefined - Forum Javascript
- Uncaught TypeError: Cannot read property 'style' of null ✓ - Forum Javascript
- Uncaught domexception: the operation is insecure. ✓ - Forum Javascript
2 réponses
Salut,
D'après le message d'erreur, la variable js launchBar serait égale à null, la fonction getDomObject() n'aurait donc pas réussi à récupérer l'élément html.
Quel est le code de la fonction getDomObject() ?
Comment est défini l'élément "launchBar" en html ?
Si l'élément lauchnBar possède un identifiant (<div id="launchBarDiv">), tu pourrais remplacer la fonction getDomObject() par un getElementById :
Bonne journée,
D'après le message d'erreur, la variable js launchBar serait égale à null, la fonction getDomObject() n'aurait donc pas réussi à récupérer l'élément html.
Quel est le code de la fonction getDomObject() ?
Comment est défini l'élément "launchBar" en html ?
Si l'élément lauchnBar possède un identifiant (<div id="launchBarDiv">), tu pourrais remplacer la fonction getDomObject() par un getElementById :
var launchBar = getElementById('launchBarDiv'); launchBar.style.visibility = "visible";
Bonne journée,
Le problème semble venir du fait que tu n'attends pas le retour de la réponse ajax pour changer le style.
Puisque la launchBar est affichée à la suite de la requête ajax (via onreadystatechange), il faut également faire les modifications de style après l'affichage. Actuellement tu fais les modifications de style avant même que la requête soit envoyée (ajax.send).
Déplace les deux lignes
Puisque la launchBar est affichée à la suite de la requête ajax (via onreadystatechange), il faut également faire les modifications de style après l'affichage. Actuellement tu fais les modifications de style avant même que la requête soit envoyée (ajax.send).
Déplace les deux lignes
var launchBar=getDomObject('launchBarDiv'); launchBar.style.visibility="visible";à la fin de ta fonction updateContent() afin de modifier le style après avoir afficher la launchBar.
Et voici ma LaunchBar :
Et oui l'élément possède bien un <div id=\"launchBarDiv\"> que j'affiche dans une fonction avec echo