if ? réponse IE: Objet requis, je capte rien !

Avatar du membre
Mammouth du PHP | 1564 Messages

09 nov. 2013, 17:57

Bonjour, voici le code qui pose problème:

[javascript]var diva,ap;
diva = document.getElementById("diva");
ap = document.getElementById("ap");
if(diva.style.display=="none"){diva.style.display="inline";}
if(ap.style.display=="inline"){ap.style.display="none";}[/javascript]

J'aimerai qu'au chargement de la page, la div "diva" s'affichhe et que la div "ap" ne s'affiche pas, ça ne fonctionne pas :evil:
Modifié en dernier par two3d le 09 nov. 2013, 18:16, modifié 1 fois.

Avatar du membre
Mammouth du PHP | 1564 Messages

09 nov. 2013, 18:16

J'ai fait ce code pour être plus précis:

[javascript]window.onload = function() {
document.getElementById("diva").style.display="inline";
document.getElementById("ap").style.display="none";}[/javascript]

mais IE me dit "Objet requis" caractère1 (c'est la lettre "d" juste après function() { le caractère 1...)

ViPHP
AB
ViPHP | 5818 Messages

09 nov. 2013, 18:43

Testes avec un navigateur qui sait débuguer javascript, Firefox et un module comme Firebug (recommandé) ou sinon Chrome.
Avec IE je sais pas s'il dispose d'un débugueur.

Pour le reste ton code fait peut-être référence à un id qui n'existe pas ce qui génère une erreur car il faut tester tes objets avant de les utiliser.
Par exemple le code ci-dessous fonctionne même si "diva" n'existe pas. Il ne fonctionnerait pas avec ton code car tu tenterais d'appliquer un style sur un objet qui n'existe pas.
[javascript]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<script type="text/JavaScript">
<!--
window.onload = function() {
var div_a = document.getElementById("diva");
if(div_a)
{
div_a.style.display="inline";
}

var ap = document.getElementById("ap");
if (ap)
{
ap.style.display="none";
}
}
//-->
</script>
<style type="text/css">
</style>
</head>
<body >
<div id="ap">toto</div>

</body>
</html> [/javascript]

Avatar du membre
Mammouth du PHP | 1564 Messages

09 nov. 2013, 18:57

Merci, en effet ça fonctionne, ya plus d'erreur mais ça ne me cache pas le div ap et me montre pas la div diva :roll:

window.onload doit se mettre où dans la page normalement ?

Avatar du membre
Mammouth du PHP | 1564 Messages

09 nov. 2013, 20:02

J'ai une piste, mon code fonctionne quand j'affiche mon code en directe (le code est dans une iframe que j'affiche sur une page)

donc: quand le code est dans l'iframe, ça fonctionne pas et quand il est affiché directement, il fonctionne (les inline et none fonctionne)

Avatar du membre
Mammouth du PHP | 1564 Messages

09 nov. 2013, 21:34

J'avance,

j'ai une erreur avec ce code (firebug qui me le dit):
Error: Permission denied to access property 'document'
var bo=parent.document.getElementsByTagName("iframe");
Merci pour votre aide, je galère !