如何使用 class 库中的 IJSRuntime
How to use IJSRuntime from class library
假设有人想编写一个 NuGet 包,通过 JS 互操作在 Blazor 中写入 cookie。
IJSRuntime.InvokeAsync 调用一个方法,该方法必须由某个人定义 -- 在 DLL 范围之外。
有没有办法注入所需的脚本函数,以便库可以在不需要前端感知的情况下调用它?
我需要这样调用。这不是函数。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC"
我查看了 Blazored LocalStorage 的实现,本地存储是使用标准方法设置和读取的,这样就容易多了。
嗯...有“评估”功能!
这有效。
await jsRuntime.InvokeVoidAsync("eval", "document.cookie = ''");
但是,必须小心转义参数。
不过,对于复杂的库来说,这不是一个可扩展性很强的策略。第 3 方库要求您添加对其 .js 文件的引用。
假设有人想编写一个 NuGet 包,通过 JS 互操作在 Blazor 中写入 cookie。
IJSRuntime.InvokeAsync 调用一个方法,该方法必须由某个人定义 -- 在 DLL 范围之外。
有没有办法注入所需的脚本函数,以便库可以在不需要前端感知的情况下调用它?
我需要这样调用。这不是函数。
document.cookie = "cookiename=cookievalue; expires= Thu, 21 Aug 2014 20:00:00 UTC"
我查看了 Blazored LocalStorage 的实现,本地存储是使用标准方法设置和读取的,这样就容易多了。
嗯...有“评估”功能!
这有效。
await jsRuntime.InvokeVoidAsync("eval", "document.cookie = ''");
但是,必须小心转义参数。
不过,对于复杂的库来说,这不是一个可扩展性很强的策略。第 3 方库要求您添加对其 .js 文件的引用。