Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Iframe immediately recreated

  • 3 replies
  • 1 has this problem
  • 50 views
  • Last reply by 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.

Chosen solution

@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.

Read this answer in context 👍 0

All Replies (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)

Modified by cor-el

more options

Chosen Solution

@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.