Как я могу вызвать функцию JavaScript в проекте Blazor PWA?Javascript

Форум по Javascript
Гость
Как я могу вызвать функцию JavaScript в проекте Blazor PWA?

Сообщение Гость »


Я пытаюсь использовать html-шаблон Прогрессивное веб-приложение в моем серверном проекте Blazor.

Последние 4 дня у меня возникли большие проблемы с этим, поскольку все меню и анимация шаблона реализованы с помощью JavaScript в одном файле custom.js > имеющий следующую структуру.


Изображение


В файле _Host я поместил соответствующее включение

Я заметил, что если я создаю компонент бритвы (из шаблона Menu_Settings) и помещаю его в файл _Host, он работает так, как ожидалось, если он помечен как статический.

Странные вещи происходят (на самом деле ничего), если я помещаю тот же компонент на страницу MainLayout.razor.

По этой причине я попытался использовать прием Javascript Runtime, чтобы сотворить чудо.

@inherits LayoutComponentBase @inject IJSRuntime JSRuntime Привет, мир @Тело @код{ частный IJSObjectReference js {get; набор; } защищенное переопределение асинхронной задачи OnAfterRenderAsync (bool firstRender) { если (первый рендер) { пытаться { js = await JSRuntime.InvokeAsync("import", "./scripts/custom.js"); await js.InvokeVoidAsync("init_template"); } поймать (Исключение ex) { //Logger.LogError($"Не удалось загрузить модуль JS. Ошибка: {ex}"); } } } } И теперь у меня есть две проблемы.
[*]Компонент по-прежнему отказывается работать (должно появиться всплывающее меню). [*]Я получаю сообщение об ошибке Не удалось найти «init_template» («init_template» не определено). при вызове InvokeAsync.
Я также пытался отредактировать файл custom.js таким же образом, но с той же ошибкой..


Изображение


Кстати, я также пробовал использовать Blazor WebAssembly с теми же проблемами.

Есть какие мысли?

Вернуться в «Javascript»