web-dev-qa-db-fra.com

Comment ajouter des commentaires conditionnels pour IE lors de l’inclusion de CSS / JS?

Je suis en train de transformer un modèle HTML en un modèle Joomla. J'ai le bloc suivant en HTML:

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

Quel est le meilleur moyen de placer cette instruction conditionnelle dans un objet JDocument?

3
Valentin Despa

Je pense que ce qui suit devrait bien fonctionner:

<?php $doc = JFactory::getDocument(); ?>
<!--[if lt IE 9]>
<?php
    $doc->addScript('https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js');
    $doc->addScript('https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js');
?>
<![endif]-->

Notez que j'ai défini $doc en dehors de la déclaration, juste au cas où vous en auriez besoin ailleurs.

Mettre à jour par exemple:

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

<jdoc:include type="head" />

J'espère que cela t'aides

3
Lodder

Il semble que JDocument (en fait, JDocumentHTML) ait une méthode cachée: addCustomTag.

$customTag = <<<CUSTOM
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
CUSTOM;
$doc->addCustomTag($customTag);
4
Valentin Despa