Невозможно закрыть ссылку iframe в Reactjs - PullRequest
0 голосов
/ 09 апреля 2020

Я создал ссылку на iframe, которую я отправляю вызову API в качестве параметра. После получения ответа я хочу закрыть этот iframe, но когда я использую «iframe.close», он не закрывается.

    let refIframe = document.createElement('iframe');
    refIframe.setAttribute('id', 'refIframe');
    refIframe.setAttribute('src', 'www.google.com');
    refIframe.style.zIndex = '2';
    refIframe.style.display = 'block';
    refIframe.style.width = '30%';
    refIframe.style.height = '92vh';
    refIframe.style.margin = '2% 35%';
    document.body.after(refIframe, document.body);
    let iframe = document.getElementById('refIframe').contentWindow;
    checkout.params.windowRef = document.getElementById('refIframe').contentWindow;

После получения ответа от вызовов API я делаю следующее, чтобы закрыть ссылка на iframe.

    iframe.close();

, но при этом мой iframe не закрывается.

Может кто-нибудь подсказать мне, что я делаю неправильно, поэтому мой iframe не закрывается. Если будет предоставлен измененный код, мне будет очень полезно разобраться.

Пожалуйста, будет очень полезно, если кто-то скажет мне создать ссылку iframe без использования componentDidMount.

1 Ответ

0 голосов
/ 12 апреля 2020

Так как вы заявили, что ваша цель - удалить iframe из DOM Попробуйте следующее вместо iframe.close():

setTimeout(()=>{

  document.getElementById('refIframe').remove()

}, 2000)
//placed inside a timeout for demonstration purposes only... so you can see the iframe being removed from dom
<div>Element Before Iframe</div>
<iframe id="refIframe"></iframe>
<div>Element After Iframe</div>

Если вы хотите сохранить элемент <iframe>, но хотите, чтобы страница внутри iframe перестала быть «открытой», вы можете изменить * iframe. 1011 * атрибут должен быть чем-то другим (даже пустой строкой), таким образом «уходя» от текущей страницы в пределах iframe.

setTimeout(()=>{

  document.getElementById('refIframe').src = "" 
  //setting to empty string will put no webapge inside the iframe

},2000)
<iframe id="refIframe" src="https://wikipedia.org"></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...