Firefox удалено внутреннее HTML сгенерированного iframe - PullRequest
0 голосов
/ 23 марта 2020

Я использую JavaScript, чтобы создать iframe и вставить в него некоторый контент. В Chrome и Safari он работает нормально, но в Firefox iframe остается пустым. При регистрации содержимого iframe он отображает HTML только сразу после его создания, после чего внутренний HTML пуст.

Вот код, который я использую, и вот соответствующий JSBin: https://jsbin.com/tapacequtu/edit?html, js, вывод

const iframe = document.createElement('iframe');
document.body.appendChild(iframe);

const label = document.createElement('div');
label.innerText = 'Hello world';

iframe.contentDocument.body.appendChild(label);

Почему iframe в Firefox пуст?

1 Ответ

0 голосов
/ 23 марта 2020

Оказывается, это очень старая ошибка в Firefox, о которой сообщалось здесь: https://bugzilla.mozilla.org/show_bug.cgi?id=297685

Вы должны использовать setTimeout, чтобы "исправить" ее:

const iframe = document.createElement('iframe');
document.body.appendChild(iframe);

setTimeout(() => {
  const label = document.createElement('div');
  label.innerText = 'Hello world';

  iframe.contentDocument.body.appendChild(label);  
}, 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...