是什么原因导致“错误:Microsoft.JSInterop.JSException:找不到'plotlyInterop.newPlot'('plotlyInterop'未定义)。”?

问题描述 投票:0回答:2

我将 Plotly Blazor 与服务器端 Blazor 结合使用。当我使用 JS Interop 打开包含 Plotly 图形的新窗口时:

JSRuntime.InvokeVoidAsync("open", System.Threading.CancellationToken.None, $"/chart/{b}/{(int)readingType}", "_blank");

我收到错误:

Error: Microsoft.JSInterop.JSException: Could not find 'plotlyInterop.newPlot' ('plotlyInterop' was undefined).
Error: Could not find 'plotlyInterop.newPlot' ('plotlyInterop' was undefined).

据我了解,该页面缺少 javascript。我效仿了违反内容安全政策的行为,但这并没有什么结果。当我重新加载时,单击“刷新”按钮,页面将重新加载并正常工作。脚本已加载。

此问题仅发生在使用 IISExpress 作为 Visual Studio 2022 版本 17.3.6 的服务器的开发环境中。当我在 Raspberry Pi 上运行的 Nginx 上部署时,我没有收到此错误。

任何如何解决问题的建议将不胜感激。

javascript plotly blazor blazor-server-side iis-express
2个回答
0
投票

@Nb777 指出脚本尚未准备好。在我更改了

_Layout.cshtml
(.NET 6) 中的脚本顺序以便在
blazor.server.js
之前调用 Plotly 后,问题似乎消失了。

@RenderBody()
<script src="_content/Plotly.Blazor/plotly-latest.min.js" type="text/javascript"></script>
<script src="_content/Plotly.Blazor/plotly-interop.js" type="text/javascript"></script>
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
<script src="_framework/blazor.server.js"></script>

这与脚本加载的顺序或时间有关。


0
投票

我有同样的问题/错误消息,但使用的是 SweetAlerts2。 (Blazor,服务器端)

解决方案是在运行 JS 函数之前在测试浏览器(我的例子中是 Chrome)中进行简单的删除浏览数据清理。

© www.soinside.com 2019 - 2024. All rights reserved.