此问题可能是由于使用Blazor / JavaScript互操作性(JSInterop)与JS隔离模式时,无法在本地运行的JavaScript功能造成的。
以下是可能解决此问题的示例代码:
在C#代码中,添加以下JSInterop方法:
[DllImport ("javascript", EntryPoint = "eval")] public static extern object GlobalEval (string code);
public static void Eval (string code) { try { GlobalEval (code); } catch (Exception ex) { Console.WriteLine (ex.Message); } }
然后,在JS代码中,添加以下代码来防止与窗口隔离冲突:
window.globalEval = function (code) { eval (code); }
调用Eval方法,将JavaScript代码字符串传递给该方法来执行。
Eval ("window.globalEval('document.body.className = "test"')");
这将设置文档正文的类名为“test”。
注意:改善的效果取决于您要执行的JavaScript代码。上面提供的解决方案是“全局的”,因此可能会影响到其他JavaScript代码(如库)。
此外,请确保使用最新版本的Blazor和JavaScript进行测试。
上一篇:Blazorjsinterop问题。使用导入的js文件中的<script>标签失败。
下一篇:Blazor客户端+Keycloak错误:由于CORS策略被阻止:请求资源中没有'Access-Control-Allow-Origin'头部