提问人:Aladin Ćemalović 提问时间:11/17/2023 更新时间:11/17/2023 访问量:53
为什么在调用 Blazor JSInterop 函数时收到“未定义”错误?
Why do I get an 'undefined' error when calling Blazor JSInterop function?
问:
我目前正在开发需要打印功能的 Blazor Server 应用。我想使用 Javascript 互操作在页面上打印某个元素/div。问题是,当我尝试通常应该在纯 JS 中工作的代码时,我收到一个错误,即函数未定义。
这是我保留在 _Host.cshtml 中的代码
<script type="text/javascript">
async function printDiv() {
var divContents = document.getElementById("toprint").innerHTML;
var a = window.open('', '', 'height=500, width=500');
a.document.open();
a.document.write('<html>');
a.document.write('<body > <br>');
a.document.write(divContents);
a.document.write('</body></html>');
a.document.close();
a.print();
}
</script>
这是调用 JS 代码的 C# 函数:
public async Task PrintTest() => await _js.InvokeVoidAsync("printDiv");
该元素如下所示:
<div id="toprint">
<div id="printdiv" class="print">
<BarcodeGenerator @ref="barcodegen" Code="@place" ElementId="barcode" FullWidth> </BarcodeGenerator>
</div>
</div>
这是我得到的例外:
答: 暂无答案
评论
a.document.write(divContents)
async