mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-14 23:16:49 +00:00
146 lines
3.7 KiB
JavaScript
146 lines
3.7 KiB
JavaScript
/* eslint-disable */
|
|
let bszCaller, bszTag, scriptTag, ready
|
|
|
|
let intervalId;
|
|
let executeCallbacks;
|
|
let onReady;
|
|
let isReady = false;
|
|
let callbacks = [];
|
|
|
|
// 修复Node同构代码的问题
|
|
if (typeof document !== 'undefined') {
|
|
ready = function (callback) {
|
|
if (isReady || document.readyState === 'interactive' || document.readyState === 'complete') {
|
|
callback.call(document);
|
|
} else {
|
|
callbacks.push(function () {
|
|
return callback.call(this);
|
|
});
|
|
}
|
|
return this;
|
|
};
|
|
|
|
executeCallbacks = function () {
|
|
for (let i = 0, len = callbacks.length; i < len; i++) {
|
|
callbacks[i].apply(document);
|
|
}
|
|
callbacks = [];
|
|
};
|
|
|
|
onReady = function () {
|
|
if (!isReady) {
|
|
isReady = true;
|
|
executeCallbacks.call(window);
|
|
if (document.removeEventListener) {
|
|
document.removeEventListener('DOMContentLoaded', onReady, false);
|
|
} else if (document.attachEvent) {
|
|
document.detachEvent('onreadystatechange', onReady);
|
|
if (window == window.top) {
|
|
clearInterval(intervalId);
|
|
intervalId = null;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
if (document.addEventListener) {
|
|
document.addEventListener('DOMContentLoaded', onReady, false);
|
|
} else if (document.attachEvent) {
|
|
document.attachEvent('onreadystatechange', function () {
|
|
if (/loaded|complete/.test(document.readyState)) {
|
|
onReady();
|
|
}
|
|
});
|
|
if (window == window.top) {
|
|
intervalId = setInterval(function () {
|
|
try {
|
|
if (!isReady) {
|
|
document.documentElement.doScroll('left');
|
|
}
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
onReady();
|
|
}, 5);
|
|
}
|
|
}
|
|
}
|
|
|
|
bszCaller = {
|
|
fetch: function (url, callback) {
|
|
const callbackName = 'BusuanziCallback_' + Math.floor(1099511627776 * Math.random())
|
|
url = url.replace('=BusuanziCallback', '=' + callbackName)
|
|
scriptTag = document.createElement('SCRIPT');
|
|
scriptTag.type = 'text/javascript';
|
|
scriptTag.defer = true;
|
|
scriptTag.src = url;
|
|
scriptTag.referrerPolicy = "no-referrer-when-downgrade";
|
|
document.getElementsByTagName('HEAD')[0].appendChild(scriptTag);
|
|
window[callbackName] = this.evalCall(callback)
|
|
},
|
|
evalCall: function (callback) {
|
|
return function (data) {
|
|
ready(function () {
|
|
try {
|
|
callback(data);
|
|
if (scriptTag && scriptTag.parentElement && scriptTag.parentElement.contains(scriptTag)) {
|
|
scriptTag.parentElement.removeChild(scriptTag);
|
|
}
|
|
} catch (e) {
|
|
// console.log(e);
|
|
// bszTag.hides();
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
const fetch = () => {
|
|
if (bszTag) {
|
|
bszTag.hides();
|
|
}
|
|
bszCaller.fetch('//busuanzi.ibruce.info/busuanzi?jsonpCallback=BusuanziCallback', function (data) {
|
|
// console.log('不蒜子',data)
|
|
bszTag.texts(data);
|
|
bszTag.shows();
|
|
})
|
|
}
|
|
|
|
bszTag = {
|
|
bszs: ['site_pv', 'page_pv', 'site_uv'],
|
|
texts: function (data) {
|
|
this.bszs.map(function (key) {
|
|
const elements = document.getElementsByClassName('busuanzi_value_' + key)
|
|
if (elements) {
|
|
for (var element of elements) {
|
|
element.innerHTML = data[key];
|
|
}
|
|
}
|
|
})
|
|
},
|
|
hides: function () {
|
|
this.bszs.map(function (key) {
|
|
const elements = document.getElementsByClassName('busuanzi_container_' + key)
|
|
if (elements) {
|
|
for (var element of elements) {
|
|
element.style.display = 'none';
|
|
}
|
|
}
|
|
})
|
|
},
|
|
shows: function () {
|
|
this.bszs.map(function (key) {
|
|
const elements = document.getElementsByClassName('busuanzi_container_' + key)
|
|
if (elements) {
|
|
for (var element of elements) {
|
|
element.style.display = 'inline';
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
fetch
|
|
}
|