尝试使用Chrome扩展程序删除Gmail中的广告

时间:2012-02-08 23:22:08

标签: javascript google-chrome google-chrome-extension gmail

我正在尝试使用Chrome扩展程序,该扩展程序会移除Gmail右侧窗格中显示的广告,而是将我想要的信息放在那里。 (我还没有确切地决定放在那里;在几个想法之间摇摆不定,包括外部内容和/或附件。)

广告(通常)包含在<div class="oM"></div>元素中。但我似乎无法在我的扩展程序或控制台中选择它。

我已经通过编写一个在页面顶部添加了多余div的扩展来测试我的manifest.json设置,并且工作正常 - 我刚刚创建了一个新元素并且

document.body.parentElement.insertBefore(new_el, document.body);

但是,我现在要做的就是撕掉广告并输入一些虚拟文字,或者只是将文字放在广告上方。这是我的content_script.js文件中调用的主要函数。

function modifyPage(txt) {

    var container = document.getElementsByClassName('oM')[0];

    container.innerHTML = txt;

}


function modifyPage(txt) {
    var insert = document.createElement('div');
    insert.innerText = txt;

    var container = document.getElementsByClassName('oM')[0];

    document.body.parentElement.insertBefore(insert, container);

}

我甚至尝试过jQuery:

function modifyPage(txt) {
    $('.oM').html(txt);

}

此外,尝试使用Chrome控制台检索<div class="oM">不会返回任何内容 - 即使我可以在源代码中看到它。

3 个答案:

答案 0 :(得分:2)

设置执行jquery选择器的延迟。 Google Tubes比在页面加载时使用静态div类要复杂一些。

答案 1 :(得分:1)

不要用JS删除广告,只需用CSS隐藏它们:

.oM {
    display: none;
}

答案 2 :(得分:0)

我正在使用AdBlock + Chrome add-in(or extension) 它非常有用,它是一个捐赠用品,我猜这位作者使用jquery {display:none }hideremove这些广告带有自定义过滤器列表。