我知道有很多javascript插件和库可让用户选择表情符号进行文本输入,但是Windows和Mac已经具有本机表情符号选择器(? Win.或CTRL?Space),当用户单击时,是否可以打开这些本机表情符号选择器?一个文本字段,而不是在我的网站上安装插件?
我已经尝试模拟按钮按键,但是根本没有用。
简短的答案是没有。
为了从javascript访问任何操作系统功能,您需要相应的浏览器API来支持。
AFAIK,没有为此的API。有一个讨论,在这里提示添加<input emoji />为标准,但似乎没有获得牵引力。
编辑:以下是我的原始答案,已修改。意见指出,我完全同意该问题的错误方面。
但是,OP显然对您可以在JavaScript中利用浏览器功能做什么有一些错误的想法。因此,我认为仍然值得澄清。
您无法从js发送任意模拟的键盘事件,并希望操作系统能够响应。可能的话,这将是浏览器严重的安全问题。想象一下,打开一个网站,它将向您的操作系统触发一系列键盘事件,并擦除您的桌面(通过快捷键完全可行)。
您需要了解浏览器内部的运行时环境基本上与本机OS隔离。您的JavaScript可以访问的任何操作系统功能都完全由浏览器供应商决定。出于安全原因,他们在做出这些决定时非常谨慎。
另外,请区分“浏览器可以做什么”和“浏览器允许您在js中做什么”。看到Chrome具有“表情符号和符号”上下文菜单项,并不一定意味着它决定授予您相同的JS功能。
为了进一步阐明为什么模拟键盘事件与本地键盘事件根本不同,我在此处提供了一个图表。蓝色箭头是模拟键盘事件的流向。它可以到达的最远的地方是浏览器的内部事件总线。它从来没有机会进入OS事件总线,因此无法通知本机表情符号选择器。

| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |