Pourquoi Internet Explorer 11 ne respecte-t-il pas les commentaires conditionnels, même en émulant le mode de document Internet Explorer 8?

j'utilise le nouveau Internet Explorer 11 outils de développement pour passer le mode document à" 8", mais les commentaires conditionnels sont encore ignorés, c'est-à-dire qu'ils ne sont pas correctement analysés et se comportent comme des commentaires normaux. Si aucun fichier référencé à l'intérieur du commentaire conditionnel n'est pas requis/chargé par le navigateur.

pourquoi cela arrive-t-il? Est-ce un bug?

Si vous pensez que c'est effectivement un bug qui doit être corrigé, s'il vous plaît entrer et dire que vous aussi pouvez reproduire ceci sur le rapport de bogue de Microsoft qui est rapporté pour ce numéro:

les commentaires conditionnels ne fonctionnent pas lorsque l'on émule les modes de document via les outils de développement F12 .

mise à jour: ce problème a été signalé pour être corrigé dans le rapport de bogue mentionné.

110
demandé sur Thasmo 2013-10-18 13:48:23

8 réponses

selon à Jacob Rossi [MSFT]

Cela devrait être résolu dans la mise à Jour 1 pour IE11, , publié la semaine dernière .

qui a été publié le 22 avril 2014.

en exécutant quelques tests moi-même, il semble que cela a été corrigé et tout fonctionne à nouveau en douceur pour tester le navigateur le plus étonnant jamais produit...Internet Explorer!

27
répondu L84 2014-11-23 05:10:25

je viens d'essayer de l'utiliser dans Internet Explorer 11 sur Windows 7 pour m'assurer que mon utilisé HTML5 éléments sémantiques étaient en cours de création pour Internet Explorer 8 et ci-dessous (via des commentaires conditionnels), et le navigateur les ignore tout simplement. - _-

cette fonctionnalité a parfaitement fonctionné dans Internet Explorer 10 , et Microsoft a juste dû bricoler avec elle, n'est-ce pas?

<!--[if lte IE 8]><script src="ie8-html5.js"></script><![endif]-->

en dehors de ça, J'apprécie Internet Explorer, ce qui fait un changement.

19
répondu DylRicho 2014-11-22 08:54:50

cela a fonctionné pour moi et semble être la solution la plus élégante/facile ( Internet Explorer 10 et Internet Explorer 11 je suppose que sont les seuls navigateurs qui prennent en charge -ms-high-contract ):

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */
}
16
répondu cmartin 2014-11-22 09:01:17

j'ai récemment rencontré le même problème. J'ai également constaté que certains commentaires conditionnels fonctionnent:

  • gt et lt ouvré fine
  • gte et lte n'a jamais travaillé

ainsi une solution potentielle serait de changer les énoncés conditionnels pour utiliser les opérateurs gt et lt .

l'autre alternative, que j'ai trouvé plus utile, était d'utiliser un service comme browserstack .

7
répondu user1429980 2013-11-26 03:34:43

j'ai une autre solution.

Internet Explorer 11 avec le mode de compatibilité Internet Explorer 8 activé contient la chaîne de caractères 'MSIE 8.0', donc:

(exemple PHP)

if (strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0') !== false) {
    $head[] = sprintf('<link rel="stylesheet" href="ie8.css" />');
}
7
répondu Andrei Konstantinov 2014-11-22 08:55:46

j'ai eu le même problème - ça m'a rendu dingue toute la matinée. J'ai ajouté Modernizr , et j'ai sélectionné toutes les options, y compris yepnope.js.

donc maintenant mon test ressemble à ceci:

Modernizr.load({
            test: Modernizr.canvas,
            nope: ['Content/Site-ie-8.min.css', 'Content/font-awesome-ie7.min.css']
});

dans ce cas, je teste pour canvas (qui n'est pas supporté avant Internet Explorer 9), donc je charge mon contenu conditionnel. Cela fonctionne maintenant lors de la commutation des modes de navigateur dans Internet Explorer 11 developer tools.

3
répondu El Kabong 2014-11-22 08:44:07

Je ne l'ai pas vu mentionné ici, mais dans ce rapport de bogue il est noté que, si vous changez les paramètres de la vue compatibilité, les commentaires conditionnels fonctionnent comme prévu. So:

  1. dans IE11, cliquez sur "Outils "
  2. compatibilité View settings
  3. Tapez L'URL et cliquez sur Ajouter

semble bien fonctionner maintenant sur mon hôte local. Je n'ai pas testé approfondie, mais peut-être que cela aidera quelqu'un.

2
répondu Just Plain High 2014-06-06 01:14:25

certains commentaires conditionnels fonctionnent comme gt " et lt ", mais par exemple <!--[if IE 8]> ne fonctionne pas. Cela est sûrement gênant pour les développeurs qui veulent essayer comment leurs pages Web regarder sur différentes versions de navigateurs Internet Explorer, mais ce n'est pas toutes les mauvaises nouvelles.

bien que les commentaires conditionnels ne fonctionnent pas, vous pouvez toujours tester comment votre page Web regarde dans chacune des versions D'Internet Explorer en ajoutant le feuilles de style une à la fois: disons que vous avez une feuille de style pour Firefox, Chrome, Internet Explorer 10 et Internet Explorer 11 appelé ' screen.css ", et une autre feuille de style Seulement Pour Internet Explorer 9 appelé ' screen-ie9.css " et une autre seulement pour Internet Explorer 8 appelé ' screen-ie8.css ".

pour tester vos pages Web uniquement pour Internet Explorer 9, Vous pouvez le faire:

<link rel="stylesheet" href="path/css/screen.css"     type="text/css" />
<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

et dans la section Emulation de F12 developer tools, définissez 'Document Mode' à '9' et 'User agent string' à 'Internet Explorer 9'. Le Mode Document est la norme Qu'Internet Explorer 9 utilise et la chaîne D'agent utilisateur est le navigateur lui-même.

P. S: je suppose que le " screen.css " est votre feuille de style de base qui est la raison pour laquelle je l'appelle d'abord que "overwriting" l'Internet Explorer 9 fixe plus tard en appelant " screen-ie9.css " second.

en faisant ceci, vous pouvez soyez " sûr "(je dois tester avec VMs afin d'écrire le mot " sûr " sans guillemets) que vous visualisez votre page Web sur un navigateur Internet Explorer 9. Lorsque vous avez terminé de tester et de styliser sur Internet Explorer 9, et que vous voulez tester avec Internet Explorer 8, Vous pouvez facilement faire la même chose en remplaçant ceci:

<link rel="stylesheet" href="path/css/screen-ie9.css" type="text/css" />

avec ceci:

<link rel="stylesheet" href="path/css/screen-ie8.css" type="text/css" />

donc, il est juste une question D'inconvénients mineurs du côté de Microsoft, mais le nouveau Les outils des développeurs de F12 offrent beaucoup de fonctionnalités étonnantes, ce qui fait que ce n'est pas une grosse affaire.

0
répondu Roben B 2014-11-22 08:59:32