J'ai une page html qui fait référence à plusieurs fichiers .js.
Malheureusement, la fonction invoquée sur l'évènement onload (elle
s'appelle init) fait appel à des fonctions qui sont en partie situées
dans d'autres fichiers, qui ne sont apparemment pas forcément chargés
lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y
faire appel afin d'éviter une erreur js ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Salut,
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Ah ? Tiens ? on utilise IE qui veut absolument résoudre les bps avant d'avoir lu toute l'énoncée ?
1) tenter le coup en mettant init() dans un JS en fin de body
2) mettre un marqueur dans le js externe comme par exemple en fin de fichier vu=true; et dans la page html <body onload="if(!(vu)) ''; else if(vu) init();">
J'ai une page html qui fait référence à plusieurs fichiers .js.
Malheureusement, la fonction invoquée sur l'évènement onload (elle
s'appelle init) fait appel à des fonctions qui sont en partie situées
dans d'autres fichiers, qui ne sont apparemment pas forcément chargés
lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y
faire appel afin d'éviter une erreur js ?
Ah ? Tiens ?
on utilise IE qui veut absolument résoudre
les bps avant d'avoir lu toute l'énoncée ?
1) tenter le coup en mettant init() dans un JS en fin de body
2) mettre un marqueur dans le js externe
comme par exemple en fin de fichier
vu=true;
et dans la page html
<body onload="if(!(vu)) ''; else if(vu) init();">
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Ah ? Tiens ? on utilise IE qui veut absolument résoudre les bps avant d'avoir lu toute l'énoncée ?
1) tenter le coup en mettant init() dans un JS en fin de body
2) mettre un marqueur dans le js externe comme par exemple en fin de fichier vu=true; et dans la page html <body onload="if(!(vu)) ''; else if(vu) init();">
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction(); else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce qu'est de toute façon une fonction définie globalement) évite un message d'erreur.
-- Y.D.
Salut,
J'ai une page html qui fait référence à plusieurs fichiers .js.
Malheureusement, la fonction invoquée sur l'évènement onload (elle
s'appelle init) fait appel à des fonctions qui sont en partie situées
dans d'autres fichiers, qui ne sont apparemment pas forcément chargés
lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y
faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction();
else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce qu'est de toute façon une fonction définie globalement) évite un message d'erreur.
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction(); else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce qu'est de toute façon une fonction définie globalement) évite un message d'erreur.
-- Y.D.
Mokhet
Nobody wrote:
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
oui c'est possible if (typeof ma_fonction === 'function') {
<script type="text/javascript"> var max_essai = 0; function init() { if (typeof mafunction === 'function') { mafunction(); } else { if (++max_essai>5) { alert('chargement trop long, on abandonne'); } else { alert('Essai ' + max_essai + ' échoué'); setTimeout('init()', 1000); } } } function mafunction() { alert('charge'); } </script>
</head> <body onload="init();">
Maintenant, remplacer la ligne 4 pour tester une autre fonction qui aurait pas eu le temps de se charger
if (typeof autre_fonction === 'function') {
Laurent
Nobody wrote:
Est-il possible de tester la disponibilité d'une fonction avant d'y
faire appel afin d'éviter une erreur js ?
oui c'est possible
if (typeof ma_fonction === 'function') {
<script type="text/javascript">
var max_essai = 0;
function init() {
if (typeof mafunction === 'function') {
mafunction();
} else {
if (++max_essai>5) {
alert('chargement trop long, on abandonne');
} else {
alert('Essai ' + max_essai + ' échoué');
setTimeout('init()', 1000);
}
}
}
function mafunction() { alert('charge'); }
</script>
</head>
<body onload="init();">
Maintenant, remplacer la ligne 4 pour tester une autre fonction qui
aurait pas eu le temps de se charger
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
oui c'est possible if (typeof ma_fonction === 'function') {
<script type="text/javascript"> var max_essai = 0; function init() { if (typeof mafunction === 'function') { mafunction(); } else { if (++max_essai>5) { alert('chargement trop long, on abandonne'); } else { alert('Essai ' + max_essai + ' échoué'); setTimeout('init()', 1000); } } } function mafunction() { alert('charge'); } </script>
</head> <body onload="init();">
Maintenant, remplacer la ligne 4 pour tester une autre fonction qui aurait pas eu le temps de se charger
if (typeof autre_fonction === 'function') {
Laurent
Nobody
Merci à tous. Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori chargé à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé. @Mokhet + @YD : la méthode par objet me semble plus intéressante, puisque plus radicale (on teste l'existence et pas le type).
YD wrote:
Salut,
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction(); else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce qu'est de toute façon une fonction définie globalement) évite un message d'erreur.
Merci à tous.
Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori chargé
à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé.
@Mokhet + @YD : la méthode par objet me semble plus intéressante,
puisque plus radicale (on teste l'existence et pas le type).
YD wrote:
Salut,
J'ai une page html qui fait référence à plusieurs fichiers .js.
Malheureusement, la fonction invoquée sur l'évènement onload (elle
s'appelle init) fait appel à des fonctions qui sont en partie situées
dans d'autres fichiers, qui ne sont apparemment pas forcément chargés
lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y
faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction();
else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce
qu'est de toute façon une fonction définie globalement) évite un message
d'erreur.
Merci à tous. Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori chargé à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé. @Mokhet + @YD : la méthode par objet me semble plus intéressante, puisque plus radicale (on teste l'existence et pas le type).
YD wrote:
Salut,
J'ai une page html qui fait référence à plusieurs fichiers .js. Malheureusement, la fonction invoquée sur l'évènement onload (elle s'appelle init) fait appel à des fonctions qui sont en partie situées dans d'autres fichiers, qui ne sont apparemment pas forcément chargés lorsque la fonction se déclenche.
Est-il possible de tester la disponibilité d'une fonction avant d'y faire appel afin d'éviter une erreur js ?
Oui. Si la fonction s'appelle mafonction, on peut tester :
if(window.mafonction)mafonction(); else ...
Le fait de tester mafonction comme une propriété de l'objet window (ce qu'est de toute façon une fonction définie globalement) évite un message d'erreur.
Merci à tous. Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori
c'est exactement le genre d'à priori dont raffole IE pour merder ...
chargé à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé. @Mokhet + @YD : la méthode par objet me semble plus intéressante, puisque plus radicale (on teste l'existence et pas le type).
Merci à tous.
Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori
c'est exactement le genre d'à priori dont raffole IE pour merder ...
chargé
à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé.
@Mokhet + @YD : la méthode par objet me semble plus intéressante,
puisque plus radicale (on teste l'existence et pas le type).
Merci à tous. Ces réponses devraient me sortir d'affaire.
@SM : pour le 1 : mon init est sur un window.onload donc a priori
c'est exactement le genre d'à priori dont raffole IE pour merder ...
chargé à la fin de la page. Pour le 2 : ca ne marche pas j'ai déjà essayé. @Mokhet + @YD : la méthode par objet me semble plus intéressante, puisque plus radicale (on teste l'existence et pas le type).