问题标签 [adblock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - AdBlock 阻止 .NET 4.5 网站上的 CSS 和图像
我使用 Visual Studio 2012 附带的默认 web-forms 网站模板创建了一个新网站。只需转到 File--> New Website --> C# --> Asp.Net Web Site,然后让它创建它是基本的模板。
然后我按 F5 进行调试,它运行良好,我得到带有水绿色块的默认欢迎页面,等等......但是当我将它添加到 IIS 并使用 Chrome 中的 localhost/WebsiteName 浏览到它时,AdBlock 插件会阻止所有的 CSS 和图像,所以我看到的只是黑白无样式的文本。当我禁用 AdBlock 时,样式和图像会恢复,并且看起来很正常,就像调试时一样。
我感觉它与捆绑引用有关,但我不确定发生了什么。
AdBlock 拦截具体是什么?
为什么它在通过 Visual Studio 调试时不阻止它,只有在通过 localhost/WebsiteName 浏览到它时才阻止它?
我可以做些什么来防止使用 AdBlock 的用户在明显不是广告的情况下阻止此内容?
html - 我需要向 div 添加什么属性才能为 AdBlock 用户隐藏它?
复杂的标题,但这就是我想知道的。我的网站上有很多 Adblock 用户,我想为他们优化。
那么我必须向广告容器 div 添加什么样的类(例如)属性才能使它们对 Adblock 用户不可见?
你看,我想做的是让一个 div 看起来像一个广告,所以 Adblock 将它隐藏起来。
编辑:我知道的一个解决方案是根据 Javascript 检测 Adblock,然后据此隐藏我的 div。但我希望访问者的广告块隐藏 div 本身!
javascript - 如果检测到 Adblock,如何防止 CSS 和 JS 加载?
最近,我在朋友的计算机上发现了一个网站,该网站在启用了 Adblock 的朋友计算机上销售添加 ( http://buysellads.com/ ),该网站似乎检测到浏览器加载项,它禁用了 CSS 和 JS。
我一直在尝试阅读他们的代码,但我似乎找不到导致这种情况发生的行。我知道有一些方法可以检测并给用户一个禁用插件的消息,但我发现这种方法更聪明。
如果有人知道或找到触发和执行的代码,我将不胜感激。
额外的问题:这将如何与 W3 Total Cache for Wordpress 之类的缓存插件一起使用?我提出这个问题是因为我想知道网站将如何处理将页面列入白名单并刷新网站的人。理论上它应该显示 CSS 和 JS,因为没有找到 Adblock,但我不确定缓存插件是否会破坏它并在没有任何 CSS 或 JS 的情况下显示以前的站点。
提前致谢。
html - AdBlock plus 隐藏带有“ad”字样的 id 或类的元素
我的站点中有两个 div,一个带有 id ad_holder
,另一个带有 idad_buttons"
在安装了 ad block plus 的 Mozilla 上测试该网站时,我注意到两个 div 都被隐藏了。经过进一步检查,我注意到 Adblock 是罪魁祸首,可能是因为 ID 名称。我还注意到 Adblock 创建(或者可能有现成的)CSS 文件,将显示设置为隐藏。
我知道我可以通过简单地更改 ID 或尝试覆盖 Adblock CSS 来解决此问题,但仍然需要知道是否还有另一种解决此问题的方法,例如一小段代码告诉 Adblock 它不是真正的广告。
div 的内容不是真正的广告,它只是包含.jpeg
有关客户业务的信息。
html - 在某些计算机上,元素隐藏在相同版本的 Chrome 中 - Adblock
概括
在我们的新工具发布时,带有一些广告预览的 div 不会显示在每个浏览器中。即使我和我的同事的浏览器版本完全相同。经过一些(长时间)调试后,我们设法找到了导致 Chrome 插件的原因。
在下方,您可以阅读整个故事。我将其标记为问答风格,因此甚至不必费心考虑可能的答案,因为我已经为您准备好了:)。我在这里发布这个是因为我还没有博客,我想分享它!我希望我们可以帮助您或您遇到相同(相似)问题的同事程序员。
问题
今天,我们在内部 CRM 应用程序上发布了一个新工具,该工具根据员工和客户提供的数据创建广告。此工具能够在全部导出之前显示其中一些 (5) 广告。此预览是通过 Ajax 调用完成的,该调用将使用提供的数据创建广告。我在 localhost 上开发了这个工具,将它上传到测试服务器,一切都很好。在具有多个不同用户的多台计算机/浏览器上,一切正常。是时候发布这些东西了。
我们将文件上传到服务器,添加了不同的数据库表,并使我们自己成为唯一被允许访问该页面以进行一些最终检查的用户。我在我的电脑上做了一些检查(Win 7 with Chrome),一切都像在本地主机和测试服务器上一样正常工作。我的一位开发主管同事也在尝试使用该工具。它工作得很好,但是...
由于某种原因,当他登录自己的计算机(带有 Chrome 的 Win 7)时,“预览广告”没有显示。起初我们认为它必须与 JavaScript 做一些事情。他必须刷新甚至清除缓存才能使其正常工作,但这并没有解决问题。控制台也没有抛出任何错误,所以......
也许这与他的帐户有关?因为他是头部发育,我们当然想阻止他,只是因为我们可以:)。我们考虑了 ACL 管理,因为我们有一些特殊的规则,所以我们可以访问,但员工不能。也许我们忘记了一些东西,但是它不得不在身份验证日志中抛出一个错误。但是当他通过 Firefox 或我的电脑登录时,一切正常。所以这与它无关。
然后我们有了一个聪明的想法,即查看元素检查器,看看广告是否正确加载到 DOM。它似乎在那里,所以这很奇怪。我们试图关闭一些在重新加载时临时隐藏广告包装器的类,但这并没有解决问题。所以我们开始摆弄这些元素。拖动它们,切换类和样式,但似乎没有任何效果。但是后来......他想出了将<table>
包含广告的内容拖到包裹桌子的div之外的想法。我们有这个结构是因为这个包装器还包含加载指示器,以便在它们之间更轻松地切换。就在那里,桌子出现了。所以,我们现在知道它必须与包装器有关。但是什么?
解决方案
在我的浏览器中进行了一些尝试和调试并再次尝试之后,我开始大声说出来,比如:“相同的 Chrome 版本”、“相同的 CSS”、“f5'd”、“插件”……等等什么?我的同事跑到他的电脑前说,可能和这个有关;并关闭Adblock plus。刷新页面后,出现了 div(广告包装)。
所以,现在我们知道是什么导致了问题,但我们想知道原因,我们想让每个员工都可以使用该工具。如果员工正在使用此插件怎么办?我们不能强迫他关闭 Adblock。
你在这里看到什么?一个<div>
ID 为“ads-wrapper”的广告。似乎 Adblocker 正在隐藏具有此 ID 的元素。因此,让我们尝试在元素检查器中更改该属性。将其值更改为“预览”、“包装”甚至“广告”都可以。但是,当我们有“广告”和“包装”的组合时,它会失败。将“包装器”更改为“容器”也会导致隐藏元素。
第一个想法:正则表达式。它可能是一些正则表达式,它过滤具有与其模式匹配的 id 的元素并简单地隐藏它。
我搜索了一种方法来查看这些 Chrome 插件的来源。另一位同事正在构建他自己的插件,我在 HTML 和 CSS 方面帮助了他一些,所以我知道它是用 JavaScript 制作的。源头一定在某处。我发现这篇文章描述了在哪里可以找到已安装插件的来源。我打开插件的文件夹,发现一大堆 JavaScript 文件。我将它们全部打开并批量搜索诸如“正则表达式”之类的东西,希望不必吐出所有文件。没有。
过了一会儿,我找到了第 189 行background.js
。幸运的是,这是我打开的第二个文件,所以我很快就找到了。
我在 Chrome 中打开了这个函数中使用的链接,看到了大量的标签、url 和其他我什至不想记住的东西。
在第 5876 行,我找到了以下行:
似乎前两个##
用来说:嘿,这是一个属性,所以在你的函数 Mr. Adblock plus 中过滤它。因为稍后您可以找到类似##.ads-wrapper
. 我们在这个文件中找到了我们之前尝试过的所有属性值。(在background.js
您可以找到更多包含要隐藏的匹配项的文件。)
结论
查看.txt并检查它们排除的类、id 和其他属性以及 url。请不要试图记住它们,而是看一眼。您会在这些值中找到一些模式,因此希望您能记住,即使您的意图不是显示广告,某些插件也会阻止您的内容!
如果您的公共可访问网站的访问者向您发送以下消息,那可能会非常令人头疼:
嘿,您的网站无法正常工作。我看不到Foo Bar ...
因此,希望您现在在本文中思考一下并思考:“也许它与广告拦截器插件以及我在 id 和类中的选择有关。”。
使用的链接
- https://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/
- http://en.wikipedia.org/wiki/Access_control_list
- https://chrome.google.com/webstore/detail/adblock-plus/cfhdojbkjhnklbpkdaibdccddilifddb
- http://saravananthirumuruganathan.wordpress.com/2010/05/01/how-to-read-the-source-code-of-chrome-and-firefox-extensions/
- https://easylist-downloads.adblockplus.org/liste_fr+easylist.txt
javascript - Javascript 警报与 Jquery 消息交替
我只是一个学习者,对javascript和jquery一无所知。我想添加一个 adblock 检测器脚本。我发现的是这段代码,它给出了一个令人讨厌的警报消息。我想要的是提供一条 ajaxed 消息,而不是一条弹出屏幕的消息。
替换这个代码你能帮我用这个代码的替代品吗?
我找到了一些关于使用 jquery 或 jquery-ui 获取它的解决方案,但不知道在此处放置什么并替换代码。我尝试了来自http://m0006.gamecopyworld.com/games/gcw_notice.shtml的代码示例,它提供了一个友好的 Adblock Detect 消息。但它根本不起作用。只有此警报消息在我的网站上有效。
javascript - 广告拦截器的参考,例如网页内容过滤
我想为浏览器实现一个扩展来阻止第三方弹出广告,就像广告拦截器一样。但我不知道从哪里开始。有人可以向我指出一些参考资料,我可以使用这些参考资料来了解有关过滤 Web 内容的更多信息吗?提前致谢。
adblock - 身份伪装者
如果我使用诸如 IdentityCloaker 之类的 ISP cloaker(为了访问 BBC iPlayer),会影响我对 AdBlock 或 AdBlockPlus 的使用吗?AdBlcok 扩展程序是否只能通过 Google 帐户或我的 ISP 识别我?
html - 我的元素或背景没有显示在 Chrome 中,但显示在所有其他浏览器中,为什么?
我有一个元素或图像在 Chrome 中显示不正确,但它在所有其他浏览器中显示正常。这是什么原因造成的?
注意:由于它们的性质,这些问题通常过于本地化,无法标记为重复。出于这个原因,我添加了这个问题作为针对所有这些问题的一种方式。
仅在上周提出的几个此类问题的示例是:
javascript - XMLHTTPRequest 响应在标头中不包含 Location 字段
我试图修改 adblockplus 代码以进行测试。我正在修改代码以在 URL 上发送 http get 请求并从响应中获取最终 URL。我尝试使用下面的代码,但响应不包含标头响应中的 Location 字段。我在 Firefox 扩展中这样做,所以我认为跨域请求不会有任何问题。为什么我无法从响应中获取 Location 字段?有没有更好的方法来完成这项任务?
预期输出 - http://www.mensxp.com/
实际输出 - 位置:空
这是我正在使用的代码-
解决方案-
我终于找到了解决方案。我没有得到最终的回应。所以我将重定向限制设置为 0,现在我可以在标题中获取 Location 字段。这是我添加到代码中的内容-