dom: вызов innerHTML не отображает код - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть этот HTML:

<code><h3 id="this-is-title">This is title</h3>
<p><a name="abcde"></a></p>
<pre lang="java" class="prettyprint">

 class NeoEach {

   static <T, V, E> void Each(int limit, Iterable<T> i, Asyncc.IEacher<T, E> m, Asyncc.IEachCallback<E> f) {

     final CounterLimit c = new CounterLimit(limit);
     final ShortCircuit s = new ShortCircuit();
     final var iterator = i.iterator();
     RunEach(iterator, c, s, m, f);
     handleSameTickCall(s);
   }

 }

, когда он загружен в виде файла index.html, он выглядит так:

nh

но когда я устанавливаю innerHTML элемента dom следующим образом:

     fetch('https://async-java.github.io/md/html-from-md.html')
      .then(r => {
        const el = document.getElementById('foo');
        return r.text().then(v => {
          el.innerHTML = v; // this is good
        });
      });

, он выглядит так:

enter image description here

Я не могу понять, почему это не работает, кто-нибудь знает, почему?

HTML выглядит хорошо, когда я проверяю дом:

enter image description here

1 Ответ

0 голосов
/ 24 февраля 2019

Если это ваш реальный код, то у вас div # foox , но вы пытаетесь установить innerHTML равным # foo .Поэтому

const el = document.getElementById('foox');

вместо

const el = document.getElementById('foo');

Редактировать Если вы используете библиотеку Google prettify, следуйте соглашению HTML5, добавив <code>элемент внутри элемента <pre> ( GitHub - google / code-prettify ).

<pre class="prettyprint"><code class="language-java">...
...