2

我在飞机上,他们强迫每个页面(包括这个 Stack Overflow 页面)在顶部有一个横幅,上面有他们的广告。

这是我在 Firefox 中的 UserScript 的代码,但它不起作用:

// ==UserScript==
// @name           SW Ad remover
// @namespace      seangates.com/sw_ad_remover
// @include        *
// @require        https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js
// ==/UserScript==

$(document).ready(function(){
 $('script[src$="swa.py"]').remove();
 $('div[id^="__swa"]').hide();
 $('body').css('padding',0);

 console.log('working');
});

关于为什么这不起作用的任何想法?即使我将它放在 ready() 块的开头,我什至无法让 console.log 工作。

4

2 回答 2

2

Greasemonkey 不适用于 jQuery 1.4.4。

使用 jQuery 1.3.2。

请注意,您必须卸载然后重新安装脚本,以确保将正确的 jQuery 文件复制到您的 PC。

于 2010-12-23T03:06:51.677 回答
0

当然,这里总是有不使用 jQuery 的选项,因为只有 Greasemonkey 实现了这些@require规则。

var s = document.querySelectorAll('script[src$="swa.py"]'), 
    d = document.querySelectorAll('div[id^="__swa"]'); 

for(var i = 0; i < s.length; i++){
    s[i].parentNode.removeChild(s[i]);
}

for(i = 0; i < d.length; i++){
    d[i].style.display = 'none';
}

document.body.style.padding = '0px';

document.querySelectorAll仅在 IE8 及更高版本中可用,但在这里没关系。此脚本尚未经过测试,但应该可以工作。

于 2010-12-23T04:15:02.247 回答