@whitesev/domutils 1.9.2 → 1.9.4
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/README.md +58 -58
- package/dist/index.amd.js +53 -30
- package/dist/index.amd.js.map +1 -1
- package/dist/index.amd.min.js +1 -1
- package/dist/index.amd.min.js.map +1 -1
- package/dist/index.cjs.js +53 -30
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +53 -30
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +53 -30
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +1 -1
- package/dist/index.iife.min.js.map +1 -1
- package/dist/index.system.js +53 -30
- package/dist/index.system.js.map +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/index.system.min.js.map +1 -1
- package/dist/index.umd.js +53 -30
- package/dist/index.umd.js.map +1 -1
- package/dist/index.umd.min.js +1 -1
- package/dist/index.umd.min.js.map +1 -1
- package/dist/types/src/ElementEvent.d.ts +2 -2
- package/dist/types/src/types/DOMUtilsCSSProperty.d.ts +36 -36
- package/dist/types/src/types/DOMUtilsEvent.d.ts +437 -420
- package/dist/types/src/types/WindowApi.d.ts +14 -14
- package/dist/types/src/types/env.d.ts +10 -10
- package/dist/types/src/types/global.d.ts +1 -1
- package/dist/types/src/types/gm.d.ts +2 -2
- package/index.ts +3 -3
- package/package.json +21 -22
- package/src/CommonUtils.ts +163 -163
- package/src/ElementAnimate.ts +290 -290
- package/src/ElementEvent.ts +1593 -1569
- package/src/ElementHandler.ts +43 -43
- package/src/ElementSelector.ts +307 -289
- package/src/ElementWait.ts +742 -742
- package/src/GlobalData.ts +5 -5
- package/src/OriginPrototype.ts +5 -5
- package/src/Utils.ts +388 -388
- package/src/WindowApi.ts +59 -59
- package/src/index.ts +2052 -2052
- package/src/types/DOMUtilsCSSProperty.d.ts +36 -36
- package/src/types/DOMUtilsEvent.d.ts +437 -420
- package/src/types/WindowApi.d.ts +14 -14
- package/src/types/env.d.ts +10 -10
- package/src/types/global.d.ts +1 -1
- package/src/types/gm.d.ts +2 -2
package/README.md
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
# 版本
|
|
2
|
-
|
|
3
|
-
- 最新版本:[](https://www.npmjs.com/package/@whitesev/domutils)
|
|
4
|
-
|
|
5
|
-
## 使用
|
|
6
|
-
|
|
7
|
-
```npm
|
|
8
|
-
npm install @whitesev/domutils
|
|
9
|
-
// 或者
|
|
10
|
-
nnpm add @whitesev/domutils
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## 使用js重新对jQuery的部分函数进行了仿写
|
|
14
|
-
|
|
15
|
-
- addClass `给元素添加class`
|
|
16
|
-
- after `在元素后面添加兄弟元素或HTML字符串`
|
|
17
|
-
- animate `在一定时间内改变元素的样式属性,实现动画效果`
|
|
18
|
-
- append `函数在元素内部末尾添加子元素或HTML字符串`
|
|
19
|
-
- attr `获取或设置元素的属性值`
|
|
20
|
-
- before `在元素前面添加兄弟元素或HTML字符串`
|
|
21
|
-
- blur `绑定或触发元素的blur事件`
|
|
22
|
-
- click `绑定或触发元素的click事件`
|
|
23
|
-
- css `获取或设置元素的样式属性值`
|
|
24
|
-
- delegate `为指定元素的子元素绑定事件`
|
|
25
|
-
- empty `移除元素的所有子元素`
|
|
26
|
-
- fadeIn `淡入元素`
|
|
27
|
-
- fadeOut `淡出元素`
|
|
28
|
-
- focus `绑定或触发元素的focus事件`
|
|
29
|
-
- height `获取元素的高度`
|
|
30
|
-
- hide `隐藏元素`
|
|
31
|
-
- onHover `当鼠标移入或移出元素时触发事件`
|
|
32
|
-
- html `获取或设置元素的HTML内容`
|
|
33
|
-
- onKeydown `当按键按下时触发事件`
|
|
34
|
-
- onKeyup `当按键松开时触发事件`
|
|
35
|
-
- next `获取当前元素的后一个兄弟元素`
|
|
36
|
-
- off `取消绑定事件`
|
|
37
|
-
- offset `设置或返回被选元素相对于文档的偏移坐标`
|
|
38
|
-
- on `绑定事件`
|
|
39
|
-
- outerHeight `获取元素的外部高度(包括边框和外边距)`
|
|
40
|
-
- outerWidth `获取元素的外部宽度(包括边框和外边距)`
|
|
41
|
-
- parent `获取当前元素的父元素`
|
|
42
|
-
- prepend `函数 在元素内部开头添加子元素或HTML字符串`
|
|
43
|
-
- prev `获取当前元素的前一个兄弟元素`
|
|
44
|
-
- prop `获取或设置元素的属性值`
|
|
45
|
-
- ready `等待文档加载完成后执行指定的函数`
|
|
46
|
-
- remove `移除元素`
|
|
47
|
-
- removeAttr `移除元素的属性`
|
|
48
|
-
- removeProp `移除元素的属性`
|
|
49
|
-
- show `显示元素`
|
|
50
|
-
- siblings `获取当前元素的所有兄弟元素`
|
|
51
|
-
- text `获取或设置元素的文本内容`
|
|
52
|
-
- toggle `切换元素的显示和隐藏状态`
|
|
53
|
-
- emit `主动触发事件`
|
|
54
|
-
- val `获取或设置元素的value属性值`
|
|
55
|
-
- width `获取元素的宽度`
|
|
56
|
-
- wrap `将一个元素包裹在指定的HTML元素中`
|
|
57
|
-
|
|
58
|
-
具体注释在代码中查看
|
|
1
|
+
# 版本
|
|
2
|
+
|
|
3
|
+
- 最新版本:[](https://www.npmjs.com/package/@whitesev/domutils)
|
|
4
|
+
|
|
5
|
+
## 使用
|
|
6
|
+
|
|
7
|
+
```npm
|
|
8
|
+
npm install @whitesev/domutils
|
|
9
|
+
// 或者
|
|
10
|
+
nnpm add @whitesev/domutils
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 使用js重新对jQuery的部分函数进行了仿写
|
|
14
|
+
|
|
15
|
+
- addClass `给元素添加class`
|
|
16
|
+
- after `在元素后面添加兄弟元素或HTML字符串`
|
|
17
|
+
- animate `在一定时间内改变元素的样式属性,实现动画效果`
|
|
18
|
+
- append `函数在元素内部末尾添加子元素或HTML字符串`
|
|
19
|
+
- attr `获取或设置元素的属性值`
|
|
20
|
+
- before `在元素前面添加兄弟元素或HTML字符串`
|
|
21
|
+
- blur `绑定或触发元素的blur事件`
|
|
22
|
+
- click `绑定或触发元素的click事件`
|
|
23
|
+
- css `获取或设置元素的样式属性值`
|
|
24
|
+
- delegate `为指定元素的子元素绑定事件`
|
|
25
|
+
- empty `移除元素的所有子元素`
|
|
26
|
+
- fadeIn `淡入元素`
|
|
27
|
+
- fadeOut `淡出元素`
|
|
28
|
+
- focus `绑定或触发元素的focus事件`
|
|
29
|
+
- height `获取元素的高度`
|
|
30
|
+
- hide `隐藏元素`
|
|
31
|
+
- onHover `当鼠标移入或移出元素时触发事件`
|
|
32
|
+
- html `获取或设置元素的HTML内容`
|
|
33
|
+
- onKeydown `当按键按下时触发事件`
|
|
34
|
+
- onKeyup `当按键松开时触发事件`
|
|
35
|
+
- next `获取当前元素的后一个兄弟元素`
|
|
36
|
+
- off `取消绑定事件`
|
|
37
|
+
- offset `设置或返回被选元素相对于文档的偏移坐标`
|
|
38
|
+
- on `绑定事件`
|
|
39
|
+
- outerHeight `获取元素的外部高度(包括边框和外边距)`
|
|
40
|
+
- outerWidth `获取元素的外部宽度(包括边框和外边距)`
|
|
41
|
+
- parent `获取当前元素的父元素`
|
|
42
|
+
- prepend `函数 在元素内部开头添加子元素或HTML字符串`
|
|
43
|
+
- prev `获取当前元素的前一个兄弟元素`
|
|
44
|
+
- prop `获取或设置元素的属性值`
|
|
45
|
+
- ready `等待文档加载完成后执行指定的函数`
|
|
46
|
+
- remove `移除元素`
|
|
47
|
+
- removeAttr `移除元素的属性`
|
|
48
|
+
- removeProp `移除元素的属性`
|
|
49
|
+
- show `显示元素`
|
|
50
|
+
- siblings `获取当前元素的所有兄弟元素`
|
|
51
|
+
- text `获取或设置元素的文本内容`
|
|
52
|
+
- toggle `切换元素的显示和隐藏状态`
|
|
53
|
+
- emit `主动触发事件`
|
|
54
|
+
- val `获取或设置元素的value属性值`
|
|
55
|
+
- width `获取元素的宽度`
|
|
56
|
+
- wrap `将一个元素包裹在指定的HTML元素中`
|
|
57
|
+
|
|
58
|
+
具体注释在代码中查看
|
package/dist/index.amd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
define((function () { 'use strict';
|
|
2
2
|
|
|
3
|
-
const version = "1.9.
|
|
3
|
+
const version = "1.9.4";
|
|
4
4
|
|
|
5
5
|
class WindowApi {
|
|
6
6
|
/** 默认的配置 */
|
|
@@ -252,8 +252,8 @@ define((function () { 'use strict';
|
|
|
252
252
|
else if (selector.match(/[^\s]{1}:empty$/gi)) {
|
|
253
253
|
// empty 语法
|
|
254
254
|
selector = selector.replace(/:empty$/gi, "");
|
|
255
|
-
return Array.from(parent.querySelectorAll(selector)).filter(($
|
|
256
|
-
return $
|
|
255
|
+
return Array.from(parent.querySelectorAll(selector)).filter(($elItem) => {
|
|
256
|
+
return $elItem?.innerHTML?.trim() === "";
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
else if (selector.match(/[^\s]{1}:contains\("(.*)"\)$/i) || selector.match(/[^\s]{1}:contains\('(.*)'\)$/i)) {
|
|
@@ -261,9 +261,15 @@ define((function () { 'use strict';
|
|
|
261
261
|
const textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
|
|
262
262
|
const text = textMatch[2];
|
|
263
263
|
selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
|
|
264
|
-
return Array.from(parent.querySelectorAll(selector)).filter(($
|
|
265
|
-
|
|
266
|
-
|
|
264
|
+
return Array.from(parent.querySelectorAll(selector)).filter(($elItem) => {
|
|
265
|
+
let domText = $elItem.textContent;
|
|
266
|
+
if (domText == null) {
|
|
267
|
+
domText = $elItem.innerText;
|
|
268
|
+
}
|
|
269
|
+
if (domText == null) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
return domText.includes(text);
|
|
267
273
|
});
|
|
268
274
|
}
|
|
269
275
|
else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) || selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
|
|
@@ -278,9 +284,15 @@ define((function () { 'use strict';
|
|
|
278
284
|
}
|
|
279
285
|
const regexp = new RegExp(pattern, flags);
|
|
280
286
|
selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
|
|
281
|
-
return Array.from(parent.querySelectorAll(selector)).filter(($
|
|
282
|
-
|
|
283
|
-
|
|
287
|
+
return Array.from(parent.querySelectorAll(selector)).filter(($elItem) => {
|
|
288
|
+
let domText = $elItem.textContent;
|
|
289
|
+
if (domText == null) {
|
|
290
|
+
domText = $elItem.innerText;
|
|
291
|
+
}
|
|
292
|
+
if (domText == null) {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
return !!domText.match(regexp);
|
|
284
296
|
});
|
|
285
297
|
}
|
|
286
298
|
else {
|
|
@@ -325,12 +337,14 @@ define((function () { 'use strict';
|
|
|
325
337
|
const textMatch = selector.match(/:contains\(("|')(.*)("|')\)$/i);
|
|
326
338
|
const text = textMatch[2];
|
|
327
339
|
selector = selector.replace(/:contains\(("|')(.*)("|')\)$/gi, "");
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
content = "";
|
|
340
|
+
let domText = $el.textContent;
|
|
341
|
+
if (domText == null) {
|
|
342
|
+
domText = $el.innerText;
|
|
332
343
|
}
|
|
333
|
-
|
|
344
|
+
if (domText == null) {
|
|
345
|
+
return false;
|
|
346
|
+
}
|
|
347
|
+
return $el.matches(selector) && domText.includes(text);
|
|
334
348
|
}
|
|
335
349
|
else if (selector.match(/[^\s]{1}:regexp\("(.*)"\)$/i) || selector.match(/[^\s]{1}:regexp\('(.*)'\)$/i)) {
|
|
336
350
|
// regexp 语法
|
|
@@ -344,12 +358,14 @@ define((function () { 'use strict';
|
|
|
344
358
|
}
|
|
345
359
|
const regexp = new RegExp(pattern, flags);
|
|
346
360
|
selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
content = "";
|
|
361
|
+
let domText = $el.textContent;
|
|
362
|
+
if (domText == null) {
|
|
363
|
+
domText = $el.innerText;
|
|
351
364
|
}
|
|
352
|
-
|
|
365
|
+
if (domText == null) {
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
return $el.matches(selector) && !!domText.match(regexp);
|
|
353
369
|
}
|
|
354
370
|
else {
|
|
355
371
|
// 普通语法
|
|
@@ -400,9 +416,11 @@ define((function () { 'use strict';
|
|
|
400
416
|
selector = selector.replace(/:regexp\(("|')(.*)("|')\)$/gi, "");
|
|
401
417
|
const $closest = $el?.closest(selector);
|
|
402
418
|
if ($closest) {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
419
|
+
let domText = $el.textContent;
|
|
420
|
+
if (domText == null) {
|
|
421
|
+
domText = $el.innerText;
|
|
422
|
+
}
|
|
423
|
+
if (typeof domText === "string" && domText.match(regexp)) {
|
|
406
424
|
return $closest;
|
|
407
425
|
}
|
|
408
426
|
}
|
|
@@ -2344,20 +2362,25 @@ define((function () { 'use strict';
|
|
|
2344
2362
|
let isMobileTouch = false;
|
|
2345
2363
|
/** 检测是否是单击的延迟时间 */
|
|
2346
2364
|
const checkClickTime = 200;
|
|
2347
|
-
const dblclick_handler = async (evt, option) => {
|
|
2365
|
+
const dblclick_handler = async (evt, option, $selector) => {
|
|
2348
2366
|
if (evt.type === "dblclick" && isMobileTouch) {
|
|
2349
2367
|
// 禁止在移动端触发dblclick事件
|
|
2350
2368
|
return;
|
|
2351
2369
|
}
|
|
2352
|
-
|
|
2370
|
+
if ($selector) {
|
|
2371
|
+
await handler(evt, $selector, option);
|
|
2372
|
+
}
|
|
2373
|
+
else {
|
|
2374
|
+
await handler(evt, option);
|
|
2375
|
+
}
|
|
2353
2376
|
};
|
|
2354
|
-
const dblClickListener = this.on($el, "dblclick", (evt) => {
|
|
2377
|
+
const dblClickListener = this.on($el, "dblclick", selector, (evt, $selector) => {
|
|
2355
2378
|
this.preventEvent(evt);
|
|
2356
2379
|
dblclick_handler(evt, {
|
|
2357
2380
|
isDoubleClick: true,
|
|
2358
|
-
});
|
|
2381
|
+
}, $selector);
|
|
2359
2382
|
}, options);
|
|
2360
|
-
const
|
|
2383
|
+
const pointerUpListener = this.on($el, "pointerup", selector, (evt, $selector) => {
|
|
2361
2384
|
this.preventEvent(evt);
|
|
2362
2385
|
if (evt.pointerType === "touch") {
|
|
2363
2386
|
isMobileTouch = true;
|
|
@@ -2370,7 +2393,7 @@ define((function () { 'use strict';
|
|
|
2370
2393
|
/* 判定为双击 */
|
|
2371
2394
|
dblclick_handler(evt, {
|
|
2372
2395
|
isDoubleClick: true,
|
|
2373
|
-
});
|
|
2396
|
+
}, $selector);
|
|
2374
2397
|
}
|
|
2375
2398
|
else {
|
|
2376
2399
|
timer = setTimeout(() => {
|
|
@@ -2378,7 +2401,7 @@ define((function () { 'use strict';
|
|
|
2378
2401
|
// 判断为单击
|
|
2379
2402
|
dblclick_handler(evt, {
|
|
2380
2403
|
isDoubleClick: false,
|
|
2381
|
-
});
|
|
2404
|
+
}, $selector);
|
|
2382
2405
|
}, checkClickTime);
|
|
2383
2406
|
isDoubleClick = true;
|
|
2384
2407
|
$click = $selector;
|
|
@@ -2388,7 +2411,7 @@ define((function () { 'use strict';
|
|
|
2388
2411
|
off() {
|
|
2389
2412
|
$click = null;
|
|
2390
2413
|
dblClickListener.off();
|
|
2391
|
-
|
|
2414
|
+
pointerUpListener.off();
|
|
2392
2415
|
},
|
|
2393
2416
|
};
|
|
2394
2417
|
}
|