把键盘测试嵌进你的网站

一段 iframe 即可:访客按下按键,组件实时高亮并显示键名与 KeyboardEvent.code。 没有第三方脚本、没有外部请求,也不收集输入内容。

点击后按任意键 — 等待按键
键 · 键盘测试 完整测试

嵌入代码

<iframe src="https://www.key365.cn/embed.html"
        width="420" height="220"
        title="键盘测试 · 键"
        style="border:0;max-width:100%"
        loading="lazy"></iframe>

最小可用尺寸 300 × 180,推荐 420 × 220;组件按容器尺寸自适应,不出现滚动条。 深色主题可留空跟随系统,也可以由父页面指定(见下)。

为什么要点一下组件

浏览器只把键盘事件交给已聚焦的 iframe。访客没点组件时,按键全部归你的页面, 组件收不到 —— 这是浏览器安全策略,不是组件坏了。组件中央那枚「点击开始按键」 就是提示访客先点一下;点过之后(或页面失焦后重新点)就能正常记录与高亮。

如果你希望访客不点击也能记录,把父页面的按键转发进来即可:

<script>
function forward(e, down) {
  iframe.contentWindow.postMessage(
    { type: 'key', down: down, key: e.key, code: e.code },
    'https://www.key365.cn'
  );
}
document.addEventListener('keydown', function (e) { forward(e, true); });
document.addEventListener('keyup',   function (e) { forward(e, false); });
</script>

⚠️ 转发会拿到访客在你页面上的全部按键,页面里有输入框时不要直接开, 至少先过滤 e.target 是不是输入控件。

postMessage 接口

<script>
// 主题:light / dark
iframe.contentWindow.postMessage(
  { type: 'setTheme', theme: 'dark' },
  'https://www.key365.cn'
);

// 按键事件:只含键名与 code,不含输入文本
window.addEventListener('message', function (e) {
  if (e.data && e.data.source === 'kb-embed') console.log(e.data);
});
</script>

组件向外发送 { source: 'kb-embed', type: 'ready' | 'keydown' | 'keyup', key, code }。 统计请在你自己的页面侧监听,组件本身不加载任何统计脚本。