我经常需要在本地计算机上更新和测试我的小网站。 这些网站使用谷歌广告。
我过去常常在每个页面上手动停用和启用广告,这非常痛苦。
我想在我的本地计算机上测试网站时禁用所有Google广告。我如何实现这一目标?
答案 0 :(得分:3)
经过一番努力,我找到了一个基本解决方案来阻止localhost上的所有广告。
唯一的限制是必须将其放在master
文件中,并且继承主文件的所有文件都会阻止广告。
在包含任何其他脚本之前,将以下脚本粘贴到master
部分的head
文件中。
<script type="text/javascript">
//block google ads on localhost
if (window.location.hostname === "localhost") {
window.adsbygoogle = {
enabled: true,
loaded: true,
push: function () {
return;
},
google_ad_client: "",
enable_page_level_ads: true
}
}
</script>
答案 1 :(得分:1)
您可以在使用localhost时使用adblocker启用它,然后在发布站点时将其禁用。
答案 2 :(得分:1)
有两种方法,您可以开发自己的Chrome扩展程序,仅在Chrome上运行以隐藏Google广告(顺便提一下,它有一组独特的HTML,因此可以轻松指出并删除它们)。
或者您可以在主模板中创建一个javascript文件的链接,该文件在服务器(生产)上始终为空,但在本地它定义了要隐藏的Google广告的CSS。同样,谷歌广告选择器也难以确定。
https://developer.chrome.com/extensions/getstarted
这是一个用于此目的的plnkr代码
的manifest.json
http://plnkr.co/edit/wPxuO0vndIBMTz1ajMyJ?p=preview
{
"name": "Walnut",
"description": "hide ads",
"version": "2.0",
"content_scripts": [
{
"matches": ["https://*.facebook.com/*","http://localhost:8080/*"],
"css": [ "remove.css" ],
"js": ["remove.js"],
"run_at": "document_start"
}
],
"manifest_version": 2
}
remove.js
// you can also make the removal periodical in case the Ad provider keeps recreating itself
// here you can have more freedon to find elements that main contain certain part of a class name or id
document.addEventListener('DOMContentLoaded', function () {
var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
// check id and hide if it matches google-ad-*
}
setTimeout(function () {
var ads = document.getElementsByClassName("example-suspected-class");
if (ads.length == 1) {
ads[0].remove();
}
}, 100);
setInterval(function () {
var ads = document.getElementsByClassName("example-suspected-class");
if (ads.length == 1) {
ads[0].remove();
}
},10000);
});
remove.css
/* setup any css you susspect would mean something to web page, examples */
#slot_TL1 {display: none!important;}
.vp-off .mb-list-ad {display: none!important;}
.vp-off .mb-list-ad * {display: none!important;}
答案 3 :(得分:0)
在配置文件中有一个标志,你可以在本地开发/测试时为它设置一个值。