@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.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
- DOMUtilsCore.document.documentElement.appendChild(dupNode);
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 === DOMUtilsCore.globalThis) {
84
+ if (target === globalThis) {
116
85
  return true;
117
86
  }
118
- if (target === DOMUtilsCore.window) {
87
+ if (target === window) {
119
88
  return true;
120
89
  }
121
- if (target === DOMUtilsCore.self) {
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 = DOMUtilsCore.document.querySelectorAll(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
- ? DOMUtilsCore.document.documentElement
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 = DOMUtilsCore.document.querySelectorAll(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 = DOMUtilsCore.document.querySelectorAll(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 (DOMUtilsCore.document.readyState === "complete" ||
452
- (DOMUtilsCore.document.readyState !== "loading" &&
453
- !DOMUtilsCore.document.documentElement.doScroll)) {
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: DOMUtilsCore.document,
484
+ target: DOMUtilsContext.windowApi.document,
474
485
  eventType: "DOMContentLoaded",
475
486
  callback: completed,
476
487
  },
477
488
  {
478
- target: DOMUtilsCore.window,
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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
- DOMUtilsCore.init(option);
765
- super();
776
+ super(option);
766
777
  }
767
778
  /** 版本号 */
768
- version = "2024.6.21";
779
+ version = "2024.7.24";
769
780
  attr(element, attrName, attrValue) {
781
+ let DOMUtilsContext = this;
770
782
  if (typeof element === "string") {
771
- element = DOMUtilsCore.document.querySelector(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 tempElement = DOMUtilsCore.document.createElement(tagName);
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.createDocumentFragment();
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelectorAll(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 + DOMUtilsCore.globalThis.scrollY,
1313
+ top: rect.top + DOMUtilsContext.windowApi.globalThis.scrollY,
1286
1314
  /** x轴偏移 */
1287
- left: rect.left + DOMUtilsCore.globalThis.scrollX,
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 = DOMUtilsCore.document.querySelector(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 DOMUtilsCore.window.document.documentElement.clientWidth;
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 DOMUtilsCore.window.document.documentElement.clientHeight;
1371
+ return DOMUtilsContext.windowApi.window.document.documentElement
1372
+ .clientHeight;
1343
1373
  }
1344
1374
  if (typeof element === "string") {
1345
- element = DOMUtilsCore.document.querySelector(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 DOMUtilsCore.window.innerWidth;
1422
+ return DOMUtilsContext.windowApi.window.innerWidth;
1393
1423
  }
1394
1424
  if (typeof element === "string") {
1395
- element = DOMUtilsCore.document.querySelector(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 DOMUtilsCore.window.innerHeight;
1448
+ return DOMUtilsContext.windowApi.window.innerHeight;
1419
1449
  }
1420
1450
  if (typeof element === "string") {
1421
- element = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.createElement("div");
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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
- if (DOMUtilsCore.window.DOMUtils) {
1580
+ let DOMUtilsContext = this;
1581
+ if (DOMUtilsContext.windowApi.window.DOMUtils) {
1547
1582
  DOMUtilsCommonUtils.delete(window, "DOMUtils");
1548
1583
  }
1549
- DOMUtilsCore.window.DOMUtils = this;
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.createElement("div");
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 = DOMUtilsCore.document.querySelectorAll(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 = DOMUtilsCore.document.querySelectorAll(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 = DOMUtilsCore.document.querySelector(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
- DOMUtilsCore.window.requestAnimationFrame(step);
1754
+ DOMUtilsContext.windowApi.window.requestAnimationFrame(step);
1717
1755
  }
1718
1756
  else {
1719
1757
  if (callback && typeof callback === "function") {
1720
1758
  callback();
1721
1759
  }
1722
- DOMUtilsCore.window.cancelAnimationFrame(timer);
1760
+ DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
1723
1761
  }
1724
1762
  }
1725
- timer = DOMUtilsCore.window.requestAnimationFrame(step);
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 = DOMUtilsCore.document.querySelector(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
- DOMUtilsCore.window.requestAnimationFrame(step);
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
- DOMUtilsCore.window.cancelAnimationFrame(timer);
1805
+ DOMUtilsContext.windowApi.window.cancelAnimationFrame(timer);
1767
1806
  }
1768
1807
  }
1769
- timer = DOMUtilsCore.window.requestAnimationFrame(step);
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 = DOMUtilsCore.document.querySelector(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 = DOMUtilsCore.document.createElement("div");
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
- DOMUtilsCore.document.body.appendChild(fakeClone);
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 = DOMUtilsCore.document.createElement("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 = DOMUtilsCore.document.body, win = DOMUtilsCore.document.defaultView, docElem = DOMUtilsCore.document.documentElement, $box = DOMUtilsCore.document.createElement("div");
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 = DOMUtilsCore.document
1977
+ var val = DOMUtilsContext.windowApi.document
1938
1978
  .defaultView.getComputedStyle($input, null)
1939
1979
  .getPropertyValue(prop);
1940
1980
  return isNumber ? parseFloat(val) : val;