@whitesev/domutils 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -763,6 +763,97 @@ class DOMUtilsEvent {
763
763
  }
764
764
  DOMUtilsContext.on(target, "keypress", null, handler, option);
765
765
  }
766
+ /**
767
+ * 监听某个元素键盘按键事件或window全局按键事件
768
+ * 按下有值的键时触发,按下Ctrl\Alt\Shift\Meta是无值键。按下先触发keydown事件,再触发keypress事件。
769
+ * @param target 需要监听的对象,可以是全局Window或者某个元素
770
+ * @param eventName 事件名,默认keypress
771
+ * @param callback 自己定义的回调事件,参数1为当前的key,参数2为组合按键,数组类型,包含ctrl、shift、alt和meta(win键或mac的cmd键)
772
+ * @param options 监听事件的配置
773
+ * @example
774
+ Utils.listenKeyboard(window,(keyName,keyValue,otherKey,event)=>{
775
+ if(keyName === "Enter"){
776
+ console.log("回车按键的值是:"+keyValue)
777
+ }
778
+ if(otherKey.indexOf("ctrl") && keyName === "Enter" ){
779
+ console.log("Ctrl和回车键");
780
+ }
781
+ })
782
+ * @example
783
+ 字母和数字键的键码值(keyCode)
784
+ 按键 键码 按键 键码 按键 键码 按键 键码
785
+ A 65 J 74 S 83 1 49
786
+ B 66 K 75 T 84 2 50
787
+ C 67 L 76 U 85 3 51
788
+ D 68 M 77 V 86 4 52
789
+ E 69 N 78 W 87 5 53
790
+ F 70 O 79 X 88 6 54
791
+ G 71 P 80 Y 89 7 55
792
+ H 72 Q 81 Z 90 8 56
793
+ I 73 R 82 0 48 9 57
794
+
795
+ 数字键盘上的键的键码值(keyCode)
796
+ 功能键键码值(keyCode)
797
+ 按键 键码 按键 键码 按键 键码 按键 键码
798
+ 0 96 8 104 F1 112 F7 118
799
+ 1 97 9 105 F2 113 F8 119
800
+ 2 98 * 106 F3 114 F9 120
801
+ 3 99 + 107 F4 115 F10 121
802
+ 4 100 Enter 108 F5 116 F11 122
803
+ 5 101 - 109 F6 117 F12 123
804
+ 6 102 . 110
805
+ 7 103 / 111
806
+
807
+ 控制键键码值(keyCode)
808
+ 按键 键码 按键 键码 按键 键码 按键 键码
809
+ BackSpace 8 Esc 27 → 39 -_ 189
810
+ Tab 9 Spacebar 32 ↓ 40 .> 190
811
+ Clear 12 Page Up 33 Insert 45 /? 191
812
+ Enter 13 Page Down 34 Delete 46 `~ 192
813
+ Shift 16 End 35 Num Lock 144 [{ 219
814
+ Control 17 Home 36 ;: 186 \| 220
815
+ Alt 18 ← 37 =+ 187 ]} 221
816
+ Cape Lock 20 ↑ 38 ,< 188 '" 222
817
+
818
+ 多媒体键码值(keyCode)
819
+ 按键 键码
820
+ 音量加 175
821
+ 音量减 174
822
+ 停止 179
823
+ 静音 173
824
+ 浏览器 172
825
+ 邮件 180
826
+ 搜索 170
827
+ 收藏 171
828
+ **/
829
+ listenKeyboard(target, eventName = "keypress", callback, options) {
830
+ let keyboardEventCallBack = function (event) {
831
+ let keyName = event.key || event.code;
832
+ let keyValue = event.charCode || event.keyCode || event.which;
833
+ let otherCodeList = [];
834
+ if (event.ctrlKey) {
835
+ otherCodeList.push("ctrl");
836
+ }
837
+ if (event.altKey) {
838
+ otherCodeList.push("alt");
839
+ }
840
+ if (event.metaKey) {
841
+ otherCodeList.push("meta");
842
+ }
843
+ if (event.shiftKey) {
844
+ otherCodeList.push("shift");
845
+ }
846
+ if (typeof callback === "function") {
847
+ callback(keyName, keyValue.toString(), otherCodeList, event);
848
+ }
849
+ };
850
+ this.on(target, eventName, keyboardEventCallBack, options);
851
+ return {
852
+ removeListen: () => {
853
+ this.off(target, eventName, keyboardEventCallBack, options);
854
+ },
855
+ };
856
+ }
766
857
  }
767
858
 
768
859
  class DOMUtils extends DOMUtilsEvent {
@@ -770,7 +861,7 @@ class DOMUtils extends DOMUtilsEvent {
770
861
  super(option);
771
862
  }
772
863
  /** 版本号 */
773
- version = "2024.7.24";
864
+ version = "2024.8.30";
774
865
  attr(element, attrName, attrValue) {
775
866
  let DOMUtilsContext = this;
776
867
  if (typeof element === "string") {