La chaîne Multiline Backtick JavaScript ne fonctionne pas dans IE

J'ai une grande chaîne HTML contenue dans une var . Je l'utilise pour écrire dans innerHTML .

Le premier exemple (avec syntaxe de sauvegarde), qui est le plus simple, ne fonctionne pas dans IE11.

Existe-t-il un moyen d'utiliser le premier exemple dans IE11 sans avoir à utiliser un tableau ou des caractères nouveaux?

Ne fonctionne pas dans IE

Backtick `

Https://jsfiddle.net/qLm02vks/

 <div id="display"></div> var message = ` <p>this</p> <p>is</p> <p>a</p> <p>multiline</p> <p>string</p> `; // Write Message var display = document.getElementById('display'); display.innerHTML = message; 

Fonctionne dans IE

Array Join

Https://jsfiddle.net/3aytojjf/

 var message = ['<p>this</p>', '<p>is</p>', '<p>a</p>', '<p>multiline</p>', '<p>string</p>' ].join('\n'); 

Fonctionne dans IE

Single Quote 'avec linebreak \

Https://jsfiddle.net/5qzLL4j5/

 var message = '<p>this</p> \ <p>is</p> \ <p>a</p> \ <p>multiline</p> \ <p>string</p>' ; 

Problème

La syntaxe de backtick pour une chaîne est un Template Literal , qui permet d'interpoler des variables dans une chaîne et des chaînes de plusieurs lignes. Ils ne sont pas pris en charge par IE11 (voir plus ici: ES6 compatible table ).

Solution

  1. Vous pouvez utiliser un transpiler, comme le Babel toujours populaire. Cela convertira le modèle literal en la syntaxe ES5 que IE11 comprend.
  2. Vous pouvez exclure le support d'IE11 et rester compatible avec Edge et d'autres navigateurs compatibles avec ES6, bien que ce ne soit généralement pas une option.