Blazor WASM 中的 window.print

JkA*_*bro 8 c# blazor .net-5 blazor-webassembly

我是 Blazor 的新手,我一直在尝试查找window.print()Blazor 中是否有任何等效项。我想知道是否有任何预先制作的组件/帮助程序,或者我是否需要从头开始创建一个?我已经搜索得足够多了,但找不到任何东西。

ola*_*ker 12

blazor 中没有等效项,但您应该考虑添加一个带有 window.print() 方法的 javascript 文件,在 index.html 中引用它并使用注入的 IJSRuntime 调用它。

参考index.html

<script src="js/script.js"></script>
Run Code Online (Sandbox Code Playgroud)

JavaScript 文件

function printInvoke() {
    window.print();
}
Run Code Online (Sandbox Code Playgroud)

组件中的示例


@page "/print"
@inject IJSRuntime Js

<h3>PrintTest</h3>

<button @onclick="Print"></button>

@code {
    private async Task Print()
    {
        await Js.InvokeVoidAsync("printInvoke");
    }
}

Run Code Online (Sandbox Code Playgroud)

  • 嘿,请注意,如果您将 javascript 函数命名为“print()”,您实际上会得到无限递归调用,因为它将“window.print()”覆盖为“print()”。不管怎样,很好的答案,它解决了我的问题。 (4认同)