OVH Cloud OVH Cloud

objet undefined

26 réponses
Avatar
J-F Portala
Bonjour,

Je voudrais que lors du chargement de ma page, un champ aie le focus.
avec
<body onload=foc();>

et
function foc()
{
document.form.nomchamp.focus() ;
}

Cela fonctionne.

Le probleme est que cette page affiche d'autres formulaires dans lesquels ce
champ n'existe pas.

J'ai essayé de transformer la fonction en

function foc()
{
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;
}

J'ai un message d'erreur

document.form.nomchamp a la valeur null ou n'est pas un objet

Est ce qu'il existe un test permettant de verifier l'existence d'un objet

Merci de votre aide

6 réponses

1 2 3
Avatar
CrazyCat
ASM wrote:
profites-en pour corriger
language="javascript"
par
type="text/javascript"


ici, je ne donne que des indications, mais si tu va jeter un oeil sur
crazycat.info, tu verras dans les sources que je suis plutôt du genre à
mettre <script language="javascript" type="text/javascript">

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Laurent Vilday

je ne suis pas certain que mon navigateur accepte : onLoad



onLoad = function() { alert('blabla'); };

J'ai essayé dans le doute, mais comme je m'y attendais, aucune réponse
de la part de FF1.5, IE6 ni de opera9.

[aparte] Si c'est pour utiliser cette notation, il ne faut pas oublier
le var de déclaration

var onLoad = function;
ou alors
function onLoad()


http://www.validome.org/doc/HTML_fr/javascript/langage/gestevenements.htm#onload

Désolé de te contredire Stéphane, mais pour une fois j'ai juste (du
point de vue de la norme)


Hurm, la norme ??? Le lien fourni n'est pas ce que j'appelle une norme
mais plutot une simplification grossière à destination des utilisateurs
lambda qui veulent apprendre sans ce casser la tête. C'est loin d'en
faire un document de référence exhaustif de tous bugs et erreurs
d'interprétation.

Et puis la norme, c'est un peu galvauder :) comme mot, la norme de quoi
est-ce qu'on parle ici ? La norme ECMAscript, JavaScript, JScript,
ActionScript ? v1, v2, v3, norme numéro quoi de quoi ?

pour ECMAscript je verrais bien le document de référence comme étant
plutot ceci :

Pour les autres, m'est avis que le document de référence du langage
implémenté sera différent suivant le constructeur.


Avatar
Laurent Vilday

pour ECMAscript je verrais bien le document de référence comme étant
plutot ceci :


/slap me, j'ai oublié le lien... pff

http://www.ecma-international.org/publications/standards/Ecma-262.htm

--
laurent

Avatar
ASM

si tu va jeter un oeil sur
crazycat.info, tu verras dans les sources que je suis plutôt du genre à
mettre <script language="javascript" type="text/javascript">



sauf que type="text/javascript" est exigé par les navigateurs modernes
et que language="javascript" est obsolète est sans aucune utilité
(les vieux navigateurs interprétant par défaut <script> comme étant du
JS, ce truc peut donc être omis - sauf, sans-doute, à vouloir préciser
la version minimale de JS exigée par le script)

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
J-F Portala
Merci pour l'info

mais je n'arrive pas à faire fonctionner l'exemple fourni

function loadAll(oneMore){
if(window.onload){ var oldOnload=window.onload;
window.onload=function(){ oldOnload(); oneMore(); } } else
onload=function(){oneMore();} }




à utiliser après avoir défini maFonction ainsi :

function maFonction1(){/*la déf.*/} loadAll(maFonction1);



D'apres ce lien, on peut mettre le script en fin de <body>
dans mon fichier php j'ai essaye ceci

<entete html>
<?php
code php
?>
<script type="text/javascript">
<!--
function loadAll(oneMore)
{
alert('toto') ;// juste pour voir s'il y a de la vie
if ( window.onload)
{
var oldOnLoad = window.onload ;
window.onload = function()
{
oldOnLoad() ;
oneMore() ;
}
}
else
{
onload = function()
{
onMore() ;
}
}
}
function foc()
{
alert('toto') ;// juste pour voir s'il y a de la vie
if ( document.form.nomchamp )
document.form.nomchamp.focus() ;
return true ;
}
loadAll(foc) ;
//-->
</script>
</body>
</html>
J'ai du mal à comprendre le fonctionnement de ce script
Je pensais que window.onload ou onload (voir echanges precedents permettait
de lancer une fonction au chargement de la page).
Ici, on teste window.onload . Est ce le resultat d'une fonction, ou le nom
d'une fonction.
J'ai des doutes quant à l'utilisation de la fonction
loadALL(foc) ;
Je peux la placer ou je veux.
Et quand va t elle démarrer ?
Là, il me manque des cles

Jeff

Avatar
J-F Portala
Je vous remercie à tous de votre aide.
Cela m'a permis d'avancer sur la séparation du code php javascript du
balisage html

Jeff
1 2 3