mazey 1.4.25 → 1.4.29
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 +26 -0
- package/lib/index.cjs.js +47 -1
- package/lib/index.d.ts +13 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.esm.js +47 -2
- package/package.json +2 -2
- package/src/index.ts +28 -1
- package/src/test.ts +26 -5
- package/.eslintrc +0 -15
package/README.md
CHANGED
|
@@ -62,6 +62,20 @@ loadCSS({
|
|
|
62
62
|
);
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
+
判断页面是否加载完成(兼容浏览器 `load` 事件已经触发过的情况)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
import { loadCSS } from 'mazey';
|
|
69
|
+
|
|
70
|
+
windowLoaded({ timeout: 30 })
|
|
71
|
+
.then(res => {
|
|
72
|
+
console.log(`加载完成:${res}`); // 加载完成:load
|
|
73
|
+
})
|
|
74
|
+
.catch(err => {
|
|
75
|
+
console.log(`加载超时或失败:${err}`);
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
65
79
|
### 存储数据
|
|
66
80
|
|
|
67
81
|
Storage
|
|
@@ -190,6 +204,18 @@ import { isSafePWAEnv } from 'mazey';
|
|
|
190
204
|
isSafePWAEnv(); // true
|
|
191
205
|
```
|
|
192
206
|
|
|
207
|
+
### 函数
|
|
208
|
+
|
|
209
|
+
防抖
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
import { debounce } from 'mazey';
|
|
213
|
+
|
|
214
|
+
const foo = debounce(() => {
|
|
215
|
+
console.log('执行 1 秒内再次执行无反应');
|
|
216
|
+
}, 1000, { leading: true })
|
|
217
|
+
```
|
|
218
|
+
|
|
193
219
|
[更多接口>>](https://mazey.cn/docs/mazey/modules/_index_.html)
|
|
194
220
|
|
|
195
221
|
## Develop
|
package/lib/index.cjs.js
CHANGED
|
@@ -3901,6 +3901,7 @@ function loadCSS(_a) {
|
|
|
3901
3901
|
* @param {String} id -- DOM ID
|
|
3902
3902
|
* @param {Function} callback -- 加载后回调函数
|
|
3903
3903
|
* @param {Number} timeout -- 超时时长
|
|
3904
|
+
* @param {Boolean} isDefer -- 是否添加 defer 标签
|
|
3904
3905
|
* @return {Promise<Boolean>} -- true 成功
|
|
3905
3906
|
*/
|
|
3906
3907
|
|
|
@@ -3913,7 +3914,9 @@ function loadScript(_a) {
|
|
|
3913
3914
|
_e = _b.callback,
|
|
3914
3915
|
callback = _e === void 0 ? function () {} : _e,
|
|
3915
3916
|
_f = _b.timeout,
|
|
3916
|
-
timeout = _f === void 0 ? 5000 : _f
|
|
3917
|
+
timeout = _f === void 0 ? 5000 : _f,
|
|
3918
|
+
_g = _b.isDefer,
|
|
3919
|
+
isDefer = _g === void 0 ? false : _g;
|
|
3917
3920
|
|
|
3918
3921
|
var success = null;
|
|
3919
3922
|
var fail = null;
|
|
@@ -3922,6 +3925,10 @@ function loadScript(_a) {
|
|
|
3922
3925
|
var firstScript = document.getElementsByTagName('script')[0];
|
|
3923
3926
|
script.type = 'text/javascript';
|
|
3924
3927
|
|
|
3928
|
+
if (isDefer) {
|
|
3929
|
+
script.defer = 'defer';
|
|
3930
|
+
}
|
|
3931
|
+
|
|
3925
3932
|
if (id) {
|
|
3926
3933
|
script.id = id;
|
|
3927
3934
|
}
|
|
@@ -4590,6 +4597,44 @@ function cutCHSString(str, len, hasDot) {
|
|
|
4590
4597
|
return newStr;
|
|
4591
4598
|
}
|
|
4592
4599
|
}
|
|
4600
|
+
/**
|
|
4601
|
+
* @method windowLoaded
|
|
4602
|
+
* @description 页面加载完成
|
|
4603
|
+
* @param {number} timeout 超时时间 / 单位:秒
|
|
4604
|
+
* @return {Promise<string>} document is loaded? 'complete' 'load' / 'timeout'
|
|
4605
|
+
*/
|
|
4606
|
+
|
|
4607
|
+
function windowLoaded(_a) {
|
|
4608
|
+
var _b = (_a === void 0 ? {} : _a).timeout,
|
|
4609
|
+
timeout = _b === void 0 ? 90 : _b;
|
|
4610
|
+
|
|
4611
|
+
var loaded = function loaded() {
|
|
4612
|
+
return undefined;
|
|
4613
|
+
};
|
|
4614
|
+
|
|
4615
|
+
var loadFail = function loadFail() {
|
|
4616
|
+
return undefined;
|
|
4617
|
+
};
|
|
4618
|
+
|
|
4619
|
+
var status = new Promise(function (resolve, reject) {
|
|
4620
|
+
loaded = resolve;
|
|
4621
|
+
loadFail = reject;
|
|
4622
|
+
});
|
|
4623
|
+
|
|
4624
|
+
if (document.readyState === 'complete') {
|
|
4625
|
+
loaded('complete');
|
|
4626
|
+
} else {
|
|
4627
|
+
window.addEventListener('load', function () {
|
|
4628
|
+
return loaded('load');
|
|
4629
|
+
});
|
|
4630
|
+
} // 超过 timeout 秒后加载失败
|
|
4631
|
+
|
|
4632
|
+
|
|
4633
|
+
setTimeout(function () {
|
|
4634
|
+
return loadFail('timeout');
|
|
4635
|
+
}, timeout * 1000);
|
|
4636
|
+
return status;
|
|
4637
|
+
}
|
|
4593
4638
|
|
|
4594
4639
|
exports.addClass = addClass;
|
|
4595
4640
|
exports.calLongestCommonSubsequence = calLongestCommonSubsequence;
|
|
@@ -4637,3 +4682,4 @@ exports.setSessionStorage = setSessionStorage;
|
|
|
4637
4682
|
exports.throttle = throttle;
|
|
4638
4683
|
exports.trim = trim$1;
|
|
4639
4684
|
exports.updateQueryStringParameter = updateQueryStringParameter;
|
|
4685
|
+
exports.windowLoaded = windowLoaded;
|
package/lib/index.d.ts
CHANGED
|
@@ -238,14 +238,16 @@ export declare function loadCSS({ url, id }?: {
|
|
|
238
238
|
* @param {String} id -- DOM ID
|
|
239
239
|
* @param {Function} callback -- 加载后回调函数
|
|
240
240
|
* @param {Number} timeout -- 超时时长
|
|
241
|
+
* @param {Boolean} isDefer -- 是否添加 defer 标签
|
|
241
242
|
* @return {Promise<Boolean>} -- true 成功
|
|
242
243
|
*/
|
|
243
|
-
export declare function loadScript({ url, id, callback, timeout }?: {
|
|
244
|
+
export declare function loadScript({ url, id, callback, timeout, isDefer }?: {
|
|
244
245
|
url?: string | undefined;
|
|
245
246
|
id?: string | undefined;
|
|
246
247
|
callback?: (() => void) | undefined;
|
|
247
248
|
timeout?: number | undefined;
|
|
248
|
-
|
|
249
|
+
isDefer?: boolean | undefined;
|
|
250
|
+
}): any;
|
|
249
251
|
/**
|
|
250
252
|
* @method mNow
|
|
251
253
|
* @description 获取时间戳
|
|
@@ -305,4 +307,13 @@ export declare function clearHtml(string?: string): string;
|
|
|
305
307
|
* @returns {String} 返回截取后的字符串
|
|
306
308
|
*/
|
|
307
309
|
export declare function cutCHSString(str?: string, len?: number, hasDot?: boolean): string;
|
|
310
|
+
/**
|
|
311
|
+
* @method windowLoaded
|
|
312
|
+
* @description 页面加载完成
|
|
313
|
+
* @param {number} timeout 超时时间 / 单位:秒
|
|
314
|
+
* @return {Promise<string>} document is loaded? 'complete' 'load' / 'timeout'
|
|
315
|
+
*/
|
|
316
|
+
export declare function windowLoaded({ timeout }?: {
|
|
317
|
+
timeout?: number | undefined;
|
|
318
|
+
}): Promise<string>;
|
|
308
319
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,UAqB7D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,UA8B/D;AAED;;;;;KAKK;AACL,wBAAgB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,UAYhD;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,OAAO,EAAE,IAAI,UAAK,EAAE,QAAQ,UAAK,QAqBhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,iBAQ9C;AAED;;;;KAIK;AACL,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,UAGrD;AAED;;;;KAIK;AACL,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,UAGrD;AAED;;;;;KAKK;AACL,wBAAgB,SAAS,CAAC,EAAE,GAAQ,EAAE,KAAoB,EAAE;;;CAAK,UAOhE;AAED;;;;KAIK;AACL,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,UAQ/B;AAED;;;;KAIK;AACL,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UAMlC;AAED;;;;;KAKK;AACL,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,OAEtC;AAED;;;;;KAKK;AACL,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,UAMvC;AAED;;;;KAIK;AACL,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,UAG1C;AAED;;;;KAIK;AACL,wBAAgB,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAUvC;AAED;;;;;KAKK;AACL,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,SAAI,GAAG,MAAM,CAO5D;AAED;;;KAGK;AACL,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,UAE7C;AAED;;;KAGK;AACL,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAQnE;AAED;;;KAGK;AACL,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,QASlC;AAED;;KAEK;AACL,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAS7C;AAED;;KAEK;AACL,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,QAS7C;AAED;;KAEK;AACL,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,QAQhD;AAED;;;KAGK;AACL,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,gBAkB/B,KAAK,CAAC,GAAG,CAAC,UAuBxC;AAED;;;KAGK;AACL,wBAAgB,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,gBAoBjC,KAAK,CAAC,GAAG,CAAC,UAcxC;AAED;;;;;;;KAOK;AACL,wBAAgB,gBAAgB,CAAC,EAAE,KAAS,EAAE,GAAO,EAAE,IAAU,EAAE;;;;CAAK,OA2BvE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,WAE9B;AAED;;;KAGK;AACL,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAQjF;AAED;;;KAGK;AACL,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,WASvC;AAED;;;;;KAKK;AACL,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAerD;AAED;;;KAGK;AACL,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,iBAO/C;AAED;;;KAGK;AACL,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,iBAEzC;AAED;;;;KAIK;AACL,wBAAgB,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,OAM7C;AAED;;;;;KAKK;AACL,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,GAAU,QAI/D;AAED;;;;;KAKK;AACL,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,OAS5C;AAED;;;;;KAKK;AACL,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,GAAU,QAI7D;AAED;;;;;KAKK;AACL,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,OAS1C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,GAAQ,EAAE,EAAO,EAAE;;;CAAK,oBAgHjD;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.esm.js
CHANGED
|
@@ -3897,6 +3897,7 @@ function loadCSS(_a) {
|
|
|
3897
3897
|
* @param {String} id -- DOM ID
|
|
3898
3898
|
* @param {Function} callback -- 加载后回调函数
|
|
3899
3899
|
* @param {Number} timeout -- 超时时长
|
|
3900
|
+
* @param {Boolean} isDefer -- 是否添加 defer 标签
|
|
3900
3901
|
* @return {Promise<Boolean>} -- true 成功
|
|
3901
3902
|
*/
|
|
3902
3903
|
|
|
@@ -3909,7 +3910,9 @@ function loadScript(_a) {
|
|
|
3909
3910
|
_e = _b.callback,
|
|
3910
3911
|
callback = _e === void 0 ? function () {} : _e,
|
|
3911
3912
|
_f = _b.timeout,
|
|
3912
|
-
timeout = _f === void 0 ? 5000 : _f
|
|
3913
|
+
timeout = _f === void 0 ? 5000 : _f,
|
|
3914
|
+
_g = _b.isDefer,
|
|
3915
|
+
isDefer = _g === void 0 ? false : _g;
|
|
3913
3916
|
|
|
3914
3917
|
var success = null;
|
|
3915
3918
|
var fail = null;
|
|
@@ -3918,6 +3921,10 @@ function loadScript(_a) {
|
|
|
3918
3921
|
var firstScript = document.getElementsByTagName('script')[0];
|
|
3919
3922
|
script.type = 'text/javascript';
|
|
3920
3923
|
|
|
3924
|
+
if (isDefer) {
|
|
3925
|
+
script.defer = 'defer';
|
|
3926
|
+
}
|
|
3927
|
+
|
|
3921
3928
|
if (id) {
|
|
3922
3929
|
script.id = id;
|
|
3923
3930
|
}
|
|
@@ -4586,5 +4593,43 @@ function cutCHSString(str, len, hasDot) {
|
|
|
4586
4593
|
return newStr;
|
|
4587
4594
|
}
|
|
4588
4595
|
}
|
|
4596
|
+
/**
|
|
4597
|
+
* @method windowLoaded
|
|
4598
|
+
* @description 页面加载完成
|
|
4599
|
+
* @param {number} timeout 超时时间 / 单位:秒
|
|
4600
|
+
* @return {Promise<string>} document is loaded? 'complete' 'load' / 'timeout'
|
|
4601
|
+
*/
|
|
4602
|
+
|
|
4603
|
+
function windowLoaded(_a) {
|
|
4604
|
+
var _b = (_a === void 0 ? {} : _a).timeout,
|
|
4605
|
+
timeout = _b === void 0 ? 90 : _b;
|
|
4606
|
+
|
|
4607
|
+
var loaded = function loaded() {
|
|
4608
|
+
return undefined;
|
|
4609
|
+
};
|
|
4610
|
+
|
|
4611
|
+
var loadFail = function loadFail() {
|
|
4612
|
+
return undefined;
|
|
4613
|
+
};
|
|
4614
|
+
|
|
4615
|
+
var status = new Promise(function (resolve, reject) {
|
|
4616
|
+
loaded = resolve;
|
|
4617
|
+
loadFail = reject;
|
|
4618
|
+
});
|
|
4619
|
+
|
|
4620
|
+
if (document.readyState === 'complete') {
|
|
4621
|
+
loaded('complete');
|
|
4622
|
+
} else {
|
|
4623
|
+
window.addEventListener('load', function () {
|
|
4624
|
+
return loaded('load');
|
|
4625
|
+
});
|
|
4626
|
+
} // 超过 timeout 秒后加载失败
|
|
4627
|
+
|
|
4628
|
+
|
|
4629
|
+
setTimeout(function () {
|
|
4630
|
+
return loadFail('timeout');
|
|
4631
|
+
}, timeout * 1000);
|
|
4632
|
+
return status;
|
|
4633
|
+
}
|
|
4589
4634
|
|
|
4590
|
-
export { addClass, calLongestCommonSubsequence, calLongestCommonSubstring, camelCase2Underscore, camelCaseToKebabCase, cancelBubble, clearHtml, compatibleExist, cutCHSString, debounce, deepCopyObject, doFn, floatFixed, floatToPercent, friendlyInterval, generateRndNum, generateUniqueNum, getBrowserType, getCookie, getDomain, getHashQueryParam, getLocalStorage, getPerformance, getQueryParam, getSearchQueryParam, getSessionStorage, getUrlParam, hasClass, inRate, isJsonString, isNumber, isSafePWAEnv, join, loadCSS, loadScript, mNow, newLine, removeClass, renderTable, resetForm, setCookie, setLocalStorage, setSessionStorage, throttle, trim$1 as trim, updateQueryStringParameter };
|
|
4635
|
+
export { addClass, calLongestCommonSubsequence, calLongestCommonSubstring, camelCase2Underscore, camelCaseToKebabCase, cancelBubble, clearHtml, compatibleExist, cutCHSString, debounce, deepCopyObject, doFn, floatFixed, floatToPercent, friendlyInterval, generateRndNum, generateUniqueNum, getBrowserType, getCookie, getDomain, getHashQueryParam, getLocalStorage, getPerformance, getQueryParam, getSearchQueryParam, getSessionStorage, getUrlParam, hasClass, inRate, isJsonString, isNumber, isSafePWAEnv, join, loadCSS, loadScript, mNow, newLine, removeClass, renderTable, resetForm, setCookie, setLocalStorage, setSessionStorage, throttle, trim$1 as trim, updateQueryStringParameter, windowLoaded };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mazey",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.29",
|
|
4
4
|
"description": "Mazey's library for front end.",
|
|
5
5
|
"main": "lib/index.cjs.js",
|
|
6
6
|
"module": "lib/index.esm.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
14
14
|
"dev": "webpack-dev-server --open",
|
|
15
15
|
"build": "npx rollup -c",
|
|
16
|
-
"doc": "npx jsdoc -c ./jsdoc.config.json -d ./doc",
|
|
16
|
+
"[已废弃]doc": "npx jsdoc -c ./jsdoc.config.json -d ./doc",
|
|
17
17
|
"docs": "npx typedoc --out docs/ src/",
|
|
18
18
|
"release": "npm run build && npm publish",
|
|
19
19
|
"lint-and-fix": "eslint ./src/index.ts --ext 'ts,tsx' --fix"
|
package/src/index.ts
CHANGED
|
@@ -747,15 +747,19 @@ export function loadCSS({ url = '', id = '' } = {}) {
|
|
|
747
747
|
* @param {String} id -- DOM ID
|
|
748
748
|
* @param {Function} callback -- 加载后回调函数
|
|
749
749
|
* @param {Number} timeout -- 超时时长
|
|
750
|
+
* @param {Boolean} isDefer -- 是否添加 defer 标签
|
|
750
751
|
* @return {Promise<Boolean>} -- true 成功
|
|
751
752
|
*/
|
|
752
|
-
export function loadScript({ url = '', id = '', callback = function () { /* pass */ }, timeout = 5000 } = {}) {
|
|
753
|
+
export function loadScript({ url = '', id = '', callback = function () { /* pass */ }, timeout = 5000, isDefer = false } = {}): any {
|
|
753
754
|
let success: any = null;
|
|
754
755
|
let fail: any = null;
|
|
755
756
|
const script: any = document.createElement('script');
|
|
756
757
|
// 如果没有 script 标签,那么代码就不会运行。可以利用这一事实,在页面的第一个 script 标签上使用 insertBefore()。
|
|
757
758
|
const firstScript: any = document.getElementsByTagName('script')[0];
|
|
758
759
|
script.type = 'text/javascript';
|
|
760
|
+
if (isDefer) {
|
|
761
|
+
script.defer = 'defer';
|
|
762
|
+
}
|
|
759
763
|
if (id) {
|
|
760
764
|
script.id = id;
|
|
761
765
|
}
|
|
@@ -1326,3 +1330,26 @@ export function cutCHSString(str = '', len = str.length, hasDot = false): string
|
|
|
1326
1330
|
return newStr;
|
|
1327
1331
|
}
|
|
1328
1332
|
}
|
|
1333
|
+
|
|
1334
|
+
/**
|
|
1335
|
+
* @method windowLoaded
|
|
1336
|
+
* @description 页面加载完成
|
|
1337
|
+
* @param {number} timeout 超时时间 / 单位:秒
|
|
1338
|
+
* @return {Promise<string>} document is loaded? 'complete' 'load' / 'timeout'
|
|
1339
|
+
*/
|
|
1340
|
+
export function windowLoaded({ timeout = 90 } = {}): Promise<string> {
|
|
1341
|
+
let loaded: (value: string) => void = () => undefined;
|
|
1342
|
+
let loadFail: (value: string) => void = () => undefined;
|
|
1343
|
+
const status = new Promise((resolve: (value: string) => void, reject: (value: string) => void) => {
|
|
1344
|
+
loaded = resolve;
|
|
1345
|
+
loadFail = reject;
|
|
1346
|
+
});
|
|
1347
|
+
if (document.readyState === 'complete') {
|
|
1348
|
+
loaded('complete');
|
|
1349
|
+
} else {
|
|
1350
|
+
window.addEventListener('load', () => loaded('load'));
|
|
1351
|
+
}
|
|
1352
|
+
// 超过 timeout 秒后加载失败
|
|
1353
|
+
setTimeout(() => loadFail('timeout'), timeout * 1000);
|
|
1354
|
+
return status;
|
|
1355
|
+
}
|
package/src/test.ts
CHANGED
|
@@ -10,6 +10,8 @@ import {
|
|
|
10
10
|
loadScript,
|
|
11
11
|
isSafePWAEnv,
|
|
12
12
|
getBrowserType,
|
|
13
|
+
debounce,
|
|
14
|
+
windowLoaded,
|
|
13
15
|
// getPerformance,
|
|
14
16
|
} from './index';
|
|
15
17
|
|
|
@@ -23,12 +25,31 @@ import {
|
|
|
23
25
|
// console.log(getUrlParam(url, 'bsource'))
|
|
24
26
|
// console.log(getUrlParam(url, 'topic'))
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
loadScript({
|
|
29
|
+
url: 'https://www.bilibili.com/bangumi/play/ss28296?bsource=douban&topic=blog.mazey.net',
|
|
30
|
+
id: 'abbb',
|
|
31
|
+
isDefer: true,
|
|
32
|
+
});
|
|
30
33
|
|
|
31
34
|
console.log('isSafePWAEnv', isSafePWAEnv());
|
|
32
35
|
console.log('getBrowserType', JSON.stringify(getBrowserType()));
|
|
33
36
|
console.log('getPerformance', getPerformance());
|
|
34
|
-
getPerformance().then(console.log);
|
|
37
|
+
getPerformance().then(console.log);
|
|
38
|
+
|
|
39
|
+
const foo = debounce(() => {
|
|
40
|
+
console.log('执行 1 秒内再次执行无反应');
|
|
41
|
+
}, 1000, { leading: true });
|
|
42
|
+
|
|
43
|
+
foo();
|
|
44
|
+
|
|
45
|
+
setTimeout(foo, 500);
|
|
46
|
+
|
|
47
|
+
setTimeout(foo, 2500);
|
|
48
|
+
|
|
49
|
+
windowLoaded({ timeout: 30 })
|
|
50
|
+
.then(res => {
|
|
51
|
+
console.log(`加载完成:${res}`);
|
|
52
|
+
})
|
|
53
|
+
.catch(err => {
|
|
54
|
+
console.log(`加载超时:${err}`);
|
|
55
|
+
});
|
package/.eslintrc
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"root": true,
|
|
3
|
-
"parser": "@typescript-eslint/parser",
|
|
4
|
-
"plugins": [
|
|
5
|
-
"@typescript-eslint"
|
|
6
|
-
],
|
|
7
|
-
"extends": [
|
|
8
|
-
"eslint:recommended",
|
|
9
|
-
"plugin:@typescript-eslint/eslint-recommended",
|
|
10
|
-
"plugin:@typescript-eslint/recommended"
|
|
11
|
-
],
|
|
12
|
-
"rules": {
|
|
13
|
-
"semi": ["error", "always"]
|
|
14
|
-
}
|
|
15
|
-
}
|