In my Blazor project, I want to invoke a Javascript method, from within C#. The JS method takes a DragEvent as a parameter, but it doesn't seem as if JavaScripts event can accept DragEventArgs from Microsoft.AspNetCore.Components.Web as a suitable type.
My C# Code-behind:
[Inject]
public IJSRuntime JSRuntime { get; set; }
private async Task HandleDragStart(DragEventArgs e)
{
await JSRuntime.InvokeVoidAsync("drag", e);
}
My razor file:
<div draggable="true"
@ondragstart="@(e => HandleDragStart(e))"> Drag me </div >
My Javascript Method:
function drag(event) {
let clonedDragText = event.target.cloneNode(true);
clonedDragText.innerText = text;
event.target.after(clonedDragText)
event.dataTransfer.setDragImage(clonedDragText, 0, 0);
setTimeout(() => clonedDragText.remove(), 1);
}
When invoking drag(event) I get error:
Cannot read property 'cloneNode' of undefined