Ouaip : si vous créez un <link>
qui fait le lien avec une feuille de style et l'ajoute à la balise <head>
le navigateur chargera cette feuille de style.
Par exemple
$('head').append('<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">');
Cependant , selon les commentaires de @peteorpeter Cela ne fonctionne pas dans IE 8 ou moins - dans ce cas, vous devez aussi le faire :
- ajouter le
<link>
avant fixant son href
; ou
- utiliser la fonction d'IE
document.createStyleSheet()
méthode
En outre, la vérification de l'existence d'un lien déjà ajouté ne fonctionne pas de manière fiable sur tous les navigateurs.
Je remettrais également en question une partie de votre prémisse :
Je veux éviter de charger les fichiers JS et CSS de la lightbox au moment du chargement, sauf si l'utilisateur le demande.
Pourquoi ? Pour réduire le poids des pages ? Je peux comprendre le désir, mais vous devriez mesurer la taille de vos fichiers CSS et JS (après minification et gzipping) avec le code de la lightbox dedans, et sans, pour voir si la réduction en vaut la peine :
- la complexité supplémentaire du chargement à la demande ; et
- la réactivité légèrement réduite de la boîte à lumière (car lorsqu'elle se charge à la demande, la boîte à lumière doit attendre que ses propres CSS et JS se chargent avant de pouvoir faire son travail).
Après minification et gzippage, il se peut qu'il n'y ait pas une grande différence.
N'oubliez pas que vous pouvez demander au navigateur de mettre en cache vos CSS et JS pendant une longue période, ce qui signifie qu'ils ne seront téléchargés que lorsqu'un utilisateur visitera votre site avec un cache vide.