@whitesev/domutils 1.2.0 → 1.3.0
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.amd.js +155 -115
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +155 -115
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +155 -115
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +155 -115
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +155 -115
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +155 -115
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/DOMUtils.d.ts +3 -3
- package/dist/types/src/DOMUtilsCommonUtils.d.ts +2 -0
- package/dist/types/src/DOMUtilsEvent.d.ts +4 -2
- package/dist/types/src/WindowApi.d.ts +22 -0
- package/package.json +1 -1
- package/src/DOMUtils.ts +152 -66
- package/src/DOMUtilsCommonUtils.ts +9 -5
- package/src/DOMUtilsEvent.ts +44 -22
- package/src/WindowApi.ts +44 -0
- package/dist/types/src/DOMUtilsCore.d.ts +0 -15
- package/src/DOMUtilsCore.ts +0 -45
package/dist/index.umd.js
CHANGED
|
@@ -4,43 +4,12 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMUtils = factory());
|
|
5
5
|
})(this, (function () { 'use strict';
|
|
6
6
|
|
|
7
|
-
const DOMUtilsCoreDefaultEnv = {
|
|
8
|
-
document: document,
|
|
9
|
-
window: window,
|
|
10
|
-
globalThis: globalThis,
|
|
11
|
-
self: self,
|
|
12
|
-
top: top,
|
|
13
|
-
};
|
|
14
|
-
const DOMUtilsCoreEnv = {
|
|
15
|
-
document: document,
|
|
16
|
-
window: window,
|
|
17
|
-
globalThis: globalThis,
|
|
18
|
-
self: self,
|
|
19
|
-
top: top,
|
|
20
|
-
};
|
|
21
|
-
const DOMUtilsCore = {
|
|
22
|
-
init(option) {
|
|
23
|
-
if (!option) {
|
|
24
|
-
option = Object.assign({}, DOMUtilsCoreDefaultEnv);
|
|
25
|
-
}
|
|
26
|
-
Object.assign(DOMUtilsCoreEnv, option);
|
|
27
|
-
},
|
|
28
|
-
get document() {
|
|
29
|
-
return DOMUtilsCoreEnv.document;
|
|
30
|
-
},
|
|
31
|
-
get window() {
|
|
32
|
-
return DOMUtilsCoreEnv.window;
|
|
33
|
-
},
|
|
34
|
-
get globalThis() {
|
|
35
|
-
return DOMUtilsCoreEnv.globalThis;
|
|
36
|
-
},
|
|
37
|
-
get self() {
|
|
38
|
-
return DOMUtilsCoreEnv.self;
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
|
|
42
7
|
/** 通用工具类 */
|
|
43
8
|
const DOMUtilsCommonUtils = {
|
|
9
|
+
windowApi: {
|
|
10
|
+
window: window,
|
|
11
|
+
document: document,
|
|
12
|
+
},
|
|
44
13
|
/**
|
|
45
14
|
* 判断元素是否已显示或已连接
|
|
46
15
|
* @param element
|
|
@@ -55,7 +24,7 @@
|
|
|
55
24
|
showElement(element) {
|
|
56
25
|
let dupNode = element.cloneNode(true);
|
|
57
26
|
dupNode.setAttribute("style", "visibility: hidden !important;display:block !important;");
|
|
58
|
-
|
|
27
|
+
this.windowApi.document.documentElement.appendChild(dupNode);
|
|
59
28
|
return {
|
|
60
29
|
/**
|
|
61
30
|
* 恢复修改的style
|
|
@@ -112,13 +81,13 @@
|
|
|
112
81
|
if (target === self) {
|
|
113
82
|
return true;
|
|
114
83
|
}
|
|
115
|
-
if (target ===
|
|
84
|
+
if (target === globalThis) {
|
|
116
85
|
return true;
|
|
117
86
|
}
|
|
118
|
-
if (target ===
|
|
87
|
+
if (target === window) {
|
|
119
88
|
return true;
|
|
120
89
|
}
|
|
121
|
-
if (target ===
|
|
90
|
+
if (target === self) {
|
|
122
91
|
return true;
|
|
123
92
|
}
|
|
124
93
|
if (typeof unsafeWindow !== "undefined" && target === unsafeWindow) {
|
|
@@ -156,7 +125,45 @@
|
|
|
156
125
|
},
|
|
157
126
|
};
|
|
158
127
|
|
|
128
|
+
class WindowApi {
|
|
129
|
+
/** 默认的配置 */
|
|
130
|
+
defaultApi = {
|
|
131
|
+
document: document,
|
|
132
|
+
window: window,
|
|
133
|
+
globalThis: globalThis,
|
|
134
|
+
self: self,
|
|
135
|
+
top: top,
|
|
136
|
+
};
|
|
137
|
+
/** 使用的配置 */
|
|
138
|
+
api;
|
|
139
|
+
constructor(option) {
|
|
140
|
+
if (!option) {
|
|
141
|
+
option = Object.assign({}, this.defaultApi);
|
|
142
|
+
}
|
|
143
|
+
this.api = Object.assign({}, option);
|
|
144
|
+
}
|
|
145
|
+
get document() {
|
|
146
|
+
return this.api.document;
|
|
147
|
+
}
|
|
148
|
+
get window() {
|
|
149
|
+
return this.api.window;
|
|
150
|
+
}
|
|
151
|
+
get globalThis() {
|
|
152
|
+
return this.api.globalThis;
|
|
153
|
+
}
|
|
154
|
+
get self() {
|
|
155
|
+
return this.api.self;
|
|
156
|
+
}
|
|
157
|
+
get top() {
|
|
158
|
+
return this.api.top;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
159
162
|
class DOMUtilsEvent {
|
|
163
|
+
windowApi;
|
|
164
|
+
constructor(windowApiOption) {
|
|
165
|
+
this.windowApi = new WindowApi(windowApiOption);
|
|
166
|
+
}
|
|
160
167
|
on(element, eventType, selector, callback, option) {
|
|
161
168
|
/**
|
|
162
169
|
* 获取option配置
|
|
@@ -187,7 +194,7 @@
|
|
|
187
194
|
let DOMUtilsContext = this;
|
|
188
195
|
let args = arguments;
|
|
189
196
|
if (typeof element === "string") {
|
|
190
|
-
element =
|
|
197
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
191
198
|
}
|
|
192
199
|
if (element == null) {
|
|
193
200
|
return;
|
|
@@ -238,7 +245,7 @@
|
|
|
238
245
|
if (_selector_) {
|
|
239
246
|
/* 存在自定义子元素选择器 */
|
|
240
247
|
let totalParent = DOMUtilsCommonUtils.isWin(elementItem)
|
|
241
|
-
?
|
|
248
|
+
? DOMUtilsContext.windowApi.document.documentElement
|
|
242
249
|
: elementItem;
|
|
243
250
|
if (target.matches(_selector_)) {
|
|
244
251
|
/* 当前目标可以被selector所匹配到 */
|
|
@@ -302,9 +309,10 @@
|
|
|
302
309
|
}
|
|
303
310
|
return option;
|
|
304
311
|
}
|
|
312
|
+
let DOMUtilsContext = this;
|
|
305
313
|
let args = arguments;
|
|
306
314
|
if (typeof element === "string") {
|
|
307
|
-
element =
|
|
315
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
308
316
|
}
|
|
309
317
|
if (element == null) {
|
|
310
318
|
return;
|
|
@@ -387,8 +395,9 @@
|
|
|
387
395
|
* @param eventType (可选)需要取消监听的事件
|
|
388
396
|
*/
|
|
389
397
|
offAll(element, eventType) {
|
|
398
|
+
let DOMUtilsContext = this;
|
|
390
399
|
if (typeof element === "string") {
|
|
391
|
-
element =
|
|
400
|
+
element = DOMUtilsContext.windowApi.document.querySelectorAll(element);
|
|
392
401
|
}
|
|
393
402
|
if (element == null) {
|
|
394
403
|
return;
|
|
@@ -443,14 +452,16 @@
|
|
|
443
452
|
if (typeof callback !== "function") {
|
|
444
453
|
return;
|
|
445
454
|
}
|
|
455
|
+
let DOMUtilsContext = this;
|
|
446
456
|
/**
|
|
447
457
|
* 检测文档是否加载完毕
|
|
448
458
|
*/
|
|
449
459
|
function checkDOMReadyState() {
|
|
450
460
|
try {
|
|
451
|
-
if (
|
|
452
|
-
(
|
|
453
|
-
!
|
|
461
|
+
if (DOMUtilsContext.windowApi.document.readyState === "complete" ||
|
|
462
|
+
(DOMUtilsContext.windowApi.document.readyState !== "loading" &&
|
|
463
|
+
!DOMUtilsContext.windowApi.document.documentElement
|
|
464
|
+
.doScroll)) {
|
|
454
465
|
return true;
|
|
455
466
|
}
|
|
456
467
|
else {
|
|
@@ -470,12 +481,12 @@
|
|
|
470
481
|
}
|
|
471
482
|
let targetList = [
|
|
472
483
|
{
|
|
473
|
-
target:
|
|
484
|
+
target: DOMUtilsContext.windowApi.document,
|
|
474
485
|
eventType: "DOMContentLoaded",
|
|
475
486
|
callback: completed,
|
|
476
487
|
},
|
|
477
488
|
{
|
|
478
|
-
target:
|
|
489
|
+
target: DOMUtilsContext.windowApi.window,
|
|
479
490
|
eventType: "load",
|
|
480
491
|
callback: completed,
|
|
481
492
|
},
|
|
@@ -522,8 +533,9 @@
|
|
|
522
533
|
* DOMUtils.trigger("a.xx",["click","tap","hover"])
|
|
523
534
|
*/
|
|
524
535
|
trigger(element, eventType, details, useDispatchToTriggerEvent = true) {
|
|
536
|
+
let DOMUtilsContext = this;
|
|
525
537
|
if (typeof element === "string") {
|
|
526
|
-
element =
|
|
538
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
527
539
|
}
|
|
528
540
|
if (element == null) {
|
|
529
541
|
return;
|
|
@@ -587,7 +599,7 @@
|
|
|
587
599
|
click(element, handler, details, useDispatchToTriggerEvent) {
|
|
588
600
|
let DOMUtilsContext = this;
|
|
589
601
|
if (typeof element === "string") {
|
|
590
|
-
element =
|
|
602
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
591
603
|
}
|
|
592
604
|
if (element == null) {
|
|
593
605
|
return;
|
|
@@ -616,7 +628,7 @@
|
|
|
616
628
|
blur(element, handler, details, useDispatchToTriggerEvent) {
|
|
617
629
|
let DOMUtilsContext = this;
|
|
618
630
|
if (typeof element === "string") {
|
|
619
|
-
element =
|
|
631
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
620
632
|
}
|
|
621
633
|
if (element == null) {
|
|
622
634
|
return;
|
|
@@ -645,7 +657,7 @@
|
|
|
645
657
|
focus(element, handler, details, useDispatchToTriggerEvent) {
|
|
646
658
|
let DOMUtilsContext = this;
|
|
647
659
|
if (typeof element === "string") {
|
|
648
|
-
element =
|
|
660
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
649
661
|
}
|
|
650
662
|
if (element == null) {
|
|
651
663
|
return;
|
|
@@ -674,7 +686,7 @@
|
|
|
674
686
|
hover(element, handler, option) {
|
|
675
687
|
let DOMUtilsContext = this;
|
|
676
688
|
if (typeof element === "string") {
|
|
677
|
-
element =
|
|
689
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
678
690
|
}
|
|
679
691
|
if (element == null) {
|
|
680
692
|
return;
|
|
@@ -703,7 +715,7 @@
|
|
|
703
715
|
return;
|
|
704
716
|
}
|
|
705
717
|
if (typeof target === "string") {
|
|
706
|
-
target =
|
|
718
|
+
target = DOMUtilsContext.windowApi.document.querySelector(target);
|
|
707
719
|
}
|
|
708
720
|
DOMUtilsContext.on(target, "keyup", null, handler, option);
|
|
709
721
|
}
|
|
@@ -728,7 +740,7 @@
|
|
|
728
740
|
return;
|
|
729
741
|
}
|
|
730
742
|
if (typeof target === "string") {
|
|
731
|
-
target =
|
|
743
|
+
target = DOMUtilsContext.windowApi.document.querySelector(target);
|
|
732
744
|
}
|
|
733
745
|
DOMUtilsContext.on(target, "keydown", null, handler, option);
|
|
734
746
|
}
|
|
@@ -753,7 +765,7 @@
|
|
|
753
765
|
return;
|
|
754
766
|
}
|
|
755
767
|
if (typeof target === "string") {
|
|
756
|
-
target =
|
|
768
|
+
target = DOMUtilsContext.windowApi.document.querySelector(target);
|
|
757
769
|
}
|
|
758
770
|
DOMUtilsContext.on(target, "keypress", null, handler, option);
|
|
759
771
|
}
|
|
@@ -761,14 +773,14 @@
|
|
|
761
773
|
|
|
762
774
|
class DOMUtils extends DOMUtilsEvent {
|
|
763
775
|
constructor(option) {
|
|
764
|
-
|
|
765
|
-
super();
|
|
776
|
+
super(option);
|
|
766
777
|
}
|
|
767
778
|
/** 版本号 */
|
|
768
|
-
version = "2024.
|
|
779
|
+
version = "2024.7.24";
|
|
769
780
|
attr(element, attrName, attrValue) {
|
|
781
|
+
let DOMUtilsContext = this;
|
|
770
782
|
if (typeof element === "string") {
|
|
771
|
-
element =
|
|
783
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
772
784
|
}
|
|
773
785
|
if (element == null) {
|
|
774
786
|
return;
|
|
@@ -805,7 +817,8 @@
|
|
|
805
817
|
property,
|
|
806
818
|
/** 自定义属性 */
|
|
807
819
|
attributes) {
|
|
808
|
-
let
|
|
820
|
+
let DOMUtilsContext = this;
|
|
821
|
+
let tempElement = DOMUtilsContext.windowApi.document.createElement(tagName);
|
|
809
822
|
if (typeof property === "string") {
|
|
810
823
|
tempElement.innerHTML = property;
|
|
811
824
|
return tempElement;
|
|
@@ -835,6 +848,7 @@
|
|
|
835
848
|
return tempElement;
|
|
836
849
|
}
|
|
837
850
|
css(element, property, value) {
|
|
851
|
+
let DOMUtilsContext = this;
|
|
838
852
|
/**
|
|
839
853
|
* 把纯数字没有px的加上
|
|
840
854
|
*/
|
|
@@ -859,7 +873,7 @@
|
|
|
859
873
|
return propertyValue;
|
|
860
874
|
}
|
|
861
875
|
if (typeof element === "string") {
|
|
862
|
-
element =
|
|
876
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
863
877
|
}
|
|
864
878
|
if (element == null) {
|
|
865
879
|
return;
|
|
@@ -892,8 +906,9 @@
|
|
|
892
906
|
}
|
|
893
907
|
}
|
|
894
908
|
text(element, text) {
|
|
909
|
+
let DOMUtilsContext = this;
|
|
895
910
|
if (typeof element === "string") {
|
|
896
|
-
element =
|
|
911
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
897
912
|
}
|
|
898
913
|
if (element == null) {
|
|
899
914
|
return;
|
|
@@ -914,8 +929,9 @@
|
|
|
914
929
|
}
|
|
915
930
|
}
|
|
916
931
|
html(element, html) {
|
|
932
|
+
let DOMUtilsContext = this;
|
|
917
933
|
if (typeof element === "string") {
|
|
918
|
-
element =
|
|
934
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
919
935
|
}
|
|
920
936
|
if (element == null) {
|
|
921
937
|
return;
|
|
@@ -968,8 +984,9 @@
|
|
|
968
984
|
};
|
|
969
985
|
}
|
|
970
986
|
val(element, value) {
|
|
987
|
+
let DOMUtilsContext = this;
|
|
971
988
|
if (typeof element === "string") {
|
|
972
|
-
element =
|
|
989
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
973
990
|
}
|
|
974
991
|
if (element == null) {
|
|
975
992
|
return;
|
|
@@ -994,11 +1011,12 @@
|
|
|
994
1011
|
}
|
|
995
1012
|
}
|
|
996
1013
|
prop(element, propName, propValue) {
|
|
1014
|
+
let DOMUtilsContext = this;
|
|
997
1015
|
if (element == null) {
|
|
998
1016
|
return;
|
|
999
1017
|
}
|
|
1000
1018
|
if (typeof element === "string") {
|
|
1001
|
-
element =
|
|
1019
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1002
1020
|
}
|
|
1003
1021
|
if (propValue == null) {
|
|
1004
1022
|
return element[propName];
|
|
@@ -1017,8 +1035,9 @@
|
|
|
1017
1035
|
* DOMUtils.removeAttr("a.xx","data-value")
|
|
1018
1036
|
* */
|
|
1019
1037
|
removeAttr(element, attrName) {
|
|
1038
|
+
let DOMUtilsContext = this;
|
|
1020
1039
|
if (typeof element === "string") {
|
|
1021
|
-
element =
|
|
1040
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1022
1041
|
}
|
|
1023
1042
|
if (element == null) {
|
|
1024
1043
|
return;
|
|
@@ -1035,8 +1054,9 @@
|
|
|
1035
1054
|
* DOMUtils.removeClass("a.xx","xx")
|
|
1036
1055
|
*/
|
|
1037
1056
|
removeClass(element, className) {
|
|
1057
|
+
let DOMUtilsContext = this;
|
|
1038
1058
|
if (typeof element === "string") {
|
|
1039
|
-
element =
|
|
1059
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1040
1060
|
}
|
|
1041
1061
|
if (element == null) {
|
|
1042
1062
|
return;
|
|
@@ -1056,8 +1076,9 @@
|
|
|
1056
1076
|
* DOMUtils.removeProp("a.xx","href")
|
|
1057
1077
|
* */
|
|
1058
1078
|
removeProp(element, propName) {
|
|
1079
|
+
let DOMUtilsContext = this;
|
|
1059
1080
|
if (typeof element === "string") {
|
|
1060
|
-
element =
|
|
1081
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1061
1082
|
}
|
|
1062
1083
|
if (element == null) {
|
|
1063
1084
|
return;
|
|
@@ -1076,7 +1097,7 @@
|
|
|
1076
1097
|
replaceWith(element, newElement) {
|
|
1077
1098
|
let DOMUtilsContext = this;
|
|
1078
1099
|
if (typeof element === "string") {
|
|
1079
|
-
element =
|
|
1100
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1080
1101
|
}
|
|
1081
1102
|
if (element == null) {
|
|
1082
1103
|
return;
|
|
@@ -1103,8 +1124,9 @@
|
|
|
1103
1124
|
* DOMUtils.addClass("a.xx","_vue_")
|
|
1104
1125
|
* */
|
|
1105
1126
|
addClass(element, className) {
|
|
1127
|
+
let DOMUtilsContext = this;
|
|
1106
1128
|
if (typeof element === "string") {
|
|
1107
|
-
element =
|
|
1129
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1108
1130
|
}
|
|
1109
1131
|
if (element == null) {
|
|
1110
1132
|
return;
|
|
@@ -1121,8 +1143,9 @@
|
|
|
1121
1143
|
* DOMUtils.append("a.xx","'<b class="xx"></b>")
|
|
1122
1144
|
* */
|
|
1123
1145
|
append(element, content) {
|
|
1146
|
+
let DOMUtilsContext = this;
|
|
1124
1147
|
if (typeof element === "string") {
|
|
1125
|
-
element =
|
|
1148
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1126
1149
|
}
|
|
1127
1150
|
if (element == null) {
|
|
1128
1151
|
return;
|
|
@@ -1137,7 +1160,7 @@
|
|
|
1137
1160
|
}
|
|
1138
1161
|
if (Array.isArray(content) || content instanceof NodeList) {
|
|
1139
1162
|
/* 数组 */
|
|
1140
|
-
let fragment =
|
|
1163
|
+
let fragment = DOMUtilsContext.windowApi.document.createDocumentFragment();
|
|
1141
1164
|
content.forEach((ele) => {
|
|
1142
1165
|
if (typeof ele === "string") {
|
|
1143
1166
|
ele = this.parseHTML(ele, true, false);
|
|
@@ -1160,8 +1183,9 @@
|
|
|
1160
1183
|
* DOMUtils.prepend("a.xx","'<b class="xx"></b>")
|
|
1161
1184
|
* */
|
|
1162
1185
|
prepend(element, content) {
|
|
1186
|
+
let DOMUtilsContext = this;
|
|
1163
1187
|
if (typeof element === "string") {
|
|
1164
|
-
element =
|
|
1188
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1165
1189
|
}
|
|
1166
1190
|
if (element == null) {
|
|
1167
1191
|
return;
|
|
@@ -1183,8 +1207,9 @@
|
|
|
1183
1207
|
* DOMUtils.after("a.xx","'<b class="xx"></b>")
|
|
1184
1208
|
* */
|
|
1185
1209
|
after(element, content) {
|
|
1210
|
+
let DOMUtilsContext = this;
|
|
1186
1211
|
if (typeof element === "string") {
|
|
1187
|
-
element =
|
|
1212
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1188
1213
|
}
|
|
1189
1214
|
if (element == null) {
|
|
1190
1215
|
return;
|
|
@@ -1206,8 +1231,9 @@
|
|
|
1206
1231
|
* DOMUtils.before("a.xx","'<b class="xx"></b>")
|
|
1207
1232
|
* */
|
|
1208
1233
|
before(element, content) {
|
|
1234
|
+
let DOMUtilsContext = this;
|
|
1209
1235
|
if (typeof element === "string") {
|
|
1210
|
-
element =
|
|
1236
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1211
1237
|
}
|
|
1212
1238
|
if (element == null) {
|
|
1213
1239
|
return;
|
|
@@ -1231,7 +1257,7 @@
|
|
|
1231
1257
|
remove(target) {
|
|
1232
1258
|
let DOMUtilsContext = this;
|
|
1233
1259
|
if (typeof target === "string") {
|
|
1234
|
-
target =
|
|
1260
|
+
target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
|
|
1235
1261
|
}
|
|
1236
1262
|
if (target == null) {
|
|
1237
1263
|
return;
|
|
@@ -1255,8 +1281,9 @@
|
|
|
1255
1281
|
* DOMUtils.empty("a.xx")
|
|
1256
1282
|
* */
|
|
1257
1283
|
empty(element) {
|
|
1284
|
+
let DOMUtilsContext = this;
|
|
1258
1285
|
if (typeof element === "string") {
|
|
1259
|
-
element =
|
|
1286
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1260
1287
|
}
|
|
1261
1288
|
if (element == null) {
|
|
1262
1289
|
return;
|
|
@@ -1273,8 +1300,9 @@
|
|
|
1273
1300
|
* > 0
|
|
1274
1301
|
*/
|
|
1275
1302
|
offset(element) {
|
|
1303
|
+
let DOMUtilsContext = this;
|
|
1276
1304
|
if (typeof element === "string") {
|
|
1277
|
-
element =
|
|
1305
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1278
1306
|
}
|
|
1279
1307
|
if (element == null) {
|
|
1280
1308
|
return;
|
|
@@ -1282,21 +1310,22 @@
|
|
|
1282
1310
|
let rect = element.getBoundingClientRect();
|
|
1283
1311
|
return {
|
|
1284
1312
|
/** y轴偏移 */
|
|
1285
|
-
top: rect.top +
|
|
1313
|
+
top: rect.top + DOMUtilsContext.windowApi.globalThis.scrollY,
|
|
1286
1314
|
/** x轴偏移 */
|
|
1287
|
-
left: rect.left +
|
|
1315
|
+
left: rect.left + DOMUtilsContext.windowApi.globalThis.scrollX,
|
|
1288
1316
|
};
|
|
1289
1317
|
}
|
|
1290
1318
|
width(element, isShow = false) {
|
|
1291
1319
|
let DOMUtilsContext = this;
|
|
1292
1320
|
if (typeof element === "string") {
|
|
1293
|
-
element =
|
|
1321
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1294
1322
|
}
|
|
1295
1323
|
if (element == null) {
|
|
1296
1324
|
return;
|
|
1297
1325
|
}
|
|
1298
1326
|
if (DOMUtilsCommonUtils.isWin(element)) {
|
|
1299
|
-
return
|
|
1327
|
+
return DOMUtilsContext.windowApi.window.document.documentElement
|
|
1328
|
+
.clientWidth;
|
|
1300
1329
|
}
|
|
1301
1330
|
if (element.nodeType === 9) {
|
|
1302
1331
|
/* Document文档节点 */
|
|
@@ -1339,10 +1368,11 @@
|
|
|
1339
1368
|
height(element, isShow = false) {
|
|
1340
1369
|
let DOMUtilsContext = this;
|
|
1341
1370
|
if (DOMUtilsCommonUtils.isWin(element)) {
|
|
1342
|
-
return
|
|
1371
|
+
return DOMUtilsContext.windowApi.window.document.documentElement
|
|
1372
|
+
.clientHeight;
|
|
1343
1373
|
}
|
|
1344
1374
|
if (typeof element === "string") {
|
|
1345
|
-
element =
|
|
1375
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1346
1376
|
}
|
|
1347
1377
|
if (element == null) {
|
|
1348
1378
|
// @ts-ignore
|
|
@@ -1389,10 +1419,10 @@
|
|
|
1389
1419
|
outerWidth(element, isShow = false) {
|
|
1390
1420
|
let DOMUtilsContext = this;
|
|
1391
1421
|
if (DOMUtilsCommonUtils.isWin(element)) {
|
|
1392
|
-
return
|
|
1422
|
+
return DOMUtilsContext.windowApi.window.innerWidth;
|
|
1393
1423
|
}
|
|
1394
1424
|
if (typeof element === "string") {
|
|
1395
|
-
element =
|
|
1425
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1396
1426
|
}
|
|
1397
1427
|
if (element == null) {
|
|
1398
1428
|
// @ts-ignore
|
|
@@ -1415,10 +1445,10 @@
|
|
|
1415
1445
|
outerHeight(element, isShow = false) {
|
|
1416
1446
|
let DOMUtilsContext = this;
|
|
1417
1447
|
if (DOMUtilsCommonUtils.isWin(element)) {
|
|
1418
|
-
return
|
|
1448
|
+
return DOMUtilsContext.windowApi.window.innerHeight;
|
|
1419
1449
|
}
|
|
1420
1450
|
if (typeof element === "string") {
|
|
1421
|
-
element =
|
|
1451
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1422
1452
|
}
|
|
1423
1453
|
if (element == null) {
|
|
1424
1454
|
// @ts-ignore
|
|
@@ -1451,8 +1481,9 @@
|
|
|
1451
1481
|
* })
|
|
1452
1482
|
*/
|
|
1453
1483
|
animate(element, styles, duration = 1000, callback = null) {
|
|
1484
|
+
let DOMUtilsContext = this;
|
|
1454
1485
|
if (typeof element === "string") {
|
|
1455
|
-
element =
|
|
1486
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1456
1487
|
}
|
|
1457
1488
|
if (element == null) {
|
|
1458
1489
|
return;
|
|
@@ -1503,15 +1534,16 @@
|
|
|
1503
1534
|
* DOMUtils.wrap(document.querySelector("a.xx"),"<div></div>")
|
|
1504
1535
|
*/
|
|
1505
1536
|
wrap(element, wrapperHTML) {
|
|
1537
|
+
let DOMUtilsContext = this;
|
|
1506
1538
|
if (typeof element === "string") {
|
|
1507
|
-
element =
|
|
1539
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1508
1540
|
}
|
|
1509
1541
|
if (element == null) {
|
|
1510
1542
|
return;
|
|
1511
1543
|
}
|
|
1512
1544
|
element = element;
|
|
1513
1545
|
// 创建一个新的div元素,并将wrapperHTML作为其innerHTML
|
|
1514
|
-
let wrapper =
|
|
1546
|
+
let wrapper = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1515
1547
|
wrapper.innerHTML = wrapperHTML;
|
|
1516
1548
|
let wrapperFirstChild = wrapper.firstChild;
|
|
1517
1549
|
// 将要包裹的元素插入目标元素前面
|
|
@@ -1520,8 +1552,9 @@
|
|
|
1520
1552
|
wrapperFirstChild.appendChild(element);
|
|
1521
1553
|
}
|
|
1522
1554
|
prev(element) {
|
|
1555
|
+
let DOMUtilsContext = this;
|
|
1523
1556
|
if (typeof element === "string") {
|
|
1524
|
-
element =
|
|
1557
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1525
1558
|
}
|
|
1526
1559
|
if (element == null) {
|
|
1527
1560
|
return;
|
|
@@ -1529,8 +1562,9 @@
|
|
|
1529
1562
|
return element.previousElementSibling;
|
|
1530
1563
|
}
|
|
1531
1564
|
next(element) {
|
|
1565
|
+
let DOMUtilsContext = this;
|
|
1532
1566
|
if (typeof element === "string") {
|
|
1533
|
-
element =
|
|
1567
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1534
1568
|
}
|
|
1535
1569
|
if (element == null) {
|
|
1536
1570
|
return;
|
|
@@ -1543,15 +1577,17 @@
|
|
|
1543
1577
|
* let DOMUtils = window.DOMUtils.noConflict()
|
|
1544
1578
|
*/
|
|
1545
1579
|
noConflict() {
|
|
1546
|
-
|
|
1580
|
+
let DOMUtilsContext = this;
|
|
1581
|
+
if (DOMUtilsContext.windowApi.window.DOMUtils) {
|
|
1547
1582
|
DOMUtilsCommonUtils.delete(window, "DOMUtils");
|
|
1548
1583
|
}
|
|
1549
|
-
|
|
1584
|
+
DOMUtilsContext.windowApi.window.DOMUtils = this;
|
|
1550
1585
|
return this;
|
|
1551
1586
|
}
|
|
1552
1587
|
siblings(element) {
|
|
1588
|
+
let DOMUtilsContext = this;
|
|
1553
1589
|
if (typeof element === "string") {
|
|
1554
|
-
element =
|
|
1590
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1555
1591
|
}
|
|
1556
1592
|
if (element == null) {
|
|
1557
1593
|
return;
|
|
@@ -1572,7 +1608,7 @@
|
|
|
1572
1608
|
parent(element) {
|
|
1573
1609
|
let DOMUtilsContext = this;
|
|
1574
1610
|
if (typeof element === "string") {
|
|
1575
|
-
element =
|
|
1611
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1576
1612
|
}
|
|
1577
1613
|
if (element == null) {
|
|
1578
1614
|
return;
|
|
@@ -1590,6 +1626,7 @@
|
|
|
1590
1626
|
}
|
|
1591
1627
|
}
|
|
1592
1628
|
parseHTML(html, useParser = false, isComplete = false) {
|
|
1629
|
+
let DOMUtilsContext = this;
|
|
1593
1630
|
function parseHTMLByDOMParser() {
|
|
1594
1631
|
let parser = new DOMParser();
|
|
1595
1632
|
if (isComplete) {
|
|
@@ -1600,7 +1637,7 @@
|
|
|
1600
1637
|
}
|
|
1601
1638
|
}
|
|
1602
1639
|
function parseHTMLByCreateDom() {
|
|
1603
|
-
let tempDIV =
|
|
1640
|
+
let tempDIV = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1604
1641
|
tempDIV.innerHTML = html;
|
|
1605
1642
|
if (isComplete) {
|
|
1606
1643
|
return tempDIV;
|
|
@@ -1631,7 +1668,7 @@
|
|
|
1631
1668
|
return;
|
|
1632
1669
|
}
|
|
1633
1670
|
if (typeof target === "string") {
|
|
1634
|
-
target =
|
|
1671
|
+
target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
|
|
1635
1672
|
}
|
|
1636
1673
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1637
1674
|
target = target;
|
|
@@ -1663,7 +1700,7 @@
|
|
|
1663
1700
|
return;
|
|
1664
1701
|
}
|
|
1665
1702
|
if (typeof target === "string") {
|
|
1666
|
-
target =
|
|
1703
|
+
target = DOMUtilsContext.windowApi.document.querySelectorAll(target);
|
|
1667
1704
|
}
|
|
1668
1705
|
if (target instanceof NodeList || target instanceof Array) {
|
|
1669
1706
|
target = target;
|
|
@@ -1698,8 +1735,9 @@
|
|
|
1698
1735
|
if (element == null) {
|
|
1699
1736
|
return;
|
|
1700
1737
|
}
|
|
1738
|
+
let DOMUtilsContext = this;
|
|
1701
1739
|
if (typeof element === "string") {
|
|
1702
|
-
element =
|
|
1740
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1703
1741
|
}
|
|
1704
1742
|
element = element;
|
|
1705
1743
|
element.style.opacity = "0";
|
|
@@ -1713,16 +1751,16 @@
|
|
|
1713
1751
|
element = element;
|
|
1714
1752
|
element.style.opacity = Math.min(progress / duration, 1).toString();
|
|
1715
1753
|
if (progress < duration) {
|
|
1716
|
-
|
|
1754
|
+
DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
|
|
1717
1755
|
}
|
|
1718
1756
|
else {
|
|
1719
1757
|
if (callback && typeof callback === "function") {
|
|
1720
1758
|
callback();
|
|
1721
1759
|
}
|
|
1722
|
-
|
|
1760
|
+
DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
|
|
1723
1761
|
}
|
|
1724
1762
|
}
|
|
1725
|
-
timer =
|
|
1763
|
+
timer = DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
|
|
1726
1764
|
}
|
|
1727
1765
|
/**
|
|
1728
1766
|
* 淡出元素
|
|
@@ -1739,11 +1777,12 @@
|
|
|
1739
1777
|
* })
|
|
1740
1778
|
*/
|
|
1741
1779
|
fadeOut(element, duration = 400, callback) {
|
|
1780
|
+
let DOMUtilsContext = this;
|
|
1742
1781
|
if (element == null) {
|
|
1743
1782
|
return;
|
|
1744
1783
|
}
|
|
1745
1784
|
if (typeof element === "string") {
|
|
1746
|
-
element =
|
|
1785
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1747
1786
|
}
|
|
1748
1787
|
element = element;
|
|
1749
1788
|
element.style.opacity = "1";
|
|
@@ -1756,17 +1795,17 @@
|
|
|
1756
1795
|
element = element;
|
|
1757
1796
|
element.style.opacity = Math.max(1 - progress / duration, 0).toString();
|
|
1758
1797
|
if (progress < duration) {
|
|
1759
|
-
|
|
1798
|
+
DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
|
|
1760
1799
|
}
|
|
1761
1800
|
else {
|
|
1762
1801
|
element.style.display = "none";
|
|
1763
1802
|
if (typeof callback === "function") {
|
|
1764
1803
|
callback();
|
|
1765
1804
|
}
|
|
1766
|
-
|
|
1805
|
+
DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
|
|
1767
1806
|
}
|
|
1768
1807
|
}
|
|
1769
|
-
timer =
|
|
1808
|
+
timer = DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
|
|
1770
1809
|
}
|
|
1771
1810
|
/**
|
|
1772
1811
|
* 切换元素的显示和隐藏状态
|
|
@@ -1779,7 +1818,7 @@
|
|
|
1779
1818
|
toggle(element) {
|
|
1780
1819
|
let DOMUtilsContext = this;
|
|
1781
1820
|
if (typeof element === "string") {
|
|
1782
|
-
element =
|
|
1821
|
+
element = DOMUtilsContext.windowApi.document.querySelector(element);
|
|
1783
1822
|
}
|
|
1784
1823
|
if (element == null) {
|
|
1785
1824
|
return;
|
|
@@ -1808,6 +1847,7 @@
|
|
|
1808
1847
|
* DOMUtils.getTextBoundingRect(document.querySelector("input"));
|
|
1809
1848
|
*/
|
|
1810
1849
|
getTextBoundingRect($input, selectionStart, selectionEnd) {
|
|
1850
|
+
let DOMUtilsContext = this;
|
|
1811
1851
|
// Basic parameter validation
|
|
1812
1852
|
if (!$input || !("value" in $input))
|
|
1813
1853
|
return $input;
|
|
@@ -1877,7 +1917,7 @@
|
|
|
1877
1917
|
}
|
|
1878
1918
|
// End of CSS variable checks
|
|
1879
1919
|
// 不能为空,不然获取不到高度
|
|
1880
|
-
let text = $input.value || "G", textLen = text.length, fakeClone =
|
|
1920
|
+
let text = $input.value || "G", textLen = text.length, fakeClone = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1881
1921
|
if (selectionStart > 0)
|
|
1882
1922
|
appendPart(0, selectionStart);
|
|
1883
1923
|
var fakeRange = appendPart(selectionStart, selectionEnd);
|
|
@@ -1891,7 +1931,7 @@
|
|
|
1891
1931
|
fakeClone.style.left = leftPos + "px";
|
|
1892
1932
|
fakeClone.style.width = width + "px";
|
|
1893
1933
|
fakeClone.style.height = height + "px";
|
|
1894
|
-
|
|
1934
|
+
DOMUtilsContext.windowApi.document.body.appendChild(fakeClone);
|
|
1895
1935
|
var returnValue = fakeRange.getBoundingClientRect(); //Get rect
|
|
1896
1936
|
fakeClone?.parentNode?.removeChild(fakeClone); //Remove temp
|
|
1897
1937
|
return returnValue;
|
|
@@ -1903,7 +1943,7 @@
|
|
|
1903
1943
|
* @returns
|
|
1904
1944
|
*/
|
|
1905
1945
|
function appendPart(start, end) {
|
|
1906
|
-
var span =
|
|
1946
|
+
var span = DOMUtilsContext.windowApi.document.createElement("span");
|
|
1907
1947
|
span.style.cssText = cssDefaultStyles; //Force styles to prevent unexpected results
|
|
1908
1948
|
span.textContent = text.substring(start, end);
|
|
1909
1949
|
fakeClone.appendChild(span);
|
|
@@ -1911,7 +1951,7 @@
|
|
|
1911
1951
|
}
|
|
1912
1952
|
// Computing offset position
|
|
1913
1953
|
function getInputOffset() {
|
|
1914
|
-
let body =
|
|
1954
|
+
let body = DOMUtilsContext.windowApi.document.body, win = DOMUtilsContext.windowApi.document.defaultView, docElem = DOMUtilsContext.windowApi.document.documentElement, $box = DOMUtilsContext.windowApi.document.createElement("div");
|
|
1915
1955
|
$box.style.paddingLeft = $box.style.width = "1px";
|
|
1916
1956
|
body.appendChild($box);
|
|
1917
1957
|
var isBoxModel = $box.offsetWidth == 2;
|
|
@@ -1934,7 +1974,7 @@
|
|
|
1934
1974
|
* @returns
|
|
1935
1975
|
*/
|
|
1936
1976
|
function getInputCSS(prop, isNumber) {
|
|
1937
|
-
var val =
|
|
1977
|
+
var val = DOMUtilsContext.windowApi.document
|
|
1938
1978
|
.defaultView.getComputedStyle($input, null)
|
|
1939
1979
|
.getPropertyValue(prop);
|
|
1940
1980
|
return isNumber ? parseFloat(val) : val;
|