Blazor 全屏
Blazor Full Screen
我是 Blazor 的新手,我正在尝试了解如何以全屏模式打开浏览器。我知道我可以执行 Javascript 中断和 运行 Javascript 但这违背了 Blazor 的目的。
如何在 Blazor 中进入和退出全屏模式。有没有办法做到这一点?
这是Javascript全屏模式的代码:
https://www.w3schools.com/jsref/met_element_requestfullscreen.asp
<script>
/* Get the documentElement (<html>) to display the page in fullscreen */
var elem = document.documentElement;
/* View in fullscreen */
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
/* Close fullscreen */
function closeFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) { /* Firefox */
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) { /* IE/Edge */
document.msExitFullscreen();
}
}
</script>
您可以使用 PWA 选项在 Blazor 中使用全屏模式:
然后你应该按右上角的这个安装按钮:
在此之后您可以运行它作为全屏模式的桌面应用程序:
已接受的答案仅适用于 Blazor WASM。正如评论中指出的那样,JS-interop 目前是 Blazor Server 的唯一选择。以下是基于 OP 提供的脚本的完整解决方案。
public static partial class IJSRuntimeExtensions
{
public static async Task<bool> OpenFullscreen(this IJSRuntime jsRuntime)
{
return await jsRuntime.InvokeAsync<bool>("openFullscreen");
}
public static async Task<bool> CloseFullscreen(this IJSRuntime jsRuntime)
{
return await jsRuntime.InvokeAsync<bool>("closeFullscreen");
}
}
function openFullscreen() {
// attempt to call the browser API
} else {
return false;
}
}
function closeFullscreen() {
// attempt to call the br
} else {
return false;
}
}
@inject IJSRuntime JS
@*...*@
private async Task HandleClick()
{
var succ = await JS.OpenFullscreen();
}
我是 Blazor 的新手,我正在尝试了解如何以全屏模式打开浏览器。我知道我可以执行 Javascript 中断和 运行 Javascript 但这违背了 Blazor 的目的。
如何在 Blazor 中进入和退出全屏模式。有没有办法做到这一点?
这是Javascript全屏模式的代码:
https://www.w3schools.com/jsref/met_element_requestfullscreen.asp
<script>
/* Get the documentElement (<html>) to display the page in fullscreen */
var elem = document.documentElement;
/* View in fullscreen */
function openFullscreen() {
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) { /* Firefox */
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) { /* IE/Edge */
elem.msRequestFullscreen();
}
}
/* Close fullscreen */
function closeFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) { /* Firefox */
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) { /* Chrome, Safari and Opera */
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) { /* IE/Edge */
document.msExitFullscreen();
}
}
</script>
您可以使用 PWA 选项在 Blazor 中使用全屏模式:
然后你应该按右上角的这个安装按钮:
在此之后您可以运行它作为全屏模式的桌面应用程序:
已接受的答案仅适用于 Blazor WASM。正如评论中指出的那样,JS-interop 目前是 Blazor Server 的唯一选择。以下是基于 OP 提供的脚本的完整解决方案。
public static partial class IJSRuntimeExtensions
{
public static async Task<bool> OpenFullscreen(this IJSRuntime jsRuntime)
{
return await jsRuntime.InvokeAsync<bool>("openFullscreen");
}
public static async Task<bool> CloseFullscreen(this IJSRuntime jsRuntime)
{
return await jsRuntime.InvokeAsync<bool>("closeFullscreen");
}
}
function openFullscreen() {
// attempt to call the browser API
} else {
return false;
}
}
function closeFullscreen() {
// attempt to call the br
} else {
return false;
}
}
@inject IJSRuntime JS
@*...*@
private async Task HandleClick()
{
var succ = await JS.OpenFullscreen();
}