JavaScript getElementById(...) is null or not an object IE

Signaler
Messages postés
1
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
20 mai 2014
-
Messages postés
30136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 novembre 2020
-
This must be something very simple for the JavaScript experts out there. In the following code, I am trying to open an iframe to the full height of browser window.


Dans le code suivant j'essaue de faire une modification dans un champs d'une table à savoir que quand je fais double clique la case deviens modifiable et je peux la changer mais un simple clique ça doit se désactivé en prenant la valeur vers la base de donnés or que une fois un clique effectué ça donne un message : Document.getElementbyId(...) est null ou ne pas être un object



<script language="JavaScript" type="text/javascript">
var focusedElement = null;

function singleClic(obj, fct_name, index, bloc) {
if (obj.style.backgroundColor == "#dddddd") flagCell = "R";
else flagCell = "W";
obj.style.backgroundColor = "white";
obj.readOnly = false;
obj.select();
if (flagCell == "R") {
if (fct_name == "verrouillerFR_ABS") verrouillerFR_ABS(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_ABS") verrouillerTN_ABS(false, index, bloc, flagCell);
if (fct_name == "verrouillerFR_CP") verrouillerFR_CP(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_CP") verrouillerTN_CP(false, index, bloc, flagCell);
if (fct_name == "verrouillerFR_SO") verrouillerFR_SO(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_SO") verrouillerTN_SO(false, index, bloc, flagCell);
if (fct_name == "verrouillerFR_CADRE") verrouillerFR_CADRE(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_CADRE") verrouillerTN_CADRE(false, index, bloc, flagCell);
if (fct_name == "verrouillerFR_RETENU") verrouillerFR_RETENU(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_RETENU") verrouillerTN_RETENU(false, index, bloc, flagCell);
if (fct_name == "verrouillerFR_FCT") verrouillerFR_FCT(false, index, bloc, flagCell);
if (fct_name == "verrouillerTN_FCT") verrouillerTN_FCT(false, index, bloc, flagCell);
}
}

function doubleClic(obj, fct_name, index, bloc) {
Richfaces.showModalPanel('waitModalPanel');
obj.style.backgroundColor = "#dddddd";
obj.readOnly = true;
obj.blur();
if (fct_name == "verrouillerFR_ABS") verrouillerFR_ABS(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_ABS") verrouillerTN_ABS(true, index, bloc, flagCell);
if (fct_name == "verrouillerFR_CP") verrouillerFR_CP(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_CP") verrouillerTN_CP(true, index, bloc, flagCell);
if (fct_name == "verrouillerFR_SO") verrouillerFR_SO(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_SO") verrouillerTN_SO(true, index, bloc, flagCell);
if (fct_name == "verrouillerFR_CADRE") verrouillerFR_CADRE(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_CADRE") verrouillerTN_CADRE(true, index, bloc, flagCell);
if (fct_name == "verrouillerFR_RETENU") verrouillerFR_RETENU(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_RETENU") verrouillerTN_RETENU(true, index, bloc, flagCell);
if (fct_name == "verrouillerFR_FCT") verrouillerFR_FCT(true, index, bloc, flagCell);
if (fct_name == "verrouillerTN_FCT") verrouillerTN_FCT(true, index, bloc, flagCell);
}


function captureFocus() {
focusedElement = document.activeElement;
}

function restoreFocus() {
if (focusedElement != null) {
if (focusedElement) {
setTimeout(function () {
document.getElementById(focusedElement.id).focus();
}, 100);
}
}
}
</script>

<script type="text/javascript">
function refreshDroite() {
var values = localStorage.getItem('refreshLoadEtp');
if (parent.test == 1) {
if (parent.firstLoadETP == 2) {
setInterval(function () {
location.reload()
}, 1000);
parent.test = 2;
}
}
if (values == 1) {
setInterval(function () {
location.reload()
}, 1000);
localStorage.setItem('refreshLoadEtp', '0');
}
}
(function () {
refreshDroite();
}());
</script>



ça marche sur mozilla ou Chrom et IE9 mais IE 8 ou 7 ou 6 non en donnant un message d'érreur:
Document.getElementById(...) is null or not object.
avez vous des solutions svp.



Many thanks, Abdel

3 réponses

Messages postés
14850
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
13 novembre 2020
93
Hello,

J'ai rajouté les balises code pour gagner en lisibilité. Plus d'infos ici
Messages postés
74
Date d'inscription
samedi 8 décembre 2012
Statut
Membre
Dernière intervention
14 juin 2014
16
Bonjour,

Les problèmes avec getElementById sur IE sont assez fréquent, surtout sur les versions IE 7 et inférieures. La lecture des articles suivant devrait vous aider à comprendre le problème et trouver la solution :

- http://www.impressivewebs.com/avoiding-problems-with-javascript-getelementbyid-method-in-internet-explorer-7/
- http://msdn.microsoft.com/en-us/library/ie/ms536437%28v=vs.85%29.aspx
- http://msdn.microsoft.com/en-us/library/ie/cc288667%28v=vs.85%29.aspx

Sans avoir le contexte (le code html), il n'est pas possible de mieux vous aider !

--------------------------------------------------------------

Bug using getElementById method on IE is a well known bug, esp. on IE 7 and under. Just read the following pages to understand (then fix) the problem :

- http://www.impressivewebs.com/avoiding-problems-with-javascript-getelementbyid-method-in-internet-explorer-7/
- http://msdn.microsoft.com/en-us/library/ie/ms536437%28v=vs.85%29.aspx
- http://msdn.microsoft.com/en-us/library/ie/cc288667%28v=vs.85%29.aspx

Without any context (html code), I can't help you anymore !

Bien à vous,
YepoMax.
Messages postés
30136
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 novembre 2020
338
Bonjour,

Internet Explorer est un peu plus pointilleux que ses autres collègues....

YepoMax t'as donné quelques liens intéressants à lire..
Je rajouterai tout de même que ce message d'erreur apparait très souvent lorsque ton code Javascript (qui fait appel à tes ID) est chargé/lancé ... AVANT l'affichage total de la page...et donc de tes éléments html...

(et comme te l'a indiqué YepoMax... sans connaitre ton code "complet" ( c'est à dire.. HTML inclus)... difficile de te répondre plus précisément.