Erreur getElementById().width... javascript

Résolu/Fermé
Aucun - 5 mars 2009 à 08:40
 Aucun - 5 mars 2009 à 11:21
Bonjour,

J'ai crée un fonction Js pour adapter la baniere d'un site à la resolution de l'utilisateur,elle fonctionne avec le code si dessous:

function largeur()
{

baniere.width=screen.width;
baniere.width=baniere.width-30;
}

<img src="bn.jpg" id="baniere" onload="largeur()">


Seulement ma console d'erreur me dit Erreur utilisé plutot getElementById,voici ce que j'ai fait..

function largeur(id)
{

document.getElementById(id).width=screen.width;
document.getElementById(id).width.value=getElementById(id).width-30;
}

<img src="bn.jpg" id="baniere" onload="largeur('baniere')">

Erreur:getElementByid undefined,Le problème à l'air commun au vu de tous les forums,j'ai essayé plusieurs solutions:style.width,Offsetwidth.Mais peut-etre que je n'ai pas la bonne synthaxe pour modifier la valeur de l'id voulu..

Merci d'avance.
A voir également:

7 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
5 mars 2009 à 08:50
Je pense que ceci marcherait mieux :
<img src="bn.jpg" id="baniere" onload="largeur(this.id)">

SI ce n'est pas le cas je vous conseille d'utiliser Firefox avec firebug pour debugger votre code
0
finalement, c'est très bête...
tu as oublié le "document' avant le second getElementById dans
document.getElementById(id).width.value=getElementById(id).width-30;
Cette fois j'ai testé avant de poster !
0
Merci pour vos reponses cela m'a bien fait avancé:

function largeur(id)
{
document.getElementById(id).width=screen.width;
document.getElementById(id).width=document.getElementById(id).width-30;
}

Voici le code qui ne génère pas d'erreur(Avec la console d'erreur de ff),seulement il a beau être valide,cela ne fonctionne toujours pas,l'image ne s'ajuste pas,je pensais que le screen.width etait le soucis,je l'ai remplacé par des constantes,mais rien ne changes,j'ai aussi essayé de rajouter .value mais cela ne fonctionne pas.

je ne vois pas le problème pourtant...

Merci d'avance
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
5 mars 2009 à 10:05
En fait votre code est étrange, ce que vous voulez faire c'est bien de faire en sorte que la taille de votre bannière soit égale à la taille de l'écran - 30px.
Si tel est le cas il faut modifier votre fonction au moins qu'elle soit plus claire :

function largeur(id)
{
document.getElementById(id).width=screen.width-30;
}

Je vous conseille à nouveau de télécharger le module Firebug pour firefox, il vous permettra de placer un point d'arrêt dans votre fonction et ainsi voir les valeurs utilisées. Ou encore utilisez des "alert" afin d'être sûre que els valeurs sont celles souhaitées
0
Si ça marche, mais ça ajuste à la taille de l'écran, pas à celle de la fenêtre (tu vois la différence ?)
Si tu veux ajuster à la taille de la fenêtre, il faut utiliser window.innerWidth au lieu de screen.width
Et d'ailleurs, tu n'as pas besoin de le faire en deux lignes, une seule suffit :
function largeur(id)
{
document.getElementById(id).width=window.innerWidth-30;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci tous fonctionne sous ff ;)

Par contre je suis sous ie5(Reseau d'entreprise),Il se trouve que InnerWidth ne passe pas,Seulement screen width.

Aucune façon de remedier a cela?
0
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
5 mars 2009 à 10:54
nromalement
document.body.clientWidth
devrait fonctionner à la place
0
Merci cela fonctionne,

Sujet résolu.
0
Bonjour

Ce sont tes getElementById(id) qui ne vont pas, tu n'as aucun élément qui s'appelle id. ton élément s'appelle baniere
il faut donc écrire getElementById("baniere")
-1
Pardon, j'ai encore dit une bêtise. Je n'avais pas vu le paramètre.
0