我试图在javascript中获取一些html元素位置,并将其传递回C#,但我得到了错误:"System"的序列化和反序列化。不支持"类型"实例。
Blazor:
double[] jsResult = await _jsRuntime.InvokeAsync<double[]>("getBottomOffset", _element);
double bottomOffset = jsResult[0];
double height = jsResult[1];
_resultsStyle = Options.Count * ResultHeight < bottomOffset ? $"top: 0; left: 0; " : $"bottom: -{height}px; left: 0;";
JS:
function getBottomOffset(el) {
const rect = el.getBoundingClientRect();
return [(window.innerHeight - rect.bottom), rect.height];
}
尝试使用此
public class data
{
public double bottomOffset { get; set; }
public double height { get; set; }
}
调用javascript函数
data obj = await _jsRuntime.InvokeAsync<data>("getBottomOffset", _element);
您的javascript函数
function getBottomOffset(el) {
const rect = el.getBoundingClientRect();
return { bottomOffset: (window.innerHeight - rect.bottom), height: rect.height };
}