Greasemonkey脚本不起作用

时间:2017-08-31 17:34:32

标签: javascript jquery modal-dialog greasemonkey

以下是完整的Greasemonkey脚本,用于删除在firefox中启用adblocker时弹出或阻止实际Web内容的模型屏幕/页面。但它没有删除模型屏幕。

/ **

// ==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控制台"并执行这些行

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

它可以工作,即删除模态网页,让我阅读网页内容。

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

1 个答案:

答案 0 :(得分:0)

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”实际存在之前运行。