【发布时间】:2021-04-06 09:33:06
【问题描述】:
我在 blazor 服务器应用程序的 iframe 中加载不同的 htmlpage。要更改 iframe 的内容,我使用多个按钮。单击按钮时,会在 Iframe 中加载相应的 Html 页面(一个 Iframe - 不同的内容 - 通过单击按钮更改)。
如何检查点击后内容是否已完全加载?这样做的原因是,现在如果用户单击不同的按钮来快速地一个接一个地点击,Iframe 根本不会显示内容(只有底层网格的背景颜色和停滞)。 iframe 加载完成后能否取回 bool 值?
如果我从 Js 那里获得知识,我就不会进入 Blazor。我发现 js 是解决这个问题的帖子,但是。我不知道如何在我的 blazor 应用程序中正确实现它。我不能简单地将那个 js 复制到 hmtlpage 中。它必须在文件 _Host.cshtml 中,但如果我把它放在那里 ...document.querySelector('myIframe').addEventListener... 在 developmenttools 控制台中说 null 。谢谢你的帮助。如果它与 js 有关系,请如此友好,并尝试向我解释它,就像你对一个 nuub(我是什么 :) 一样。
<script type="text/javascript">
document.querySelector('myIframe').addEventListener("load", ev => {
console.log('iframe is completely loaded');
})
</script>
【问题讨论】:
-
经过多次不成功的尝试!甚至可以在 Blazor 中执行这个 js 行: document.getElementById('myFrameID').onload = function () { alert('iFrame Loaded') };我无法让该警报在 Blazor Server 中工作。它适用于“正常”的 index.html 页面。在对此进行了更多研究之后。有人知道 blazor 在什么时候可以接收 js 事件?这甚至在 MS DoT-List 上吗?有可能以某种方式-> 见 nuget github.com/EdCharbeneau/BlazorSize 但这对我来说是先进的。除了学习 Vue 之外,任何想法都应该学习 Vue :(
标签: javascript iframe blazor