You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IJSRuntime调用JavaScript方法报错:找不到encryptMessage

Blazor调用JS函数"encryptMessage"未定义问题解决办法

下面是针对该错误的排查和解决步骤:

1. 确保JS函数挂载到全局window对象

Blazor的IJSRuntime只能访问全局作用域的函数,需要把encryptMessage挂载到window上,确保Blazor能找到它:

<script>
    ... OTHER FUNCTIONS

    // 将函数挂载到全局window对象
    window.encryptMessage = function(message, key) {
        console.log("HERE")
    }
</script>

2. 调整脚本加载顺序

确保自定义脚本在Blazor框架脚本之前加载,避免Blazor初始化时脚本还未加载完成:

<!-- 先加载自定义脚本 -->
<script>
    window.encryptMessage = function(message, key) {
        console.log("HERE")
    }
</script>
<!-- 再加载Blazor核心脚本 -->
<script src="_framework/blazor.webassembly.js"></script>

3. 检查脚本加载状态

打开浏览器开发者工具(F12):

  • 切换到Network标签,确认自定义脚本是否成功加载(无404错误)
  • 切换到Console标签,检查是否有脚本语法错误,语法错误会导致函数无法正常定义

4. 验证IJSRuntime注入有效性

可以在组件生命周期方法中验证注入是否正常:

protected override async Task OnInitializedAsync()
{
    if (mJsRunTime != null)
    {
        await mJsRunTime.InvokeVoidAsync("console.log", "IJSRuntime注入正常");
    }
}

内容的提问来源于stack exchange,提问作者Ibanez1408

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:20:31