Greasemonkey 脚本不工作

Greasemonkey script not working

这是完整的 Greasemonkey 脚本,用于删除在 firefox 中启用广告拦截器时弹出或阻止实际 Web 内容的模型 screen/page。但它并没有删除模型屏幕。

/**

// ==UserScript==
// @name        test
// @namespace   test
// @include     *
// @version     1
// @grant       none
// ==/UserScript==


if (document.getElementsByClassName('tmask')[0]) {
    document.getElementsByClassName('tmask')[0].style.display = 'none';
    document.getElementsByClassName('tbox')[0].style.display = 'none';
}

**/

但是当模式页面弹出时,如果我打开 "Web Developer > Web Console" 并执行这些行

if (document.getElementsByClassName('tmask')[0]) {
    document.getElementsByClassName('tmask')[0].style.display = 'none';
    document.getElementsByClassName('tbox')[0].style.display = 'none';
}

有效,即删除模式网页并让我阅读网页内容。

感谢任何帮助。如果需要更多信息,请告诉我。

var interval;

function go()
{
     if (document.getElementsByClassName('tmask')[0]) {
        document.getElementsByClassName('tmask')[0].style.display = 'none';
        document.getElementsByClassName('tbox')[0].style.display = 'none';
        clearInterval(interval);
     }
}

window.addEventListener( 'load', function( event )
{
    if( window.top == window.self ) //don't run in frames
    {
        interval = setInterval( go, 500 );
    }
}, false );

我的猜测是您没有等待页面加载,因此您的脚本在 'tmask' 实际存在之前运行。