Polymer 制作一个聚合物组件,可以听到一页上的所有按键
聚合物1.0组件是否有一种方法可以注册页面上发生的所有按键,而不管焦点在哪里Polymer 制作一个聚合物组件,可以听到一页上的所有按键,polymer,polymer-1.0,Polymer,Polymer 1.0,聚合物1.0组件是否有一种方法可以注册页面上发生的所有按键,而不管焦点在哪里 在预组件世界中,我会钩住文档主体上的关键事件。什么是干净的、组件驱动的方法?我通过实现 我基本上只是将源代码读取到为该演示定义的组件,这 我在对原始问题的评论中提到的错误只是我固执地将keyEventTarget放在properties对象中,在我已经放在页面中的properties对象上方的一两个屏幕上,该对象优先 下面是一个非常简单的组件,它显示了它的作用: <dom-module id="x-compone
在预组件世界中,我会钩住文档主体上的关键事件。什么是干净的、组件驱动的方法?我通过实现 我基本上只是将源代码读取到为该演示定义的组件,这 我在对原始问题的评论中提到的错误只是我固执地将
keyEventTarget
放在properties
对象中,在我已经放在页面中的properties
对象上方的一两个屏幕上,该对象优先
下面是一个非常简单的组件,它显示了它的作用:
<dom-module id="x-component">
<template>
Type shift+a to see feedback.
<div id="feedback"></div>
</template>
</dom-module>
<script>
Polymer({
is: 'x-component',
behaviors: [Polymer.IronA11yKeysBehavior],
keyBindings: {
'shift+a': '_handleKey'
},
_handleKey: function(e) {
this.$['feedback'].innerHTML = this.$['feedback'].innerHTML + "<p>again</p>";
},
properties: {
keyEventTarget: {
type: Object,
value: function() {
return document.body;
}
}
}
});
</script>
键入shift+a以查看反馈。
聚合物({
是‘x分量’,
行为:[聚合物.IronA11yKeysBehavior],
键绑定:{
“shift+a”:“U handleKey”
},
_handleKey:功能(e){
this.$['feedback'].innerHTML=this.$['feedback'].innerHTML+“再次”;
},
特性:{
keyEventTarget:{
类型:对象,
值:函数(){
返回文档.body;
}
}
}
});
还有iron-a11y-keys组件。您仍然必须在document.body
上添加关键事件才能实现您所描述的功能。“iron-a11y-keys-behavior”的演示将document.body设置为keyEventTarget不幸的是,我正在尝试实现此功能,尽管尝试复制该演示,但我的元素只有它们自己作为目标。我可以在控制台中将目标更改为document.body,然后启动我的处理程序。太近了!啊,我真是疯了。知道了!