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

stayak1 Messages postés 1 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 20 mai 2014 - Modifié par BunoCS le 20/05/2014 à 11:43
jordane45 Messages postés 38152 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 mai 2024 - 20 mai 2014 à 12:19
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

BunoCS Messages postés 15476 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 3 mai 2024 103
20 mai 2014 à 11:44
Hello,

J'ai rajouté les balises code pour gagner en lisibilité. Plus d'infos ici
0
YepoMax Messages postés 74 Date d'inscription samedi 8 décembre 2012 Statut Membre Dernière intervention 14 juin 2014 20
20 mai 2014 à 11:49
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.
0
jordane45 Messages postés 38152 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 3 mai 2024 344
20 mai 2014 à 12:19
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.






0
Rejoignez-nous