该解决方案是使用Blazor WASM模板构建的。当窗口大小调整正常时,我可以显示窗口尺寸。
当窗口打开时,我看不到如何显示窗口尺寸。
我的HTML在.rarzor文件中。内容为:
@page "/termsAndConditions"
@inject IJSRuntime jsRuntime
<body class="text-center">
<span id="windowInnerWidth"></span>
<span id="windowInnerHeight"></span>
</body>
@code {
}
我的Javascript在一个.js文件中。该文件包含以下运行良好的代码:
//Display browser window dimensions as they change
window.addEventListener("resize", function () {
document.getElementById("windowInnerWidth").innerHTML = "Width of inner window is: " + window.innerWidth;
});
window.addEventListener("resize", function () {
document.getElementById("windowInnerHeight").innerHTML = "Height of inner window is: " + window.innerHeight;
});
当窗口第一次打开时,我尝试了许多显示窗口尺寸的方法,包括:
window.addEventListener("open", function () {
document.getElementById("windowInnerWidth").innerHTML = "Width of inner window is: " + window.innerWidth;
});
什么都不管用。有人能告诉我我做错了什么吗?
试试这个:
window.addEventListener("load", function () {
document.getElementById("windowInnerWidth").innerHTML = "Width of inner window is: " + window.innerWidth;
});
更新(基于您编辑的问题(
在.js文件中创建一个新函数,如下所示:
function windowLoaded() {
document.getElementById("windowInnerWidth").innerHTML = "Width of inner window is: " + window.innerWidth;
}
并将其添加到你的.rarzor文件中:
@code {
protected override Task OnAfterRenderAsync(bool firstRender)
{
jsRuntime.InvokeVoidAsync("windowLoaded");
return base.OnAfterRenderAsync(firstRender);
}
}