Le chargement dynamique de fichier css à l'aide de javascript avec rappel sans jQuery

Je suis en train de charger un fichier css dynamiquement à l'aide de javascript et ne peut pas utiliser n'importe quel autre bibliothèque js (par exemple jQuery).

Le fichier css se charge, mais je n'arrive pas à obtenir un rappel à travailler pour elle. Ci-dessous est le code, je suis en utilisant

var callbackFunc = function(){
    console.log('file loaded');     
};
var head = document.getElementsByTagName( "head" )[0];
var fileref=document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", url);

    fileref.onload  = callbackFunc;
    head.insertBefore( fileref, head.firstChild );

En utilisant le code suivant pour ajouter une balise de script pour charger un fichier js qui fonctionne et déclenche un rappel:

var callbackFunc = function(){
    console.log('file loaded');     
};

var script = document.createElement("script");

script.setAttribute("src",url);
script.setAttribute("type","text/javascript");

script.onload  = callbackFunc ;

head.insertBefore( script, head.firstChild );

Je fais quelque chose de mal ici? Toute autre méthode qui peut m'aider à atteindre ce serait bien apprécié?

  • Je proposerais que si il y a des bibliothèques que vous avez ne pas voulez utiliser, puis de ne pas marquer dans la question. Marquage néanmoins attire les [faux] type de développeur pour votre question.
  • Très bien un double de stackoverflow.com/questions/3078584/link-element-onload. Si jQuery est utilisé ou non n'est pas pertinent (jQuery code peut être facilement converti à la vanille). Le principal problème est que, jusqu'à très récemment, WebKit n'a pas l'appui de la load événement pour link éléments. Et c'est un grand et encore très prevalant nombre de téléphones mobiles, iOS et Android. (Exceptionnellement, c'est à dire prend en charge l'événement depuis IE7 si pas plus tôt.)
InformationsquelleAutor U.Ahmad | 2011-04-04