如何从类库使用IJSRuntime

问题描述

假设某人想编写一个通过JS interop在Blazor中编写cookie的NuGet程序包。

IJSRuntime.InvokeAsync调用一个方法,并且必须在DLL范围之外的某个人定义该方法

是否有一种方法可以注入所需的脚本功能,以便库可以在不了解前端的情况下调用它?

我需要打这样的电话。这不是功能

document.cookie = "cookiename=cookievalue; expires= Thu,21 Aug 2014 20:00:00 UTC"

我研究了blazored LocalStorage的实现,并使用标准方法设置和读取了localstorage,从而使操作变得更加容易。

解决方法

好吧……有“评估”功能!

这有效。

await jsRuntime.InvokeVoidAsync("eval","document.cookie = ''");

但是,在转义参数时必须要小心。

对于复杂的库来说,这不是一个非常可扩展的策略。相反,第三方库要求您添加对其.js文件的引用。