JavaScript反引号多行字符串无法在Internet Explorer中运行

Mat*_*nis 21 html javascript jquery internet-explorer

我有一个大的HTML字符串包含在var.我正在用它来写信innerHTML.

第一个示例(带有反引号语法)是最简单的,在Internet Explorer 11中不起作用.

有没有办法让第一个示例在Internet Explorer 11中工作,而不必使用数组或换行符?

难道不是在Internet Explorer中运行

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;
Run Code Online (Sandbox Code Playgroud)

适用于Internet Explorer

数组加入

https://jsfiddle.net/3aytojjf/

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

适用于Internet Explorer

单引号'与linebreak \

https://jsfiddle.net/5qzLL4j5/

var message =
'<p>this</p> \
<p>is</p> \
<p>a</p> \
<p>multiline</p> \
<p>string</p>'
 ;
Run Code Online (Sandbox Code Playgroud)

Jos*_*ter 19

问题

字符串的反引号语法是Template Literal,它允许在字符串和多行字符串中插入变量.Internet Explorer 11不支持它们(请参阅此处:ECMAScript 6兼容性表).

  1. 您可以使用转换器,例如广受欢迎的Babel.这会将模板文字转换为Internet Explorer 11可以理解的ECMAScript 5语法.
  2. 可以选择不支持Internet Explorer 11,并且支持Edge和其他具有本机ECMAScript 6支持的浏览器,但这通常不是一种选择.