iframe не перезагружается после изменения атрибута src - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть этот код дословно, без внешних файлов:

<style>
    .version-selection-scroll-panel {
        width: 15%;
        height: 100%;
        overflow-y: scroll;
    }

    .flex-container {
        display: flex;
    }

    .flex-vertical-container {
        display: flex;
        flex-direction: column;
    }

    html, body {margin: 0; height: 100%; overflow: hidden}

</style>

<script>

  const asyncc =  window.__asyncc__ = {};

  asyncc.latestVersion = 'v/0.1.0';

  asyncc.changeIframe = (versionPath) => {
    let iframe = document.getElementsByClassName("main-iframe");
    if(!iframe){
      return alert('Could not find iframe on page.');
    }

    console.log('src:', versionPath);
    iframe.src = versionPath;

    console.log({iframe});
    // iframe.replaceWith(iframe);
    // iframe.location.reload();
    // iframe.contentWindow.location.reload();
  };


</script>

<div class="flex-container">

    <div class="version-selection-scroll-panel">
        <div class="flex-vertical-container">
            <button onclick="asyncc.changeIframe('v/0.1.0')">version 0.1.1</button>
            <button onclick="asyncc.changeIframe('v/0.1.2')">version 0.1.2</button>
            <button onclick="asyncc.changeIframe('v/0.1.3')">version 0.1.3</button>
        </div>
    </div>
    <div style="display: flex; flex-grow: 1">
        <iframe id="main-iframe" src="v/0.1.0" width="100%" height="100%"></iframe>
    </div>
</div>

при изменении атрибута iframe.src ничего не происходит.Я также попытался позвонить:

iframe.contentWindow.location.reload();

, но свойство contentWindow отсутствует.Я запускаю это на Chrome: версия 72.0.3626.109 (официальная сборка) (64-разрядная версия)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...