vuepress-theme-mustom
Version:
Simple design theme for VuePress,Blog,耀 の 个人网站 | Mark の Personal Website (QQ Group: 595614161)
50 lines • 1.25 kB
JavaScript
export default (url, params, callback, flush = false, timeout = 5000) => {
let script = document.createElement('script');
let data = '';
let cb = null;
let result = null;
let isTimeout = true;
let isNotResulted = true;
if (params) {
for (const key in params) {
if (params.hasOwnProperty(key)) {
const value = params[key];
if (data === '') {
data += '?' + key + '=' + value;
} else {
data += '&' + key + '=' + value;
}
if (/(jsonp|callback)/.test(key.toLowerCase())) {
cb = value;
}
}
}
}
if (cb) {
window[cb] = function (obj) {
result = obj;
};
}
script.onload = function () {
if (result && isNotResulted) {
isTimeout = false;
callback && callback(result);
}
flush && script.remove();
}
script.onerror = function (e) {
if (isNotResulted) {
isTimeout = false;
callback && callback(e);
}
flush && script.remove();
}
window.setTimeout(o => {
if (isTimeout) {
isNotResulted = false;
callback && callback(null);
}
}, timeout);
script.src = url + data;
document.head.appendChild(script);
}