We're calling on all EU-based Mozillians with iOS or iPadOS devices to help us monitor Apple’s new browser choice screens. Join the effort to hold Big Tech to account!

Поиск в Поддержке

Избегайте мошенников, выдающих себя за службу поддержки. Мы никогда не попросим вас позвонить, отправить текстовое сообщение или поделиться личной информацией. Сообщайте о подозрительной активности, используя функцию «Пожаловаться».

Подробнее

Iframe immediately recreated

  • 3 ответа
  • 1 имеет эту проблему
  • 17 просмотров
  • Последний ответ от CzBiX

more options

https://jsfiddle.net/4cd3u0fL/1/

Steps to reproduce click the button

What is expected? Show text in iframe and output [true, true]

What is actually happening? iframe is empty, and output [true, false] in Firefox

This demo works in Chrome, but failed on Firefox v75-76.

https://jsfiddle.net/4cd3u0fL/1/ '''Steps to reproduce''' click the button '''What is expected?''' Show text in iframe and output [true, true] '''What is actually happening?''' iframe is empty, and output [true, false] in Firefox This demo works in Chrome, but failed on Firefox v75-76.

Выбранное решение

@cor-el Thanks. Please have a look at this issue: https://bugzilla.mozilla.org/show_bug.cgi?id=543435

If your PC is a little bit slow, you will see the iframe show content first, then changed to blank.

Прочитайте этот ответ в контексте 👍 0

Все ответы (3)

more options
more options

In Firefox the result.insertAdjacentHTML immediately returns and doesn't wait until the iframe has been created. It works if I place the code in the timeout function.

function haha() {
  console.log('haha')
  const result = document.querySelector('#result')
  
  result.insertAdjacentHTML('beforebegin',  '<iframe id="iframe"></iframe>')
  
 setTimeout(() => {
 const el = document.querySelector('#iframe')
  const doc = el.contentDocument
  
  doc.body.innerHTML = 'Something'

result.innerHTML = [
      el === document.querySelector('#iframe'),
      doc === document.querySelector('#iframe').contentDocument, 
    ].join(',')
  }, 0)
}

const btn = document.querySelector('button')
btn.addEventListener('click', haha)

Изменено cor-el

more options

Выбранное решение

@cor-el Thanks. Please have a look at this issue: https://bugzilla.mozilla.org/show_bug.cgi?id=543435

If your PC is a little bit slow, you will see the iframe show content first, then changed to blank.