Vue.js 如何检测请求是否被AdBlocker阻止?

Vue.js 如何检测请求是否被AdBlocker阻止?,vue.js,request,adblock,Vue.js,Request,Adblock,我们在Vue Js中有一个页面,我们注意到一些请求被Adblocker阻止,我想检测何时发生这种情况(仅当请求被阻止时)创建一个看起来像广告的端点,以愚弄adblock阻止它,并将其加载到脚本标记中,即: <script src="/adverts.js" type="text/javascript"></script> 然后在页面或应用程序中,您只需查找应加载的元素,如果未加载,则该元素已被阻止,这将表明用户已启用adBlock

我们在Vue Js中有一个页面,我们注意到一些请求被Adblocker阻止,我想检测何时发生这种情况(仅当请求被阻止时)

创建一个看起来像广告的端点,以愚弄adblock阻止它,并将其加载到脚本标记中,即:

<script src="/adverts.js" type="text/javascript"></script>
然后在页面或应用程序中,您只需查找应加载的元素,如果未加载,则该元素已被阻止,这将表明用户已启用adBlock:

let adBlocked=document.getElementById('advert-test')?false:true

如果您试图处理adBlock阻塞图像,请不要使用广告特征(如广告的通用图像尺寸)来命名资产。例如,
/ads/ad375x50.jpg
,而是使用类似于
/a/708e8144b8c034c8bde17391ef1b9c1.jpg
的内容,并将散列与实际文件匹配/映射。这包括DOM ID和类,如
class=“share”
将被隐藏(被阻止的类的列表)


如果你想在加载AdSense或第三方域名等方面下功夫,那你就太倒霉了,因为没有解决办法。

我的第一个问题是为什么adblock在他们的阻止列表中添加了你需要/正在使用的资产?似乎AdBlocker不再关注/advists.js,有新名称的想法吗?尝试将其更改为
ads.js
,或者,查找使用的默认列表,并使url与其中一个阻止的路径/参数匹配
app.get('/adverts.js', function (req, res, next) {
    const response = `var a=document.createElement('div');a.id='advert-test';a.style.display='none';document.body.appendChild(a)`

    res.setHeader('content-type', 'text/javascript')
    res.setHeader('content-length', response.length)
    res.send(response)
})