Могу ли я открыть родной смайлик ОС на веб-странице? - программирование

Могу ли я открыть родной смайлик ОС на веб-странице?

Я знаю, что существует множество плагинов и библиотек javascript, позволяющих пользователям выбирать смайлики для ввода текста, но в Windows и Mac уже есть встроенные средства выбора смайликов (⊞ Win . или CTRL Space). для меня способ открыть эти родные средства выбора смайликов, когда пользователь щелкает текстовое поле вместо установки плагинов на моем веб-сайте?

Я уже пытался эмулировать нажатие кнопки, но это не сработало вообще.

4b9b3361

Ответ 1

Краткий ответ - нет.

Чтобы получить доступ к любой функции ОС из javascript, вам необходим соответствующий API браузера для поддержки.

AFAIK, для этого нет API. Там дискуссия здесь, которая предполагает добавление <input emoji/> стандарту, но, кажется, нет тяги не получил.


Изменить: ниже мой оригинальный ответ, пересмотренный. Комментарии указали, что я сосредоточился на неправильном аспекте вопроса, я полностью согласен.

Тем не менее, OP явно имеет неверное представление о том, что вы можете сделать в javascript, чтобы использовать возможности браузера. Поэтому я думаю, что это все еще стоит уточнить.

Вы не можете отправить произвольное эмулированное событие клавиатуры от js и надеетесь, что ОС ответит. Если бы это было возможно, это было бы серьезной проблемой безопасности в части браузера. Представьте, что вы открываете веб-сайт, и он запускает серию событий клавиатуры для вашей ОС и стирает ваш рабочий стол (это вполне возможно с помощью ярлыков).

Вы должны понимать, что среда выполнения в браузере в основном изолирована от встроенной ОС. Независимо от того, какая функция ОС доступна для вашего javascript, разработчики браузеров должны решать все. По соображениям безопасности они очень осторожны в принятии этих решений.

Кроме того, сделайте различие между "что может делать браузер" и "какой браузер позволяет вам делать в js". Видеть, что Chrome имеет пункт контекстного меню "Emoji & Symbols", не обязательно означает, что он решит предоставить вам такую же способность в js.

Чтобы уточнить, почему событие эмулируемой клавиатуры принципиально отличается от нативного, я привожу здесь график. Синяя стрелка показывает, как происходит эмуляция событий клавиатуры. Самое дальнее место, куда он может добраться - это внутренняя шина событий браузера. У него никогда не было возможности добраться до шины событий ОС, поэтому нет способа уведомить нативного сборщика смайликов. keyboard event flow