2010-08-01 15 views
3

Quelle est la meilleure façon de cacher Javascript et CSS en ligne à partir de navigateurs downlevel? ... Je vois quelques variations sur un thème commun. Sont-ils tous corrects, ou est-ce qu'une approche est meilleure que l'autre?Meilleure façon de cacher CSS et JavaScript à partir de navigateurs downlevel

<script language="javascript" type="text/javascript"> 
<!-- 
    // Forces the treeview to adjust to the new size of its container 
    function resizeTree(DomElementId, NewPaneHeight, NewPaneWidth) { 
     //do stuff 
    } 

    //--> 
</script> 

vs

<script type="text/javascript"> 
//<![CDATA[ 
    /* Javascript code here */ 
//]]> 
</script> 

vs

<style type="text/css"> 
/*<![CDATA[*/  CSS stuff here  /*]]>*/ </style> 

Répondre

3

Votre premier exemple est l'ancienne méthode de pré-HTML 3,2 à hide contents de l'élément script aux navigateurs qui ne les reconnaît pas. Vous n'êtes plus obligé de l'utiliser. Chaque navigateur actuel (dont IE 6 est le plus ancien) reconnaît ces éléments et sait qu'il ne doit pas montrer leur contenu. En passant, l'attribut language de l'élément script a également été deprecated il y a longtemps.

Vos deuxième et troisième exemples contiennent CDATA markers, inclus dans les commentaires appropriés pour le script ou la langue de style utilisée. Utilisez-les lorsque vous incorporez des scripts ou des feuilles de style inline dans des documents XHTML (et seulement ensuite). Sans ces marqueurs, un analyseur penserait que les esperluettes et les signes inférieurs représentent respectivement des entités spéciales ou le début des balises. Pour citer Wikipedia:

Comme il est utile de pouvoir utiliser moins que des signes (<) et esperluette (&) dans les scripts de la page Web, et dans une moindre styles de mesure, sans avoir à N'oubliez pas de leur échapper, il est courant d'utiliser des marqueurs CDATA autour du texte des éléments <script> et <style> dans les documents XHTML. Mais pour que le document peut également être analysé par HTML parseurs, qui ne reconnaissent pas les marqueurs CDATA, les marqueurs CDATA sont généralement en commentaire

Cela se fait de la façon dont vous présentez dans votre deuxième et troisièmes exemples. Le premier montre un exemple Javascript, le dernier un extrait CSS.

Voir aussi Comments and CDATA: The mysterious history of script and style in HTML.

+0

Est-ce que tout cela change en cas de CSS incorporé dans un message électronique? par exemple. un client Blackberry, ou un autre périphérique – LamonteCristo

+0

@Maker - J'en doute vraiment, car nous avons encore affaire à XHTML. Mais, si possible, j'enverrais un email HTML en HTML (avec HTML 5 Doctype) et non en XHTML, contournant ainsi tout ce problème (ou plutôt, envoyant un email en texte brut, mais c'est plus une préférence personnelle). –