Javascript 删除“;关闭adblock";新闻页面上的广告包装
我每天都在挪威新闻网站“www.vg.no”上读新闻。前几天,我在学校安装了adblock的电脑上读到了这篇文章,我注意到这些广告被删除了,尽管出现了一个广告包装,上面写着“关闭adblock等”。当我在学校学习信息技术的时候,我决定把它作为一个辅助项目来做一个chrome的扩展,完全去掉那些广告包装 我做了一个扩展,并使用了一个content_脚本,一旦页面加载,它就会调用一个脚本。我把它叫做Javascript 删除“;关闭adblock";新闻页面上的广告包装,javascript,html,css,Javascript,Html,Css,我每天都在挪威新闻网站“www.vg.no”上读新闻。前几天,我在学校安装了adblock的电脑上读到了这篇文章,我注意到这些广告被删除了,尽管出现了一个广告包装,上面写着“关闭adblock等”。当我在学校学习信息技术的时候,我决定把它作为一个辅助项目来做一个chrome的扩展,完全去掉那些广告包装 我做了一个扩展,并使用了一个content_脚本,一旦页面加载,它就会调用一个脚本。我把它叫做script.js 因此,当页面加载时,我的脚本将运行。我的脚本如下所示: var element =
script.js
因此,当页面加载时,我的脚本将运行。我的脚本如下所示:
var element = document.querySelector('div.ad-wrapper');
element.parentElement.removeChild(element);
<script>
window.__AB__ = function() {
var dummy = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5),
css = dummy + '.' + dummy + '{' + 'display: block;' + 'position: absolute;' + 'top: 0;' + 'left: -180px;' + 'width: 180px;' + 'height: 700px;' + 'background: #19C url(//1.vgc.no/img/vgab.png) no-repeat bottom;' + 'color: #FFF;' + 'line-height: 1.4em;' + '}' + dummy + '.' + dummy + ' .t1 {' + 'padding: 260px 10px 67px;' + 'font-size: 18px;' + '}' + dummy + '.' + dummy + ' .t2 {' + 'padding: 0 451px 0 11px;' + 'margin: 0;' + 'font-size: 18px;' + '}' + dummy + '.' + dummy + ' h1 {' + 'margin: 0 0 16px;' + 'padding: 18px 11px 0;' + 'font-size: 26px;' + 'font-weight: normal;' + '}' + dummy + '.' + dummy + ' .zwei {' + 'padding: 11px 40px;' + 'position: absolute;' + 'right: 11px;' + 'top: 81px;' + 'background-color: #FFF;' + 'border: 1px solid #227196;' + 'color: #D00;' + 'font-size: 18px;' + 'text-transform: uppercase;' + '}' + dummy + '.' + dummy + ' button {' + 'padding: 11px 0;' + 'margin: 0 10px;' + 'background-color: #FFF;' + 'border: 1px solid #227196;' + 'color: #D00;' + 'font-size: 18px;' + 'text-align: center;' + 'font-weight: normal;' + 'width: auto;' + 'text-transform: uppercase;' + 'height: auto;' + 'line-height: 1.2em;' + '}' + '.tablet .reg-grid-main .ad[class*=smartboard], .desktop .reg-grid-main .ad[class*=smartboard], .tablet .reg-grid-main .ad[class*=netboard], .desktop .reg-grid-main .ad[class*=netboard] { min-height: auto; }',
text = '<p class="t1"> Ved å skru på annonser, hjelper du å finansiere tidkrevende og viktig journalistikk. </p>',
topText = ' <h1>Hei, kjære VG-leser!</h1><p class="t2">Vi har oppdaget at du blokkerer annonser. Vi i VG hadde satt stor pris på om du hvitlister oss slik at vi kan finansiere vår journalistikk med reklame og fortsette å være en gratis nyhetskilde.</p>',
browser;
if (navigator.userAgent.indexOf('Firefox') > -1 ? true : false) {
browser = 'firefox';
} else {
browser = 'chrome';
}
var style = document.createElement('style');
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
var left = document.createElement(dummy);
left.className = dummy;
left.innerHTML = '<!--googleoff: index-->' + text + '<!--googleon: index-->';
var right = left.cloneNode(true);
right.style.right = '-180px';
right.style.left = 'auto';
var topEl = right.cloneNode();
topEl.style.position = 'relative';
topEl.style.right = 'auto';
topEl.style.width = '100%';
topEl.style.height = '150px';
topEl.style.marginTop = '-1px';
topEl.style.backgroundImage = 'none';
topEl.innerHTML = '<!--googleoff: index-->' + topText + '<!--googleon: index-->';
var open = function(e) {
var pop = document.createElement('div'),
dim = 1000,
over = document.createElement('div'),
btn = document.createElement('a');
function close(e) {
e.preventDefault();
btn.removeEventListener('click', close);
pop.parentNode.removeChild(pop);
over.parentNode.removeChild(over);
return false;
}
btn.addEventListener('click', close);
pop.style.cssText = 'width:' + dim + 'px; height: auto; position: absolute; top: 50%; left: 50%; background-color: #fff; padding: 10px; margin-left: -' + (dim / 2) + 'px; margin-top:-390px;z-index: 2000;';
over.style.cssText = 'width: 100%; height: 100%; position: fixed; top: 0; left: 0; bottom: 0; right: 0; background-color: #000; z-index: 1999; opacity: .8;';
over.addEventListener('click', close);
var popText = '<h3>Slik skrur du på annonser</h3>';
if (browser === 'chrome') {
popText += '<div style="float: left; margin-right: 16px; padding-right: 16px; border-right: 2px solid #19C;"><p><strong>For Adblock</strong></p>';
popText += '<img src="//1.vgc.no/ab/chrome-1.png"><br>';
popText += '<img src="//1.vgc.no/ab/chrome-2.png"></div>';
popText += '<p><strong>For Adblock Plus</strong></p>';
popText += '<img src="//1.vgc.no/ab/chrome-plus.png">';
} else if (browser === 'firefox') {
popText += '<div style="text-align: center;"><p><strong>For Adblock Plus</strong></p>';
popText += '<img src="//1.vgc.no/ab/firefox.png"></div>';
}
popText += '<div style="text-align: center; padding: 20px 0; clear: both;"><strong>Takk for at du skrur på annonser på VG.no :-)</strong></div>';
pop.innerHTML = popText;
btn.innerHTML = 'Lukk';
btn.className = 'close';
btn.href = '#';
document.body.appendChild(pop);
pop.appendChild(btn);
document.body.appendChild(over);
return false;
};
var topBoard = document.querySelector('#ad-topboard, #ad-front-topboard');
if (topBoard) {
topBoard.style.display = 'none';
}
var btn = document.createElement('button');
btn.addEventListener('click', open);
btn.className = 'action-click';
btn.setAttribute('data-stats-type', 'exit');
btn.setAttribute('data-stats-string', 'Adblock::OpenPopup');
btn.innerHTML = 'Skru på annonser';
left.appendChild(btn);
var btn2 = btn.cloneNode(true);
btn2.addEventListener('click', open);
right.appendChild(btn2);
var btn3 = btn.cloneNode(true);
btn3.addEventListener('click', open);
btn3.className = 'zwei';
topEl.appendChild(btn3);
document.head.appendChild(style);
var con = document.querySelector('.reg-grid-container');
con.appendChild(right);
con.appendChild(left);
if (con.insertAdjacentElement) {
con.insertAdjacentElement('afterbegin', topEl);
} else {
con.insertBefore(topEl, con.firstChild)
}
if (window.xt_med) {
window.xt_med('C', 0, 'Adblock::Enabled', 'N');
}
(window.dablockTrigger = window.dablockTrigger || []).push('survey');
window.__AB__ = function() {};
};
</script>
这很有效,但后来我遇到了一个新问题。环绕广告包装器的div会在每次页面加载时更改名称。我在网站上发现了一个脚本,它会在每次加载页面时随机化div类名
看起来是这样的:
var element = document.querySelector('div.ad-wrapper');
element.parentElement.removeChild(element);
<script>
window.__AB__ = function() {
var dummy = Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 5),
css = dummy + '.' + dummy + '{' + 'display: block;' + 'position: absolute;' + 'top: 0;' + 'left: -180px;' + 'width: 180px;' + 'height: 700px;' + 'background: #19C url(//1.vgc.no/img/vgab.png) no-repeat bottom;' + 'color: #FFF;' + 'line-height: 1.4em;' + '}' + dummy + '.' + dummy + ' .t1 {' + 'padding: 260px 10px 67px;' + 'font-size: 18px;' + '}' + dummy + '.' + dummy + ' .t2 {' + 'padding: 0 451px 0 11px;' + 'margin: 0;' + 'font-size: 18px;' + '}' + dummy + '.' + dummy + ' h1 {' + 'margin: 0 0 16px;' + 'padding: 18px 11px 0;' + 'font-size: 26px;' + 'font-weight: normal;' + '}' + dummy + '.' + dummy + ' .zwei {' + 'padding: 11px 40px;' + 'position: absolute;' + 'right: 11px;' + 'top: 81px;' + 'background-color: #FFF;' + 'border: 1px solid #227196;' + 'color: #D00;' + 'font-size: 18px;' + 'text-transform: uppercase;' + '}' + dummy + '.' + dummy + ' button {' + 'padding: 11px 0;' + 'margin: 0 10px;' + 'background-color: #FFF;' + 'border: 1px solid #227196;' + 'color: #D00;' + 'font-size: 18px;' + 'text-align: center;' + 'font-weight: normal;' + 'width: auto;' + 'text-transform: uppercase;' + 'height: auto;' + 'line-height: 1.2em;' + '}' + '.tablet .reg-grid-main .ad[class*=smartboard], .desktop .reg-grid-main .ad[class*=smartboard], .tablet .reg-grid-main .ad[class*=netboard], .desktop .reg-grid-main .ad[class*=netboard] { min-height: auto; }',
text = '<p class="t1"> Ved å skru på annonser, hjelper du å finansiere tidkrevende og viktig journalistikk. </p>',
topText = ' <h1>Hei, kjære VG-leser!</h1><p class="t2">Vi har oppdaget at du blokkerer annonser. Vi i VG hadde satt stor pris på om du hvitlister oss slik at vi kan finansiere vår journalistikk med reklame og fortsette å være en gratis nyhetskilde.</p>',
browser;
if (navigator.userAgent.indexOf('Firefox') > -1 ? true : false) {
browser = 'firefox';
} else {
browser = 'chrome';
}
var style = document.createElement('style');
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
style.appendChild(document.createTextNode(css));
}
var left = document.createElement(dummy);
left.className = dummy;
left.innerHTML = '<!--googleoff: index-->' + text + '<!--googleon: index-->';
var right = left.cloneNode(true);
right.style.right = '-180px';
right.style.left = 'auto';
var topEl = right.cloneNode();
topEl.style.position = 'relative';
topEl.style.right = 'auto';
topEl.style.width = '100%';
topEl.style.height = '150px';
topEl.style.marginTop = '-1px';
topEl.style.backgroundImage = 'none';
topEl.innerHTML = '<!--googleoff: index-->' + topText + '<!--googleon: index-->';
var open = function(e) {
var pop = document.createElement('div'),
dim = 1000,
over = document.createElement('div'),
btn = document.createElement('a');
function close(e) {
e.preventDefault();
btn.removeEventListener('click', close);
pop.parentNode.removeChild(pop);
over.parentNode.removeChild(over);
return false;
}
btn.addEventListener('click', close);
pop.style.cssText = 'width:' + dim + 'px; height: auto; position: absolute; top: 50%; left: 50%; background-color: #fff; padding: 10px; margin-left: -' + (dim / 2) + 'px; margin-top:-390px;z-index: 2000;';
over.style.cssText = 'width: 100%; height: 100%; position: fixed; top: 0; left: 0; bottom: 0; right: 0; background-color: #000; z-index: 1999; opacity: .8;';
over.addEventListener('click', close);
var popText = '<h3>Slik skrur du på annonser</h3>';
if (browser === 'chrome') {
popText += '<div style="float: left; margin-right: 16px; padding-right: 16px; border-right: 2px solid #19C;"><p><strong>For Adblock</strong></p>';
popText += '<img src="//1.vgc.no/ab/chrome-1.png"><br>';
popText += '<img src="//1.vgc.no/ab/chrome-2.png"></div>';
popText += '<p><strong>For Adblock Plus</strong></p>';
popText += '<img src="//1.vgc.no/ab/chrome-plus.png">';
} else if (browser === 'firefox') {
popText += '<div style="text-align: center;"><p><strong>For Adblock Plus</strong></p>';
popText += '<img src="//1.vgc.no/ab/firefox.png"></div>';
}
popText += '<div style="text-align: center; padding: 20px 0; clear: both;"><strong>Takk for at du skrur på annonser på VG.no :-)</strong></div>';
pop.innerHTML = popText;
btn.innerHTML = 'Lukk';
btn.className = 'close';
btn.href = '#';
document.body.appendChild(pop);
pop.appendChild(btn);
document.body.appendChild(over);
return false;
};
var topBoard = document.querySelector('#ad-topboard, #ad-front-topboard');
if (topBoard) {
topBoard.style.display = 'none';
}
var btn = document.createElement('button');
btn.addEventListener('click', open);
btn.className = 'action-click';
btn.setAttribute('data-stats-type', 'exit');
btn.setAttribute('data-stats-string', 'Adblock::OpenPopup');
btn.innerHTML = 'Skru på annonser';
left.appendChild(btn);
var btn2 = btn.cloneNode(true);
btn2.addEventListener('click', open);
right.appendChild(btn2);
var btn3 = btn.cloneNode(true);
btn3.addEventListener('click', open);
btn3.className = 'zwei';
topEl.appendChild(btn3);
document.head.appendChild(style);
var con = document.querySelector('.reg-grid-container');
con.appendChild(right);
con.appendChild(left);
if (con.insertAdjacentElement) {
con.insertAdjacentElement('afterbegin', topEl);
} else {
con.insertBefore(topEl, con.firstChild)
}
if (window.xt_med) {
window.xt_med('C', 0, 'Adblock::Enabled', 'N');
}
(window.dablockTrigger = window.dablockTrigger || []).push('survey');
window.__AB__ = function() {};
};
</script>
窗口。u u AB__;=函数(){
var dummy=Math.random().toString(36).替换(/[^a-z]+//g',).substr(0,5),
css=dummy+'.+dummy+'{'+'显示:块;'+'位置:绝对;'+'顶部:0;'+'左侧:-180px;'+'宽度:180px;'+'高度:700px;'+'背景:#19C url(//1.vgc.no/img/vgab.png)无重复底部;'+'颜色:#FFF;'+'行高:1.4em;'+''''.''''''''''''.+'高度:700px;'.+dummy+'.t1'.+'填充:260px+'字体大小:67px;'+'18px;'“+dummy+”.+dummy+”.t2{'+'填充:0 451px 0 11px;'+'边距:0;'+'字体大小:18px;'+'}'+dummy+'.+dummy+'.+h1{'+'边距:0 0 16px;'+'填充:18px 11px 0;'+'字体大小:26px;'+'字体重量:正常;'+'+'''''''''}'+dummy+'.zwei{'+'填充:11px 40px;'+'位置:绝对;'+'右:11px;'+'顶:81px;'+'背景色:#FFF;'+'边框:1px实心#227196;'+'颜色:#D00;'+'字体大小:18px;'+'文本转换:大写;'+''''}'+'+'虚拟+'.+'按钮{'+'填充:11px 0;'+'边距:0 10px;'+'背景色:#FFF;'+'边框:1px实心#227196;'+'颜色:#D00;'+'字体大小:18px;'+'文本对齐:中心;'+'字体重量:正常;'+'宽度:自动;'+'文本转换:大写;'+'高度:自动;'+'行高:1.2em;'+'+'+'+'+''+'+''+''+'.tablet.tablet.reg.grid main.ad.=smartboard],.desktop.reg grid main.ad[class*=smartboard],.tablet.reg grid main.ad[class*=netboard],.desktop.reg grid main.ad[class*=netboard]{最小高度:自动;}',
text=“Vedåskru påannonser,hjelper duåfinansiere tidkrevende og viktig Journalistik.
”,
topText='Hei,kjære VG leser!我在布卢克勒的新闻发布会上有机会。我在金融界和新闻记者med reklame og fortsette免费采访尼赫茨基尔德的新闻发布会上获得了最高荣誉。
',
浏览器
if(navigator.userAgent.indexOf('Firefox')>-1?true:false){
浏览器='firefox';
}否则{
浏览器='chrome';
}
var style=document.createElement('style');
if(style.styleSheet){
style.styleSheet.cssText=css;
}否则{
appendChild(document.createTextNode(css));
}
var left=document.createElement(虚拟);
left.className=dummy;
left.innerHTML=''+文本+'';
var right=left.cloneNode(真);
right.style.right='-180px';
right.style.left='auto';
var topEl=right.cloneNode();
topEl.style.position='relative';
topEl.style.right='auto';
topEl.style.width='100%';
topEl.style.height='150px';
topEl.style.marginTop='-1px';
topEl.style.backgroundImage='none';
topEl.innerHTML=''+topText+'';
var open=功能(e){
var pop=document.createElement('div'),
dim=1000,
over=document.createElement('div'),
btn=document.createElement('a');
功能关闭(e){
e、 预防默认值();
btn.removeEventListener('单击',关闭);
parentNode.removeChild(pop);
over.parentNode.removeChild(over);
返回false;
}
btn.addEventListener(“单击”,关闭);
pop.style.cssText='width:'+dim+'px;height:auto;position:absolute;top:50%;left:50%;background color:#fff;padding:10px;margin left:-'+(dim/2)+'px;margin top:-390px;z-index:2000;';
over.style.cssText='宽度:100%;高度:100%;位置:固定;顶部:0;左侧:0;底部:0;右侧:0;背景色:#000;z索引:1999;不透明度:8;';
over.addEventListener(“单击”,关闭);
var popText='Slik skrur du påannonser';
如果(浏览器=='chrome'){
popText+='用于Adblock';
popText+='
';
popText+='';
对于Adblock Plus,popText+=';
popText+='';
}else if(浏览器=='firefox'){
对于Adblock Plus,popText+=';
popText+='';
}
popText+='表示在skrur påannonser påVG.no:-);
pop.innerHTML=popText;
btn.innerHTML='Lukk';
btn.className='close';
btn.href='#';
document.body.appendChild(pop);
儿童流行音乐(btn);
文件.正文.附件(多个);
返回false;
};
var topBoard=document.querySelector(“#ad topBoard,#ad front topBoard”);
if(顶板){
topBoard.style.display='none';
}
var btn=document.createElement('button');
btn.addEventListener(“单击”,打开);
btn.className='操作单击';
btn.setAttribute('data-stats-type','exit');
btn.setAttribute('data-stats-string','Adblock::OpenPopup');
btn.innerHTML='Skru påannonser';
左。追加子项(btn);
var btn2=btn.cloneNode(真);
btn2.addEventListener(“单击”,打开);
对.儿童(btn2);
变量btn3=btn.cloneNode(真);
btn3.addEventLis