Javascript 删除“;关闭adblock";新闻页面上的广告包装

Javascript 删除“;关闭adblock";新闻页面上的广告包装,javascript,html,css,Javascript,Html,Css,我每天都在挪威新闻网站“www.vg.no”上读新闻。前几天,我在学校安装了adblock的电脑上读到了这篇文章,我注意到这些广告被删除了,尽管出现了一个广告包装,上面写着“关闭adblock等”。当我在学校学习信息技术的时候,我决定把它作为一个辅助项目来做一个chrome的扩展,完全去掉那些广告包装 我做了一个扩展,并使用了一个content_脚本,一旦页面加载,它就会调用一个脚本。我把它叫做script.js 因此,当页面加载时,我的脚本将运行。我的脚本如下所示: var element =

我每天都在挪威新闻网站“www.vg.no”上读新闻。前几天,我在学校安装了adblock的电脑上读到了这篇文章,我注意到这些广告被删除了,尽管出现了一个广告包装,上面写着“关闭adblock等”。当我在学校学习信息技术的时候,我决定把它作为一个辅助项目来做一个chrome的扩展,完全去掉那些广告包装

我做了一个扩展,并使用了一个content_脚本,一旦页面加载,它就会调用一个脚本。我把它叫做
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