feat(analytics): 重构网站统计配置与加载逻辑

- 引入 SiteConfig.analytics 统一管理所有统计配置
- 动态加载不蒜子、百度、Google Analytics 和 51.LA 统计脚本
- 优化统计脚本异步加载方式,提升页面性能
- 移除硬编码统计 ID,改为从配置文件读取
- 更新百度统计集成方式,增强错误处理
- 调整 Google Analytics 加载逻辑,支持异步初始化
- 修复统计元素获取逻辑,使用配置化的 ID 选择器
- 清理冗余代码,统一统计脚本加载风格
This commit is contained in:
hehh
2025-11-25 17:14:29 +08:00
parent 1afd55f99b
commit 4a2ce434f4
3 changed files with 158 additions and 94 deletions

View File

@@ -326,12 +326,19 @@
<script src="https://cdn.jsdelivr.net/npm/artalk@latest/dist/i18n/en.js"></script>
<script src="js/about.js?version=20251125"></script>
<!-- verCount统计 -->
<script defer src="https://events.vercount.one/js"></script>
<!-- 不蒜子统计 -->
<script>
document.addEventListener('DOMContentLoaded', function () {
// 动态加载不蒜子统计脚本
const script = document.createElement('script');
script.src = SiteConfig.analytics.busuanzi.src;
script.async = true;
document.head.appendChild(script);
});
</script>
<script>
try {
!function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id:"3OBGjwDdEIRS7XZ1",ck:"3OBGjwDdEIRS7XZ1"});
!function(p){"use strict";!function(t){var s=window,e=document,i=p,c="".concat("https:"===e.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=e.createElement("script"),r=e.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=c,n.id="LA_COLLECT",i.d=n;var o=function(){s.LA.ids.push(i)};s.LA?s.LA.ids&&o():(s.LA=p,s.LA.ids=[],o()),r.parentNode.insertBefore(n,r)}()}({id: SiteConfig.analytics.tencent.id, ck: SiteConfig.analytics.tencent.ck});
} catch (e) {
console.log("51.la统计错误", e);
}
@@ -343,7 +350,7 @@
(function () {
try {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?ae2a009a75b13c21d5121ee51375ea4e";
hm.src = SiteConfig.analytics.baidu.src;
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
} catch (e) {
@@ -384,8 +391,8 @@
// 监听不蒜子数据更新并格式化
function initFormatter() {
const pvEl = document.getElementById('busuanzi_value_site_pv');
const uvEl = document.getElementById('busuanzi_value_site_uv');
const pvEl = document.getElementById(SiteConfig.analytics.busuanzi.site_pv_id);
const uvEl = document.getElementById(SiteConfig.analytics.busuanzi.site_uv_id);
if (!pvEl && !uvEl) return;