Blazor (на стороне сервера) javascript interop: Javascript завершается ошибкой, потому что код должен запускаться по инициативе пользователя - PullRequest
1 голос
/ 16 октября 2019

Я сталкиваюсь с проблемой записи данных в буфер обмена с помощью сервера Blazor. Библиотека https://github.com/lgarron/clipboard-polyfill не может записать текст в буфер обмена после нажатия кнопки с помощью блейзора на стороне сервера под Firefox V69, но работает под Chrome V77.

С простой старой HTML-страницей JavaScript без блейзеразапись в буфер обмена работает в Firefox и Chrome.

Я предполагаю, что Firefox имеет требование безопасности, что манипуляции с буфером обмена должны происходить в коде, помеченном как «инициированный пользователем».

Поскольку блажор на стороне сервера переходит от инициируемого пользователем javascript к стороне сервера c # в javascript для события websocket, код JavaScript «copy to clipboard» больше не помечается как «инициируемый пользователем».

Есть ли официальный способ или способ взломать выполнение кода взаимодействия javascript с включенным флагом «инициируемый пользователем»?

Обновление: добавлен репозиторий для простого воспроизведения https://github.com/Henk7/BlazorJSUserInitiatedPermission

Обновление 2: Проблема: теперь отслеживается на https://github.com/aspnet/AspNetCore/issues/15109

...