diff --git a/src/client/theme-default/Layout.vue b/src/client/theme-default/Layout.vue index c7803adc..9b53c6e1 100644 --- a/src/client/theme-default/Layout.vue +++ b/src/client/theme-default/Layout.vue @@ -133,7 +133,9 @@ const pageClasses = computed(() => { :key="'carbon' + page.relativePath" :code="theme.carbonAds.carbon" :placement="theme.carbonAds.placement" - /> + > + + diff --git a/src/client/theme-default/components/CarbonAds.vue b/src/client/theme-default/components/CarbonAds.vue index ce2b977d..401295bc 100644 --- a/src/client/theme-default/components/CarbonAds.vue +++ b/src/client/theme-default/components/CarbonAds.vue @@ -7,17 +7,32 @@ const { code, placement } = defineProps<{ }>() const el = ref() +const isBlocked = ref(false) onMounted(() => { + const src = `//cdn.carbonads.com/carbon.js?serve=${code}&placement=${placement}` + fetch('https:' + src, { + method: 'HEAD', + mode: 'no-cors' + }) + .then(() => { + isBlocked.value = false + }) + .catch(() => { + isBlocked.value = true + }) + const s = document.createElement('script') s.id = '_carbonads_js' - s.src = `//cdn.carbonads.com/carbon.js?serve=${code}&placement=${placement}` + s.src = src el.value.appendChild(s) })