У меня есть этот код дословно, без внешних файлов:
<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-разрядная версия)