Bonsoir,
j'aimerais savoir s'il est possible en JS de tester si une fonction est
déjà définie (l'équivalent de function_exists() en PHP). J'ai beaucoup
de peine à trouver des sites consistants en matière de JS (tutos ou
référence) à part le Mozilla Developer Center.
Sinon, y a-t-il un moyen pour ajouter une fonction à window.onload ?
Par exemple soit :
window.onload = function(){ foo(); }
puis plus loin j'aimerais ajouter bar(); normalement je ferais :
window.onload = function(){ foo(); bar(); }
mais si je ne connais pas la présence dans window.onload de foo() tout
en voulant la préserver ?
C'est bon j'ai (re)trouvé la bonne option de config pour les citations !! :) Désolé pour tous ces désagréments ^^ ;)
En tous cas pour l'égo ça doit être cool :-)
:D
Eh oui, à en croire mon logiciel de news je suis le seul à parler ... Peut être qu'il n'avait "vu" que les messages intelligents :p ** je plaisante **
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
BertrandB
elles sont forcément définies une fois la page chargé. (tout a été lu et mis en mémoire par le navigateur)
ni celles qui restent peut-être à venir.
Je doute qu'on puisse introduire une fonction (son script) depuis le serveur après le chargement de la page. Donc les fonctions sont là ou pas, pas de 1/2 mesure.
Sisi c'est possible : Extrait de chtingify de mon chtioblogue (fonction _myimport)
/* Les fichers a inclure seront des js dans lesquels sera defini l'objet si l'objet a pour nom machin le js devra s'apeler machin.js la fonction myimport est appelee avec l'uri du fichier a inclure et une fonction callback a laquele on passera l'objet */ function myimport(src,cb) { function _clean(){ if(eval(nomobj)) { var include=document.getElementById("include_"+nomobj); include.parentNode.removeChild(include); cb(eval(nomobj)); } else setTimeout(_clean,500); } function _myimport(){ var include=document.createElement("script"); include.type="text/javascript"; include.src=src; include.id="include_"+nomobj; include.onreadystatechange=_clean; document.getElementsByTagName("head")[0].appendChild(include); setTimeout(_clean,500); } nomobj=src.replace(/^.*//,"").replace(/.js$/,""); setTimeout(_myimport,1); //permet le detachement du chargement dans un "thread" }
Euh puisque "eval is devil" kelke critques sur ce morceau ?
elles sont forcément définies une fois la page chargé.
(tout a été lu et mis en mémoire par le navigateur)
ni celles qui restent peut-être à venir.
Je doute qu'on puisse introduire une fonction (son script) depuis le
serveur après le chargement de la page.
Donc les fonctions sont là ou pas, pas de 1/2 mesure.
Sisi c'est possible :
Extrait de chtingify de mon chtioblogue (fonction _myimport)
/* Les fichers a inclure seront des js dans lesquels sera defini
l'objet
si l'objet a pour nom machin le js devra s'apeler machin.js
la fonction myimport est appelee avec l'uri du fichier a
inclure et une fonction
callback a laquele on passera l'objet */
function myimport(src,cb) {
function _clean(){
if(eval(nomobj)) {
var include=document.getElementById("include_"+nomobj);
include.parentNode.removeChild(include);
cb(eval(nomobj));
} else setTimeout(_clean,500);
}
function _myimport(){
var include=document.createElement("script");
include.type="text/javascript";
include.src=src;
include.id="include_"+nomobj;
include.onreadystatechange=_clean;
document.getElementsByTagName("head")[0].appendChild(include);
setTimeout(_clean,500);
}
nomobj=src.replace(/^.*//,"").replace(/.js$/,"");
setTimeout(_myimport,1); //permet le detachement du chargement dans
un "thread"
}
Euh puisque "eval is devil" kelke critques sur ce morceau ?
elles sont forcément définies une fois la page chargé. (tout a été lu et mis en mémoire par le navigateur)
ni celles qui restent peut-être à venir.
Je doute qu'on puisse introduire une fonction (son script) depuis le serveur après le chargement de la page. Donc les fonctions sont là ou pas, pas de 1/2 mesure.
Sisi c'est possible : Extrait de chtingify de mon chtioblogue (fonction _myimport)
/* Les fichers a inclure seront des js dans lesquels sera defini l'objet si l'objet a pour nom machin le js devra s'apeler machin.js la fonction myimport est appelee avec l'uri du fichier a inclure et une fonction callback a laquele on passera l'objet */ function myimport(src,cb) { function _clean(){ if(eval(nomobj)) { var include=document.getElementById("include_"+nomobj); include.parentNode.removeChild(include); cb(eval(nomobj)); } else setTimeout(_clean,500); } function _myimport(){ var include=document.createElement("script"); include.type="text/javascript"; include.src=src; include.id="include_"+nomobj; include.onreadystatechange=_clean; document.getElementsByTagName("head")[0].appendChild(include); setTimeout(_clean,500); } nomobj=src.replace(/^.*//,"").replace(/.js$/,""); setTimeout(_myimport,1); //permet le detachement du chargement dans un "thread" }
Euh puisque "eval is devil" kelke critques sur ce morceau ?