From ac7ff2e9123cf8d9fcddfa1eeafd54b6ecc099e0 Mon Sep 17 00:00:00 2001 From: tangly1024 Date: Tue, 21 Dec 2021 13:55:42 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E4=B8=8D=E8=92=9C=E5=AD=90=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Busuanzi.js | 17 +++++++ components/GoogleAdsense.js | 29 +++++++++++ components/Gtag.js | 6 +-- components/ThirdPartyScript.js | 13 ++--- lib/busuanzi.js | 92 ++++++++++++++++++++++++++++++++++ lib/global.js | 23 --------- pages/_app.js | 20 ++------ 7 files changed, 153 insertions(+), 47 deletions(-) create mode 100644 components/Busuanzi.js create mode 100644 components/GoogleAdsense.js create mode 100644 lib/busuanzi.js diff --git a/components/Busuanzi.js b/components/Busuanzi.js new file mode 100644 index 00000000..a2456a75 --- /dev/null +++ b/components/Busuanzi.js @@ -0,0 +1,17 @@ +import busuanzi from '@/lib/busuanzi' +import { useRouter } from 'next/router' +import { useEffect } from 'react' + +export default function Busuanzi () { + const router = useRouter() + useEffect(() => { + const busuanziRouteChange = url => { + busuanzi.fetch() + } + router.events.on('routeChangeComplete', busuanziRouteChange) + return () => { + router.events.off('routeChangeComplete', busuanziRouteChange) + } + }, [router.events]) + return null +} diff --git a/components/GoogleAdsense.js b/components/GoogleAdsense.js new file mode 100644 index 00000000..dd9ec543 --- /dev/null +++ b/components/GoogleAdsense.js @@ -0,0 +1,29 @@ +import { useRouter } from 'next/router' +import { useEffect } from 'react' + +export default function GoogleAdsense () { + const initGoogleAdsense = () => { + const ads = document.getElementsByClassName('adsbygoogle').length + const newAdsCount = ads + if (newAdsCount > 0) { + for (let i = 0; i <= newAdsCount; i++) { + try { + // eslint-disable-next-line no-undef + (adsbygoogle = window.adsbygoogle || []).push({}) + } catch (e) { + + } + } + } + } + + const router = useRouter() + useEffect(() => { + initGoogleAdsense() + router.events.on('routeChangeComplete', initGoogleAdsense) + return () => { + router.events.off('routeChangeComplete', initGoogleAdsense) + } + }, [router.events]) + return null +} diff --git a/components/Gtag.js b/components/Gtag.js index a1d9c45c..0314b55f 100644 --- a/components/Gtag.js +++ b/components/Gtag.js @@ -5,12 +5,12 @@ import * as gtag from '@/lib/gtag' const Gtag = () => { const router = useRouter() useEffect(() => { - const handleRouteChange = url => { + const gtagRouteChange = url => { gtag.pageview(url) } - router.events.on('routeChangeComplete', handleRouteChange) + router.events.on('routeChangeComplete', gtagRouteChange) return () => { - router.events.off('routeChangeComplete', handleRouteChange) + router.events.off('routeChangeComplete', gtagRouteChange) } }, [router.events]) return null diff --git a/components/ThirdPartyScript.js b/components/ThirdPartyScript.js index 1b81d5d3..37ae0f19 100644 --- a/components/ThirdPartyScript.js +++ b/components/ThirdPartyScript.js @@ -37,6 +37,13 @@ const ThirdPartyScript = () => { /> )} + {/* 不蒜子 + {BLOG.analytics.busuanzi && ( +