Iframe immediately recreated
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.
Kiválasztott megoldás
@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.
Válasz olvasása eredeti szövegkörnyezetben 👍 0Összes válasz (3)
Just created a bugzilla issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1634653
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)
Módosította: cor-el,
Kiválasztott megoldás
@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.